[josm] 01/07: Imported Upstream version 0.0.svn10966+dfsg

Bas Couwenberg sebastic at debian.org
Tue Sep 6 09:03:11 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository josm.

commit 508cbe21e32e530783f09c9a6f9fad3a4baca7c0
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Tue Sep 6 09:29:11 2016 +0200

    Imported Upstream version 0.0.svn10966+dfsg
---
 .checkstyle                                        |     4 +-
 .classpath                                         |    11 +-
 .externalToolBuilders/revision.launch              |     8 +-
 .project                                           |     6 -
 .settings/edu.umd.cs.findbugs.core.prefs           |    66 +-
 .settings/sf.eclipse.javacc.prefs                  |     1 +
 README                                             |    16 +-
 REVISION                                           |     6 +-
 build.xml                                          |    60 +-
 data/defaultpresets.xml                            |   462 +-
 data/validator/combinations.mapcss                 |     3 +-
 data/validator/deprecated.mapcss                   |    36 +-
 data/validator/ignoretags.cfg                      |    11 +
 data_nodist/trans/ast.lang                         |   Bin 8848 -> 8856 bytes
 data_nodist/trans/be.lang                          |   Bin 17556 -> 17745 bytes
 data_nodist/trans/bg.lang                          |   Bin 2411 -> 2419 bytes
 data_nodist/trans/ca-valencia.lang                 |   Bin 7791 -> 7799 bytes
 data_nodist/trans/ca.lang                          |   Bin 10470 -> 10518 bytes
 data_nodist/trans/cs.lang                          |   Bin 10730 -> 10999 bytes
 data_nodist/trans/da.lang                          |   Bin 10056 -> 10337 bytes
 data_nodist/trans/de.lang                          |   Bin 11232 -> 11576 bytes
 data_nodist/trans/el.lang                          |   Bin 1413 -> 1421 bytes
 data_nodist/trans/en.lang                          |   Bin 9243 -> 9498 bytes
 data_nodist/trans/en_AU.lang                       |   Bin 1498 -> 1506 bytes
 data_nodist/trans/en_GB.lang                       |   Bin 2130 -> 2138 bytes
 data_nodist/trans/es.lang                          |   Bin 11885 -> 11948 bytes
 data_nodist/trans/et.lang                          |   Bin 1390 -> 1398 bytes
 data_nodist/trans/fi.lang                          |   Bin 3011 -> 3019 bytes
 data_nodist/trans/fr.lang                          |   Bin 11345 -> 11436 bytes
 data_nodist/trans/gl.lang                          |   Bin 2961 -> 2969 bytes
 data_nodist/trans/hu.lang                          |   Bin 11083 -> 11155 bytes
 data_nodist/trans/id.lang                          |   Bin 6701 -> 6709 bytes
 data_nodist/trans/it.lang                          |   Bin 10414 -> 10463 bytes
 data_nodist/trans/ja.lang                          |   Bin 11614 -> 11724 bytes
 data_nodist/trans/km.lang                          |   Bin 16871 -> 16879 bytes
 data_nodist/trans/lt.lang                          |   Bin 2012 -> 2020 bytes
 data_nodist/trans/nb.lang                          |   Bin 1689 -> 1697 bytes
 data_nodist/trans/nl.lang                          |   Bin 11726 -> 11777 bytes
 data_nodist/trans/pl.lang                          |   Bin 2845 -> 2853 bytes
 data_nodist/trans/pt.lang                          |   Bin 12858 -> 12931 bytes
 data_nodist/trans/pt_BR.lang                       |   Bin 10112 -> 10168 bytes
 data_nodist/trans/ru.lang                          |   Bin 17590 -> 18136 bytes
 data_nodist/trans/sk.lang                          |   Bin 10055 -> 10150 bytes
 data_nodist/trans/sv.lang                          |   Bin 1312 -> 1320 bytes
 data_nodist/trans/uk.lang                          |   Bin 18005 -> 18472 bytes
 data_nodist/trans/vi.lang                          |   Bin 10737 -> 10745 bytes
 data_nodist/trans/zh_CN.lang                       |   Bin 7566 -> 7608 bytes
 data_nodist/trans/zh_TW.lang                       |   Bin 4587 -> 4658 bytes
 eclipse/JOSM (Java 8).launch                       |     6 -
 gpl-2.0.txt                                        |    14 +-
 i18n/convmaps.pl                                   |     2 +-
 i18n/po/af.po                                      |   353 +-
 i18n/po/am.po                                      |   353 +-
 i18n/po/ar.po                                      |   357 +-
 i18n/po/ast.po                                     |   375 +-
 i18n/po/az.po                                      |   353 +-
 i18n/po/be.po                                      |   410 +-
 i18n/po/bg.po                                      |   365 +-
 i18n/po/bn.po                                      |   353 +-
 i18n/po/br.po                                      |   353 +-
 i18n/po/bs.po                                      |   353 +-
 i18n/po/ca.po                                      |   377 +-
 i18n/po/ca at valencia.po                             |   367 +-
 i18n/po/cs.po                                      |   394 +-
 i18n/po/cy.po                                      |   353 +-
 i18n/po/da.po                                      |   402 +-
 i18n/po/de.po                                      |   607 +-
 i18n/po/de_DE.po                                   |   353 +-
 i18n/po/el.po                                      |   357 +-
 i18n/po/en_AU.po                                   |   363 +-
 i18n/po/en_CA.po                                   |   353 +-
 i18n/po/en_GB.po                                   |   387 +-
 i18n/po/eo.po                                      |   353 +-
 i18n/po/es.po                                      |   543 +-
 i18n/po/et.po                                      |   359 +-
 i18n/po/eu.po                                      |   355 +-
 i18n/po/fa.po                                      |   353 +-
 i18n/po/fi.po                                      |   363 +-
 i18n/po/fil.po                                     |   353 +-
 i18n/po/fo.po                                      |   353 +-
 i18n/po/fr.po                                      |   375 +-
 i18n/po/ga.po                                      |   353 +-
 i18n/po/gl.po                                      |   359 +-
 i18n/po/he.po                                      |   357 +-
 i18n/po/hi.po                                      |   353 +-
 i18n/po/hr.po                                      |   353 +-
 i18n/po/ht.po                                      |   353 +-
 i18n/po/hu.po                                      |   381 +-
 i18n/po/hy.po                                      |   353 +-
 i18n/po/ia.po                                      |   353 +-
 i18n/po/id.po                                      |   365 +-
 i18n/po/is.po                                      |   355 +-
 i18n/po/it.po                                      |   377 +-
 i18n/po/ja.po                                      |   389 +-
 i18n/po/ka.po                                      |   353 +-
 i18n/po/km.po                                      |   361 +-
 i18n/po/ko.po                                      |   353 +-
 i18n/po/ky.po                                      |   353 +-
 i18n/po/lb.po                                      |   353 +-
 i18n/po/lo.po                                      |   353 +-
 i18n/po/lt.po                                      |   506 +-
 i18n/po/lv.po                                      |   353 +-
 i18n/po/mk.po                                      |   353 +-
 i18n/po/mr.po                                      |   353 +-
 i18n/po/ms.po                                      |   353 +-
 i18n/po/nb.po                                      |  1154 +-
 i18n/po/nds.po                                     |   353 +-
 i18n/po/nl.po                                      |   377 +-
 i18n/po/nn.po                                      |   353 +-
 i18n/po/oc.po                                      |   353 +-
 i18n/po/pa.po                                      |   353 +-
 i18n/po/pl.po                                      |   828 +-
 i18n/po/pt.po                                      |   391 +-
 i18n/po/pt_BR.po                                   |   593 +-
 i18n/po/rm.po                                      |   353 +-
 i18n/po/ro.po                                      |   353 +-
 i18n/po/ru.po                                      |   411 +-
 i18n/po/sk.po                                      |   434 +-
 i18n/po/sl.po                                      |   355 +-
 i18n/po/sq.po                                      |   353 +-
 i18n/po/sr.po                                      |   353 +-
 i18n/po/sv.po                                      |   371 +-
 i18n/po/ta.po                                      |   355 +-
 i18n/po/te.po                                      |   353 +-
 i18n/po/th.po                                      |   353 +-
 i18n/po/tr.po                                      |   357 +-
 i18n/po/ug.po                                      |   353 +-
 i18n/po/uk.po                                      |   406 +-
 i18n/po/ur.po                                      |   353 +-
 i18n/po/vi.po                                      |   375 +-
 i18n/po/wae.po                                     |   353 +-
 i18n/po/zh_CN.po                                   |   365 +-
 i18n/po/zh_TW.po                                   |   495 +-
 images/download_in_view.png                        |   Bin 0 -> 1258 bytes
 images/presets/accommodation/alpine_hut.svg        |   135 +
 images/presets/accommodation/alpine_hut_blue.png   |   Bin 346 -> 0 bytes
 images/presets/accommodation/basic_hut.svg         |   114 +
 images/presets/accommodation/basic_hut_blue.png    |   Bin 217 -> 0 bytes
 images/presets/accommodation/shelter_picnic.svg    |   150 +
 .../presets/accommodation/shelter_picnic_brown.png |   Bin 346 -> 0 bytes
 .../accommodation/shelter_public_transport.svg     |   126 +
 .../shelter_public_transport_brown.png             |   Bin 242 -> 0 bytes
 images/presets/accommodation/wilderness_hut.svg    |   142 +
 .../presets/accommodation/wilderness_hut_blue.png  |   Bin 212 -> 0 bytes
 images/presets/barrier/barrier.png                 |   Bin 441 -> 0 bytes
 images/presets/barrier/cattle_grid.png             |   Bin 272 -> 0 bytes
 images/presets/barrier/cattle_grid.svg             |   122 +
 images/presets/barrier/douane.png                  |   Bin 289 -> 0 bytes
 images/presets/barrier/douane.svg                  |    77 +
 images/presets/barrier/gate.png                    |   Bin 492 -> 0 bytes
 images/presets/barrier/gate.svg                    |   156 +
 images/presets/barrier/guard_rail.svg              |   118 +
 images/presets/barrier/jersey_barrier.svg          |   111 +
 images/presets/barrier/toll_station.png            |   Bin 545 -> 0 bytes
 images/presets/barrier/toll_station.svg            |   255 +
 images/presets/craft/beekeeper.svg                 |   211 +
 images/presets/craft/painter.png                   |   Bin 291 -> 0 bytes
 images/presets/craft/painter.svg                   |   124 +
 images/presets/craft/plumber.png                   |   Bin 268 -> 0 bytes
 images/presets/craft/plumber.svg                   |   230 +
 images/presets/craft/pottery.png                   |   Bin 354 -> 0 bytes
 images/presets/craft/pottery.svg                   |    84 +
 images/presets/craft/tiler.png                     |   Bin 90 -> 0 bytes
 images/presets/craft/tiler.svg                     |    94 +
 images/presets/craft/window_construction.png       |   Bin 275 -> 0 bytes
 images/presets/craft/window_construction.svg       |   135 +
 images/presets/education/college.png               |   Bin 476 -> 0 bytes
 images/presets/education/college.svg               |   152 +
 images/presets/education/driving_school.png        |   Bin 412 -> 0 bytes
 images/presets/education/driving_school.svg        |   176 +
 images/presets/education/library.svg               |   376 +
 images/presets/education/school.png                |   Bin 1783 -> 0 bytes
 images/presets/education/school.svg                |   260 +
 images/presets/education/university.png            |   Bin 305 -> 0 bytes
 images/presets/education/university.svg            |   150 +
 images/presets/food/biergarten.png                 |   Bin 1522 -> 0 bytes
 images/presets/food/biergarten.svg                 |   220 +
 images/presets/food/cafe.png                       |   Bin 1153 -> 0 bytes
 images/presets/food/cafe.svg                       |    77 +
 images/presets/food/drinking_water.png             |   Bin 523 -> 0 bytes
 images/presets/food/drinking_water.svg             |    75 +
 images/presets/food/fast_food.svg                  |    87 +
 images/presets/food/fastfood.png                   |   Bin 804 -> 0 bytes
 images/presets/food/food_court.png                 |   Bin 386 -> 0 bytes
 images/presets/food/food_court.svg                 |    69 +
 images/presets/food/ice_cream.svg                  |   178 +
 images/presets/food/icecream.png                   |   Bin 664 -> 0 bytes
 images/presets/food/pub.png                        |   Bin 682 -> 0 bytes
 images/presets/food/pub.svg                        |   201 +
 images/presets/landmark/beacon.png                 |   Bin 149 -> 0 bytes
 images/presets/landmark/beacon.svg                 |   108 +
 images/presets/landmark/boundary_stone.svg         |    79 +
 images/presets/landmark/cave_entrance.png          |   Bin 391 -> 0 bytes
 images/presets/landmark/cave_entrance.svg          |    97 +
 images/presets/landmark/chimney.png                |   Bin 546 -> 0 bytes
 images/presets/landmark/chimney.svg                |   173 +
 images/presets/landmark/hunting_stand.png          |   Bin 130 -> 0 bytes
 images/presets/landmark/hunting_stand.svg          |    88 +
 images/presets/landmark/pipeline.svg               |    93 +
 images/presets/landmark/tower.png                  |   Bin 183 -> 0 bytes
 images/presets/landmark/tower.svg                  |   100 +
 images/presets/landmark/trees_palm.png             |   Bin 487 -> 0 bytes
 images/presets/landmark/water_works.png            |   Bin 605 -> 0 bytes
 images/presets/landmark/water_works.svg            |   102 +
 images/presets/landuse/aquaculture.svg             |   108 +
 images/presets/landuse/basin.svg                   |    87 +
 images/presets/landuse/brownfield.svg              |   108 +
 images/presets/landuse/farmland.png                |   Bin 494 -> 0 bytes
 images/presets/landuse/farmland.svg                |   255 +
 images/presets/landuse/farmyard.png                |   Bin 462 -> 0 bytes
 images/presets/landuse/farmyard.svg                |   118 +
 images/presets/landuse/garages.png                 |   Bin 521 -> 0 bytes
 images/presets/landuse/garages.svg                 |   106 +
 images/presets/landuse/greenfield.svg              |   108 +
 images/presets/landuse/greenhouse_horticulture.png |   Bin 1230 -> 0 bytes
 images/presets/landuse/greenhouse_horticulture.svg |   164 +
 images/presets/landuse/landuse.png                 |   Bin 300 -> 0 bytes
 images/presets/landuse/landuse_water.png           |   Bin 292 -> 0 bytes
 .../plant.svg => landuse/plant_nursery.svg}        |     0
 images/presets/landuse/rail_light.png              |   Bin 326 -> 0 bytes
 images/presets/landuse/railway.svg                 |    43 +
 images/presets/landuse/reservoir.svg               |    81 +
 images/presets/landuse/vineyard.png                |   Bin 392 -> 0 bytes
 images/presets/landuse/vineyard.svg                |    78 +
 images/presets/leisure/bbq.png                     |   Bin 874 -> 0 bytes
 images/presets/leisure/bbq.svg                     |   132 +
 images/presets/leisure/beach_resort.svg            |   135 +
 images/presets/leisure/bench.png                   |   Bin 116 -> 0 bytes
 images/presets/leisure/bench.svg                   |   127 +
 images/presets/leisure/brothel.svg                 |   112 +
 images/presets/leisure/casino.svg                  |    42 +-
 images/presets/leisure/common.png                  |   Bin 206 -> 0 bytes
 images/presets/leisure/common.svg                  |    79 +
 images/presets/leisure/dog.png                     |   Bin 473 -> 0 bytes
 images/presets/leisure/dogpark.png                 |   Bin 724 -> 0 bytes
 images/presets/leisure/dogpark.svg                 |   826 ++
 images/presets/leisure/equestrian.png              |   Bin 356 -> 0 bytes
 images/presets/leisure/garden.png                  |   Bin 117 -> 0 bytes
 images/presets/leisure/garden.svg                  |   143 +
 images/presets/leisure/horse_riding.svg            |    76 +
 images/presets/leisure/nature_reserve.png          |   Bin 137 -> 0 bytes
 images/presets/leisure/nature_reserve.svg          |   156 +
 images/presets/leisure/nightclub.png               |   Bin 594 -> 0 bytes
 .../leisure/{discoball.svg => nightclub.svg}       |     0
 images/presets/leisure/park.png                    |   Bin 103 -> 0 bytes
 images/presets/leisure/park.svg                    |   167 +
 images/presets/leisure/picnic.png                  |   Bin 337 -> 0 bytes
 images/presets/leisure/picnic.svg                  |    82 +
 images/presets/leisure/sauna.png                   |   Bin 787 -> 0 bytes
 images/presets/leisure/sauna.svg                   |   137 +
 images/presets/leisure/stripclub.png               |   Bin 634 -> 0 bytes
 images/presets/leisure/stripclub.svg               |    73 +
 images/presets/leisure/theater.png                 |   Bin 712 -> 0 bytes
 images/presets/leisure/theater.svg                 |   164 +
 images/presets/leisure/water_park.png              |   Bin 150 -> 0 bytes
 images/presets/leisure/water_park.svg              |   111 +
 images/presets/misc/addresses.png                  |   Bin 1462 -> 0 bytes
 images/presets/misc/boundaries.png                 |   Bin 212 -> 0 bytes
 images/presets/misc/boundaries.svg                 |    73 +
 images/presets/misc/boundary_stone.png             |   Bin 160 -> 0 bytes
 images/presets/misc/cliff-pattern.png              |   Bin 124 -> 0 bytes
 images/presets/misc/cliff_pattern.svg              |    79 +
 images/presets/misc/contact.png                    |   Bin 2913 -> 0 bytes
 images/presets/misc/contact.svg                    |    50 +
 images/presets/misc/entrance-emergency.png         |   Bin 387 -> 0 bytes
 images/presets/misc/entrance-exit.png              |   Bin 304 -> 0 bytes
 images/presets/misc/entrance-main.png              |   Bin 372 -> 0 bytes
 images/presets/misc/entrance-service.png           |   Bin 374 -> 0 bytes
 images/presets/misc/entrance-yes.png               |   Bin 244 -> 0 bytes
 images/presets/misc/entrance_emergency.svg         |   101 +
 images/presets/misc/entrance_exit.svg              |   261 +
 images/presets/misc/entrance_main.svg              |   262 +
 images/presets/misc/entrance_service.svg           |   262 +
 images/presets/misc/entrance_yes.svg               |   262 +
 images/presets/misc/fixme-annotation.png           |   Bin 292 -> 0 bytes
 images/presets/misc/fixme.svg                      |   115 +
 images/presets/misc/fixme_annotation.svg           |   115 +
 images/presets/misc/flag.png                       |   Bin 498 -> 0 bytes
 images/presets/misc/flag.svg                       |   104 +
 images/presets/misc/fountain.png                   |   Bin 119 -> 0 bytes
 images/presets/misc/fountain.svg                   |    79 +
 images/presets/misc/housenumber.png                |   Bin 310 -> 0 bytes
 images/presets/misc/housenumber.svg                |    88 +
 images/presets/misc/housenumber_small.svg          |    88 +
 images/presets/misc/information/board.svg          |    40 +-
 .../presets/misc/information/informationoffice.svg |    35 +-
 images/presets/misc/information/map.svg            |    28 +-
 images/presets/misc/interpolation.png              |   Bin 132 -> 0 bytes
 images/presets/misc/interpolation.svg              |    92 +
 images/presets/misc/message.png                    |   Bin 359 -> 0 bytes
 images/presets/misc/monitoring_station.png         |   Bin 386 -> 0 bytes
 images/presets/misc/monitoring_station.svg         |   250 +
 images/presets/misc/multipolygon.png               |   Bin 120 -> 0 bytes
 images/presets/misc/multipolygon.svg               |    80 +
 images/presets/misc/name.svg                       |   100 +
 images/presets/misc/note-annotation.png            |   Bin 541 -> 0 bytes
 images/presets/misc/note-fixme-annotation.png      |   Bin 746 -> 0 bytes
 images/presets/misc/note.svg                       |   117 +
 images/presets/misc/note_annotation.svg            |   113 +
 images/presets/misc/note_fixme_annotation.svg      |   155 +
 images/presets/misc/path.png                       |   Bin 135 -> 0 bytes
 images/presets/misc/relations.png                  |   Bin 354 -> 0 bytes
 images/presets/misc/relations.svg                  |    91 +
 images/presets/misc/rock.svg                       |    18 +-
 images/presets/misc/route.svg                      |    99 +
 images/presets/misc/stone.svg                      |     4 +-
 images/presets/misc/streetlamp.png                 |   Bin 410 -> 0 bytes
 images/presets/misc/streetlamp.svg                 |    99 +
 images/presets/nautical/boatyard.png               |   Bin 473 -> 0 bytes
 images/presets/nautical/boatyard.svg               |    96 +
 images/presets/nautical/marina.png                 |   Bin 181 -> 0 bytes
 images/presets/nautical/marina.svg                 |   116 +
 images/presets/nautical/marine_fuel.png            |   Bin 1252 -> 0 bytes
 images/presets/nautical/marine_fuel.svg            |   109 +
 images/presets/nautical/slipway.png                |   Bin 304 -> 0 bytes
 images/presets/nautical/slipway.svg                |   110 +
 images/presets/place/capital.svg                   |    79 +
 images/presets/place/city.svg                      |    79 +
 images/presets/place/farm.svg                      |    79 +
 images/presets/place/hamlet.svg                    |    79 +
 images/presets/place/isolated_dwelling.svg         |    79 +
 images/presets/place/neighbourhood.svg             |    79 +
 images/presets/place/settlement/capital.png        |   Bin 155 -> 0 bytes
 images/presets/place/settlement/city.png           |   Bin 273 -> 0 bytes
 images/presets/place/settlement/farm.png           |   Bin 275 -> 0 bytes
 images/presets/place/settlement/hamlet.png         |   Bin 258 -> 0 bytes
 .../presets/place/settlement/isolated_dwelling.png |   Bin 153 -> 0 bytes
 images/presets/place/settlement/neighbourhood.png  |   Bin 265 -> 0 bytes
 images/presets/place/settlement/suburb.png         |   Bin 265 -> 0 bytes
 images/presets/place/settlement/town.png           |   Bin 235 -> 0 bytes
 images/presets/place/settlement/village.png        |   Bin 260 -> 0 bytes
 images/presets/place/suburb.svg                    |    79 +
 images/presets/place/town.svg                      |    79 +
 images/presets/place/village.svg                   |    79 +
 images/presets/power/power_source-biofuel.svg      |   360 +-
 images/presets/power/power_source-coal.svg         |   360 +-
 images/presets/power/power_source-gas.svg          |   360 +-
 images/presets/power/power_source-geothermal.svg   |    73 +-
 images/presets/power/power_source-nuclear.svg      |    92 +-
 images/presets/power/power_source-oil.svg          |   360 +-
 images/presets/power/power_source-sun.svg          |   162 +-
 images/presets/power/power_source-waste.svg        |   360 +-
 images/presets/power/power_source-water.svg        |    82 +-
 images/presets/power/power_source-wind.svg         |    80 +-
 images/presets/religion/wayside_cross.svg          |    64 +-
 images/presets/service/arts_centre.png             |   Bin 446 -> 0 bytes
 images/presets/service/community_centre.png        |   Bin 856 -> 0 bytes
 images/presets/service/community_centre.svg        |   184 +
 images/presets/service/embassy.png                 |   Bin 688 -> 0 bytes
 images/presets/service/embassy.svg                 |    71 +
 images/presets/service/excrement_bags.png          |   Bin 499 -> 0 bytes
 images/presets/service/excrement_bags.svg          |   101 +
 images/presets/service/post_box.png                |   Bin 285 -> 0 bytes
 images/presets/service/post_box.svg                |   102 +
 images/presets/service/post_office.png             |   Bin 428 -> 0 bytes
 images/presets/service/post_office.svg             |   105 +
 images/presets/service/recycling/trash-bin.svg     |    87 -
 images/presets/service/recycling/waste_basket.svg  |    82 +
 .../presets/service/recycling/waste_disposal.png   |   Bin 215 -> 0 bytes
 .../presets/service/recycling/waste_disposal.svg   |   116 +
 images/presets/service/studio.png                  |   Bin 406 -> 0 bytes
 images/presets/service/studio.svg                  |   122 +
 images/presets/service/surveillance.png            |   Bin 349 -> 0 bytes
 images/presets/service/surveillance.svg            |   109 +
 images/presets/service/townhall.png                |   Bin 433 -> 0 bytes
 images/presets/service/townhall.svg                |    77 +
 images/presets/shop/boutique.png                   |   Bin 1107 -> 0 bytes
 images/presets/shop/boutique.svg                   |   114 +
 images/presets/shop/clothes.svg                    |   501 +-
 images/presets/shop/convenience.png                |   Bin 395 -> 0 bytes
 images/presets/shop/convenience.svg                |   130 +
 images/presets/shop/copyshop.png                   |   Bin 575 -> 0 bytes
 images/presets/shop/copyshop.svg                   |   462 +
 images/presets/shop/curtain.png                    |   Bin 694 -> 0 bytes
 images/presets/shop/curtain.svg                    |    94 +
 images/presets/shop/diy_store.svg                  |     2 +-
 images/presets/shop/erotic.png                     |   Bin 951 -> 0 bytes
 images/presets/shop/erotic.svg                     |   162 +
 images/presets/shop/fabric.png                     |   Bin 812 -> 0 bytes
 images/presets/shop/fabric.svg                     |   233 +
 images/presets/shop/frame.png                      |   Bin 605 -> 0 bytes
 images/presets/shop/frame.svg                      |   102 +
 images/presets/shop/furniture.svg                  |   449 +-
 images/presets/shop/groceries/apple.png            |   Bin 434 -> 0 bytes
 images/presets/shop/groceries/bakery.png           |   Bin 178 -> 0 bytes
 images/presets/shop/groceries/bakery.svg           |   164 +
 images/presets/shop/groceries/butcher.png          |   Bin 84 -> 0 bytes
 images/presets/shop/groceries/butcher.svg          |   265 +
 images/presets/shop/groceries/deli.png             |   Bin 1046 -> 0 bytes
 images/presets/shop/groceries/deli.svg             |   101 +
 images/presets/shop/groceries/farm.svg             |   102 +
 images/presets/shop/groceries/greengrocer.png      |   Bin 766 -> 0 bytes
 images/presets/shop/groceries/greengrocer.svg      |   176 +
 images/presets/shop/groceries/pastry.svg           |   111 +
 images/presets/shop/groceries/seafood.png          |   Bin 415 -> 0 bytes
 images/presets/shop/groceries/seafood.svg          |   172 +
 images/presets/shop/hairdresser.svg                |   208 +-
 images/presets/shop/hardware.png                   |   Bin 509 -> 0 bytes
 images/presets/shop/hardware.svg                   |   847 ++
 images/presets/shop/hearing_aids.png               |   Bin 433 -> 0 bytes
 images/presets/shop/hearing_aids.svg               |   418 +
 images/presets/shop/kitchen.png                    |   Bin 1153 -> 0 bytes
 images/presets/shop/kitchen.svg                    |   103 +
 images/presets/shop/library.png                    |   Bin 147 -> 0 bytes
 images/presets/shop/marketplace.png                |   Bin 600 -> 0 bytes
 images/presets/shop/marketplace.svg                |   277 +
 images/presets/shop/mobile_phone.png               |   Bin 932 -> 0 bytes
 images/presets/shop/mobile_phone.svg               |    87 +
 images/presets/shop/musical_instrument.png         |   Bin 482 -> 0 bytes
 images/presets/shop/musical_instrument.svg         |   413 +
 images/presets/shop/paint.png                      |   Bin 291 -> 0 bytes
 images/presets/shop/paint.svg                      |    94 +
 images/presets/shop/stationery.png                 |   Bin 755 -> 0 bytes
 images/presets/shop/stationery.svg                 |   144 +
 images/presets/shop/tailor.svg                     |   636 +-
 images/presets/shop/travel.png                     |   Bin 1314 -> 0 bytes
 images/presets/shop/travel_agency.svg              |   324 +
 images/presets/shop/vacuum_cleaner.png             |   Bin 863 -> 0 bytes
 images/presets/shop/vacuum_cleaner.svg             |   157 +
 images/presets/shop/variety_store.png              |   Bin 601 -> 0 bytes
 images/presets/shop/variety_store.svg              |    87 +
 images/presets/shop/vehicle.svg                    |    24 +-
 images/presets/shop/video.png                      |   Bin 170 -> 0 bytes
 images/presets/shop/video.svg                      |   240 +
 images/presets/shop/video_games.png                |   Bin 226 -> 0 bytes
 images/presets/shop/video_games.svg                |   112 +
 images/presets/sightseeing/arts_centre.svg         |   130 +
 .../presets/sightseeing/palaeontological_site.png  |   Bin 922 -> 0 bytes
 .../presets/sightseeing/palaeontological_site.svg  |   110 +
 images/presets/sport/10pin.svg                     |    96 +-
 images/presets/sport/9pin.svg                      |   122 +
 images/presets/sport/athletics.png                 |   Bin 546 -> 0 bytes
 images/presets/sport/athletics.svg                 |    70 +
 images/presets/sport/beachvolleyball.png           |   Bin 653 -> 0 bytes
 images/presets/sport/beachvolleyball.svg           |    75 +
 images/presets/sport/centre.png                    |   Bin 241 -> 0 bytes
 images/presets/sport/chess.png                     |   Bin 74 -> 0 bytes
 images/presets/sport/chess.svg                     |   305 +
 images/presets/sport/dog_racing.svg                |    93 +
 images/presets/sport/equestrian.svg                |    76 +
 images/presets/sport/field_hockey.png              |   Bin 304 -> 0 bytes
 images/presets/sport/field_hockey.svg              |   113 +
 images/presets/sport/fishing.png                   |   Bin 145 -> 0 bytes
 images/presets/sport/fishing.svg                   |   127 +
 images/presets/sport/fitness_centre.png            |   Bin 1145 -> 0 bytes
 images/presets/sport/fitness_centre.svg            |   128 +
 images/presets/sport/ice_hockey.png                |   Bin 413 -> 0 bytes
 images/presets/sport/ice_hockey.svg                |   113 +
 images/presets/sport/ice_skating.svg               |   223 +
 images/presets/sport/karting.png                   |   Bin 755 -> 0 bytes
 images/presets/sport/karting.svg                   |   124 +
 images/presets/sport/motor.png                     |   Bin 699 -> 0 bytes
 images/presets/sport/motor.svg                     |   106 +
 images/presets/sport/pelota.png                    |   Bin 593 -> 0 bytes
 images/presets/sport/pelota.svg                    |   112 +
 images/presets/sport/pitch.png                     |   Bin 577 -> 0 bytes
 images/presets/sport/pitch.svg                     |   649 +
 images/presets/sport/rc_car.svg                    |    40 +-
 images/presets/sport/skating.png                   |   Bin 845 -> 0 bytes
 images/presets/sport/sports_centre.svg             |   222 +
 images/presets/sport/stadium.png                   |   Bin 580 -> 0 bytes
 images/presets/sport/stadium.svg                   |   143 +
 images/presets/sport/track.png                     |   Bin 130 -> 0 bytes
 images/presets/sport/track.svg                     |   168 +
 images/presets/sport/volleyball.svg                |     2 +-
 .../presets/transport/aerialway/magic_carpet.png   |   Bin 256 -> 0 bytes
 .../presets/transport/aerialway/magic_carpet.svg   |   205 +
 .../presets/transport/airport/parking_position.png |   Bin 180 -> 0 bytes
 .../presets/transport/airport/parking_position.svg |   100 +
 images/presets/transport/airport/runway.png        |   Bin 101 -> 0 bytes
 images/presets/transport/airport/runway.svg        |   150 +
 images/presets/transport/airport/taxiway.png       |   Bin 101 -> 0 bytes
 images/presets/transport/airport/taxiway.svg       |    94 +
 images/presets/transport/bus_small.png             |   Bin 329 -> 0 bytes
 images/presets/transport/bus_small.svg             |    94 +
 images/presets/transport/platform_bus.png          |   Bin 378 -> 0 bytes
 images/presets/transport/platform_bus.svg          |   185 +
 images/presets/transport/platform_rail.png         |   Bin 458 -> 0 bytes
 images/presets/transport/platform_rail.svg         |   189 +
 images/presets/transport/railway_halt.svg          |   143 +
 images/presets/transport/railway_small.png         |   Bin 121 -> 0 bytes
 images/presets/transport/station.png               |   Bin 882 -> 0 bytes
 images/presets/transport/station16.png             |   Bin 412 -> 0 bytes
 images/presets/transport/stop_position.svg         |    86 +
 images/presets/transport/taxi.svg                  |    14 +-
 images/presets/transport/underground.png           |   Bin 566 -> 0 bytes
 images/presets/transport/underground.svg           |   260 +
 images/presets/vehicle/charging_station.png        |   Bin 322 -> 0 bytes
 images/presets/vehicle/charging_station.svg        |    82 +
 .../turn_restrictions/no_left_turn_red.png         |   Bin 1298 -> 0 bytes
 .../turn_restrictions/no_left_turn_red.svg         |    65 +
 .../turn_restrictions/no_right_turn_red.png        |   Bin 1304 -> 0 bytes
 .../turn_restrictions/no_right_turn_red.svg        |    65 +
 .../turn_restrictions/no_straight_on_red.png       |   Bin 1291 -> 0 bytes
 .../turn_restrictions/no_straight_on_red.svg       |    68 +
 josm-latest.jnlp                                   |     2 +-
 josm.jnlp                                          |     2 +-
 optimize-images                                    |     4 +-
 scripts/TagInfoExtract.groovy                      |     8 +-
 src/com/drew/imaging/ImageProcessingException.java |     2 +-
 src/com/drew/imaging/PhotographicConversions.java  |     2 +-
 src/com/drew/imaging/jpeg/JpegMetadataReader.java  |     6 +-
 .../drew/imaging/jpeg/JpegProcessingException.java |     2 +-
 src/com/drew/imaging/jpeg/JpegSegmentData.java     |     5 +-
 src/com/drew/imaging/jpeg/JpegSegmentReader.java   |    24 +-
 src/com/drew/imaging/jpeg/JpegSegmentType.java     |    19 +-
 src/com/drew/imaging/jpeg/package.html             |     2 +-
 src/com/drew/imaging/package.html                  |     2 +-
 src/com/drew/imaging/tiff/TiffDataFormat.java      |     2 +-
 src/com/drew/imaging/tiff/TiffHandler.java         |     8 +-
 .../drew/imaging/tiff/TiffProcessingException.java |     2 +-
 src/com/drew/imaging/tiff/TiffReader.java          |    80 +-
 src/com/drew/imaging/tiff/package.html             |     2 +-
 src/com/drew/lang/BufferBoundsException.java       |     2 +-
 src/com/drew/lang/ByteArrayReader.java             |    10 +-
 src/com/drew/lang/CompoundException.java           |     2 +-
 src/com/drew/lang/DateUtil.java                    |    32 +
 src/com/drew/lang/GeoLocation.java                 |     4 +-
 src/com/drew/lang/NullOutputStream.java            |    43 -
 src/com/drew/lang/RandomAccessReader.java          |     4 +-
 src/com/drew/lang/Rational.java                    |     2 +-
 src/com/drew/lang/SequentialByteArrayReader.java   |     3 +-
 src/com/drew/lang/SequentialReader.java            |     2 +-
 src/com/drew/lang/StreamReader.java                |     3 +-
 src/com/drew/lang/StringUtil.java                  |     2 +-
 src/com/drew/lang/annotations/NotNull.java         |     2 +-
 src/com/drew/lang/annotations/Nullable.java        |     2 +-
 .../drew/lang/annotations/SuppressWarnings.java    |    42 -
 src/com/drew/lang/annotations/package.html         |     2 +-
 src/com/drew/lang/package.html                     |     2 +-
 src/com/drew/metadata/Age.java                     |     2 +-
 src/com/drew/metadata/DefaultTagDescriptor.java    |    51 -
 src/com/drew/metadata/Directory.java               |   176 +-
 src/com/drew/metadata/Face.java                    |     2 +-
 src/com/drew/metadata/Metadata.java                |   115 +-
 src/com/drew/metadata/MetadataException.java       |     2 +-
 src/com/drew/metadata/MetadataReader.java          |    42 -
 src/com/drew/metadata/Tag.java                     |    10 +-
 src/com/drew/metadata/TagDescriptor.java           |    79 +-
 src/com/drew/metadata/exif/ExifDescriptorBase.java |    53 +-
 src/com/drew/metadata/exif/ExifDirectoryBase.java  |    18 +-
 src/com/drew/metadata/exif/ExifIFD0Descriptor.java |     2 +-
 src/com/drew/metadata/exif/ExifIFD0Directory.java  |     6 +-
 .../drew/metadata/exif/ExifInteropDescriptor.java  |     2 +-
 .../drew/metadata/exif/ExifInteropDirectory.java   |     2 +-
 src/com/drew/metadata/exif/ExifReader.java         |    16 +-
 .../drew/metadata/exif/ExifSubIFDDescriptor.java   |     2 +-
 .../drew/metadata/exif/ExifSubIFDDirectory.java    |    65 +-
 .../metadata/exif/ExifThumbnailDescriptor.java     |    48 +-
 .../drew/metadata/exif/ExifThumbnailDirectory.java |    43 +-
 src/com/drew/metadata/exif/ExifTiffHandler.java    |    71 +-
 src/com/drew/metadata/exif/GpsDescriptor.java      |     4 +-
 src/com/drew/metadata/exif/GpsDirectory.java       |    43 +-
 .../exif/makernotes/CanonMakernoteDescriptor.java  |     9 +-
 .../exif/makernotes/CanonMakernoteDirectory.java   |     2 +-
 .../makernotes/CasioType1MakernoteDescriptor.java  |     8 +-
 .../makernotes/CasioType1MakernoteDirectory.java   |     2 +-
 .../makernotes/CasioType2MakernoteDescriptor.java  |     6 +-
 .../makernotes/CasioType2MakernoteDirectory.java   |     2 +-
 .../makernotes/FujifilmMakernoteDescriptor.java    |     2 +-
 .../makernotes/FujifilmMakernoteDirectory.java     |     2 +-
 .../exif/makernotes/KodakMakernoteDescriptor.java  |     2 +-
 .../exif/makernotes/KodakMakernoteDirectory.java   |     2 +-
 .../makernotes/KyoceraMakernoteDescriptor.java     |     2 +-
 .../exif/makernotes/KyoceraMakernoteDirectory.java |     2 +-
 .../exif/makernotes/LeicaMakernoteDescriptor.java  |     2 +-
 .../exif/makernotes/LeicaMakernoteDirectory.java   |     2 +-
 .../makernotes/NikonType1MakernoteDescriptor.java  |     2 +-
 .../makernotes/NikonType1MakernoteDirectory.java   |     2 +-
 .../makernotes/NikonType2MakernoteDescriptor.java  |    13 +-
 .../makernotes/NikonType2MakernoteDirectory.java   |     2 +-
 .../OlympusCameraSettingsMakernoteDescriptor.java  |  1357 ++
 .../OlympusCameraSettingsMakernoteDirectory.java   |   198 +
 .../OlympusEquipmentMakernoteDescriptor.java       |   370 +
 .../OlympusEquipmentMakernoteDirectory.java        |   117 +
 .../makernotes/OlympusMakernoteDescriptor.java     |    69 +-
 .../exif/makernotes/OlympusMakernoteDirectory.java |     2 +-
 .../makernotes/PanasonicMakernoteDescriptor.java   |     2 +-
 .../makernotes/PanasonicMakernoteDirectory.java    |     2 +-
 .../exif/makernotes/PentaxMakernoteDescriptor.java |     2 +-
 .../exif/makernotes/PentaxMakernoteDirectory.java  |     2 +-
 .../exif/makernotes/RicohMakernoteDescriptor.java  |     2 +-
 .../exif/makernotes/RicohMakernoteDirectory.java   |     2 +-
 .../exif/makernotes/SanyoMakernoteDescriptor.java  |     2 +-
 .../exif/makernotes/SanyoMakernoteDirectory.java   |     2 +-
 .../exif/makernotes/SigmaMakernoteDescriptor.java  |     2 +-
 .../exif/makernotes/SigmaMakernoteDirectory.java   |     2 +-
 .../makernotes/SonyType1MakernoteDescriptor.java   |     2 +-
 .../makernotes/SonyType1MakernoteDirectory.java    |     2 +-
 .../makernotes/SonyType6MakernoteDescriptor.java   |     2 +-
 .../makernotes/SonyType6MakernoteDirectory.java    |     2 +-
 src/com/drew/metadata/exif/makernotes/package.html |     2 +-
 src/com/drew/metadata/exif/package.html            |     2 +-
 .../drew/metadata/file/FileMetadataDescriptor.java |     8 +-
 .../drew/metadata/file/FileMetadataDirectory.java  |     2 +-
 src/com/drew/metadata/file/FileMetadataReader.java |    20 +
 src/com/drew/metadata/file/package.html            |     2 +-
 src/com/drew/metadata/iptc/IptcDescriptor.java     |   150 +-
 src/com/drew/metadata/iptc/IptcDirectory.java      |    83 +-
 src/com/drew/metadata/iptc/IptcReader.java         |    43 +-
 src/com/drew/metadata/iptc/Iso2022Converter.java   |    26 +-
 src/com/drew/metadata/iptc/package.html            |     2 +-
 .../drew/metadata/jpeg/JpegCommentDescriptor.java  |     2 +-
 .../drew/metadata/jpeg/JpegCommentDirectory.java   |     2 +-
 src/com/drew/metadata/jpeg/JpegCommentReader.java  |    12 +-
 src/com/drew/metadata/jpeg/JpegComponent.java      |    13 +-
 src/com/drew/metadata/jpeg/JpegDescriptor.java     |    66 +-
 src/com/drew/metadata/jpeg/JpegDirectory.java      |     2 +-
 src/com/drew/metadata/jpeg/JpegReader.java         |     2 +-
 src/com/drew/metadata/jpeg/package.html            |     2 +-
 src/com/drew/metadata/package.html                 |     2 +-
 .../drew/metadata/tiff/DirectoryTiffHandler.java   |     6 +-
 src/com/drew/metadata/tiff/package.html            |     2 +-
 .../debug/CheckThreadViolationRepaintManager.java  |    15 +-
 src/org/openstreetmap/josm/Main.java               |   283 +-
 .../josm/actions/CloseChangesetAction.java         |     3 +-
 .../josm/actions/DownloadOsmInViewAction.java      |    50 +
 .../josm/actions/ExtensionFileFilter.java          |     5 +-
 .../josm/actions/ImageryAdjustAction.java          |    21 +-
 .../josm/actions/MergeNodesAction.java             |     3 +-
 .../josm/actions/PreferenceToggleAction.java       |    23 +-
 .../josm/actions/ShowStatusReportAction.java       |    25 +-
 .../openstreetmap/josm/actions/ValidateAction.java |     2 +-
 .../josm/actions/mapmode/DrawAction.java           |   374 +-
 .../josm/actions/mapmode/ExtrudeAction.java        |    42 +-
 .../actions/mapmode/ImproveWayAccuracyAction.java  |   157 +-
 .../josm/actions/mapmode/ModifiersSpec.java        |    58 -
 .../josm/actions/mapmode/ParallelWayAction.java    |   262 +-
 .../josm/actions/mapmode/SelectAction.java         |     7 +-
 .../josm/actions/search/SearchCompiler.java        |     6 +-
 .../josm/actions/upload/ValidateUploadHook.java    |     5 +-
 .../josm/command/AddPrimitivesCommand.java         |     1 +
 src/org/openstreetmap/josm/command/Command.java    |    45 +-
 src/org/openstreetmap/josm/data/AutosaveTask.java  |     4 +-
 src/org/openstreetmap/josm/data/Bounds.java        |    75 +-
 src/org/openstreetmap/josm/data/Preferences.java   |   177 +-
 .../josm/data/cache/BufferedImageCacheEntry.java   |     3 -
 .../josm/data/cache/JCSCacheManager.java           |     6 +-
 .../josm/data/cache/JCSCachedTileLoaderJob.java    |     3 +-
 .../openstreetmap/josm/data/coor/EastNorth.java    |     8 +-
 src/org/openstreetmap/josm/data/coor/LatLon.java   |    30 +-
 src/org/openstreetmap/josm/data/gpx/GpxData.java   |    43 +
 src/org/openstreetmap/josm/data/gpx/GpxRoute.java  |    22 +
 .../josm/data/gpx/ImmutableGpxTrack.java           |    26 +-
 .../josm/data/gpx/ImmutableGpxTrackSegment.java    |    30 +-
 src/org/openstreetmap/josm/data/gpx/WayPoint.java  |    31 +
 .../josm/data/gpx/WithAttributes.java              |    22 +
 .../josm/data/imagery/TMSCachedTileLoader.java     |     3 +-
 src/org/openstreetmap/josm/data/osm/DataSet.java   |    40 +-
 .../josm/data/osm/DatasetFactory.java              |    62 -
 .../josm/data/osm/MultipolygonBuilder.java         |    20 +
 src/org/openstreetmap/josm/data/osm/Node.java      |    35 +-
 .../openstreetmap/josm/data/osm/OsmPrimitive.java  |     2 +-
 .../openstreetmap/josm/data/osm/PrimitiveData.java |    20 +-
 .../openstreetmap/josm/data/osm/QuadBuckets.java   |     5 +-
 src/org/openstreetmap/josm/data/osm/User.java      |    30 +-
 .../josm/data/osm/visitor/BoundingXYVisitor.java   |     3 +-
 .../osm/visitor/paint/AbstractMapRenderer.java     |    67 +-
 .../data/osm/visitor/paint/ArrowPaintHelper.java   |    51 +
 .../josm/data/osm/visitor/paint/LineClip.java      |   149 -
 .../josm/data/osm/visitor/paint/PaintColors.java   |    55 +-
 .../data/osm/visitor/paint/StyledMapRenderer.java  |   647 +-
 .../osm/visitor/paint/WireframeMapRenderer.java    |   112 +-
 .../josm/data/preferences/AbstractProperty.java    |   229 +-
 .../data/preferences/AbstractToStringProperty.java |   161 +
 .../josm/data/preferences/BooleanProperty.java     |    23 +-
 .../josm/data/preferences/CachedProperty.java      |     4 +-
 .../josm/data/preferences/CachingProperty.java     |    48 +
 .../josm/data/preferences/CollectionProperty.java  |     4 +-
 .../josm/data/preferences/ColorProperty.java       |    62 +-
 .../josm/data/preferences/DoubleProperty.java      |    24 +-
 .../josm/data/preferences/IntegerProperty.java     |    22 +-
 .../josm/data/preferences/LongProperty.java        |    26 +-
 .../josm/data/preferences/PreferencesWriter.java   |    14 +-
 .../josm/data/preferences/StringProperty.java      |    23 +-
 .../josm/data/preferences/StrokeProperty.java      |   111 +
 .../josm/data/projection/AbstractProjection.java   |    52 +-
 .../josm/data/projection/CustomProjection.java     |   225 +-
 .../josm/data/projection/Projecting.java           |    50 +
 .../josm/data/projection/Projection.java           |    19 +-
 .../josm/data/projection/ShiftedProjecting.java    |    55 +
 .../josm/data/projection/proj/Mercator.java        |     5 +
 .../josm/data/projection/proj/ObliqueMercator.java |    22 +-
 .../josm/data/projection/proj/Proj.java            |    10 +
 .../josm/data/validation/OsmValidator.java         |     9 +-
 .../josm/data/validation/Severity.java             |     7 +-
 .../josm/data/validation/TestError.java            |     4 +
 .../data/validation/routines/DomainValidator.java  |    46 +-
 .../josm/data/validation/routines/package.html     |     3 +-
 .../josm/data/validation/tests/CrossingWays.java   |    12 +-
 .../josm/data/validation/tests/DuplicateNode.java  |     5 +-
 .../data/validation/tests/MapCSSTagChecker.java    |     3 +-
 src/org/openstreetmap/josm/gui/ExtendedDialog.java |    33 +-
 src/org/openstreetmap/josm/gui/GettingStarted.java |     4 +-
 .../josm/gui/HelpAwareOptionPane.java              |    13 +-
 .../openstreetmap/josm/gui/MainApplication.java    |   218 +-
 src/org/openstreetmap/josm/gui/MainMenu.java       |     4 +
 src/org/openstreetmap/josm/gui/MapFrame.java       |    17 +
 src/org/openstreetmap/josm/gui/MapScaler.java      |     6 +-
 src/org/openstreetmap/josm/gui/MapStatus.java      |    15 +-
 src/org/openstreetmap/josm/gui/MapView.java        |   119 +-
 src/org/openstreetmap/josm/gui/MapViewState.java   |   224 +-
 .../josm/gui/NavigatableComponent.java             |    47 +-
 src/org/openstreetmap/josm/gui/Notification.java   |    23 +-
 .../josm/gui/NotificationManager.java              |   108 +-
 .../josm/gui/OsmPrimitivRenderer.java              |     2 +-
 .../openstreetmap/josm/gui/ProgramArguments.java   |   226 +
 .../josm/gui/conflict/ConflictColors.java          |    28 +-
 .../tags/CombinePrimitiveResolverDialog.java       |     2 +
 .../tags/PasteTagsConflictResolverDialog.java      |     3 +
 .../conflict/tags/TagConflictResolverModel.java    |     2 +-
 .../datatransfer/AbstractStackTransferHandler.java |    67 +
 .../josm/gui/datatransfer/ClipboardUtils.java      |    16 +
 .../josm/gui/datatransfer/FileTransferHandler.java |    44 -
 .../josm/gui/datatransfer/LayerTransferable.java   |     3 +-
 .../josm/gui/datatransfer/OpenTransferHandler.java |    27 +
 .../josm/gui/datatransfer/OsmTransferHandler.java  |    41 +-
 .../gui/datatransfer/PrimitiveTransferable.java    |     2 +-
 .../gui/datatransfer/SingleLayerTransferable.java  |    56 -
 .../gui/datatransfer/data/LayerTransferData.java   |     4 +-
 .../datatransfer/data/OsmLayerTransferData.java    |     4 +-
 .../datatransfer/data/PrimitiveTransferData.java   |     7 +-
 .../importers/AbstractOsmDataPaster.java           |     2 +-
 .../gui/datatransfer/importers/OsmLinkPaster.java  |   114 +
 .../importers/PrimitiveDataPaster.java             |    21 +-
 .../josm/gui/dialogs/ChangesetDialog.java          |     6 +-
 .../josm/gui/dialogs/CommandStackDialog.java       |     7 +-
 .../josm/gui/dialogs/ConflictDialog.java           |    10 +-
 .../josm/gui/dialogs/ConflictResolutionDialog.java |   145 +-
 .../josm/gui/dialogs/LayerListDialog.java          |    32 +-
 .../josm/gui/dialogs/LayerListPopup.java           |     4 +-
 .../josm/gui/dialogs/RelationListDialog.java       |    20 +-
 .../josm/gui/dialogs/UserListDialog.java           |     3 +-
 .../josm/gui/dialogs/ValidatorDialog.java          |     3 +-
 .../dialogs/changeset/ChangesetCacheManager.java   |     8 +-
 .../dialogs/changeset/ChangesetContentPanel.java   |    14 +-
 .../changeset/query/ChangesetQueryDialog.java      |     7 +-
 .../dialogs/properties/PropertiesCellRenderer.java |    49 +-
 .../gui/dialogs/properties/PropertiesDialog.java   |    30 +-
 .../gui/dialogs/relation/actions/CancelAction.java |     8 +-
 .../relation/actions/PasteMembersAction.java       |    13 +-
 .../relation/sort/WayConnectionTypeCalculator.java |     2 +-
 .../gui/dialogs/validator/ValidatorTreePanel.java  |   154 +-
 .../josm/gui/download/DownloadDialog.java          |    16 +-
 src/org/openstreetmap/josm/gui/draw/MapPath2D.java |    52 +
 .../openstreetmap/josm/gui/draw/MapViewPath.java   |   157 +
 .../openstreetmap/josm/gui/draw/SymbolShape.java   |   138 +
 .../openstreetmap/josm/gui/draw/package-info.java  |     6 +
 .../openstreetmap/josm/gui/help/HelpBrowser.java   |     7 +-
 .../josm/gui/history/HistoryBrowserDialog.java     |     8 +-
 .../josm/gui/io/CloseChangesetDialog.java          |     6 +-
 .../josm/gui/io/CredentialDialog.java              |     7 +-
 .../josm/gui/io/LayerNameAndFilePathTableCell.java |     2 +-
 .../josm/gui/io/SaveLayersDialog.java              |     7 +-
 .../openstreetmap/josm/gui/io/UploadDialog.java    |     9 +-
 .../josm/gui/io/UploadSelectionDialog.java         |     7 +-
 .../josm/gui/layer/AbstractTileSourceLayer.java    |   274 +-
 .../josm/gui/layer/CustomizeColor.java             |    36 +-
 src/org/openstreetmap/josm/gui/layer/GpxLayer.java |     9 +-
 .../openstreetmap/josm/gui/layer/ImageryLayer.java |     5 +
 src/org/openstreetmap/josm/gui/layer/Layer.java    |    63 +
 .../openstreetmap/josm/gui/layer/OsmDataLayer.java |    52 +-
 .../josm/gui/layer/ValidatorLayer.java             |    18 +-
 .../gui/layer/geoimage/CorrelateGpxWithImages.java |    18 +-
 .../josm/gui/layer/gpx/GpxDrawHelper.java          |    24 +-
 .../gui/layer/imagery/ColorfulImageProcessor.java  |     3 +-
 .../gui/layer/imagery/TileCoordinateConverter.java |    34 +-
 .../josm/gui/layer/markerlayer/MarkerLayer.java    |    10 +-
 .../josm/gui/mappaint/MapPaintStyles.java          |    15 +-
 .../josm/gui/mappaint/mapcss/Condition.java        |   815 +-
 .../josm/gui/mappaint/mapcss/ConditionFactory.java |   875 ++
 .../gui/mappaint/mapcss/ExpressionFactory.java     |     4 +-
 .../josm/gui/mappaint/mapcss/MapCSSParser.jj       |    55 +-
 .../gui/mappaint/mapcss/MapCSSStyleSource.java     |    10 +-
 .../josm/gui/mappaint/mapcss/Selector.java         |    63 +-
 .../gui/mappaint/styleelement/NodeElement.java     |   125 +-
 .../josm/gui/mappaint/styleelement/Symbol.java     |    87 +
 .../gui/oauth/FullyAutomaticAuthorizationUI.java   |     3 +-
 .../josm/gui/oauth/OAuthAuthorizationWizard.java   |     7 +-
 .../josm/gui/preferences/PreferenceDialog.java     |     7 +-
 .../gui/preferences/advanced/PreferencesTable.java |    10 +-
 .../gui/preferences/display/ColorPreference.java   |     2 +-
 .../gui/preferences/imagery/ImageryPreference.java |     9 +-
 .../gui/preferences/plugin/PluginListPanel.java    |     4 +-
 .../gui/preferences/plugin/PluginPreference.java   |    83 +-
 .../josm/gui/preferences/shortcut/PrefJPanel.java  |    16 +-
 .../preferences/validator/ValidatorPreference.java |     6 +-
 .../validator/ValidatorTestsPreference.java        |    12 +-
 .../josm/gui/tagging/presets/TaggingPreset.java    |    52 +-
 src/org/openstreetmap/josm/gui/util/GuiHelper.java |    41 +-
 .../josm/gui/widgets/NativeFileChooser.java        |     5 +-
 src/org/openstreetmap/josm/io/AbstractParser.java  |     1 +
 .../openstreetmap/josm/io/DiffResultProcessor.java |     4 +
 src/org/openstreetmap/josm/io/GeoJSONExporter.java |    31 +-
 src/org/openstreetmap/josm/io/GeoJSONWriter.java   |    84 +-
 src/org/openstreetmap/josm/io/NmeaReader.java      |    23 -
 .../josm/io/protocols/data/DataConnection.java     |    36 +
 .../josm/io/protocols/data/Handler.java            |    42 +
 .../josm/io/protocols/data/package-info.java       |     9 +
 .../openstreetmap/josm/plugins/PluginHandler.java  |     6 +-
 .../plugins/ReadLocalPluginInformationTask.java    |     5 +-
 .../plugins/ReadRemotePluginInformationTask.java   |     4 +-
 .../josm/tools/FilteredCollection.java             |    23 -
 src/org/openstreetmap/josm/tools/Geometry.java     |    39 +-
 .../openstreetmap/josm/tools/ImageProvider.java    |    14 -
 .../openstreetmap/josm/tools/InputMapUtils.java    |    33 +-
 src/org/openstreetmap/josm/tools/ListenerList.java |   231 +
 src/org/openstreetmap/josm/tools/Logging.java      |   370 +
 .../josm/tools/OverpassTurboQueryWizard.java       |     4 +-
 src/org/openstreetmap/josm/tools/Predicates.java   |   141 -
 src/org/openstreetmap/josm/tools/Utils.java        |    30 +-
 .../josm/tools/bugreport/BugReport.java            |    33 +-
 .../josm/tools/bugreport/BugReportDialog.java      |    89 +-
 .../tools/bugreport/BugReportExceptionHandler.java |    96 +-
 .../josm/tools/bugreport/BugReportQueue.java       |   149 +
 .../josm/tools/bugreport/JosmUpdatePanel.java      |     2 +-
 .../josm/tools/bugreport/ReportedException.java    |    23 +-
 styles/standard/elemstyles.mapcss                  |   403 +-
 test/data/regress/1433/2008-08-14-16-04-58.gpx     | 11679 +++++++++++++++++
 test/data/regress/1433/2008-08-14-16-04-58.nmea    |  4715 +++++++
 test/data/regress/1853/PosData-20081216-115434.gpx | 12859 +++++++++++++++++++
 .../data/regress/1853/PosData-20081216-115434.nmea |  2572 ++++
 test/data/regress/2147/WG20080203171807.log.gpx    |  5853 +++++++++
 test/data/regress/2147/WG20080203171807.log.nmea   |  3410 +++++
 .../dialogs/ConflictResolutionDialogTestFT.java    |     2 +-
 .../josm/io/MultiFetchServerObjectReaderTest.java  |    32 +-
 .../josm/io/OsmServerBackreferenceReaderTest.java  |    29 +-
 .../openstreetmap/josm/tools/HttpClientTest.java   |    19 +-
 .../AbstractMapRendererPerformanceTestParent.java  |     9 +
 .../paint/StyledMapRendererPerformanceTest.java    |     6 +
 .../paint/WireframeMapRendererPerformanceTest.java |     6 +
 .../mapcss/MapCSSConditionPerformanceTest.java     |     2 +-
 test/unit/org/openstreetmap/josm/JOSMFixture.java  |    20 +-
 test/unit/org/openstreetmap/josm/MainTest.java     |    51 +-
 .../josm/actions/CombineWayActionTest.java         |    14 +-
 .../josm/actions/CreateCircleActionTest.java       |    54 +-
 .../actions/CreateMultipolygonActionTest.groovy    |     2 +-
 .../josm/actions/ExtensionFileFilterTest.java      |     2 +
 .../josm/actions/JoinAreasActionTest.java          |    13 +-
 .../josm/actions/OrthogonalizeActionTest.java      |    13 +-
 .../josm/actions/PurgeActionTest.java              |    13 +-
 .../josm/actions/UnJoinNodeWayActionTest.java      |    13 +-
 .../ChangesetContentDownloadTaskTest.java          |    13 +-
 .../ChangesetHeaderDownloadTaskTest.java           |    13 +-
 .../downloadtasks/ChangesetQueryTaskTest.java      |    13 +-
 .../actions/downloadtasks/DownloadGpsTaskTest.java |    13 +-
 .../downloadtasks/DownloadNotesTaskTest.java       |    13 +-
 .../actions/downloadtasks/DownloadOsmTaskTest.java |    13 +-
 .../downloadtasks/DownloadReferrersTaskTest.java   |    13 +-
 .../downloadtasks/DownloadTaskListTest.java        |    13 +-
 .../downloadtasks/PostDownloadHandlerTest.java     |    13 +-
 .../josm/actions/mapmode/AddNoteActionTest.java    |    13 +-
 .../josm/actions/mapmode/DeleteActionTest.java     |    13 +-
 .../josm/actions/mapmode/DrawActionTest.java       |    13 +-
 .../josm/actions/mapmode/ExtrudeActionTest.java    |    13 +-
 .../mapmode/ImproveWayAccuracyActionTest.java      |    13 +-
 .../actions/mapmode/ParallelWayActionTest.java     |    13 +-
 .../josm/actions/mapmode/PlayHeadDragModeTest.java |    13 +-
 .../josm/actions/mapmode/SelectActionTest.java     |    45 +-
 .../josm/actions/upload/FixDataHookTest.java       |    13 +-
 .../actions/upload/ValidateUploadHookTest.java     |    13 +-
 .../josm/command/AddPrimitivesCommandTest.java     |     5 +-
 .../josm/command/TransformNodesCommandTest.java    |    12 +-
 .../conflict/ConflictResolveCommandTest.java       |    12 +-
 .../DeletedStateConflictResolveCommandTest.java    |    12 +-
 .../ModifiedConflictResolveCommandTest.java        |    12 +-
 .../RelationMemberConflictResolverCommandTest.java |    12 +-
 .../conflict/TagConflictResolveCommandTest.java    |    12 +-
 .../VersionConflictResolveCommandTest.java         |    12 +-
 .../WayNodesConflictResolverCommandTest.java       |    12 +-
 .../corrector/ReverseWayNoTagCorrectorTest.java    |    13 +-
 .../josm/corrector/ReverseWayTagCorrectorTest.java |    13 +-
 .../org/openstreetmap/josm/data/BoundsTest.java    |    43 +
 .../josm/data/CustomConfiguratorTest.java          |    13 +-
 .../openstreetmap/josm/data/PreferencesTest.groovy |    42 -
 .../openstreetmap/josm/data/PreferencesTest.java   |    70 +
 .../josm/data/cache/JCSCacheManagerTest.java       |    13 +-
 .../data/cache/JCSCachedTileLoaderJobTest.java     |    11 +-
 .../josm/data/coor/CachedLatLonTest.java           |    12 +-
 .../josm/data/coor/EastNorthTest.java              |    52 +
 .../openstreetmap/josm/data/coor/LatLonTest.java   |    51 +-
 .../openstreetmap/josm/data/gpx/GpxDataTest.java   |    34 +
 .../openstreetmap/josm/data/gpx/GpxRouteTest.java  |    35 +
 .../data/gpx/ImmutableGpxTrackSegmentTest.java     |    34 +
 .../josm/data/gpx/ImmutableGpxTrackTest.java       |    34 +
 .../openstreetmap/josm/data/gpx/WayPointTest.java  |    37 +
 .../josm/data/gpx/WithAttributesTest.java          |    33 +
 .../josm/data/imagery/ImageryInfoTest.java         |    13 +-
 .../data/imagery/TemplatedWMSTileSourceTest.java   |    13 +-
 .../josm/data/imagery/WMTSTileSourceTest.java      |    13 +-
 .../josm/data/notes/NoteCommentTest.java           |    13 +-
 .../openstreetmap/josm/data/notes/NoteTest.java    |    12 +-
 .../josm/data/oauth/OAuthParametersTest.java       |    11 +-
 .../josm/data/oauth/SignpostAdaptersTest.java      |    13 +-
 .../josm/data/osm/APIDataSetTest.java              |    61 +-
 .../org/openstreetmap/josm/data/osm/BBoxTest.java  |    12 +-
 .../josm/data/osm/DataSetMergerTest.java           |    13 +-
 .../openstreetmap/josm/data/osm/FilterTest.java    |    13 +-
 .../josm/data/osm/MultipolygonBuilderTest.java     |    16 +-
 .../openstreetmap/josm/data/osm/NodeDataTest.java  |    44 +-
 .../org/openstreetmap/josm/data/osm/NodeTest.java  |    13 +-
 .../josm/data/osm/OsmPrimitiveKeyHandlingTest.java |    11 +-
 .../josm/data/osm/OsmPrimitiveTest.java            |    12 +-
 .../openstreetmap/josm/data/osm/OsmUtilsTest.java  |    13 +-
 .../josm/data/osm/QuadBucketsTest.java             |    98 +-
 .../openstreetmap/josm/data/osm/RelationTest.java  |    13 +-
 .../josm/data/osm/WaySegmentTest.java              |    13 +-
 .../josm/data/osm/history/HistoryNodeTest.java     |    13 +-
 .../josm/data/osm/history/HistoryRelationTest.java |    13 +-
 .../josm/data/osm/history/HistoryWayTest.java      |    13 +-
 .../visitor/MergeSourceBuildingVisitorTest.java    |    13 +-
 .../josm/data/preferences/ColorPropertyTest.java   |    82 +
 .../josm/data/preferences/StrokePropertyTest.java  |   108 +
 .../josm/data/projection/CustomProjectionTest.java |    73 +
 .../data/projection/ShiftedProjectionTest.java     |   148 +
 .../data/validation/tests/DuplicateNodeTest.java   |    13 +-
 .../data/validation/tests/InternetTagsTest.java    |    16 +-
 .../data/validation/tests/LongSegmentTest.java     |    13 +-
 .../validation/tests/MapCSSTagCheckerTest.java     |    13 +-
 .../validation/tests/MultipolygonTestTest.java     |    16 +-
 .../data/validation/tests/NameMismatchTest.java    |    13 +-
 .../tests/PublicTransportRouteTestTest.java        |    13 +-
 .../data/validation/tests/UntaggedNodeTest.java    |    16 +-
 .../validation/util/MultipleNameVisitorTest.java   |    13 +-
 .../josm/gui/JosmUserIdentityManagerTest.groovy    |     9 -
 .../openstreetmap/josm/gui/MapViewStateTest.java   |   100 +-
 .../josm/gui/TableCellRendererTest.java            |    54 +-
 .../josm/gui/bbox/SizeButtonTest.java              |    13 +-
 .../pair/nodes/NodeListMergeModelTest.java         |    40 +-
 .../conflict/pair/nodes/NodeListMergerTest.java    |    13 +-
 .../pair/properties/PropertiesMergeModelTest.java  |    16 +-
 .../pair/properties/PropertiesMergerTest.java      |    13 +-
 .../pair/relation/RelationMemberMergerTest.java    |    13 +-
 .../RelationMemberTableCellEditorTest.java         |    13 +-
 .../RelationMemberTableCellRendererTest.java       |    13 +-
 .../gui/conflict/pair/tags/TagMergeItemTest.java   |    13 +-
 .../gui/conflict/pair/tags/TagMergeModelTest.java  |    13 +-
 .../josm/gui/conflict/pair/tags/TagMergerTest.java |    13 +-
 .../tags/CombinePrimitiveResolverDialogTest.java   |    13 +-
 .../conflict/tags/MultiValueCellEditorTest.java    |    13 +-
 .../conflict/tags/MultiValueCellRendererTest.java  |    13 +-
 .../tags/PasteTagsConflictResolverDialogTest.java  |    13 +-
 .../RelationMemberConflictResolverModelTest.java   |    13 +-
 .../tags/RelationMemberConflictResolverTest.java   |    13 +-
 .../gui/correction/RoleCorrectionTableTest.java    |    13 +-
 .../gui/correction/TagCorrectionTableTest.java     |    13 +-
 .../gui/datatransfer/OsmTransferHandlerTest.java   |    72 +
 .../RelationMemberTransferableTest.java            |    13 +-
 .../datatransfer/importers/OsmLinkPasterTest.java  |    49 +
 .../josm/gui/dialogs/ConflictDialogTest.java       |    13 +-
 .../gui/dialogs/InspectPrimitiveDialogTest.java    |    15 +-
 .../josm/gui/dialogs/MapPaintDialogTest.java       |    13 +-
 .../changeset/ChangesetCacheManagerTest.java       |    13 +-
 .../changeset/ChangesetContentPanelTest.java       |    13 +-
 .../changeset/ChangesetDetailPanelTest.java        |    13 +-
 .../changeset/ChangesetDiscussionPanelTest.java    |    13 +-
 .../dialogs/changeset/ChangesetTagsPanelTest.java  |    13 +-
 .../query/AdvancedChangesetQueryPanelTest.java     |    13 +-
 .../query/BasicChangesetQueryPanelTest.java        |    13 +-
 .../changeset/query/UrlBasedQueryPanelTest.java    |    13 +-
 .../dialogs/properties/PropertiesDialogTest.java   |    13 +-
 .../properties/RecentTagCollectionTest.java        |    13 +-
 .../dialogs/relation/ChildRelationBrowserTest.java |    13 +-
 .../relation/GenericRelationEditorTest.java        |    13 +-
 .../MemberTableLinkedCellRendererTest.java         |    13 +-
 .../MemberTableMemberCellRendererTest.java         |    13 +-
 .../gui/dialogs/relation/MemberTableModelTest.java |    13 +-
 .../relation/MemberTableRoleCellRendererTest.java  |    13 +-
 .../relation/ReferringRelationsBrowserTest.java    |    13 +-
 .../relation/RelationTreeCellRendererTest.java     |    13 +-
 .../relation/SelectionTableCellRendererTest.java   |    13 +-
 .../gui/dialogs/relation/SelectionTableTest.java   |    13 +-
 .../dialogs/relation/sort/RelationSorterTest.java  |    34 +-
 .../sort/WayConnectionTypeCalculatorTest.java      |    36 +-
 .../dialogs/validator/ValidatorTreePanelTest.java  |    14 +-
 .../josm/gui/download/BookmarkSelectionTest.java   |    13 +-
 .../gui/download/BoundingBoxSelectionTest.java     |    13 +-
 .../josm/gui/download/PlaceSelectionTest.java      |    13 +-
 .../josm/gui/download/TileSelectionTest.java       |    13 +-
 .../josm/gui/help/HelpBrowserTest.java             |    13 +-
 .../josm/gui/help/HelpContentReaderTest.java       |    13 +-
 .../josm/gui/history/CoordinateInfoViewerTest.java |    13 +-
 .../josm/gui/history/HistoryBrowserDialogTest.java |    13 +-
 .../josm/gui/history/HistoryBrowserModelTest.java  |    13 +-
 .../josm/gui/history/HistoryLoadTaskTest.java      |    13 +-
 .../josm/gui/history/NodeListViewerTest.java       |    11 +
 .../josm/gui/io/ActionFlagsTableCellTest.java      |    13 +-
 .../josm/gui/io/BasicUploadSettingsPanelTest.java  |    13 +-
 .../josm/gui/io/ChangesetCellRendererTest.java     |    13 +-
 .../josm/gui/io/ChangesetManagementPanelTest.java  |    13 +-
 .../josm/gui/io/CredentialDialogTest.java          |    13 +-
 .../gui/io/LayerNameAndFilePathTableCellTest.java  |    13 +-
 .../josm/gui/io/SaveLayerInfoTest.java             |    11 +-
 .../josm/gui/io/SaveLayerTaskTest.java             |    41 +
 .../josm/gui/io/SaveLayersDialogTest.java          |    13 +-
 .../josm/gui/io/TagSettingsPanelTest.java          |    13 +-
 .../gui/io/UploadAndSaveProgressRendererTest.java  |    13 +-
 .../josm/gui/io/UploadDialogTest.java              |    13 +-
 .../gui/io/UploadParameterSummaryPanelTest.java    |    13 +-
 .../josm/gui/io/UploadPrimitivesTaskTest.java      |    13 +-
 .../gui/io/UploadStrategySelectionPanelTest.java   |    22 +-
 .../gui/io/UploadedObjectsSummaryPanelTest.java    |    13 +-
 .../gui/layer/AbstractMapViewPaintableTest.java    |    56 +
 .../openstreetmap/josm/gui/layer/GpxLayerTest.java |     4 +-
 .../openstreetmap/josm/gui/layer/LayerTest.java    |   209 +
 .../josm/gui/layer/OsmDataLayerTest.java           |    18 +-
 .../josm/gui/layer/gpx/GpxDrawHelperTest.java      |     4 +-
 .../gui/layer/markerlayer/MarkerLayerTest.java     |     4 +-
 .../josm/gui/mappaint/mapcss/ConditionTest.java    |    36 +-
 .../gui/mappaint/mapcss/KeyConditionTest.groovy    |    25 +-
 .../mappaint/mapcss/KeyValueConditionTest.groovy   |    18 +-
 .../gui/mappaint/mapcss/MapCSSParserTest.groovy    |    63 +-
 .../map/TaggingPresetPreferenceTestIT.java         |     4 +-
 .../openstreetmap/josm/io/GeoJSONWriterTest.java   |    27 +-
 .../org/openstreetmap/josm/io/NmeaReaderTest.java  |    66 +-
 .../josm/io/protocols/data/HandlerTest.java        |    47 +
 .../josm/io/remotecontrol/RemoteControlTest.java   |    57 +-
 .../josm/io/session/SessionWriterTest.java         |    34 +-
 .../josm/testutils/DatasetFactory.java             |   121 +
 .../josm/testutils/JOSMTestRules.java              |     9 +-
 .../org/openstreetmap/josm/tools/LoggingTest.java  |   287 +
 .../josm/tools/OverpassTurboQueryWizardTest.java   |     2 +-
 .../openstreetmap/josm/tools/PredicatesTest.java   |   222 -
 .../bugreport/BugReportExceptionHandlerTest.java   |    33 +-
 .../josm/tools/bugreport/BugReportTest.java        |    54 +-
 .../tools/template_engine/TemplateParserTest.java  |     2 +-
 tools/checkstyle/josm_filters.xml                  |    22 +
 tools/japicc/japi-compliance-checker.pl            |  9095 +++++++++++++
 1028 files changed, 114350 insertions(+), 18624 deletions(-)

diff --git a/.checkstyle b/.checkstyle
index d563d13..7457ef6 100644
--- a/.checkstyle
+++ b/.checkstyle
@@ -18,11 +18,11 @@
     <filter-data value="src/org/jdesktop"/>
     <filter-data value="src/org/openstreetmap/gui"/>
     <filter-data value="src/org/openstreetmap/josm/gui/mappaint/mapcss/parsergen"/>
-    <filter-data value="src/org/w3"/>
+    <filter-data value=".svn"/>
     <filter-data value="data"/>
     <filter-data value="images"/>
-    <filter-data value="styles"/>
     <filter-data value="resources"/>
+    <filter-data value="styles"/>
     <filter-data value="scripts"/>
   </filter>
 </fileset-config>
diff --git a/.classpath b/.classpath
index aa7a22f..4ad959f 100644
--- a/.classpath
+++ b/.classpath
@@ -1,14 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry excluding="org/apache/commons/compress/compressors/CompressorStreamFactory.java|org/apache/commons/compress/compressors/deflate/|org/apache/commons/compress/compressors/gzip/|org/apache/commons/compress/compressors/lzma/|org/apache/commons/compress/compressors/lzw/|org/apache/commons/compress/compressors/pack200/|org/apache/commons/compress/compressors/snappy/|org/apache/commons/compress/compressors/xz/|org/apache/commons/compress/compressors/z/|org/apache/commons/jcs/au [...]
+	<classpathentry excluding="org/apache/commons/compress/compressors/CompressorException.java|org/apache/commons/compress/compressors/CompressorStreamFactory.java|org/apache/commons/compress/compressors/FileNameUtil.java|org/apache/commons/compress/compressors/bzip2/BZip2Utils.java|org/apache/commons/compress/compressors/deflate/|org/apache/commons/compress/compressors/gzip/|org/apache/commons/compress/compressors/lzma/|org/apache/commons/compress/compressors/lzw/|org/apache/commons/compr [...]
+	<classpathentry including="data/|images/|resources/|styles/" kind="src" path=""/>
 	<classpathentry kind="src" path="test/unit"/>
 	<classpathentry kind="src" path="test/functional"/>
 	<classpathentry kind="src" path="test/performance"/>
-	<classpathentry kind="src" output="bin2/data" path="data"/>
-	<classpathentry kind="src" output="bin2/images" path="images"/>
-	<classpathentry kind="src" output="bin2/styles" path="styles"/>
-	<classpathentry kind="src" output="bin2/resources" path="resources"/>
-	<classpathentry kind="src" output="bin2/scripts" path="scripts"/>
+	<classpathentry kind="src" path="scripts"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
 	<classpathentry kind="lib" path="test/lib/fest/fest-assert-1.0.jar"/>
 	<classpathentry kind="lib" path="test/lib/fest/fest-reflect-1.1.jar"/>
@@ -19,6 +16,8 @@
 	<classpathentry kind="lib" path="test/lib/jfcunit.jar"/>
 	<classpathentry kind="lib" path="test/lib/equalsverifier-2.1.5.jar"/>
 	<classpathentry kind="lib" path="test/lib/reflections/reflections-0.9.10.jar"/>
+	<classpathentry kind="lib" path="test/lib/reflections/guava-19.0.jar"/>
+	<classpathentry kind="lib" path="test/lib/reflections/javassist-3.20.0-GA.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.8.0_102"/>
 	<classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/>
 	<classpathentry kind="lib" path="test/lib/unitils-core/commons-collections-3.2.jar"/>
diff --git a/.externalToolBuilders/revision.launch b/.externalToolBuilders/revision.launch
index fe7548e..1466939 100644
--- a/.externalToolBuilders/revision.launch
+++ b/.externalToolBuilders/revision.launch
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="create-revision-eclipse,"/>
-<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="create-revision-eclipse,"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="create-revision-eclipse,epsg"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="create-revision-eclipse,epsg"/>
 <booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
 <booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"/>
@@ -10,6 +10,10 @@
 <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
 <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value=""/>
+<mapAttribute key="org.eclipse.ui.externaltools.ATTR_ANT_PROPERTIES">
+<mapEntry key="build.dir" value="${build_project}/bin"/>
+<mapEntry key="eclipse.running" value="true"/>
+</mapAttribute>
 <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="true"/>
 <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${build_project}/build.xml"/>
 <stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
diff --git a/.project b/.project
index 6090b70..572b2b3 100644
--- a/.project
+++ b/.project
@@ -31,11 +31,6 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
 			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
 			<arguments>
 			</arguments>
@@ -48,6 +43,5 @@
 		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>sf.eclipse.javacc.javaccnature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-		<nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
 	</natures>
 </projectDescription>
diff --git a/.settings/edu.umd.cs.findbugs.core.prefs b/.settings/edu.umd.cs.findbugs.core.prefs
index 6e1b365..d9797f0 100644
--- a/.settings/edu.umd.cs.findbugs.core.prefs
+++ b/.settings/edu.umd.cs.findbugs.core.prefs
@@ -1,26 +1,38 @@
 #FindBugs User Preferences
-#Mon May 16 03:41:36 CEST 2016
+#Fri Aug 19 00:50:13 CEST 2016
 cloud_id=edu.umd.cs.findbugs.cloud.doNothingCloud
 detectorAppendingToAnObjectOutputStream=AppendingToAnObjectOutputStream|true
 detectorAtomicityProblem=AtomicityProblem|true
 detectorBadAppletConstructor=BadAppletConstructor|false
+detectorBadHexadecimalConversionDetector=BadHexadecimalConversionDetector|true
 detectorBadResultSetAccess=BadResultSetAccess|true
 detectorBadSyntaxForRegularExpression=BadSyntaxForRegularExpression|true
 detectorBadUseOfReturnValue=BadUseOfReturnValue|true
 detectorBadlyOverriddenAdapter=BadlyOverriddenAdapter|true
 detectorBooleanReturnNull=BooleanReturnNull|true
+detectorBroadcastDetector=BroadcastDetector|true
 detectorCallToUnsupportedMethod=CallToUnsupportedMethod|true
 detectorCheckExpectedWarnings=CheckExpectedWarnings|false
 detectorCheckImmutableAnnotation=CheckImmutableAnnotation|true
 detectorCheckRelaxingNullnessAnnotation=CheckRelaxingNullnessAnnotation|true
 detectorCheckTypeQualifiers=CheckTypeQualifiers|true
+detectorCipherWithNoIntegrityDetector=CipherWithNoIntegrityDetector|true
 detectorCloneIdiom=CloneIdiom|true
+detectorCommandInjectionDetector=CommandInjectionDetector|true
 detectorComparatorIdiom=ComparatorIdiom|true
 detectorConfusedInheritance=ConfusedInheritance|true
 detectorConfusionBetweenInheritedAndOuterMethod=ConfusionBetweenInheritedAndOuterMethod|true
+detectorConstantPasswordDetector=ConstantPasswordDetector|true
+detectorCookieFlagsDetector=CookieFlagsDetector|true
+detectorCookieReadDetector=CookieReadDetector|true
 detectorCovariantArrayAssignment=CovariantArrayAssignment|true
+detectorCrlfLogInjectionDetector=CrlfLogInjectionDetector|true
 detectorCrossSiteScripting=CrossSiteScripting|true
+detectorCustomInjectionDetector=CustomInjectionDetector|true
+detectorCustomMessageDigestDetector=CustomMessageDigestDetector|true
 detectorDefaultEncodingDetector=DefaultEncodingDetector|true
+detectorDesUsageDetector=DesUsageDetector|true
+detectorDeserializationGadgetDetector=DeserializationGadgetDetector|true
 detectorDoInsideDoPrivileged=DoInsideDoPrivileged|true
 detectorDontCatchIllegalMonitorStateException=DontCatchIllegalMonitorStateException|true
 detectorDontIgnoreResultOfPutIfAbsent=DontIgnoreResultOfPutIfAbsent|true
@@ -31,7 +43,11 @@ detectorDumbMethods=DumbMethods|true
 detectorDuplicateBranches=DuplicateBranches|true
 detectorEmptyZipFileEntry=EmptyZipFileEntry|true
 detectorEqualsOperandShouldHaveClassCompatibleWithThis=EqualsOperandShouldHaveClassCompatibleWithThis|true
+detectorEsapiEncryptorDetector=EsapiEncryptorDetector|true
 detectorExplicitSerialization=ExplicitSerialization|true
+detectorExternalConfigurationControlDetector=ExternalConfigurationControlDetector|true
+detectorExternalFileAccessDetector=ExternalFileAccessDetector|true
+detectorFileUploadFilenameDetector=FileUploadFilenameDetector|true
 detectorFinalizerNullsFields=FinalizerNullsFields|true
 detectorFindBadCast2=FindBadCast2|true
 detectorFindBadForLoop=FindBadForLoop|true
@@ -76,6 +92,10 @@ detectorFindUseOfNonSerializableValue=FindUseOfNonSerializableValue|true
 detectorFindUselessControlFlow=FindUselessControlFlow|true
 detectorFindUselessObjects=FindUselessObjects|true
 detectorFormatStringChecker=FormatStringChecker|true
+detectorGeolocationDetector=GeolocationDetector|true
+detectorGoogleApiKeyDetector=GoogleApiKeyDetector|true
+detectorHazelcastSymmetricEncryptionDetector=HazelcastSymmetricEncryptionDetector|true
+detectorHttpResponseSplittingDetector=HttpResponseSplittingDetector|true
 detectorHugeSharedStringConstants=HugeSharedStringConstants|true
 detectorIDivResultCastToDouble=IDivResultCastToDouble|true
 detectorIncompatMask=IncompatMask|true
@@ -90,10 +110,19 @@ detectorInheritanceUnsafeGetResource=InheritanceUnsafeGetResource|true
 detectorInitializationChain=InitializationChain|true
 detectorInitializeNonnullFieldsInConstructor=InitializeNonnullFieldsInConstructor|true
 detectorInstantiateStaticClass=InstantiateStaticClass|true
+detectorInsufficientKeySizeBlowfishDetector=InsufficientKeySizeBlowfishDetector|true
+detectorInsufficientKeySizeRsaDetector=InsufficientKeySizeRsaDetector|true
 detectorIntCast2LongAsInstant=IntCast2LongAsInstant|true
 detectorInvalidJUnitTest=InvalidJUnitTest|true
 detectorIteratorIdioms=IteratorIdioms|true
+detectorJaxRsEndpointDetector=JaxRsEndpointDetector|true
+detectorJaxWsEndpointDetector=JaxWsEndpointDetector|true
+detectorJndiCredentialsDetector=JndiCredentialsDetector|true
+detectorJspIncludeDetector=JspIncludeDetector|true
+detectorJspSpringEvalDetector=JspSpringEvalDetector|true
+detectorJstlOutDetector=JstlOutDetector|true
 detectorLazyInit=LazyInit|true
+detectorLdapInjectionDetector=LdapInjectionDetector|true
 detectorLoadOfKnownNullValue=LoadOfKnownNullValue|true
 detectorLostLoggerDueToWeakReference=LostLoggerDueToWeakReference|true
 detectorMethodReturnCheck=MethodReturnCheck|true
@@ -103,22 +132,39 @@ detectorMutableLock=MutableLock|true
 detectorMutableStaticFields=MutableStaticFields|true
 detectorNaming=Naming|true
 detectorNoteUnconditionalParamDerefs=NoteUnconditionalParamDerefs|true
+detectorNullCipherDetector=NullCipherDetector|true
 detectorNumberConstructor=NumberConstructor|true
+detectorObjectDeserializationDetector=ObjectDeserializationDetector|true
 detectorOptionalReturnNull=OptionalReturnNull|true
 detectorOverridingEqualsNotSymmetrical=OverridingEqualsNotSymmetrical|true
+detectorPathTraversalDetector=PathTraversalDetector|true
+detectorPlayUnvalidatedRedirectDetector=PlayUnvalidatedRedirectDetector|true
+detectorPredictableRandomDetector=PredictableRandomDetector|true
 detectorPreferZeroLengthArrays=PreferZeroLengthArrays|true
 detectorPublicSemaphores=PublicSemaphores|true
 detectorQuestionableBooleanAssignment=QuestionableBooleanAssignment|true
+detectorReDosDetector=ReDosDetector|true
 detectorReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass=ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass|true
 detectorReadReturnShouldBeChecked=ReadReturnShouldBeChecked|true
 detectorRedundantConditions=RedundantConditions|true
 detectorRedundantInterfaces=RedundantInterfaces|true
 detectorRepeatedConditionals=RepeatedConditionals|true
+detectorRsaNoPaddingDetector=RsaNoPaddingDetector|true
 detectorRuntimeExceptionCapture=RuntimeExceptionCapture|true
+detectorScriptInjectionDetector=ScriptInjectionDetector|true
 detectorSerializableIdiom=SerializableIdiom|true
+detectorServletEndpointDetector=ServletEndpointDetector|true
+detectorSpringMvcEndpointDetector=SpringMvcEndpointDetector|true
+detectorSqlInjectionDetector=SqlInjectionDetector|true
+detectorSslDisablerDetector=SslDisablerDetector|true
 detectorStartInConstructor=StartInConstructor|true
 detectorStaticCalendarDetector=StaticCalendarDetector|true
+detectorStaticIvDetector=StaticIvDetector|true
+detectorStdXmlTransformDetector=StdXmlTransformDetector|true
 detectorStringConcatenation=StringConcatenation|true
+detectorStruts1EndpointDetector=Struts1EndpointDetector|true
+detectorStruts2EndpointDetector=Struts2EndpointDetector|true
+detectorStrutsValidatorFormDetector=StrutsValidatorFormDetector|true
 detectorSuperfluousInstanceOf=SuperfluousInstanceOf|true
 detectorSuspiciousThreadInterrupted=SuspiciousThreadInterrupted|true
 detectorSwitchFallthrough=SwitchFallthrough|true
@@ -126,16 +172,34 @@ detectorSynchronizationOnSharedBuiltinConstant=SynchronizationOnSharedBuiltinCon
 detectorSynchronizeAndNullCheckField=SynchronizeAndNullCheckField|true
 detectorSynchronizeOnClassLiteralNotGetClass=SynchronizeOnClassLiteralNotGetClass|true
 detectorSynchronizingOnContentsOfFieldToProtectField=SynchronizingOnContentsOfFieldToProtectField|true
+detectorTapestryEndpointDetector=TapestryEndpointDetector|true
+detectorTrustBoundaryViolationDetector=TrustBoundaryViolationDetector|true
 detectorURLProblems=URLProblems|true
 detectorUncallableMethodOfAnonymousClass=UncallableMethodOfAnonymousClass|true
+detectorUnencryptedSocketDetector=UnencryptedSocketDetector|true
 detectorUnnecessaryMath=UnnecessaryMath|true
 detectorUnreadFields=UnreadFields|true
+detectorUnvalidatedRedirectDetector=UnvalidatedRedirectDetector|true
 detectorUselessSubclassMethod=UselessSubclassMethod|true
 detectorVarArgsProblems=VarArgsProblems|true
 detectorVolatileUsage=VolatileUsage|true
 detectorWaitInLoop=WaitInLoop|true
+detectorWeakFilenameUtilsMethodDetector=WeakFilenameUtilsMethodDetector|true
+detectorWeakMessageDigestDetector=WeakMessageDigestDetector|true
+detectorWeakTrustManagerDetector=WeakTrustManagerDetector|true
+detectorWebViewJavascriptEnabledDetector=WebViewJavascriptEnabledDetector|true
+detectorWebViewJavascriptInterfaceDetector=WebViewJavascriptInterfaceDetector|true
+detectorWicketEndpointDetector=WicketEndpointDetector|true
+detectorWorldWritableDetector=WorldWritableDetector|true
 detectorWrongMapIterator=WrongMapIterator|true
 detectorXMLFactoryBypass=XMLFactoryBypass|true
+detectorXPathInjectionDetector=XPathInjectionDetector|true
+detectorXSSRequestWrapperDetector=XSSRequestWrapperDetector|true
+detectorXmlDecoderDetector=XmlDecoderDetector|true
+detectorXslTransformJspDetector=XslTransformJspDetector|true
+detectorXssJspDetector=XssJspDetector|true
+detectorXssServletDetector=XssServletDetector|true
+detectorXxeDetector=XxeDetector|true
 detector_threshold=3
 effort=max
 excludefilter0=tools/findbugs/josm-filter.xml|true
diff --git a/.settings/sf.eclipse.javacc.prefs b/.settings/sf.eclipse.javacc.prefs
index 6ed4d23..b822b37 100644
--- a/.settings/sf.eclipse.javacc.prefs
+++ b/.settings/sf.eclipse.javacc.prefs
@@ -1,4 +1,5 @@
 CLEAR_CONSOLE=true
+FORMAT_BEFORE_SAVE=false
 JAVACC_OPTIONS=-JDK_VERSION\=1.8 -GRAMMAR_ENCODING\=UTF-8
 JJDOC_OPTIONS=
 JJTREE_OPTIONS=
diff --git a/README b/README
index a0c897c..5cfee2f 100644
--- a/README
+++ b/README
@@ -120,12 +120,13 @@ This is an overview of the files and directories in the JOSM code repository:
     - checkstyle/           libs and config files for checkstyle (automatically detects code style
                             problems in source code); can be launched as an ant target in build.xml
     - commons-cli-1.3.1.jar dependency of Groovy Ant task
-    - error_prone_ant-2.0.11.jar
+    - error_prone_ant-2.0.12.jar
                             used to detect code errors during compilation
     - findbugs/             libs and config files for findbugs (automatically detects common bugs and potential
                             problems in source code); can be launched as an ant target in build.xml
     - groovy-all-2.4.7.jar  used for some unit tests and various scripts
-    - jacocoant.jar         used to include coverage data into JUnit test reports 
+    - jacocoant.jar         used to include coverage data into JUnit test reports
+    - japicc/               used to generate a compatibility report between optimized jar and normal one
     - javacc.jar            used in the build process to generate some .java files from a javacc source file
                             (src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj)
     - proguard.jar          optimize final binary jar - see build.xml (not used in production so far)
@@ -155,25 +156,26 @@ There are some third party libraries which are directly included in the source c
     -> http://svn.openstreetmap.org/applications/viewer/jmapviewer/
 * Apache commons compress: Support for bzip2 compression when opening files
     src/org/apache/commons/compress/compressors (svn external)
-    -> http://svn.apache.org/repos/asf/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors
+    -> https://github.com/apache/commons-compress
 * Apache commons validator: Improved validator routines
     src/org/openstreetmap/josm/data/validation/routines
     -> http://commons.apache.org/proper/commons-validator
 * SVG Salamander: Support for SVG image format
     src/com/kitfox/svg
-    -> https://svgsalamander.java.net/
+    -> https://github.com/blackears/svgSalamander
 * Metadata Extractor: Read EXIF Metadata of photos
     src/com/drew
-    -> https://www.drewnoakes.com/code/exif/
+    -> https://github.com/drewnoakes/metadata-extractor
 * Signpost: OAuth library
     src/oauth, src/com/google
-    -> https://code.google.com/p/oauth-signpost/
+    -> https://github.com/mttkay/signpost
 * GNU getopt Java port: Command line argument processing library
     src/gnu/getopt
-    -> http://www.urbanophile.com/arenn/hacking/download.html
+    -> https://github.com/arenn/java-getopt
 * MultiSplitPane: Small lib for GUI layout management
     src/org/openstreetmap/josm/gui/MultiSplitLayout.java, MultiSplitPane.java
     -> http://today.java.net/pub/a/today/2006/03/23/multi-split-pane.html
+    -> https://community.oracle.com/docs/DOC-983539
 * swinghelper: Class CheckThreadViolationRepaintManager to find classpath violations
     src/org/jdesktop/swinghelper/debug/CheckThreadViolationRepaintManager.java
     -> https://java.net/projects/swinghelper
diff --git a/REVISION b/REVISION
index f813e19..b9e213a 100644
--- a/REVISION
+++ b/REVISION
@@ -3,7 +3,7 @@
 <entry
    kind="dir"
    path="trunk"
-   revision="10786">
+   revision="10966">
 <url>https://josm.openstreetmap.de/svn/trunk</url>
 <relative-url>^/trunk</relative-url>
 <repository>
@@ -11,9 +11,9 @@
 <uuid>0c6e7542-c601-0410-84e7-c038aed88b3b</uuid>
 </repository>
 <commit
-   revision="10786">
+   revision="10966">
 <author>Don-vip</author>
-<date>2016-08-11T19:54:24.560250Z</date>
+<date>2016-09-05T22:16:07.651665Z</date>
 </commit>
 </entry>
 </info>
diff --git a/build.xml b/build.xml
index 6e4379f..5f6bb30 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
         <property name="proj-build.dir" location="${base.dir}/build2"/>
         <property name="epsg.output" location="${base.dir}/data/projection/custom-epsg"/>
         <property name="groovy.jar" location="${base.dir}/tools/groovy-all-2.4.7.jar"/>
-        <property name="error_prone_ant.jar" location="${base.dir}/tools/error_prone_ant-2.0.11.jar"/>
+        <property name="error_prone_ant.jar" location="${base.dir}/tools/error_prone_ant-2.0.12.jar"/>
         <property name="javac.compiler" value="com.google.errorprone.ErrorProneAntCompilerAdapter" />
         <!-- build parameter: compression level (ant -Dclevel=N)
                  N ranges from 0 (no compression) to 9 (maximum compression)
@@ -225,18 +225,37 @@ Build-Date: ${build.tstamp}
             destdir="build" target="1.8" source="1.8" debug="on" includeAntRuntime="false" createMissingPackageInfoClass="false">
             <!-- get rid of "internal proprietary API" warning -->
             <compilerarg value="-XDignore.symbol.file"/>
+            <exclude name="org/apache/commons/compress/compressors/bzip2/BZip2Utils.java"/>
             <exclude name="org/apache/commons/compress/compressors/lzma/**"/>
             <exclude name="org/apache/commons/compress/compressors/xz/**"/>
             <exclude name="org/apache/commons/compress/compressors/CompressorStreamFactory.java"/>
+            <exclude name="org/apache/commons/compress/compressors/CompressorException.java"/>
+            <exclude name="org/apache/commons/compress/compressors/FileNameUtil.java"/>
             <exclude name="org/apache/commons/compress/compressors/deflate/**"/>
             <exclude name="org/apache/commons/compress/compressors/gzip/**"/>
             <exclude name="org/apache/commons/compress/compressors/lzw/**"/>
             <exclude name="org/apache/commons/compress/compressors/pack200/**"/>
             <exclude name="org/apache/commons/compress/compressors/snappy/**"/>
             <exclude name="org/apache/commons/compress/compressors/z/**"/>
-            <exclude name="org/apache/commons/jcs/admin/**"/>
+            <exclude name="org/apache/commons/jcs/JCS.java"/>
+            <exclude name="org/apache/commons/jcs/access/GroupCacheAccess.java"/>
+            <exclude name="org/apache/commons/jcs/access/PartitionedCacheAccess.java"/>
+            <exclude name="org/apache/commons/jcs/access/behavior/IGroupCacheAccess.java"/>
+            <exclude name="org/apache/commons/jcs/access/exception/InvalidGroupException.java"/>
+            <exclude name="org/apache/commons/jcs/admin/servlet/**"/>
+            <exclude name="org/apache/commons/jcs/auxiliary/AbstractAuxiliaryCacheMonitor.java"/>
             <exclude name="org/apache/commons/jcs/auxiliary/disk/jdbc/**"/>
+            <exclude name="org/apache/commons/jcs/auxiliary/lateral/**"/>
             <exclude name="org/apache/commons/jcs/auxiliary/remote/**"/>
+            <exclude name="org/apache/commons/jcs/engine/CacheAdaptor.java"/>
+            <exclude name="org/apache/commons/jcs/engine/CacheGroup.java"/>
+            <exclude name="org/apache/commons/jcs/engine/CacheWatchRepairable.java"/>
+            <exclude name="org/apache/commons/jcs/engine/Zombie*.java"/>
+            <exclude name="org/apache/commons/jcs/engine/logging/CacheEventLoggerDebugLogger.java"/>
+            <exclude name="org/apache/commons/jcs/utils/access/**"/>
+            <exclude name="org/apache/commons/jcs/utils/discovery/**"/>
+            <exclude name="org/apache/commons/jcs/utils/net/**"/>
+            <exclude name="org/apache/commons/jcs/utils/props/**"/>
             <exclude name="org/apache/commons/jcs/utils/servlet/**"/>
             <exclude name="org/apache/commons/logging/impl/AvalonLogger.java"/>
             <exclude name="org/apache/commons/logging/impl/Jdk13LumberjackLogger.java"/>
@@ -246,7 +265,7 @@ Build-Date: ${build.tstamp}
         </javac>
         <!-- JMapViewer -->
         <javac compiler="${javac.compiler}" sourcepath="" srcdir="${src.dir}" 
-            excludes="com/**,oauth/**,org/apache/commons/**,org/glassfish/**,org/openstreetmap/gui/jmapviewer/Demo.java,org/openstreetmap/josm/**,JOSM.java,gnu/**"
+            excludes="com/**,oauth/**,org/apache/commons/**,org/glassfish/**,org/openstreetmap/gui/jmapviewer/Demo.java,org/openstreetmap/gui/jmapviewer/JMapViewerTree.java,org/openstreetmap/gui/jmapviewer/checkBoxTree/**,org/openstreetmap/josm/**,JOSM.java,gnu/**"
             destdir="build" target="1.8" source="1.8" debug="on" includeantruntime="false" createMissingPackageInfoClass="false" encoding="UTF-8">
             <compilerclasspath>
                 <pathelement location="${error_prone_ant.jar}"/>
@@ -269,7 +288,7 @@ Build-Date: ${build.tstamp}
         </javac>
         <!-- JOSM -->
         <javac compiler="${javac.compiler}" sourcepath="" srcdir="${src.dir}" 
-            excludes="com/**,oauth/**,org/apache/commons/**,org/glassfish/**,org/openstreetmap/gui/jmapviewer/Demo.java"
+            excludes="com/**,oauth/**,org/apache/commons/**,org/glassfish/**,org/openstreetmap/gui/jmapviewer/**"
             destdir="build" target="1.8" source="1.8" debug="on" includeantruntime="false" createMissingPackageInfoClass="false" encoding="UTF-8">
             <compilerclasspath>
                 <pathelement location="${error_prone_ant.jar}"/>
@@ -351,12 +370,9 @@ Build-Date: ${build.tstamp}
         <delete dir="${test.dir}/report"/>
         <delete file="${test.dir}/jacoco.exec" />
         <delete file="${test.dir}/jacocoIT.exec" />
-        <delete file="${test.dir}/config/unit-josm.home/preferences.xml" />
-        <delete file="${test.dir}/config/functional-josm.home/preferences.xml" />
-        <delete file="${test.dir}/config/performance-josm.home/preferences.xml" />
-        <delete dir="${test.dir}/config/unit-josm.home/cache" failonerror="false"/>
-        <delete dir="${test.dir}/config/functional-josm.home/cache" failonerror="false"/>
-        <delete dir="${test.dir}/config/performance-josm.home/cache" failonerror="false"/>
+        <delete file="${test.dir}/config/unit-josm.home" failonerror="false"/>
+        <delete file="${test.dir}/config/functional-josm.home" failonerror="false"/>
+        <delete file="${test.dir}/config/performance-josm.home" failonerror="false"/>
     </target>
     <macrodef name="call-groovyc">
         <attribute name="testfamily"/>
@@ -487,7 +503,7 @@ Build-Date: ${build.tstamp}
         -keep class * extends org.openstreetmap.josm.io.FileImporter
         -keep class * extends org.openstreetmap.josm.io.FileExporter
         -keep class org.openstreetmap.josm.actions.search.SearchCompiler$Never
-        -keep class org.openstreetmap.josm.gui.mappaint.mapcss.Condition$PseudoClasses {
+        -keep class org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory$PseudoClasses {
             static boolean *(org.openstreetmap.josm.gui.mappaint.Environment);
         }
         -keep class org.apache.commons.logging.impl.*
@@ -502,11 +518,31 @@ Build-Date: ${build.tstamp}
             public protected *;
         }
 
+        # Keep serialization methods
+        -keepclassmembers class * implements java.io.Serializable {
+            private void writeObject(java.io.ObjectOutputStream);
+            private void readObject(java.io.ObjectInputStream);
+        }
+
         # Disable annoying [proguard] Note: the configuration keeps the entry point '...', but not the descriptor class '...'.
         # This note should not be a problem as we don't use obfuscation
         -dontnote
         </proguard>
     </target>
+    <!-- Proguard does not support Java 9 : http://sourceforge.net/p/proguard/bugs/551/ -->
+    <target name="dist-optimized-report" depends="dist-optimized" unless="isJava9">
+        <!-- generate difference report between optimized jar and normal one -->
+        <exec executable="perl" dir="${basedir}">
+            <arg value="tools/japicc/japi-compliance-checker.pl"/>
+            <arg value="--lib=JOSM"/>
+            <arg value="--keep-internal"/>
+            <arg value="--v1=${version.entry.commit.revision}"/>
+            <arg value="--v2=${version.entry.commit.revision}-optimized"/>
+            <arg value="--report-path=${dist.dir}/compat_report.html"/>
+            <arg value="${dist.dir}/josm-custom.jar"/>
+            <arg value="${dist.dir}/josm-custom-optimized.jar"/>
+        </exec>
+    </target>
     <target name="check-plugins" depends="dist-optimized">
         <echo message="Check of plugins binary compatibility (needs ant 1.8)"/>
         <local name="dir"/>
@@ -711,7 +747,7 @@ Build-Date: ${build.tstamp}
     <!--
       ** Compile build script for generating projection list.
     -->
-    <target name="epsg-compile">
+    <target name="epsg-compile" depends="init-properties">
         <property name="proj-classpath" location="${build.dir}"/>
         <mkdir dir="${proj-build.dir}"/>
         <javac sourcepath="" srcdir="${base.dir}/scripts" failonerror="true"
diff --git a/data/defaultpresets.xml b/data/defaultpresets.xml
index 8eb5aec..cebbc22 100644
--- a/data/defaultpresets.xml
+++ b/data/defaultpresets.xml
@@ -375,11 +375,11 @@
   <!-- Link chunks -->
   <chunk id="link_contact_address">
     <preset_link preset_name="Contact (Common Schema)" />
-    <preset_link preset_name="Addresses" />
+    <preset_link preset_name="Address" />
   </chunk>
   <chunk id="link_contact_address_payment">
     <preset_link preset_name="Contact (Common Schema)" />
-    <preset_link preset_name="Addresses" />
+    <preset_link preset_name="Address" />
     <preset_link preset_name="Payment Methods" />
   </chunk>
   <chunk id="public_transport_route_optionals">
@@ -1571,7 +1571,7 @@
             </optional>
         </item> <!-- Mountain Pass -->
     </group> <!-- Waypoints -->
-    <group name="Barriers" icon="presets/barrier/barrier.png"> <!-- *** Node Barriers *** -->
+    <group name="Barriers" icon="presets/barrier/wall.svg"> <!-- *** Node Barriers *** -->
         <item name="Block" icon="presets/barrier/block.svg" type="node,way,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:barrier=block"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:barrier=block"
@@ -1610,7 +1610,7 @@
             <reference ref="barrier_4" />
             <reference ref="optional_maxwidth" />
         </item> <!-- Cycle Barrier -->
-        <item name="Cattle Grid" icon="presets/barrier/cattle_grid.png" type="node" preset_name_label="true">
+        <item name="Cattle Grid" icon="presets/barrier/cattle_grid.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:barrier=cattle_grid"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:barrier=cattle_grid"
                   pl.href="http://wiki.openstreetmap.org/wiki/Pl:Tag:barrier=cattle_grid" />
@@ -1640,7 +1640,7 @@
             <key key="barrier" value="spikes" />
             <reference ref="barrier_5" />
         </item> <!-- Spikes -->
-        <item name="Toll Booth" icon="presets/barrier/toll_station.png" type="node,closedway" preset_name_label="true">
+        <item name="Toll Booth" icon="presets/barrier/toll_station.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:barrier=toll_booth"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:barrier=toll_booth"
                   it.href="http://wiki.openstreetmap.org/wiki/IT:Tag:barrier=toll_booth"
@@ -1655,7 +1655,7 @@
                 <text key="operator" text="Operator" />
             </optional>
         </item> <!-- Toll Booth -->
-        <item name="Border Control" icon="presets/barrier/douane.png" type="node" preset_name_label="true">
+        <item name="Border Control" icon="presets/barrier/douane.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:barrier=border_control" />
             <key key="barrier" value="border_control" />
             <reference ref="barrier_5" />
@@ -1694,7 +1694,7 @@
                 <text key="height" text="Height (meters)" length="7" />
             </optional>
         </item> <!-- Fence -->
-        <item name="Guard Rail" type="way,closedway" preset_name_label="true">
+        <item name="Guard Rail" icon="presets/barrier/guard_rail.svg" type="way,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:barrier=guard_rail"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:barrier=guard_rail"
                   pl.href="http://wiki.openstreetmap.org/wiki/Pl:Tag:barrier=guard_rail" />
@@ -1737,7 +1737,7 @@
             <key key="barrier" value="retaining_wall" />
             <reference ref="optional_height" />
         </item> <!-- Retaining Wall -->
-        <item name="Jersey Barrier" type="node,way,closedway" preset_name_label="true">
+        <item name="Jersey Barrier" icon="presets/barrier/jersey_barrier.svg"  type="node,way,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:barrier=jersey_barrier" />
             <key key="barrier" value="jersey_barrier" />
             <combo key="material" text="Material" values="concrete,plastic" />
@@ -1774,7 +1774,7 @@
             <reference ref="barrier_5" />
             <reference ref="optional_maxwidth" />
         </item> <!-- Entrance (Barrier Opening) -->
-        <item name="Gate" icon="presets/barrier/gate.png" type="node" preset_name_label="true">
+        <item name="Gate" icon="presets/barrier/gate.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:barrier=gate"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:barrier=gate"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:barrier=gate"
@@ -2162,7 +2162,7 @@
             </optional>
         </item> <!-- Culvert -->
         <separator/>
-        <item name="Basin" icon="presets/landuse/landuse_water.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Basin" icon="presets/landuse/basin.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=basin"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=basin"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=basin"
@@ -2173,8 +2173,9 @@
             <space />
             <key key="landuse" value="basin" />
             <text key="name" text="Name" />
+            <combo key="basin" text="Type" values="retention,infiltration,detention" />
         </item> <!-- Basin -->
-        <item name="Reservoir" icon="presets/landuse/landuse_water.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Reservoir" icon="presets/landuse/reservoir.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=reservoir"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=reservoir"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=reservoir"
@@ -2184,6 +2185,7 @@
             <space />
             <key key="landuse" value="reservoir" />
             <text key="name" text="Name" />
+            <combo key="reservoir_type" text="Type" values="evaporator,sewage,tailings,water_storage" />
         </item> <!-- Reservoir -->
         <item name="Covered Reservoir" icon="presets/landmark/reservoir_covered.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=reservoir_covered"
@@ -2211,7 +2213,7 @@
             <space />
             <key key="natural" value="water" />
             <text key="name" text="Name" />
-            <combo key="water" text="Water Body" values="canal,lake,lagoon,oxbow,pond,reservoir,river" match="key" values_searchable="true" />
+            <combo key="water" text="Water Body" values="canal,lake,lagoon,oxbow,pond,reservoir,river,lock,wastewater" match="key" values_searchable="true" />
             <check key="salt" text="Salt Water" disable_off="true" />
             <check key="intermittent" text="Is the water body intermittent (disappears seasonally)?" disable_off="true" />
             <check key="tidal" text="In the tidal range" disable_off="true" />
@@ -2341,7 +2343,7 @@
             </optional>
         </item> <!-- Ferry Route -->
         <separator/>
-        <item name="Marina" icon="presets/nautical/marina.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Marina" icon="presets/nautical/marina.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=marina"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=marina"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:leisure=marina"
@@ -2355,7 +2357,7 @@
             <text key="name" text="Name" />
             <combo key="sanitary_dump_station" text="Dump Station" values="yes,public,customers,no" />
         </item> <!-- Marina -->
-        <item name="Marine Fuel" icon="presets/nautical/marine_fuel.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Marine Fuel" icon="presets/nautical/marine_fuel.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:waterway=fuel"/>
             <space />
             <key key="waterway" value="fuel" />
@@ -2416,7 +2418,7 @@
             <key key="waterway" value="turning_point" />
         </item> <!-- Turning Point -->
         <separator/>
-        <item name="Slipway" icon="presets/nautical/slipway.png" type="node,way" preset_name_label="true">
+        <item name="Slipway" icon="presets/nautical/slipway.svg" type="node,way" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=slipway"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=slipway"
                   fi.href="http://wiki.openstreetmap.org/wiki/Fi:Tag:leisure=slipway"
@@ -2428,7 +2430,7 @@
                 <text key="name" text="Name" />
             </optional>
         </item> <!-- Slipway -->
-        <item name="Boatyard" icon="presets/nautical/boatyard.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Boatyard" icon="presets/nautical/boatyard.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:waterway=boatyard"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:waterway=boatyard"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:waterway=boatyard"
@@ -2440,7 +2442,7 @@
             <key key="waterway" value="boatyard" />
             <text key="name" text="Name" />
         </item> <!-- Boatyard -->
-        <item name="Dock" icon="presets/nautical/boatyard.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Dock" icon="presets/nautical/boatyard.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:waterway=dock"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:waterway=dock"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:waterway=dock"
@@ -2728,7 +2730,7 @@
                 <text key="aerialway:duration" text="Typical journey time in minutes" />
             </optional>
         </item> <!-- Drag Lift -->
-        <item name="Magic Carpet" icon="presets/transport/aerialway/magic_carpet.png" type="way" preset_name_label="true">
+        <item name="Magic Carpet" icon="presets/transport/aerialway/magic_carpet.svg" type="way" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:aerialway=magic_carpet" />
             <space />
             <key key="aerialway" value="magic_carpet" />
@@ -2879,7 +2881,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Fuel -->
-        <item name="Charging Station" icon="presets/vehicle/charging_station.png" type="node" preset_name_label="true">
+        <item name="Charging Station" icon="presets/vehicle/charging_station.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=charging_station"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=charging_station"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=charging_station"
@@ -3144,8 +3146,8 @@
             </optional>
         </item> <!-- Public Bicycle Repair Station -->
     </group> <!-- Bicycle -->
-    <group name="Public Transport" icon="presets/transport/bus_old.svg">
-        <item name="Public Transport Route (Rail)" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+    <group name="Public Transport" icon="presets/transport/bus.svg">
+        <item name="Public Transport Route (Rail)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport#Route" />
             <space />
             <key key="type" value="route" />
@@ -3165,7 +3167,7 @@
                 <role key="" text="route segment" requisite="required" type="way,closedway" member_expression="railway" />
             </roles>
         </item> <!-- Public Transport Route (Rail) -->
-        <item name="Public Transport Route (Bus)" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+        <item name="Public Transport Route (Bus)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport#Route" />
             <space />
             <key key="type" value="route" />
@@ -3185,7 +3187,7 @@
                 <role key="" text="route segment" requisite="required" type="way,closedway" member_expression="highway" />
             </roles>
         </item> <!-- Public Transport Route (Bus) -->
-        <item name="Route Master" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+        <item name="Route Master" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport#Route_master" />
             <space />
             <key key="type" value="route_master" />
@@ -3200,7 +3202,7 @@
                 <role key="" text="route variant/direction (at least 2)" requisite="required" type="relation" member_expression="type=route" /> <!-- FIXME: at least 2 members are required -->
             </roles>
         </item> <!-- Route Master -->
-        <item name="Stop Area" type="relation" icon="presets/misc/interpolation.png" preset_name_label="true">
+        <item name="Stop Area" type="relation" icon="presets/misc/interpolation.svg" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport#Stop_area" />
             <space />
             <key key="type" value="public_transport" />
@@ -3221,7 +3223,7 @@
             </roles>
         </item> <!-- Stop Area -->
         <separator/>
-        <item name="Stop Position" type="node" icon="presets/transport/railway_small.png" preset_name_label="true">
+        <item name="Stop Position" type="node" icon="presets/transport/stop_position.svg" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport#Stop_position" />
             <space />
             <key key="public_transport" value="stop_position" />
@@ -3280,7 +3282,7 @@
             <text key="network" text="Network" />
         </item> <!-- Station -->
         <separator/> <!-- *** Access *** -->
-        <item name="Subway Entrance" icon="presets/transport/underground.png" type="node" preset_name_label="true">
+        <item name="Subway Entrance" icon="presets/transport/underground.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:railway=subway_entrance"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:railway=subway_entrance"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:railway=subway_entrance"
@@ -3311,7 +3313,7 @@
         </item> <!-- Ticket Machine -->
     </group> <!-- Public Transport -->
     <group name="Public Transport (Legacy)" icon="presets/transport/bus_old.svg">
-        <item name="Public transport route (Legacy)" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+        <item name="Public transport route (Legacy)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
             <key key="type" value="route" />
             <combo key="route" text="Route type" values="train,subway,monorail,tram,bus,trolleybus,aerialway,ferry" values_searchable="true" match="keyvalue!" />
             <key key="public_transport:version" value="1" /> <!-- only validate marked relations in order to avoid false positives -->
@@ -3349,7 +3351,7 @@
                 <text key="uic_ref" text="UIC-Reference" />
             </optional>
         </item> <!-- Station -->
-        <item name="Railway Halt" icon="presets/transport/station.png" type="node" preset_name_label="true">
+        <item name="Railway Halt" icon="presets/transport/railway_halt.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:railway=halt"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:railway=halt"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:railway=halt"
@@ -3370,7 +3372,7 @@
                 <text key="name" text="Name" />
             </optional>
         </item> <!-- Tram Stop -->
-        <item name="Railway Platform" icon="presets/transport/platform_rail.png" type="way,closedway,multipolygon" preset_name_label="true">
+        <item name="Railway Platform" icon="presets/transport/platform_rail.svg" type="way,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:railway=platform"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:railway=platform"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:railway=platform"
@@ -3394,7 +3396,7 @@
                 <text key="name" text="Name" />
             </optional>
         </item> <!-- Bus Station -->
-        <item name="Bus Stop" icon="presets/transport/bus_small.png" type="node" preset_name_label="true">
+        <item name="Bus Stop" icon="presets/transport/bus_small.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:highway=bus_stop"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:highway=bus_stop"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:highway=bus_stop"
@@ -3413,7 +3415,7 @@
                 <combo key="tactile_paving" text="Tactile Paving" values="yes,no,incorrect" />
             </optional>
         </item> <!-- Bus Stop -->
-        <item name="Bus Platform" icon="presets/transport/platform_bus.png" type="node,way,closedway,multipolygon" preset_name_label="true">
+        <item name="Bus Platform" icon="presets/transport/platform_bus.svg" type="node,way,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:highway=platform"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:highway=platform"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:highway=platform"
@@ -3454,7 +3456,7 @@
             <reference ref="aerodrome" />
         </item> <!-- Airport Ground -->
         <separator/>
-        <item name="Runway" icon="presets/transport/airport/runway.png" type="way,closedway" preset_name_label="true">
+        <item name="Runway" icon="presets/transport/airport/runway.svg" type="way,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:aeroway=runway"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:aeroway=runway"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:aeroway=runway"
@@ -3466,7 +3468,7 @@
                 <text key="ref" text="Reference" />
             </optional>
         </item> <!-- Runway -->
-        <item name="Taxiway" icon="presets/transport/airport/taxiway.png" type="way,closedway" preset_name_label="true">
+        <item name="Taxiway" icon="presets/transport/airport/taxiway.svg" type="way,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:aeroway=taxiway"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:aeroway=taxiway"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:aeroway=taxiway"
@@ -3497,7 +3499,7 @@
                   ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:aeroway=apron" />
             <key key="aeroway" value="apron" />
         </item> <!-- Apron -->
-        <item name="Plane Parking Position" icon="presets/transport/airport/parking_position.png" type="node,way" preset_name_label="true">
+        <item name="Plane Parking Position" icon="presets/transport/airport/parking_position.svg" type="node,way" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:aeroway=parking_position"
                   pt.href="http://wiki.openstreetmap.org/wiki/Pt:Tag:aeroway=parking_position" />
             <key key="aeroway" value="parking_position" />
@@ -3512,7 +3514,7 @@
             <key key="aeroway" value="hangar" />
             <combo key="building" text="Building" values="hangar,yes" values_context="building" default="hangar" values_searchable="true" />
         </item> <!-- Hangar -->
-        <item name="Beacon" icon="presets/landmark/beacon.png" type="node" preset_name_label="true">
+        <item name="Beacon" icon="presets/landmark/beacon.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=beacon"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=beacon"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:man_made=beacon"
@@ -3662,7 +3664,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Hostel -->
-        <item name="Alpine Hut" icon="presets/accommodation/alpine_hut_blue.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Alpine Hut" icon="presets/accommodation/alpine_hut.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:tourism=alpine_hut"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:tourism=alpine_hut"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:tourism=alpine_hut"
@@ -3682,7 +3684,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Alpine Hut -->
-        <item name="Wilderness Hut" icon="presets/accommodation/wilderness_hut_blue.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Wilderness Hut" icon="presets/accommodation/wilderness_hut.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:tourism=wilderness_hut"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:tourism=wilderness_hut"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:tourism=wilderness_hut"
@@ -3774,7 +3776,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Restaurant -->
-        <item name="Fast Food" icon="presets/food/fastfood.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Fast Food" icon="presets/food/fast_food.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=fast_food"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=fast_food"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=fast_food"
@@ -3795,7 +3797,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Fast Food -->
-        <item name="Food Court" icon="presets/food/food_court.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Food Court" icon="presets/food/food_court.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=food_court"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=food_court"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=food_court"
@@ -3812,7 +3814,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Food Court -->
-        <item name="Cafe" icon="presets/food/cafe.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Cafe" icon="presets/food/cafe.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=cafe"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=cafe"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=cafe"
@@ -3836,7 +3838,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Cafe -->
-        <item name="Ice cream" icon="presets/food/icecream.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Ice cream" icon="presets/food/ice_cream.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:ice_cream" />
             <space />
             <key key="amenity" value="ice_cream" />
@@ -3849,7 +3851,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Ice cream -->
-        <item name="Pub" icon="presets/food/pub.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Pub" icon="presets/food/pub.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=pub"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=pub"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=pub"
@@ -3869,7 +3871,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Pub -->
-        <item name="Beer Garden" icon="presets/food/biergarten.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Beer Garden" icon="presets/food/biergarten.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=biergarten"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=biergarten"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=biergarten"
@@ -4102,7 +4104,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Zoo -->
-        <item name="Dog Park" icon="presets/leisure/dogpark.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Dog Park" icon="presets/leisure/dogpark.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=dog_park"
                   da.href="http://wiki.openstreetmap.org/wiki/Da:Tag:leisure=dog_park"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=dog_park"
@@ -4134,7 +4136,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Amusement/Theme Park -->
-        <item name="Water Park" icon="presets/leisure/water_park.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Water Park" icon="presets/leisure/water_park.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=water_park"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=water_park"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:leisure=water_park"
@@ -4148,6 +4150,15 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Water Park -->
+        <item name="Beach Resort" icon="presets/leisure/beach_resort.svg" type="node,closedway,multipolygon" preset_name_label="true">
+            <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=beach_resort" />
+            <space />
+            <key key="leisure" value="beach_resort" />
+            <reference ref="name_operator_oh_wheelchair" />
+            <reference ref="fee_interval" />
+            <space />
+            <reference ref="link_contact_address_payment" />
+        </item> <!-- Beach Resort -->
         <item name="Swimming Pool" icon="presets/sport/swimming.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=swimming_pool"
                   ca.href="http://wiki.openstreetmap.org/wiki/Ca:Tag:leisure=swimming_pool"
@@ -4171,7 +4182,7 @@
             <text key="ref" text="Reference" />
             <text key="description" text="Description" />
         </item> <!-- Fitness Station -->
-        <item name="Sauna" icon="presets/leisure/sauna.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Sauna" icon="presets/leisure/sauna.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=sauna"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=sauna"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:amenity=sauna"
@@ -4183,7 +4194,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Sauna -->
-        <item name="Horse Riding" icon="presets/leisure/equestrian.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Horse Riding" icon="presets/leisure/horse_riding.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=horse_riding" />
             <space />
             <key key="leisure" value="horse_riding" />
@@ -4208,7 +4219,7 @@
             <key key="leisure" value="playground" />
             <reference ref="name_operator_oh_wheelchair" />
         </item> <!-- Playground -->
-        <item name="Picnic Site" icon="presets/leisure/picnic.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Picnic Site" icon="presets/leisure/picnic.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:tourism=picnic_site"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:tourism=picnic_site"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:tourism=picnic_site"
@@ -4221,14 +4232,14 @@
             <text key="name" text="Name" />
             <check key="fireplace" text="Fireplace" />
         </item> <!-- Picnic Site -->
-        <item name="Picnic Table" icon="presets/leisure/picnic.png" type="node" preset_name_label="true">
+        <item name="Picnic Table" icon="presets/leisure/picnic.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=picnic_table"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=picnic_table" />
             <space />
             <key key="leisure" value="picnic_table" />
             <check key="covered" text="Covered" />
         </item> <!-- Picnic Table -->
-        <item name="Public Grill" icon="presets/leisure/bbq.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Public Grill" icon="presets/leisure/bbq.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=bbq"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=bbq"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=bbq"
@@ -4252,7 +4263,7 @@
             <key key="leisure" value="firepit" />
             <text key="name" text="Name" />
         </item> <!-- Firepit -->
-        <item name="Fishing" icon="presets/sport/fishing.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Fishing" icon="presets/sport/fishing.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=fishing"
                   pl.href="http://wiki.openstreetmap.org/wiki/Pl:Tag:leisure=fishing"
                   pt.href="http://wiki.openstreetmap.org/wiki/Pt:Tag:leisure=fishing"
@@ -4268,7 +4279,7 @@
             <reference ref="name_ref_operator" />
         </item> <!-- Bird Hide -->
         <separator/>
-        <item name="Night Club" icon="presets/leisure/discoball.svg" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Night Club" icon="presets/leisure/nightclub.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=nightclub"
                   da.href="http://wiki.openstreetmap.org/wiki/Da:Tag:amenity=nightclub"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=nightclub"
@@ -4299,7 +4310,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Casino -->
-        <item name="Strip Club" icon="presets/leisure/nightclub.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Strip Club" icon="presets/leisure/stripclub.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=stripclub"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:amenity=stripclub"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=stripclub"
@@ -4313,7 +4324,7 @@
             <space />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Strip Club -->
-        <item name="Brothel" icon="presets/leisure/stripclub.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Brothel" icon="presets/leisure/brothel.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=brothel"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=brothel"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:amenity=brothel"
@@ -4330,7 +4341,7 @@
             <reference ref="link_contact_address_payment" />
         </item> <!-- Brothel -->
     </group> <!-- Leisure -->
-    <group name="Culture" icon="presets/leisure/theater.png">
+    <group name="Culture" icon="presets/leisure/theater.svg">
         <item name="Museum" icon="presets/sightseeing/museum.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:tourism=museum"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:tourism=museum"
@@ -4347,7 +4358,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Museum -->
-        <item name="Theatre" icon="presets/leisure/theater.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Theatre" icon="presets/leisure/theater.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=theatre"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=theatre"
                   fi.href="http://wiki.openstreetmap.org/wiki/Fi:Tag:amenity=theatre"
@@ -4361,7 +4372,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Theatre -->
-        <item name="Library" icon="presets/shop/library.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Library" icon="presets/education/library.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=library"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=library"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=library"
@@ -4377,7 +4388,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Library -->
-        <item name="Arts Centre" icon="presets/service/arts_centre.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Arts Centre" icon="presets/sightseeing/arts_centre.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=arts_centre"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=arts_centre"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=arts_centre"
@@ -4389,7 +4400,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Arts Centre -->
-        <item name="Artwork" icon="presets/service/arts_centre.png" type="node,way,closedway,multipolygon" preset_name_label="true">
+        <item name="Artwork" icon="presets/sightseeing/arts_centre.svg" type="node,way,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:tourism=artwork"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:tourism=artwork"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:tourism=artwork"
@@ -4406,7 +4417,7 @@
             <text key="name" text="Name" />
             <text key="artist_name" text="Artist Name" />
         </item> <!-- Artwork -->
-        <item name="Studio" icon="presets/service/studio.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Studio" icon="presets/service/studio.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=studio"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=studio"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=studio"
@@ -4592,8 +4603,8 @@
             <preset_link preset_name="Building" />
         </item> <!-- Other Place of Worship -->
     </group> <!-- Place of Worship -->
-    <group name="Public Building" icon="presets/service/townhall.png">
-        <item name="Town Hall" icon="presets/service/townhall.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <group name="Public Building" icon="presets/service/townhall.svg">
+        <item name="Town Hall" icon="presets/service/townhall.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=townhall"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=townhall"
                   fi.href="http://wiki.openstreetmap.org/wiki/Fi:Tag:amenity=townhall"
@@ -4607,7 +4618,7 @@
             <reference ref="link_contact_address" />
             <preset_link preset_name="Building" />
         </item> <!-- Town Hall -->
-        <item name="Community Centre" icon="presets/service/community_centre.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Community Centre" icon="presets/service/community_centre.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=community_centre"
                   da.href="http://wiki.openstreetmap.org/wiki/Da:Tag:amenity=community_centre"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=community_centre"
@@ -4622,7 +4633,7 @@
             <reference ref="link_contact_address" />
             <preset_link preset_name="Building" />
         </item> <!-- Community Centre -->
-        <item name="Embassy" icon="presets/service/embassy.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Embassy" icon="presets/service/embassy.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=embassy"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=embassy"
                   fi.href="http://wiki.openstreetmap.org/wiki/Fi:Tag:amenity=embassy"
@@ -4697,7 +4708,7 @@
             <reference ref="link_contact_address" />
             <preset_link preset_name="Building" />
         </item> <!-- Fire Station -->
-        <item name="Post Office" icon="presets/service/post_office.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Post Office" icon="presets/service/post_office.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=post_office"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=post_office"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:amenity=post_office"
@@ -4715,7 +4726,7 @@
             <reference ref="link_contact_address_payment" />
         </item> <!-- Post Office -->
     </group> <!-- Public Buildings -->
-    <group name="Education" icon="presets/education/school.png">
+    <group name="Education" icon="presets/education/school.svg">
         <item name="Kindergarten" icon="presets/education/kindergarten.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=kindergarten"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=kindergarten"
@@ -4731,7 +4742,7 @@
             <reference ref="link_contact_address" />
             <preset_link preset_name="Building" />
         </item> <!-- Kindergarten -->
-        <item name="School" icon="presets/education/school.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="School" icon="presets/education/school.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=school"
                   ar.href="http://wiki.openstreetmap.org/wiki/Ar:Tag:amenity=school"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=school"
@@ -4750,7 +4761,7 @@
             <reference ref="link_contact_address" />
             <preset_link preset_name="Building" />
         </item> <!-- School -->
-        <item name="University" icon="presets/education/university.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="University" icon="presets/education/university.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=university"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=university"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=university"
@@ -4766,7 +4777,7 @@
             <reference ref="name_operator_oh_wheelchair" />
             <reference ref="link_contact_address" />
         </item> <!-- University -->
-        <item name="College" icon="presets/education/college.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="College" icon="presets/education/college.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=college"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:amenity=college"
                   it.href="http://wiki.openstreetmap.org/wiki/IT:Tag:amenity=college"
@@ -4778,7 +4789,7 @@
             <reference ref="name_operator_oh_wheelchair" />
             <reference ref="link_contact_address" />
         </item> <!-- College -->
-         <item name="Driving School" icon="presets/education/driving_school.png" type="node,closedway,multipolygon" preset_name_label="true">
+         <item name="Driving School" icon="presets/education/driving_school.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=driving_school"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=driving_school"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=driving_school"
@@ -5157,7 +5168,7 @@
                 <reference ref="oh_wheelchair" />
             </optional>
         </item> <!-- Shower -->
-        <item name="Post Box" icon="presets/service/post_box.png" type="node" preset_name_label="true">
+        <item name="Post Box" icon="presets/service/post_box.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=post_box"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=post_box"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:amenity=post_box"
@@ -5292,7 +5303,7 @@
             </checkgroup>
             <reference ref="link_contact_address_payment" />
         </item> <!-- Recycling Centre-->
-        <item name="Waste Basket/Trash Can" icon="presets/service/recycling/trash-bin.svg" type="node" preset_name_label="true">
+        <item name="Waste Basket/Trash Can" icon="presets/service/recycling/waste_basket.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=waste_basket"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=waste_basket"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:amenity=waste_basket"
@@ -5303,7 +5314,7 @@
                   ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:amenity=waste_basket" />
             <key key="amenity" value="waste_basket" />
         </item> <!-- Waste Basket/Trash Can -->
-        <item name="Waste Disposal/Dumpster" icon="presets/service/recycling/waste_disposal.png" type="node" preset_name_label="true">
+        <item name="Waste Disposal/Dumpster" icon="presets/service/recycling/waste_disposal.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=waste_disposal"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:amenity=waste_disposal"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:amenity=waste_disposal"
@@ -5329,7 +5340,7 @@
             <combo key="opening_hours" text="Operation times" values="24/7" values_no_i18n="true" />
         </item> <!-- Sanitary Dump Station -->
         <separator/>
-        <item name="Bench" icon="presets/leisure/bench.png" type="node,way" preset_name_label="true">
+        <item name="Bench" icon="presets/leisure/bench.svg" type="node,way" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=bench"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=bench"
                   et.href="http://wiki.openstreetmap.org/wiki/Et:Tag:amenity=bench"
@@ -5363,15 +5374,15 @@
             <text key="name" text="Name" />
             <check key="fireplace" text="Fireplace" />
             <combo key="shelter_type" text="Type of shelter" values_context="shelter" values_searchable="true">
-                <list_entry value="basic_hut" icon="presets/accommodation/basic_hut_blue.png" />
+                <list_entry value="basic_hut" icon="presets/accommodation/basic_hut.svg" />
                 <list_entry value="lean_to" icon="presets/accommodation/shelter_lean_to.svg" />
-                <list_entry value="picnic_shelter" icon="presets/accommodation/shelter_picnic_brown.png" />
-                <list_entry value="public_transport" icon="presets/accommodation/shelter_public_transport_brown.png" />
+                <list_entry value="picnic_shelter" icon="presets/accommodation/shelter_picnic.svg" />
+                <list_entry value="public_transport" icon="presets/accommodation/shelter_public_transport.svg" />
                 <list_entry value="weather_shelter" icon="presets/accommodation/shelter.svg" />
                 <list_entry value="wildlife_hide" icon="presets/accommodation/shelter.svg" />
             </combo>
         </item> <!-- Shelter -->
-        <item name="Hunting Stand" icon="presets/landmark/hunting_stand.png" type="node" preset_name_label="true">
+        <item name="Hunting Stand" icon="presets/landmark/hunting_stand.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=hunting_stand"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=hunting_stand"
                   it.href="http://wiki.openstreetmap.org/wiki/IT:Tag:amenity=hunting_stand"
@@ -5385,7 +5396,7 @@
             <check key="lock" text="Lock" />
         </item> <!-- Hunting Stand -->
         <separator/>
-        <item name="Drinking Water" icon="presets/food/drinking_water.png" type="node" preset_name_label="true">
+        <item name="Drinking Water" icon="presets/food/drinking_water.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=drinking_water"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=drinking_water"
                   el.href="http://wiki.openstreetmap.org/wiki/El:Tag:amenity=drinking_water"
@@ -5449,8 +5460,8 @@
     </group> <!-- Facilities -->
   </group>  <!-- Facilities -->
   <group name="Sports" icon="presets/sport/soccer.svg">
-    <group name="Sport Facilities" icon="presets/sport/stadium.png">
-        <item name="Stadium" icon="presets/sport/stadium.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <group name="Sport Facilities" icon="presets/sport/stadium.svg">
+        <item name="Stadium" icon="presets/sport/stadium.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=stadium"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=stadium"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:leisure=stadium"
@@ -5465,7 +5476,7 @@
             <reference ref="sport" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Stadium -->
-        <item name="Sports Centre" icon="presets/sport/centre.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Sports Centre" icon="presets/sport/sports_centre.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=sports_centre"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=sports_centre"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:leisure=sports_centre"
@@ -5479,7 +5490,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Sports Centre -->
-        <item name="Fitness Centre" icon="presets/sport/fitness_centre.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Fitness Centre" icon="presets/sport/fitness_centre.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=fitness_centre" />
             <space />
             <key key="leisure" value="fitness_centre" />
@@ -5488,7 +5499,7 @@
             <reference ref="link_contact_address_payment" />
             <preset_link preset_name="Building" />
         </item> <!-- Fitness Centre -->
-        <item name="Pitch" icon="presets/sport/pitch.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Pitch" icon="presets/sport/pitch.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=pitch"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=pitch"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:leisure=pitch"
@@ -5506,7 +5517,7 @@
             <combo key="surface" text="Surface" values="artificial_turf,asphalt,clay,concrete,decoturf,grass,sand,tartan,ground" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Pitch -->
-        <item name="Racetrack" icon="presets/sport/track.png" type="node,way,closedway,multipolygon" preset_name_label="true">
+        <item name="Racetrack" icon="presets/sport/track.svg" type="node,way,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=track"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=track"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:leisure=track"
@@ -5668,7 +5679,7 @@
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="pitch,sports_centre,fitness_centre,stadium,track" values_context="running" />
         </item> <!-- Multi -->
-        <item name="Nine-pin Bowling" icon="presets/sport/10pin.svg" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Nine-pin Bowling" icon="presets/sport/9pin.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=9pin"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:sport=9pin" />
             <space />
@@ -5692,7 +5703,7 @@
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="pitch,sports_centre,stadium" />
         </item> <!-- Archery -->
-        <item name="Track and Field Athletics" icon="presets/sport/athletics.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Track and Field Athletics" icon="presets/sport/athletics.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sports=athletics" />
             <space />
             <key key="sport" value="athletics" />
@@ -5729,14 +5740,14 @@
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="pitch,sports_centre,stadium,track" values_context="racing" />
         </item> <!-- Cycling -->
-        <item name="Dog Racing" icon="presets/leisure/dog.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Dog Racing" icon="presets/sport/dog_racing.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=dog_racing" />
             <space />
             <key key="sport" value="dog_racing" />
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="pitch,sports_centre,stadium,track" values_context="racing" />
         </item> <!-- Dog Racing -->
-        <item name="Equestrian" icon="presets/leisure/equestrian.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Equestrian" icon="presets/sport/equestrian.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=equestrian" />
             <space />
             <key key="sport" value="equestrian" />
@@ -5757,7 +5768,7 @@
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="pitch,sports_centre,fitness_centre,stadium" />
         </item> <!-- Gymnastics -->
-        <item name="Ice Skating" icon="presets/sport/skating.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Ice Skating" icon="presets/sport/ice_skating.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=ice_skating" />
             <space />
             <key key="sport" value="ice_skating" />
@@ -5902,7 +5913,7 @@
             <reference ref="name_operator" />
             <combo key="leisure" text="Type" values="stadium,pitch,sports_centre" />
         </item> <!-- Volleyball -->
-        <item name="Beach Volleyball" icon="presets/sport/beachvolleyball.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Beach Volleyball" icon="presets/sport/beachvolleyball.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=beachvolleyball" />
             <space />
             <key key="sport" value="beachvolleyball" />
@@ -5950,21 +5961,21 @@
             <key key="sport" value="croquet" />
             <reference ref="name_leisure_pitch" />
         </item> <!-- Croquet -->
-        <item name="Field Hockey" icon="presets/sport/field_hockey.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Field Hockey" icon="presets/sport/field_hockey.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=field_hockey" />
             <space />
             <key key="sport" value="field_hockey" />
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="pitch,sports_centre,stadium" />
         </item> <!-- Field Hockey -->
-        <item name="Ice Hockey" icon="presets/sport/ice_hockey.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Ice Hockey" icon="presets/sport/ice_hockey.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=ice_hockey" />
             <space />
             <key key="sport" value="ice_hockey" />
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="ice_rink,pitch,sports_centre,stadium" />
         </item> <!-- Ice Hockey -->
-        <item name="Pelota" icon="presets/sport/pelota.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Pelota" icon="presets/sport/pelota.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=pelota"
                   uk.href="http://wiki.openstreetmap.org/wiki/Uk:Tag:sport=pelota" />
             <space />
@@ -5994,7 +6005,7 @@
         </item> <!-- Tennis -->
     </group> <!-- Sport (Ball) -->
     <group name="Motorsport" icon="presets/vehicle/motorbike.svg">
-        <item name="Motorsport" icon="presets/sport/motor.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Motorsport" icon="presets/sport/motor.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=motor"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:sport=motor" />
             <space />
@@ -6002,7 +6013,7 @@
             <text key="name" text="Name" />
             <combo key="leisure" text="Type" values="pitch,sports_centre,stadium,track" values_context="racing" />
         </item> <!-- Motorsport -->
-        <item name="Kart Racing" icon="presets/sport/karting.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Kart Racing" icon="presets/sport/karting.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:sport=karting"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:sport=karting" />
             <space />
@@ -6071,7 +6082,7 @@
                 <combo key="building:levels" text="Levels" values="1,2,3,4,5,6,7,8,9,10,11" text_context="building" />
                 <text key="height" text="Height (meters)" />
             </optional>
-            <preset_link preset_name="Addresses" />
+            <preset_link preset_name="Address" />
         </item> <!-- Building -->
         <item name="Residential Building" icon="presets/landmark/building.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:building"
@@ -6094,7 +6105,7 @@
                 <combo key="building:levels" text="Levels" values="1,2,3,4,5,6,7,8,9,10,11" text_context="building" />
                 <text key="height" text="Height (meters)" />
             </optional>
-            <preset_link preset_name="Addresses" />
+            <preset_link preset_name="Address" />
         </item> <!-- Residential Building -->
         <item name="Building part" icon="presets/landmark/building.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:building:part"
@@ -6112,7 +6123,7 @@
             <text key="height" text="Height (meters)" />
             <text key="min_height" text="Skipped height (meters)" />
         </item> <!-- Building part -->
-        <item name="Entrance" icon="presets/misc/entrance-yes.png" type="node" preset_name_label="true">
+        <item name="Entrance" icon="presets/misc/entrance_yes.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:entrance"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Key:entrance"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Key:entrance"
@@ -6123,12 +6134,12 @@
                   uk.href="http://wiki.openstreetmap.org/wiki/Uk:Key:entrance" />
             <space />
             <combo key="entrance" text="Entrance" values_context="entrance" default="yes" match="key">
-                <list_entry value="yes" icon="presets/misc/entrance-yes.png" />
-                <list_entry value="main" icon="presets/misc/entrance-main.png" />
-                <list_entry value="service" icon="presets/misc/entrance-service.png" />
-                <list_entry value="exit" icon="presets/misc/entrance-exit.png" />
-                <list_entry value="emergency" icon="presets/misc/entrance-emergency.png" />
-                <list_entry value="staircase" icon="presets/misc/entrance-yes.png" />
+                <list_entry value="yes" icon="presets/misc/entrance_yes.svg" />
+                <list_entry value="main" icon="presets/misc/entrance_main.svg" />
+                <list_entry value="service" icon="presets/misc/entrance_service.svg" />
+                <list_entry value="exit" icon="presets/misc/entrance_exit.svg" />
+                <list_entry value="emergency" icon="presets/misc/entrance_emergency.svg" />
+                <list_entry value="staircase" icon="presets/misc/entrance_yes.svg" />
             </combo>
             <combo key="access" text="Access" values="yes,delivery,private,no" />
             <reference ref="wheelchair" />
@@ -6137,7 +6148,7 @@
                 <text key="addr:flats" text="Flat numbers" />
             </optional>
         </item> <!-- Entrance -->
-        <item name="Tower" icon="presets/landmark/tower.png" type="node,closedway" preset_name_label="true">
+        <item name="Tower" icon="presets/landmark/tower.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=tower"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=tower"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:man_made=tower"
@@ -6155,7 +6166,7 @@
                 <text key="operator" text="Operator" />
             </optional>
         </item> <!-- Tower -->
-        <item name="Flagpole" icon="presets/misc/flag.png" type="node" preset_name_label="true">
+        <item name="Flagpole" icon="presets/misc/flag.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=flagpole"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=flagpole"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:man_made=flagpole"
@@ -6176,7 +6187,7 @@
             <key key="man_made" value="works" />
             <text key="name" text="Name" />
         </item> <!-- Works -->
-        <item name="Chimney" icon="presets/landmark/chimney.png" type="node,closedway" preset_name_label="true">
+        <item name="Chimney" icon="presets/landmark/chimney.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=chimney"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=chimney"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:man_made=chimney"
@@ -6301,7 +6312,7 @@
             <key key="man_made" value="embankment" />
         </item> <!-- Embankment -->
         <separator/>
-        <item name="Pipeline" icon="presets/misc/path.png" type="way" preset_name_label="true">
+        <item name="Pipeline" icon="presets/landmark/pipeline.svg" type="way" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=pipeline"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=pipeline"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:man_made=pipeline"
@@ -6348,7 +6359,7 @@
                 <text key="height" text="Height (meters)" length="7" />
             </optional>
         </item> <!-- Water Tower -->
-        <item name="Water Works" icon="presets/landmark/water_works.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Water Works" icon="presets/landmark/water_works.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=water_works"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=water_works"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:man_made=water_works"
@@ -6388,7 +6399,7 @@
             <key key="man_made" value="watermill" />
             <text key="name" text="Name" />
         </item> <!-- Watermill -->
-        <item name="Fountain" icon="presets/misc/fountain.png" type="node,closedway" preset_name_label="true">
+        <item name="Fountain" icon="presets/misc/fountain.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=fountain"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=fountain"
                   fi.href="http://wiki.openstreetmap.org/wiki/Fi:Tag:amenity=fountain"
@@ -6428,7 +6439,7 @@
             <key key="man_made" value="lighthouse" />
             <text key="name" text="Name" />
         </item> <!-- Lighthouse -->
-        <item name="Beacon" icon="presets/landmark/beacon.png" type="node,closedway" preset_name_label="true">
+        <item name="Beacon" icon="presets/landmark/beacon.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=beacon"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:man_made=beacon"
                   ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:man_made=beacon" />
@@ -6436,7 +6447,7 @@
             <key key="man_made" value="beacon" />
             <text key="name" text="Name" />
         </item> <!-- Beacon -->
-        <item name="Street Lamp" icon="presets/misc/streetlamp.png" type="node" preset_name_label="true">
+        <item name="Street Lamp" icon="presets/misc/streetlamp.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:highway=street_lamp"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:highway=street_lamp"
                   pl.href="http://wiki.openstreetmap.org/wiki/Pl:Tag:highway=street_lamp"
@@ -6445,7 +6456,7 @@
             <key key="highway" value="street_lamp" />
             <combo key="opening_hours" text="Operation times" values="Mo-Fr 22:00-05:00" values_no_i18n="true" />
         </item> <!-- Street Lamp -->
-        <item name="Monitoring Station" icon="presets/misc/monitoring_station.png" type="node,closedway" preset_name_label="true">
+        <item name="Monitoring Station" icon="presets/misc/monitoring_station.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=monitoring_station"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=monitoring_station"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:man_made=monitoring_station"
@@ -6497,7 +6508,7 @@
             <text key="ref" text="Reference" />
             <text key="ele" text="Elevation" />
         </item> <!-- Survey Point -->
-        <item name="Surveillance Camera" icon="presets/service/surveillance.png" type="node,closedway" preset_name_label="true">
+        <item name="Surveillance Camera" icon="presets/service/surveillance.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:man_made=surveillance"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:man_made=surveillance"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:man_made=surveillance"
@@ -7097,7 +7108,7 @@
             <key key="historic" value="battlefield" />
             <text key="name" text="Name" />
         </item> <!-- Battlefield -->
-        <item name="Palaeontological Site" icon="presets/sightseeing/palaeontological_site.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Palaeontological Site" icon="presets/sightseeing/palaeontological_site.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:geological=palaeontological_site"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:geological=palaeontological_site"
                   it.href="http://wiki.openstreetmap.org/wiki/IT:Tag:geological=palaeontological_site"
@@ -7175,7 +7186,7 @@
             <text key="start_date" text="Start date" />
             <text key="inscription" text="Inscription" />
         </item> <!-- Wayside Shrine -->
-        <item name="Boundary Stone" icon="presets/misc/boundary_stone.png" type="node,closedway" preset_name_label="true">
+        <item name="Boundary Stone" icon="presets/landmark/boundary_stone.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:historic=boundary_stone"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:historic=boundary_stone"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:historic=boundary_stone"
@@ -7204,7 +7215,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Supermarket -->
-        <item name="Convenience Store" icon="presets/shop/convenience.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Convenience Store" icon="presets/shop/convenience.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=convenience"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=convenience"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=convenience"
@@ -7233,7 +7244,7 @@
             <reference ref="link_contact_address_payment" />
         </item> <!-- Kiosk -->
         <separator/>
-        <item name="Bakery" icon="presets/shop/groceries/bakery.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Bakery" icon="presets/shop/groceries/bakery.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=bakery"
                   ar.href="http://wiki.openstreetmap.org/wiki/Ar:Tag:shop=bakery"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=bakery"
@@ -7250,7 +7261,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Bakery -->
-        <item name="Butcher" icon="presets/shop/groceries/butcher.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Butcher" icon="presets/shop/groceries/butcher.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=butcher"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=butcher"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:shop=butcher"
@@ -7265,7 +7276,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Butcher -->
-        <item name="Seafood" icon="presets/shop/groceries/seafood.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Seafood" icon="presets/shop/groceries/seafood.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=seafood"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=seafood"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:shop=seafood"
@@ -7277,7 +7288,7 @@
             <reference ref="name_operator_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Seafood -->
-        <item name="Deli (Fine Food)" icon="presets/shop/groceries/deli.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Deli (Fine Food)" icon="presets/shop/groceries/deli.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=deli"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=deli"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=deli"
@@ -7290,7 +7301,14 @@
             <reference ref="name_operator_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Deli (Fine Food) -->
-        <item name="Candy Store" icon="presets/shop/groceries/confectionery.svg" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Pastry" icon="presets/shop/groceries/pastry.svg" type="node,closedway,multipolygon" preset_name_label="true">
+            <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=pastry" />
+            <space />
+            <key key="shop" value="pastry" />
+            <reference ref="name_oh_wheelchair" />
+            <reference ref="link_contact_address_payment" />
+        </item> <!-- Pastry -->
+        <item name="Confectionery" icon="presets/shop/groceries/confectionery.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=confectionery"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=confectionery"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:shop=confectionery"
@@ -7304,7 +7322,7 @@
             <key key="shop" value="confectionery" />
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
-        </item> <!-- Candy Store -->
+        </item> <!-- Confectionery -->
         <item name="Tea" icon="presets/shop/groceries/tea.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=tea"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=tea"
@@ -7325,7 +7343,7 @@
             <reference ref="link_contact_address_payment" />
         </item> <!-- Coffee -->
         <separator/>
-        <item name="Public Market" icon="presets/shop/marketplace.png" type="node,way,closedway,multipolygon" preset_name_label="true">
+        <item name="Public Market" icon="presets/shop/marketplace.svg" type="node,way,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=marketplace"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=marketplace"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:amenity=marketplace"
@@ -7341,7 +7359,7 @@
             <text key="website" text="Website" />
             <combo key="organic" text="Organic" values="only,yes,no" />
         </item> <!-- Public Market -->
-        <item name="Greengrocer" icon="presets/shop/groceries/greengrocer.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Greengrocer" icon="presets/shop/groceries/greengrocer.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=greengrocer"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=greengrocer"
                   it.href="http://wiki.openstreetmap.org/wiki/IT:Tag:shop=greengrocer"
@@ -7355,7 +7373,7 @@
             <combo key="organic" text="Organic" values="only,yes,no" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Greengrocer -->
-        <item name="Farm Stand" icon="presets/shop/groceries/apple.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Farm Stand" icon="presets/shop/groceries/farm.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=farm"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=farm"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=farm"
@@ -7439,7 +7457,7 @@
             <combo key="organic" text="Organic" values="only,yes,no" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Clothes -->
-        <item name="Boutique" icon="presets/shop/boutique.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Boutique" icon="presets/shop/boutique.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=boutique"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=boutique"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=boutique"
@@ -7515,7 +7533,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Tailor -->
-        <item name="Fabric" icon="presets/shop/fabric.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Fabric" icon="presets/shop/fabric.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=fabric"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=fabric"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:shop=fabric"
@@ -7548,7 +7566,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Computer -->
-        <item name="Mobile Phone" icon="presets/shop/mobile_phone.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Mobile Phone" icon="presets/shop/mobile_phone.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=mobile_phone"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=mobile_phone"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:shop=mobile_phone"
@@ -7558,7 +7576,7 @@
             <reference ref="name_operator_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Mobile Phone -->
-        <item name="Vacuum Cleaner" icon="presets/shop/vacuum_cleaner.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Vacuum Cleaner" icon="presets/shop/vacuum_cleaner.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=vacuum_cleaner"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:shop=vacuum_cleaner"
                   ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:shop=vacuum_cleaner" />
@@ -7578,7 +7596,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Hifi -->
-        <item name="Video" icon="presets/shop/video.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Video" icon="presets/shop/video.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=video"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=video"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=video"
@@ -7589,7 +7607,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Video -->
-        <item name="Video Games" icon="presets/shop/video_games.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Video Games" icon="presets/shop/video_games.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=video_games" />
             <space />
             <key key="shop" value="video_games" />
@@ -7682,7 +7700,7 @@
             <reference ref="name_brand_operator_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Furniture -->
-        <item name="Kitchen" icon="presets/shop/kitchen.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Kitchen" icon="presets/shop/kitchen.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=kitchen"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=kitchen"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=kitchen"
@@ -7705,7 +7723,7 @@
             <reference ref="name_brand_operator_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Houseware -->
-        <item name="Curtain" icon="presets/shop/curtain.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Curtain" icon="presets/shop/curtain.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=curtain"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=curtain"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:shop=curtain"
@@ -7726,7 +7744,7 @@
             <reference ref="name_operator_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Art -->
-        <item name="Frame" icon="presets/shop/frame.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Frame" icon="presets/shop/frame.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=frame"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=frame"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=frame"
@@ -7771,8 +7789,8 @@
             <reference ref="link_contact_address_payment" />
         </item> <!-- Antiques -->
     </group> <!-- Home decoration -->
-    <group name="Printed Material" icon="presets/shop/stationery.png">
-        <item name="Stationery" icon="presets/shop/stationery.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <group name="Printed Material" icon="presets/shop/stationery.svg">
+        <item name="Stationery" icon="presets/shop/stationery.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=stationery"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=stationery"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:shop=stationery"
@@ -7783,7 +7801,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Stationery -->
-        <item name="Copy Shop" icon="presets/shop/copyshop.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Copy Shop" icon="presets/shop/copyshop.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=copyshop"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=copyshop"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:shop=copyshop"
@@ -7918,7 +7936,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Optician -->
-        <item name="Hearing Aids" icon="presets/shop/hearing_aids.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Hearing Aids" icon="presets/shop/hearing_aids.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=hearing_aids"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=hearing_aids"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:shop=hearing_aids"
@@ -7949,7 +7967,7 @@
             <reference ref="name_operator_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Jewellery -->
-        <item name="Erotic" icon="presets/shop/erotic.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Erotic" icon="presets/shop/erotic.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=erotic"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=erotic"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:shop=erotic"
@@ -8027,7 +8045,7 @@
             <reference ref="name_brand_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Do-It-Yourself Store -->
-        <item name="Hardware" icon="presets/shop/hardware.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Hardware" icon="presets/shop/hardware.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=hardware"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=hardware"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:shop=hardware"
@@ -8038,7 +8056,7 @@
             <reference ref="name_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Hardware -->
-        <item name="Paint" icon="presets/shop/paint.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Paint" icon="presets/shop/paint.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=paint"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=paint"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:shop=paint"
@@ -8050,7 +8068,7 @@
             <reference ref="link_contact_address_payment" />
         </item> <!-- Paint -->
         <separator/>
-        <item name="Travel Agency" icon="presets/shop/travel.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Travel Agency" icon="presets/shop/travel_agency.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=travel_agency"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=travel_agency"
                   pl.href="http://wiki.openstreetmap.org/wiki/Pl:Tag:shop=travel_agency"
@@ -8060,7 +8078,7 @@
             <reference ref="name_brand_oh_wheelchair" />
             <reference ref="link_contact_address_payment" />
         </item> <!-- Travel Agency -->
-        <item name="Musical Instrument" icon="presets/shop/musical_instrument.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Musical Instrument" icon="presets/shop/musical_instrument.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=musical_instrument"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=musical_instrument"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:shop=musical_instrument"
@@ -8098,7 +8116,7 @@
             </optional>
             <reference ref="link_contact_address_payment" />
         </item> <!-- Gift/Souvenir -->
-        <item name="Variety Store" icon="presets/shop/variety_store.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Variety Store" icon="presets/shop/variety_store.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:shop=variety_store"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:shop=variety_store"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:shop=variety_store"
@@ -8179,7 +8197,7 @@
               ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:amenity=vending_machine" />
         <space />
         <key key="amenity" value="vending_machine" />
-        <multiselect key="vending" text="Vending products" values="animal_food;bicycle_tube;cigarettes;condoms;drinks;excrement_bags;food;milk;newspapers;parking_tickets;photos;public_transport_plans;public_transport_tickets;SIM_cards;stamps;sweets;tampons;telephone_vouchers;toys;vouchers" values_searchable="true" />
+        <multiselect key="vending" text="Vending products" values="admission_tickets;animal_feed;bicycle_tube;cigarettes;condoms;drinks;elongated_coin;excrement_bags;food;milk;newspapers;parking_tickets;parcel_pickup;parcel_mail_in;photos;public_transport_plans;public_transport_tickets;SIM_cards;stamps;sweets;telephone_vouchers;toys" values_searchable="true" />
         <text key="operator" text="Operator" />
         <text key="ref" text="Reference number" />
         <preset_link preset_name="Payment Methods" />
@@ -8461,7 +8479,7 @@
         <reference ref="link_contact_address" />
     </item> <!-- Telecommunication -->
   </group> <!-- Offices -->
-  <group name="Craft" icon="presets/craft/painter.png">
+  <group name="Craft" icon="presets/craft/painter.svg">
     <item name="Carpenter" type="node,closedway,multipolygon" preset_name_label="true">
         <link href="http://wiki.openstreetmap.org/wiki/Tag:craft=carpenter" />
         <space />
@@ -8504,7 +8522,7 @@
         <reference ref="name_operator_oh_wheelchair" />
         <reference ref="link_contact_address" />
     </item> <!-- Brewery -->
-    <item name="Plumber" icon="presets/craft/plumber.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <item name="Plumber" icon="presets/craft/plumber.svg" type="node,closedway,multipolygon" preset_name_label="true">
         <link href="http://wiki.openstreetmap.org/wiki/Tag:craft=plumber" />
         <space />
         <key key="craft" value="plumber" />
@@ -8539,7 +8557,7 @@
         <reference ref="name_operator_oh_wheelchair" />
         <reference ref="link_contact_address" />
     </item> <!-- Hvac -->
-    <item name="Painter" icon="presets/craft/painter.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <item name="Painter" icon="presets/craft/painter.svg" type="node,closedway,multipolygon" preset_name_label="true">
         <link href="http://wiki.openstreetmap.org/wiki/Tag:craft=painter" />
         <space />
         <key key="craft" value="painter" />
@@ -8560,7 +8578,7 @@
         <reference ref="name_operator_oh_wheelchair" />
         <reference ref="link_contact_address" />
     </item> <!-- Handicraft -->
-    <item name="Pottery" icon="presets/craft/pottery.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <item name="Pottery" icon="presets/craft/pottery.svg" type="node,closedway,multipolygon" preset_name_label="true">
         <link href="http://wiki.openstreetmap.org/wiki/Tag:craft=pottery" />
         <space />
         <key key="craft" value="pottery" />
@@ -8588,7 +8606,7 @@
         <reference ref="name_operator_oh_wheelchair" />
         <reference ref="link_contact_address" />
     </item> <!-- Roofer -->
-    <item name="Beekeeper" type="node,closedway,multipolygon" preset_name_label="true">
+    <item name="Beekeeper" icon="presets/craft/beekeeper.svg" type="node,closedway,multipolygon" preset_name_label="true">
         <link href="http://wiki.openstreetmap.org/wiki/Tag:craft=beekeeper" />
         <space />
         <key key="craft" value="beekeeper" />
@@ -8609,7 +8627,7 @@
         <reference ref="name_operator_oh_wheelchair" />
         <reference ref="link_contact_address" />
     </item> <!-- Locksmith -->
-    <item name="Window construction" icon="presets/craft/window_construction.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <item name="Window construction" icon="presets/craft/window_construction.svg" type="node,closedway,multipolygon" preset_name_label="true">
         <link href="http://wiki.openstreetmap.org/wiki/Tag:craft=window_construction" />
         <space />
         <key key="craft" value="window_construction" />
@@ -8623,7 +8641,7 @@
         <reference ref="name_operator_oh_wheelchair" />
         <reference ref="link_contact_address" />
     </item> <!-- Upholsterer -->
-    <item name="Tiler" icon="presets/craft/tiler.png" type="node,closedway,multipolygon" preset_name_label="true">
+    <item name="Tiler" icon="presets/craft/tiler.svg" type="node,closedway,multipolygon" preset_name_label="true">
         <link href="http://wiki.openstreetmap.org/wiki/Tag:craft=tiler" />
         <space />
         <key key="craft" value="tiler" />
@@ -8632,8 +8650,8 @@
     </item> <!-- Tiler -->
   </group> <!-- Craft -->
   <group name="Geography" icon="presets/landmark/peak.svg">
-    <group name="Boundaries" icon="presets/misc/boundaries.png">
-        <item name="Administrative" icon="presets/misc/boundaries.png" type="way,closedway,relation" preset_name_label="true">
+    <group name="Boundaries" icon="presets/misc/boundaries.svg">
+        <item name="Administrative" icon="presets/misc/boundaries.svg" type="way,closedway,relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:boundary=administrative"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:boundary=administrative"
                   hu.href="http://wiki.openstreetmap.org/wiki/Hu:Tag:boundary=administrative"
@@ -8647,7 +8665,7 @@
             <combo key="admin_level" text="Administrative level" values="1,2,3,4,5,6,7,8,9,10,11" />
             <check key="maritime" text="Maritime" disable_off="true" />
         </item> <!-- Administrative -->
-        <item name="Political" icon="presets/misc/boundaries.png" type="closedway,relation" preset_name_label="true">
+        <item name="Political" icon="presets/misc/boundaries.svg" type="closedway,relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:boundary=political"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:boundary=political"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:boundary=political"
@@ -8657,7 +8675,7 @@
             <combo key="political_division" text="Division" values="canton,linguistic_community,ward" />
             <text key="name" text="Name" />
         </item> <!-- Political -->
-        <item name="Postal Code" icon="presets/misc/boundaries.png" type="way,closedway,relation" preset_name_label="true">
+        <item name="Postal Code" icon="presets/misc/boundaries.svg" type="way,closedway,relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:boundary=postal_code"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:boundary=postal_code"
                   ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:boundary=postal_code" />
@@ -8665,7 +8683,7 @@
             <key key="boundary" value="postal_code" />
             <text key="postal_code" text="Postal Code" />
         </item> <!-- Postal Code -->
-        <item name="National Park" icon="presets/misc/boundaries.png" type="closedway,relation" preset_name_label="true">
+        <item name="National Park" icon="presets/misc/boundaries.svg" type="closedway,relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:boundary=national_park"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:boundary=national_park"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:boundary=national_park"
@@ -8674,7 +8692,7 @@
             <key key="boundary" value="national_park" />
             <text key="name" text="Name" />
         </item> <!-- National Park -->
-        <item name="Protected Area" icon="presets/misc/boundaries.png" type="closedway,relation" preset_name_label="true">
+        <item name="Protected Area" icon="presets/misc/boundaries.svg" type="closedway,relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:boundary=protected_area"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:boundary=protected_area"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:boundary=protected_area"
@@ -8691,7 +8709,7 @@
                 <text key="start_date" text="Start date" />
             </optional>
         </item> <!-- Protected Area -->
-        <item name="Maritime" icon="presets/misc/boundaries.png" type="way,closedway,relation" preset_name_label="true">
+        <item name="Maritime" icon="presets/misc/boundaries.svg" type="way,closedway,relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:boundary=maritime"
                   no.href="http://wiki.openstreetmap.org/wiki/No:Tag:boundary=maritime"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:boundary=maritime" />
@@ -8701,8 +8719,8 @@
             <text key="name" text="Name" />
         </item> <!-- Maritime -->
     </group> <!-- Boundaries -->
-    <group name="Places" icon="presets/place/settlement/isolated_dwelling.png">
-        <item name="Continent" icon="presets/place/settlement/capital.png" type="node,closedway" preset_name_label="true">
+    <group name="Places" icon="presets/place/isolated_dwelling.svg">
+        <item name="Continent" icon="presets/place/capital.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=continent"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=continent"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:place=continent"
@@ -8711,7 +8729,7 @@
             <key key="place" value="continent" />
             <reference ref="name_wikipedia" />
         </item> <!-- Continent -->
-        <item name="Country" icon="presets/place/settlement/capital.png" type="node,closedway" preset_name_label="true">
+        <item name="Country" icon="presets/place/capital.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=country"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=country"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:place=country"
@@ -8720,7 +8738,7 @@
             <key key="place" value="country" />
             <reference ref="name_wikipedia" />
         </item> <!-- Country -->
-        <item name="State" icon="presets/place/settlement/capital.png" name_context="place" type="node,closedway" preset_name_label="true">
+        <item name="State" icon="presets/place/capital.svg" name_context="place" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=state"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=state"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:place=state"
@@ -8729,14 +8747,14 @@
             <key key="place" value="state" />
             <reference ref="name_wikipedia" />
         </item> <!-- State -->
-        <item name="Region" icon="presets/place/settlement/capital.png" type="node,closedway" preset_name_label="true">
+        <item name="Region" icon="presets/place/capital.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=region"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:place=region" />
             <space />
             <key key="place" value="region" />
             <reference ref="name_wikipedia" />
         </item> <!-- Region -->
-        <item name="County" icon="presets/place/settlement/capital.png" type="node,closedway" preset_name_label="true">
+        <item name="County" icon="presets/place/capital.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=county"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=county"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:place=county"
@@ -8747,7 +8765,7 @@
             <reference ref="population_postcode_website" />
         </item> <!-- County -->
         <separator/>
-        <item name="City" icon="presets/place/settlement/city.png" type="node,closedway" preset_name_label="true">
+        <item name="City" icon="presets/place/city.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=city"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=city"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:place=city"
@@ -8760,7 +8778,7 @@
             <reference ref="name_wikipedia" />
             <reference ref="population_postcode_website" />
         </item> <!-- City -->
-        <item name="Town" icon="presets/place/settlement/town.png" type="node,closedway" preset_name_label="true">
+        <item name="Town" icon="presets/place/town.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=town"
                   da.href="http://wiki.openstreetmap.org/wiki/Da:Tag:place=town"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=town"
@@ -8774,7 +8792,7 @@
             <reference ref="name_wikipedia" />
             <reference ref="population_postcode_website" />
         </item> <!-- Town -->
-        <item name="Village" icon="presets/place/settlement/village.png" type="node,closedway" preset_name_label="true">
+        <item name="Village" icon="presets/place/village.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=village"
                   da.href="http://wiki.openstreetmap.org/wiki/Da:Tag:place=village"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=village"
@@ -8790,7 +8808,7 @@
             <reference ref="name_wikipedia" />
             <reference ref="population_postcode_website" />
         </item> <!-- Village -->
-        <item name="Hamlet" icon="presets/place/settlement/hamlet.png" type="node,closedway" preset_name_label="true">
+        <item name="Hamlet" icon="presets/place/hamlet.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=hamlet"
                   da.href="http://wiki.openstreetmap.org/wiki/Da:Tag:place=hamlet"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=hamlet"
@@ -8804,7 +8822,7 @@
             <reference ref="name_wikipedia" />
             <reference ref="population_postcode_website" />
         </item> <!-- Hamlet -->
-        <item name="Isolated Dwelling" icon="presets/place/settlement/isolated_dwelling.png" type="node,closedway" preset_name_label="true">
+        <item name="Isolated Dwelling" icon="presets/place/isolated_dwelling.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=isolated_dwelling"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=isolated_dwelling"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:place=isolated_dwelling"
@@ -8817,7 +8835,7 @@
             <reference ref="population_postcode_website" />
         </item> <!-- Isolated Dwelling -->
         <separator/>
-        <item name="Suburb" icon="presets/place/settlement/suburb.png" type="node,closedway" preset_name_label="true">
+        <item name="Suburb" icon="presets/place/suburb.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=suburb"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=suburb"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:place=suburb"
@@ -8831,7 +8849,7 @@
             <reference ref="name_wikipedia" />
             <reference ref="population_postcode_website" />
         </item> <!-- Suburb -->
-        <item name="Neighbourhood" icon="presets/place/settlement/neighbourhood.png" type="node,closedway" preset_name_label="true">
+        <item name="Neighbourhood" icon="presets/place/neighbourhood.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=neighbourhood"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:place=neighbourhood"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:place=neighbourhood"
@@ -8844,7 +8862,7 @@
             <text key="population" text="Population" />
             <text key="website" text="Website" />
         </item> <!-- Neighbourhood -->
-        <item name="Farm" icon="presets/place/settlement/farm.png" type="node,closedway" preset_name_label="true">
+        <item name="Farm" icon="presets/place/farm.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:place=farm"
                   pl.href="http://wiki.openstreetmap.org/wiki/Pl:Tag:place=farm"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:place=farm" />
@@ -8970,7 +8988,7 @@
             <text key="name" text="Name" />
             <text key="height" text="Height (meters)" />
         </item> <!-- Cliff -->
-        <item name="Cave Entrance" icon="presets/landmark/cave_entrance.png" type="node,closedway" preset_name_label="true">
+        <item name="Cave Entrance" icon="presets/landmark/cave_entrance.svg" type="node,closedway" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:natural=cave_entrance"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:natural=cave_entrance"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:natural=cave_entrance"
@@ -9120,7 +9138,7 @@
             <text key="name" text="Name" />
             <combo key="grassland" text="Type" values="pampas,prairie,puszta,savanna,steppe,veld" />
         </item> <!-- Grassland -->
-        <item name="Nature Reserve" icon="presets/leisure/nature_reserve.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Nature Reserve" icon="presets/leisure/nature_reserve.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=nature_reserve"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=nature_reserve"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:leisure=nature_reserve"
@@ -9251,8 +9269,8 @@
             </optional>
         </item> <!-- Stone -->
     </group> <!-- Nature -->
-    <group name="Land use" icon="presets/landuse/landuse.png">
-        <item name="Farmyard" icon="presets/landuse/farmyard.png" type="closedway,multipolygon" preset_name_label="true">
+    <group name="Land use" icon="presets/landuse/farmland.svg">
+        <item name="Farmyard" icon="presets/landuse/farmyard.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=farmyard"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=farmyard"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=farmyard"
@@ -9264,7 +9282,7 @@
             <key key="landuse" value="farmyard" />
             <text key="name" text="Name" />
         </item> <!-- Farmyard -->
-        <item name="Farmland" icon="presets/landuse/farmland.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Farmland" icon="presets/landuse/farmland.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=farmland"
                   ca.href="http://wiki.openstreetmap.org/wiki/Ca:Tag:landuse=farmland"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=farmland"
@@ -9304,7 +9322,7 @@
             <text key="name" text="Name" />
             <combo key="trees" text="Trees" values="olive_trees,apple_trees,oil_palms,orange_trees,almond_trees,banana_plants,coconut_palms,hazel_plants,cherry_trees,persimmon_trees,walnut_trees,plum_trees,peach_trees,tea_plants" />
         </item> <!-- Orchard -->
-        <item name="Vineyard" icon="presets/landuse/vineyard.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Vineyard" icon="presets/landuse/vineyard.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=vineyard"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=vineyard"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=vineyard"
@@ -9315,7 +9333,7 @@
             <key key="landuse" value="vineyard" />
             <text key="name" text="Name" />
         </item> <!-- Vineyard -->
-        <item name="Greenhouse Horticulture" icon="presets/landuse/greenhouse_horticulture.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Greenhouse Horticulture" icon="presets/landuse/greenhouse_horticulture.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=greenhouse_horticulture"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=greenhouse_horticulture"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=greenhouse_horticulture"
@@ -9330,7 +9348,7 @@
             <text key="name" text="Name" />
             <text key="operator" text="Operator" />
         </item> <!-- Greenhouse Horticulture -->
-        <item name="Plant Nursery" icon="presets/landmark/plant.svg" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Plant Nursery" icon="presets/landuse/plant_nursery.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=plant_nursery"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=plant_nursery"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=plant_nursery"
@@ -9345,6 +9363,14 @@
             <text key="genus" text="Genus" />
             <text key="species" text="Species" />
         </item> <!-- Plant Nursery -->
+        <item name="Aquaculture" icon="presets/landuse/aquaculture.svg" type="closedway,multipolygon" preset_name_label="true">
+            <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=aquaculture" />
+            <space />
+            <key key="landuse" value="aquaculture" />
+            <text key="name" text="Name" />
+            <text key="operator" text="Operator" />
+            <combo key="aquaculture" text="Aquaculture" values="shrimp,fish,mussels" />
+        </item> <!-- Aquaculture -->
         <item name="Allotments" icon="presets/landuse/allotments.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=allotments"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=allotments"
@@ -9360,7 +9386,7 @@
             <text key="name" text="Name" />
         </item> <!-- Allotments -->
         <separator/>
-        <item name="Garden" icon="presets/leisure/garden.png" type="node,closedway,multipolygon" preset_name_label="true">
+        <item name="Garden" icon="presets/leisure/garden.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=garden"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=garden"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:leisure=garden"
@@ -9386,7 +9412,7 @@
             <key key="landuse" value="grass" />
             <text key="name" text="Name" />
         </item> <!-- Grass -->
-        <item name="Village Green" icon="presets/leisure/common.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Village Green" icon="presets/leisure/common.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=village_green"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=village_green"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=village_green"
@@ -9400,7 +9426,7 @@
             <key key="landuse" value="village_green" />
             <text key="name" text="Name" />
         </item> <!-- Village Green -->
-        <item name="Common" icon="presets/leisure/common.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Common" icon="presets/leisure/common.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=common"
                   pt.href="http://wiki.openstreetmap.org/wiki/Pt:Tag:leisure=common"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:leisure=common"
@@ -9410,7 +9436,7 @@
             <key key="leisure" value="common" />
             <text key="name" text="Name" />
         </item> <!-- Common -->
-        <item name="Park" icon="presets/leisure/park.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Park" icon="presets/leisure/park.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:leisure=park"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:leisure=park"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Tag:leisure=park"
@@ -9423,7 +9449,7 @@
             <key key="leisure" value="park" />
             <text key="name" text="Name" />
         </item> <!-- Park -->
-        <item name="Recreation Ground" icon="presets/leisure/common.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Recreation Ground" icon="presets/leisure/common.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=recreation_ground"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=recreation_ground"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=recreation_ground"
@@ -9528,7 +9554,7 @@
             <key key="landuse" value="industrial" />
             <text key="name" text="Name" />
         </item> <!-- Industrial -->
-        <item name="Garages" icon="presets/landuse/garages.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Garages" icon="presets/landuse/garages.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=garages"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=garages"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=garages"
@@ -9541,7 +9567,7 @@
             <text key="name" text="Name" />
             <text key="operator" text="Operator" />
         </item> <!-- Garages -->
-        <item name="Railway Land" icon="presets/landuse/rail_light.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Railway Land" icon="presets/landuse/railway.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=railway"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=railway"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=railway"
@@ -9578,7 +9604,7 @@
             <key key="landuse" value="construction" />
             <text key="name" text="Name" />
         </item> <!-- Construction Area -->
-        <item name="Brownfield" icon="presets/landuse/landuse.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Brownfield" icon="presets/landuse/brownfield.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=brownfield"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=brownfield"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=brownfield"
@@ -9591,7 +9617,7 @@
             <key key="landuse" value="brownfield" />
             <text key="name" text="Name" />
         </item> <!-- Brownfield -->
-        <item name="Greenfield" icon="presets/landuse/landuse.png" type="closedway,multipolygon" preset_name_label="true">
+        <item name="Greenfield" icon="presets/landuse/greenfield.svg" type="closedway,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:landuse=greenfield"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Tag:landuse=greenfield"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:landuse=greenfield"
@@ -9628,8 +9654,8 @@
         </item> <!-- Quarry -->
     </group> <!-- Landuse -->
   </group> <!-- Geography -->
-    <group name="Annotation" icon="presets/misc/addresses.png">
-        <item name="Name" icon="presets/misc/message.png" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
+    <group name="Annotation" icon="presets/misc/housenumber.svg">
+        <item name="Name" icon="presets/misc/name.svg" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:name"
                   ar.href="http://wiki.openstreetmap.org/wiki/Ar:Key:name"
                   ca.href="http://wiki.openstreetmap.org/wiki/Ca:Key:name"
@@ -9660,7 +9686,7 @@
                 <text key="short_name" text="Common name abbreviation" match="key" />
             </optional>
         </item> <!-- Name -->
-        <item name="Addresses" icon="presets/misc/addresses.png" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
+        <item name="Address" icon="presets/misc/housenumber.svg" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:addr"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Key:addr"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Key:addr"
@@ -9695,8 +9721,8 @@
                 <!--  US States as defined in ISO 3166-2 -->
                 <combo key="addr:state" text="State" text_context="addr:" values="AL,AK,AZ,AR,CA,CO,CT,DE,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,DC,AS,GU,MP,PR,UM,VI" use_last_as_default="force" match="key" />
             </optional>
-        </item> <!-- Addresses -->
-        <item name="Address Interpolation" icon="presets/misc/interpolation.png" type="way" preset_name_label="true">
+        </item> <!-- Address -->
+        <item name="Address Interpolation" icon="presets/misc/interpolation.svg" type="way" preset_name_label="true">
            <link href="http://wiki.openstreetmap.org/wiki/Key:addr"
                  de.href="http://wiki.openstreetmap.org/wiki/DE:Key:addr"
                  es.href="http://wiki.openstreetmap.org/wiki/ES:Key:addr"
@@ -9715,7 +9741,7 @@
                 <combo key="addr:inclusion" text="Accuracy" values="actual,estimate,potential" match="key" />
             </optional>
         </item> <!-- Address Interpolation -->
-        <item name="Contact (Common Schema)" icon="presets/misc/contact.png" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
+        <item name="Contact (Common Schema)" icon="presets/misc/contact.svg" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Annotations"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Annotations"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Annotations"
@@ -9731,7 +9757,7 @@
             <text key="wikipedia" text="Wikipedia" />
             <text key="image" text="Image" />
         </item> <!-- Contact (Common Schema) -->
-        <item name="Contact (Schema with 'contact:*' Prefix)" icon="presets/misc/contact.png" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
+        <item name="Contact (Schema with 'contact:*' Prefix)" icon="presets/misc/contact.svg" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:contact"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Key:contact"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Key:contact"
@@ -9770,7 +9796,7 @@
             <preset_link preset_name="Note" />
             <preset_link preset_name="Fixme" />
         </item> <!-- Description -->
-        <item name="Note" icon="presets/misc/note-annotation.png" name_context="the tag note=*" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
+        <item name="Note" icon="presets/misc/note.svg" name_context="the tag note=*" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:note"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Key:note"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Key:note"
@@ -9790,7 +9816,7 @@
             <preset_link preset_name="Fixme" />
             <preset_link preset_name="Description" />
         </item> <!-- Note -->
-        <item name="Fixme" icon="presets/misc/fixme-annotation.png" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
+        <item name="Fixme" icon="presets/misc/fixme.svg" type="node,way,closedway,relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:fixme"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Key:fixme"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Key:fixme"
@@ -9810,8 +9836,8 @@
             <preset_link preset_name="Description" />
         </item> <!-- Fixme -->
     </group> <!-- Annotation -->
-    <group name="Relations" icon="presets/misc/relations.png">
-        <item name="Multipolygon" icon="presets/misc/multipolygon.png" type="relation,multipolygon" preset_name_label="true">
+    <group name="Relations" icon="presets/misc/relations.svg">
+        <item name="Multipolygon" icon="presets/misc/multipolygon.svg" type="relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Relation:multipolygon"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Relation:multipolygon"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Relation:multipolygon"
@@ -9832,7 +9858,7 @@
                 <role key="inner" text="inner segment" requisite="optional" type="way,closedway" />
             </roles>
         </item> <!-- Multipolygon -->
-        <item name="Boundary" icon="presets/misc/boundaries.png" type="relation,multipolygon" preset_name_label="true">
+        <item name="Boundary" icon="presets/misc/boundaries.svg" type="relation,multipolygon" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Relation:boundary"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Relation:boundary"
                   es.href="http://wiki.openstreetmap.org/wiki/ES:Relation:boundary"
@@ -9917,8 +9943,8 @@
             </roles>
         </item> <!-- Enforcement -->
         <separator/>
-        <group name="Routes" icon="presets/misc/path.png">
-            <item name="Bicycle Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+        <group name="Routes" icon="presets/misc/route.svg">
+            <item name="Bicycle Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=bicycle"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Cycle_routes"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Cycle_routes"
@@ -9940,7 +9966,7 @@
                     <role key="backward" text="backward segment" requisite="optional" type="way,closedway" />
                 </roles>
             </item> <!-- Bicycle Route -->
-            <item name="Mountain Biking Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Mountain Biking Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Mountain_biking"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Mountain_biking"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Mountain_biking"
@@ -9963,7 +9989,7 @@
                     <role key="backward" text="backward segment" requisite="optional" type="way,closedway" />
                 </roles>
             </item> <!-- Mountain Biking Route -->
-            <item name="Hiking Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Hiking Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=hiking#Tagging_walking_and_hiking_Route_Networks"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Hiking"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Hiking"
@@ -9987,7 +10013,7 @@
                     <role key="" text="natural" requisite="optional" type="node,closedway" member_expression="natural=peak OR natural=volcano OR mountain_pass=yes OR natural=water OR tourism=viewpoint OR amenity=drinking_water OR natural=spring OR place=locality"/>
                 </roles>
             </item> <!-- Hiking Route -->
-            <item name="Walking Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Walking Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=foot" />
                 <space/>
                 <key key="type" value="route"/>
@@ -10003,7 +10029,7 @@
                     <role key="" text="natural" requisite="optional" type="node,closedway" member_expression="natural=peak OR natural=volcano OR mountain_pass=yes OR natural=water OR tourism=viewpoint OR amenity=drinking_water OR natural=spring OR place=locality"/>
                 </roles>
             </item> <!-- Walking Route -->
-            <item name="Riding Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Riding Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=horse" />
                 <space/>
                 <key key="type" value="route"/>
@@ -10019,7 +10045,7 @@
                     <role key="" text="natural" requisite="optional" type="node,closedway" member_expression="natural=peak OR natural=volcano OR mountain_pass=yes OR natural=water OR tourism=viewpoint OR amenity=drinking_water OR natural=spring OR place=locality"/>
                 </roles>
             </item> <!-- Riding Route -->
-            <item name="Piste Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Piste Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=piste"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:route=piste"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Tag:route=piste" />
@@ -10041,7 +10067,7 @@
                     <role key="start" text="entry points" requisite="optional" type="node" />
                 </roles>
             </item> <!-- Piste Route -->
-            <item name="Ski Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Ski Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=ski"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:route=ski" />
                 <space/>
@@ -10063,7 +10089,7 @@
                 </roles>
             </item> <!-- Ski Route -->
             <separator/>
-            <item name="Detour Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Detour Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=detour"
                   pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:route=detour" />
                 <space/>
@@ -10080,7 +10106,7 @@
                     <role key="fork" text="fork node for alternative routes" requisite="optional" type="node"/>
                 </roles>
             </item> <!-- Detour Route -->
-            <item name="Power Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Power Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=power" />
                 <space/>
                 <key key="type" value="route"/>
@@ -10090,7 +10116,7 @@
                     <role key="" text="route segment" requisite="required" type="way" member_expression="power"/>
                 </roles>
             </item> <!-- Power Route -->
-            <item name="Railway Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Railway Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=railway"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:route=railway"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:route=railway"
@@ -10104,7 +10130,7 @@
                     <role key="" text="route segment" requisite="required" type="way" member_expression="railway|route=ferry"/>
                 </roles>
             </item> <!-- Railway Route -->
-            <item name="Road Route" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+            <item name="Road Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
                 <link href="http://wiki.openstreetmap.org/wiki/Tag:route=road"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:route=road"
                   ja.href="http://wiki.openstreetmap.org/wiki/JA:Tag:route=road"
@@ -10124,7 +10150,7 @@
                 </roles>
             </item> <!-- Road Route -->
         </group> <!-- Routes -->
-        <item name="Route Network" icon="presets/misc/path.png" type="relation" preset_name_label="true">
+        <item name="Route Network" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Relations/Proposed/Network" />
             <space />
             <key key="type" value="network" />
@@ -10138,7 +10164,7 @@
             </roles>
         </item> <!-- Route Network -->
         <separator/>
-        <item name="Associated Street" icon="presets/misc/addresses.png" type="relation" preset_name_label="true">
+        <item name="Associated Street" icon="presets/misc/housenumber.svg" type="relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Relation:associatedStreet"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Relation:associatedStreet"
                   fr.href="http://wiki.openstreetmap.org/wiki/FR:Relation:associatedStreet"
diff --git a/data/validator/combinations.mapcss b/data/validator/combinations.mapcss
index f314931..41a2d1f 100644
--- a/data/validator/combinations.mapcss
+++ b/data/validator/combinations.mapcss
@@ -292,8 +292,7 @@ way[highway][natural],
 }
 
 /* #6932 */
-*[natural=water][leisure=swimming_pool],
-*[natural=water][amenity=swimming_pool] {
+*[natural=water][leisure=swimming_pool] {
   throwWarning: tr("natural water used for swimming pool");
   fixRemove: "natural";
 }
diff --git a/data/validator/deprecated.mapcss b/data/validator/deprecated.mapcss
index 60e7c73..7ba9982 100644
--- a/data/validator/deprecated.mapcss
+++ b/data/validator/deprecated.mapcss
@@ -14,12 +14,16 @@
   fixAdd: "fence_type=wood";
 }
   
-*[highway=ford] {
+node[highway=ford] {
   throwWarning: tr("{0} is deprecated", "{0.tag}");
   suggestAlternative: "ford=yes";
   fixRemove: "highway";
   fixAdd: "ford=yes";
 }
+way[highway=ford] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "highway=* + ford=yes";
+}
   
 *[class] {
   /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
@@ -278,8 +282,7 @@
   throwWarning: tr("{0} is unspecific. Instead use the key fixme with the information what exactly should be fixed in the value of fixme.", "{0.tag}");
 }
 
-/* see #10107, #10108, #10929 - http://wiki.openstreetmap.org/wiki/Proposed_features/leaftype#Features.2FPages_affected */
-*[wood=deciduous],
+/* see #10107, #10108, #10929, #13391 - http://wiki.openstreetmap.org/wiki/Proposed_features/leaftype#Features.2FPages_affected */
 *[type=broad_leaved],
 *[type=broad_leafed] {
   throwWarning: tr("{0} is deprecated", "{0.tag}");
@@ -320,6 +323,19 @@
   fixAdd: "leaf_cycle=deciduous";
 }
 
+*[wood=deciduous] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "leaf_type + leaf_cycle";
+}
+
+node[type=palm],
+way[type=palm] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "leaf_type";
+  suggestAlternative: "trees";
+  suggestAlternative: "species";
+}
+
 *[natural=land] {
   throwWarning: tr("{0} is deprecated. Please use instead a multipolygon.", "{0.tag}");
   assertMatch: "way natural=land";
@@ -877,4 +893,18 @@ area[landuse=pond] {
   fixAdd: "natural=water";
   fixAdd: "water=pond";
   fixRemove: "landuse";
+}
+
+*[shop=souvenir],
+*[shop=souvenirs],
+*[shop=souveniers] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "shop=gift";
+  fixAdd: "shop=gift";
+}
+
+*[vending=animal_food] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "vending=animal_feed";
+  fixAdd: "vending=animal_feed";
 }
\ No newline at end of file
diff --git a/data/validator/ignoretags.cfg b/data/validator/ignoretags.cfg
index b72c1da..716b925 100644
--- a/data/validator/ignoretags.cfg
+++ b/data/validator/ignoretags.cfg
@@ -91,6 +91,15 @@ E:roof:shape
 E:turn:lanes
 E:turn:lanes:forward
 E:turn:lanes:backward
+E:maxspeed:lanes
+E:maxspeed:lanes:forward
+E:maxspeed:lanes:backward
+E:minspeed:lanes
+E:minspeed:lanes:forward
+E:minspeed:lanes:backward
+E:cycleway:lanes
+E:cycleway:lanes:forward
+E:cycleway:lanes:backward
 E:area:highway
 E:tmc
 E:memorial:addr
@@ -144,6 +153,7 @@ K:place=allotments
 K:building=civic
 K:building=houseboat
 K:building=static_caravan
+K:building=ruins
 K:leisure=recreation_ground
 K:old_railway_operator=PRR
 K:maintenance=gritting
@@ -196,6 +206,7 @@ K:military=naval_base
 ; Natural Tags
 ;
 K:natural=marsh
+K:natural=shingle
 ;
 ; Relation Tags
 ;
diff --git a/data_nodist/trans/ast.lang b/data_nodist/trans/ast.lang
index 42197e8..aefe1f8 100644
Binary files a/data_nodist/trans/ast.lang and b/data_nodist/trans/ast.lang differ
diff --git a/data_nodist/trans/be.lang b/data_nodist/trans/be.lang
index 5006cad..0162c87 100644
Binary files a/data_nodist/trans/be.lang and b/data_nodist/trans/be.lang differ
diff --git a/data_nodist/trans/bg.lang b/data_nodist/trans/bg.lang
index a00f61d..0a56de4 100644
Binary files a/data_nodist/trans/bg.lang and b/data_nodist/trans/bg.lang differ
diff --git a/data_nodist/trans/ca-valencia.lang b/data_nodist/trans/ca-valencia.lang
index 3c8c334..6a2d05d 100644
Binary files a/data_nodist/trans/ca-valencia.lang and b/data_nodist/trans/ca-valencia.lang differ
diff --git a/data_nodist/trans/ca.lang b/data_nodist/trans/ca.lang
index 794098f..5e165a0 100644
Binary files a/data_nodist/trans/ca.lang and b/data_nodist/trans/ca.lang differ
diff --git a/data_nodist/trans/cs.lang b/data_nodist/trans/cs.lang
index 263096a..e031eeb 100644
Binary files a/data_nodist/trans/cs.lang and b/data_nodist/trans/cs.lang differ
diff --git a/data_nodist/trans/da.lang b/data_nodist/trans/da.lang
index a8c1e35..19b3150 100644
Binary files a/data_nodist/trans/da.lang and b/data_nodist/trans/da.lang differ
diff --git a/data_nodist/trans/de.lang b/data_nodist/trans/de.lang
index 264f562..e6b3060 100644
Binary files a/data_nodist/trans/de.lang and b/data_nodist/trans/de.lang differ
diff --git a/data_nodist/trans/el.lang b/data_nodist/trans/el.lang
index bbfa9f4..cf9fba9 100644
Binary files a/data_nodist/trans/el.lang and b/data_nodist/trans/el.lang differ
diff --git a/data_nodist/trans/en.lang b/data_nodist/trans/en.lang
index 1189842..d9a8ee4 100644
Binary files a/data_nodist/trans/en.lang and b/data_nodist/trans/en.lang differ
diff --git a/data_nodist/trans/en_AU.lang b/data_nodist/trans/en_AU.lang
index ea7fd1b..478a51d 100644
Binary files a/data_nodist/trans/en_AU.lang and b/data_nodist/trans/en_AU.lang differ
diff --git a/data_nodist/trans/en_GB.lang b/data_nodist/trans/en_GB.lang
index 9189535..8e5145d 100644
Binary files a/data_nodist/trans/en_GB.lang and b/data_nodist/trans/en_GB.lang differ
diff --git a/data_nodist/trans/es.lang b/data_nodist/trans/es.lang
index fd6c628..555e2af 100644
Binary files a/data_nodist/trans/es.lang and b/data_nodist/trans/es.lang differ
diff --git a/data_nodist/trans/et.lang b/data_nodist/trans/et.lang
index 119500d..575ea57 100644
Binary files a/data_nodist/trans/et.lang and b/data_nodist/trans/et.lang differ
diff --git a/data_nodist/trans/fi.lang b/data_nodist/trans/fi.lang
index 8659d00..7cd0bba 100644
Binary files a/data_nodist/trans/fi.lang and b/data_nodist/trans/fi.lang differ
diff --git a/data_nodist/trans/fr.lang b/data_nodist/trans/fr.lang
index f8c564a..ff55088 100644
Binary files a/data_nodist/trans/fr.lang and b/data_nodist/trans/fr.lang differ
diff --git a/data_nodist/trans/gl.lang b/data_nodist/trans/gl.lang
index 2ae3a02..95153c6 100644
Binary files a/data_nodist/trans/gl.lang and b/data_nodist/trans/gl.lang differ
diff --git a/data_nodist/trans/hu.lang b/data_nodist/trans/hu.lang
index 35e19ce..b4428e6 100644
Binary files a/data_nodist/trans/hu.lang and b/data_nodist/trans/hu.lang differ
diff --git a/data_nodist/trans/id.lang b/data_nodist/trans/id.lang
index fa1b4c5..d552952 100644
Binary files a/data_nodist/trans/id.lang and b/data_nodist/trans/id.lang differ
diff --git a/data_nodist/trans/it.lang b/data_nodist/trans/it.lang
index d19b4e0..16770f7 100644
Binary files a/data_nodist/trans/it.lang and b/data_nodist/trans/it.lang differ
diff --git a/data_nodist/trans/ja.lang b/data_nodist/trans/ja.lang
index b4af924..6904c01 100644
Binary files a/data_nodist/trans/ja.lang and b/data_nodist/trans/ja.lang differ
diff --git a/data_nodist/trans/km.lang b/data_nodist/trans/km.lang
index 6e37e3b..896956c 100644
Binary files a/data_nodist/trans/km.lang and b/data_nodist/trans/km.lang differ
diff --git a/data_nodist/trans/lt.lang b/data_nodist/trans/lt.lang
index 301abfc..128e321 100644
Binary files a/data_nodist/trans/lt.lang and b/data_nodist/trans/lt.lang differ
diff --git a/data_nodist/trans/nb.lang b/data_nodist/trans/nb.lang
index ed8f62c..7550734 100644
Binary files a/data_nodist/trans/nb.lang and b/data_nodist/trans/nb.lang differ
diff --git a/data_nodist/trans/nl.lang b/data_nodist/trans/nl.lang
index e320b5a..0acd6d4 100644
Binary files a/data_nodist/trans/nl.lang and b/data_nodist/trans/nl.lang differ
diff --git a/data_nodist/trans/pl.lang b/data_nodist/trans/pl.lang
index f82ecb9..732c2ee 100644
Binary files a/data_nodist/trans/pl.lang and b/data_nodist/trans/pl.lang differ
diff --git a/data_nodist/trans/pt.lang b/data_nodist/trans/pt.lang
index 017c76c..4bd5944 100644
Binary files a/data_nodist/trans/pt.lang and b/data_nodist/trans/pt.lang differ
diff --git a/data_nodist/trans/pt_BR.lang b/data_nodist/trans/pt_BR.lang
index 93791aa..0ad76f0 100644
Binary files a/data_nodist/trans/pt_BR.lang and b/data_nodist/trans/pt_BR.lang differ
diff --git a/data_nodist/trans/ru.lang b/data_nodist/trans/ru.lang
index 9056c50..8f9bcb6 100644
Binary files a/data_nodist/trans/ru.lang and b/data_nodist/trans/ru.lang differ
diff --git a/data_nodist/trans/sk.lang b/data_nodist/trans/sk.lang
index 7f04b11..c3554c7 100644
Binary files a/data_nodist/trans/sk.lang and b/data_nodist/trans/sk.lang differ
diff --git a/data_nodist/trans/sv.lang b/data_nodist/trans/sv.lang
index 12a278c..e202e1e 100644
Binary files a/data_nodist/trans/sv.lang and b/data_nodist/trans/sv.lang differ
diff --git a/data_nodist/trans/uk.lang b/data_nodist/trans/uk.lang
index 7c8a5c6..4963ad3 100644
Binary files a/data_nodist/trans/uk.lang and b/data_nodist/trans/uk.lang differ
diff --git a/data_nodist/trans/vi.lang b/data_nodist/trans/vi.lang
index 96a75f4..0b61d14 100644
Binary files a/data_nodist/trans/vi.lang and b/data_nodist/trans/vi.lang differ
diff --git a/data_nodist/trans/zh_CN.lang b/data_nodist/trans/zh_CN.lang
index e2472c5..6d8aadf 100644
Binary files a/data_nodist/trans/zh_CN.lang and b/data_nodist/trans/zh_CN.lang differ
diff --git a/data_nodist/trans/zh_TW.lang b/data_nodist/trans/zh_TW.lang
index 1c72919..63466e9 100644
Binary files a/data_nodist/trans/zh_TW.lang and b/data_nodist/trans/zh_TW.lang differ
diff --git a/eclipse/JOSM (Java 8).launch b/eclipse/JOSM (Java 8).launch
index 82aaf9c..592e489 100644
--- a/eclipse/JOSM (Java 8).launch	
+++ b/eclipse/JOSM (Java 8).launch	
@@ -8,12 +8,6 @@
 </listAttribute>
 <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
 <stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sourceLookupDirector>
<sourceContainers duplicates="false">
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;JOSM&quo [...]
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8" path="1" type="4"/>
"/>
-<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath">
<memento exportedEntriesOnly="false" project="JOSM"/>
</runtimeClasspathEntry>
"/>
-<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<runtimeClasspathEntry internalArchive="/JOSM/bin2" path="3" type="2"/>
"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="JOSM"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--debug"/>
diff --git a/gpl-2.0.txt b/gpl-2.0.txt
index d511905..fd94e16 100644
--- a/gpl-2.0.txt
+++ b/gpl-2.0.txt
@@ -1,12 +1,12 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
+            GNU GENERAL PUBLIC LICENSE
+               Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-			    Preamble
+                Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
@@ -56,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all.
   The precise terms and conditions for copying, distribution and
 modification follow.
 
-		    GNU GENERAL PUBLIC LICENSE
+            GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License applies to any program or other work which contains
@@ -255,7 +255,7 @@ make exceptions for this.  Our decision will be guided by the two goals
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-			    NO WARRANTY
+                NO WARRANTY
 
   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-		     END OF TERMS AND CONDITIONS
+             END OF TERMS AND CONDITIONS
 
-	    How to Apply These Terms to Your New Programs
+        How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
diff --git a/i18n/convmaps.pl b/i18n/convmaps.pl
index f0dbe1c..2ce5fb4 100644
--- a/i18n/convmaps.pl
+++ b/i18n/convmaps.pl
@@ -40,7 +40,7 @@ for my $line (@lines)
     $val =~ s/&/&/g;
     print "tr(\"$val\"); /* $line */\n";
   }
-  if($line =~ /<description +lang=['"]en['"]>(.*)<\/description>/)
+  elsif($line =~ /<description +lang=['"]en['"]>(.*)<\/description>/)
   {
     my $val = $1;
     $val =~ s/&/&/g;
diff --git a/i18n/po/af.po b/i18n/po/af.po
index dae994e..aa9c291 100644
--- a/i18n/po/af.po
+++ b/i18n/po/af.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-10-13 02:39+0000\n"
 "Last-Translator: Grant Slater <Unknown>\n"
 "Language-Team: Afrikaans <af at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:31+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:31+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: af\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/am.po b/i18n/po/am.po
index e7f55e2..8bfb04f 100644
--- a/i18n/po/am.po
+++ b/i18n/po/am.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2010-03-30 12:09+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Amharic <am at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:32+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:33+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: am\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ar.po b/i18n/po/ar.po
index 2583d6c..b563fec 100644
--- a/i18n/po/ar.po
+++ b/i18n/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-10-08 23:09+0000\n"
 "Last-Translator: mourad101ee <mourad101ee at gmail.com>\n"
 "Language-Team: Arabic <ar at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
 "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:32+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:34+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ar\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr "خلفية شروط الاستخدام"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "فتح الرابط غير معتمد  في المنصة الحالية ('' {0} '')"
 
-msgid "ERROR: {0}"
-msgstr "خطأ: {0}"
-
-msgid "WARNING: {0}"
-msgstr "تحذير: {0}"
-
-msgid "INFO: {0}"
-msgstr "معلومة {0}"
-
-msgid "DEBUG: {0}"
-msgstr "التصحيح: {0}"
-
-msgid "Cause: "
-msgstr "السبب: "
-
 msgid "Executing platform startup hook"
 msgstr "المنصة تبدأ تشغيل الربط"
 
@@ -492,6 +477,12 @@ msgstr "بيانات محملة"
 msgid "Download notes in current view"
 msgstr "ملاحظات محملة على العرض الحالي"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "تحميل الجسم..."
 
@@ -1979,6 +1970,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "أرسم"
 
@@ -1991,9 +1991,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2059,12 +2056,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2155,13 +2146,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3535,9 +3526,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3547,6 +3535,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4761,7 +4752,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5915,6 +5906,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5942,9 +5936,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7165,10 +7156,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9173,12 +9164,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "طبقة المعطيات {0}"
-
 msgid "outside downloaded area"
 msgstr "خارج عن المنطقة المنزلة"
 
+msgid "Data Layer {0}"
+msgstr "طبقة المعطيات {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9656,6 +9647,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "نقطة gps"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9668,9 +9662,6 @@ msgstr "الإتجاه"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "نقطة gps"
-
 msgid "Import Audio"
 msgstr "إستورد صوت مسجل"
 
@@ -11466,6 +11457,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12557,9 +12573,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13534,7 +13547,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14000,6 +14013,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "السبب: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14196,6 +14212,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "بلّغ عن علّة"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14227,7 +14246,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14961,13 +14980,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15363,10 +15388,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15752,6 +15777,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15975,6 +16005,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16080,6 +16113,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18277,9 +18314,27 @@ msgstr ""
 msgid "Basin"
 msgstr "حوض"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "خزان"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "خزان مغطى"
 
@@ -18314,6 +18369,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19519,6 +19580,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "حديقة ألعاب مائية"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22170,7 +22234,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22422,8 +22489,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "نوعية المبيعات"
 
-msgid "animal_food"
-msgstr "مأكولات للحيوانات"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22437,6 +22507,9 @@ msgstr "مانع الحمل"
 msgid "drinks"
 msgstr "مشروبات"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22452,6 +22525,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "تذاكر_موقف_سيارات"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "صور"
 
@@ -22470,18 +22549,12 @@ msgstr "طوابع"
 msgid "sweets"
 msgstr "حلويات"
 
-msgid "tampons"
-msgstr "سدادات قطنية"
-
 msgid "telephone_vouchers"
 msgstr "قسائم تعبئة هاتفية"
 
 msgid "toys"
 msgstr "ألعاب"
 
-msgid "vouchers"
-msgstr "قسائم"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23195,6 +23268,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "حصص سكنية"
 
@@ -23288,6 +23370,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "رقم المنزل"
 
@@ -25491,6 +25576,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26371,9 +26471,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27457,7 +27554,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28318,6 +28415,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28792,18 +28907,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29455,6 +29561,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29470,6 +29579,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29498,10 +29613,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29536,6 +29647,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29545,13 +29662,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30342,6 +30458,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32296,6 +32457,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32307,27 +32483,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ast.po b/i18n/po/ast.po
index 737b45a..48dc570 100644
--- a/i18n/po/ast.po
+++ b/i18n/po/ast.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-08-09 15:33+0000\n"
 "Last-Translator: Don-vip <Unknown>\n"
 "Language-Team: Asturian <ast at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:34+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:37+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ast\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Condiciones d''usu del fondu"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Nun hai sofitu p''abrir l''enllaz na plataforma actual (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERROR: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ALVERTENCIA: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMACIÓN: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEPURACIÓN: {0}"
-
-msgid "Cause: "
-msgstr "Causa: "
-
 msgid "Executing platform startup hook"
 msgstr "Executando l''enganche d''aniciu de la plataforma"
 
@@ -503,6 +488,12 @@ msgstr "Descargar datos"
 msgid "Download notes in current view"
 msgstr "Baxa les notes de la vista actual"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Descargar oxetu..."
 
@@ -2118,6 +2109,15 @@ msgstr ""
 "desaniciar los nudos non usaos al desaniciar una vía. Ctrl: desaniciar los "
 "oxetos de referencia."
 
+msgid "draw angle snap"
+msgstr "debuxar axuste d`ángulo"
+
+msgid "draw angle snap highlight"
+msgstr "resaltar dibuxáu d`ángulu de corte"
+
+msgid "helper line"
+msgstr "llínea del asistente"
+
 msgid "Draw"
 msgstr "Dibuxar"
 
@@ -2130,9 +2130,6 @@ msgstr "Mou: Dibuxu d`ángulos instantáneu"
 msgid "Backspace in Add mode"
 msgstr "Tecla retroceso en mou Amestar"
 
-msgid "helper line"
-msgstr "llínea del asistente"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Nun se pue amestar un nodu fuera del mundu."
 
@@ -2198,12 +2195,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "debuxar axuste d`ángulo"
-
-msgid "draw angle snap highlight"
-msgstr "resaltar dibuxáu d`ángulu de corte"
-
 msgid "Angle snapping"
 msgstr "Autoensambláu d''ángulos"
 
@@ -2307,15 +2298,15 @@ msgstr[1] "Amestar un nudu nuevu a {0} víes"
 msgid "Cannot delete node that has tags"
 msgstr "Nun pué desaniciase un nudu que tien etiquetes"
 
+msgid "make parallel helper line"
+msgstr "faer paralela llínea guía"
+
 msgid "Parallel"
 msgstr "Paralela"
 
 msgid "Make parallel copies of ways"
 msgstr "Facer copies paraleles de víes"
 
-msgid "make parallel helper line"
-msgstr "faer paralela llínea guía"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3831,9 +3822,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "El parámetru tien d´empezar con un calter de «+» (atopaos {0})"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Parámetru desconocíu: ''{0}''."
 
@@ -3843,6 +3831,9 @@ msgstr "Valor esperáu pal parámetru ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Nengún valor esperáu pal parámetru ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "El parámetru tien d´empezar con un calter de «+» (atopaos {0})"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Formatu de parámetru inesperáu (''{0}'')"
 
@@ -5124,8 +5115,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Hai que cargar dalgún datu si usa --selección."
 
-msgid "Printing debugging messages to console"
-msgstr "Visualización de mensaxes de depuración en consola"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Saltada la carga de complementos"
@@ -6395,6 +6386,9 @@ msgstr "botón esquierdu pa cerrar esti diálogu y siguir editando"
 msgid "Conflicts detected"
 msgstr "Detectáronse conflictos"
 
+msgid "Resolve conflicts"
+msgstr "Resolver conflictos"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Atayar el resolvimientu de conflictos y pesllar el cuadru de diálogu"
 
@@ -6429,9 +6423,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflictu non resueltu completamente"
 
-msgid "Resolve conflicts"
-msgstr "Resolver conflictos"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resolver los conflictos de ''{0}''"
 
@@ -7742,12 +7733,12 @@ msgstr "Amosar/despintar capa"
 msgid "Discardable key: selection Foreground"
 msgstr "Clave descartable: escoyeta de primer planu"
 
-msgid "Discardable key: selection Background"
-msgstr "Clave descartable: escoyeta de segundu planu"
-
 msgid "Discardable key: foreground"
 msgstr "Clave descartable: primer planu"
 
+msgid "Discardable key: selection Background"
+msgstr "Clave descartable: escoyeta de segundu planu"
+
 msgid "Discardable key: background"
 msgstr "Clave descartable: segundu planu"
 
@@ -9991,12 +9982,12 @@ msgstr "Notes totales:"
 msgid "Changes need uploading?"
 msgstr "¿Fae falta xubir los cambeos?"
 
-msgid "Data Layer {0}"
-msgstr "Capa de datos {0}"
-
 msgid "outside downloaded area"
 msgstr "fora de la área descargada"
 
+msgid "Data Layer {0}"
+msgstr "Capa de datos {0}"
+
 msgid "Merging layers"
 msgstr "Combinar capes"
 
@@ -10516,6 +10507,9 @@ msgstr "Nun hai capes d''imaxes disponibles."
 msgid "No imagery layers"
 msgstr "Nun hai capes d''imaxes"
 
+msgid "gps point"
+msgstr "Puntu GPS"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10528,9 +10522,6 @@ msgstr "Direición"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "Puntu GPS"
-
 msgid "Import Audio"
 msgstr "Importar Audiu"
 
@@ -12570,6 +12561,31 @@ msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 "Configurar la llista de sitios dende onde se descarguen los complementos"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Añedir URL de la descripción del complementu de JOSM."
 
@@ -13780,9 +13796,6 @@ msgstr "<html>Non pudieron lleese los arquivos.<br>L´erru ye:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Arquivos GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Capa ''{0}'' non soportada"
 
@@ -14867,8 +14880,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "El complementu nun va ser cargáu."
 msgstr[1] "Los complementos nun van ser cargaos."
 
-msgid "Determine plugins to load..."
-msgstr "Determinar los complementos a cargar ..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Esaniciando complementos obsoletos..."
@@ -15479,6 +15492,9 @@ msgstr ""
 "Nun se pudo aportar al directoriu ''{0}'' por razones de seguridá. La "
 "esceición foi: {1}"
 
+msgid "Cause: "
+msgstr "Causa: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15706,6 +15722,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Informar de fallu"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Suprimir otros mensaxes d''erru mientres esta sesión."
 
@@ -15737,7 +15756,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16486,13 +16505,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16889,11 +16914,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -17286,6 +17311,11 @@ msgstr ""
 "polígonos. Fechu pa facilitar el mapeo de construcciones dende capes de "
 "fondu. Optimizáu pa basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Ferramientes pa dibuxar edificios."
 
@@ -17568,6 +17598,9 @@ msgstr ""
 "Evacuar de forma permanente l''usu de JOSM (ALVERTENCIA: esti complementu "
 "torga que JOSM execútese y ye complicáu de desfaer)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 "Dexa importar a JOSM arquivos de datos de formatos conocíos (shp, kml, gml, "
@@ -17694,6 +17727,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19939,9 +19976,27 @@ msgstr "Alcantariella"
 msgid "Basin"
 msgstr "Cuenca"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Banzáu"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Depósitu d''agua"
 
@@ -19976,6 +20031,12 @@ msgstr "embalse"
 msgid "river"
 msgstr "ríu"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Agua Salao"
 
@@ -21187,6 +21248,9 @@ msgstr "Parque d''atracciones"
 msgid "Water Park"
 msgstr "Parque acuáticu"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -23842,8 +23906,11 @@ msgstr "Pescadería o marisquería"
 msgid "Deli (Fine Food)"
 msgstr "Delicatessen"
 
-msgid "Candy Store"
-msgstr "Tienda de llambiotaes"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Casa de té"
@@ -24094,8 +24161,11 @@ msgstr "Máquina espendedora"
 msgid "Vending products"
 msgstr "Espendedor automáticu de productos"
 
-msgid "animal_food"
-msgstr "comida p''animales"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "neumáticu de bicicleta"
@@ -24109,6 +24179,9 @@ msgstr "condones"
 msgid "drinks"
 msgstr "Bébores"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "Bolses pa escrementos"
 
@@ -24124,6 +24197,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "billetes d''aparcamientu"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "semeyes"
 
@@ -24142,18 +24221,12 @@ msgstr "sellos"
 msgid "sweets"
 msgstr "Carambelos"
 
-msgid "tampons"
-msgstr "tampones"
-
 msgid "telephone_vouchers"
 msgstr "Tarxetes telefóniques"
 
 msgid "toys"
 msgstr "xuguetes"
 
-msgid "vouchers"
-msgstr "Bonos"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -24886,6 +24959,15 @@ msgstr "Invernaderu hortofrutícola"
 msgid "Plant Nursery"
 msgstr "Viveru de plantes"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Güertos d''ociu"
 
@@ -24984,6 +25066,9 @@ msgstr "Nome oficial"
 msgid "Common name abbreviation"
 msgstr "Abreviatura común del nome"
 
+msgid "Address"
+msgstr "Dirección"
+
 msgid "House number"
 msgstr "Númberu de portal"
 
@@ -27353,6 +27438,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nome de Cai:"
 
@@ -28304,9 +28404,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Dirección"
-
 msgid "Split area"
 msgstr "Estremar área"
 
@@ -29470,8 +29567,8 @@ msgstr "crear el digrama de canal"
 msgid "Check "
 msgstr "Comprobar "
 
-msgid "check the subust for junction properties"
-msgstr "check the subust for junction properties"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Buscar "
@@ -30366,6 +30463,24 @@ msgstr ""
 "(pa siguir mapeando miserablemente, edite out nun more_mapping\n"
 "de {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Identificador de conxuntu de cambeos inválidu: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "fecha y hora inválida: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Lleendo datos OSM..."
+
 msgid "Split by municipality"
 msgstr "Estremar por conceyu"
 
@@ -30902,18 +31017,9 @@ msgstr "Arquivos pbf estruyíos del Servidor OSM"
 msgid "Download PBF"
 msgstr "Descargar PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Identificador de conxuntu de cambeos inválidu: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "fecha y hora inválida: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Tabla de claves/valores DenseNodes inválida"
 
-msgid "Reading OSM data..."
-msgstr "Lleendo datos OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Erru de tresformación: Min X tien de ser menor que max"
 
@@ -31581,6 +31687,9 @@ msgstr "La imprentación falló."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31596,6 +31705,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31624,10 +31739,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31662,6 +31773,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31671,13 +31788,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32494,6 +32610,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Simplificar área"
 
@@ -34671,17 +34832,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Añedir nomes dende Wikipedia"
 
@@ -34691,12 +34841,6 @@ msgstr ""
 "Llogra los enllaces interwiki de Wikipedia p''amestar delles etiquetes de "
 "denominación"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34707,6 +34851,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copiar plantiya {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Buscar artículos de Wikipedia coles sos coordenaes"
 
diff --git a/i18n/po/az.po b/i18n/po/az.po
index e9803f1..fe290df 100644
--- a/i18n/po/az.po
+++ b/i18n/po/az.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2013-01-12 17:56+0000\n"
 "Last-Translator: iAZISS <iss-sash at mail.ru>\n"
 "Language-Team: Azerbaijani <az at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:34+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:38+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -54,21 +54,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -481,6 +466,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1960,6 +1951,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1972,9 +1972,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2040,12 +2037,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2136,13 +2127,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3503,9 +3494,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3515,6 +3503,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4725,7 +4716,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5875,6 +5866,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5902,9 +5896,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7125,10 +7116,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9132,10 +9123,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9615,6 +9606,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9627,9 +9621,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11419,6 +11410,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12506,9 +12522,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13481,7 +13494,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13947,6 +13960,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14143,6 +14159,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14174,7 +14193,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14908,13 +14927,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15310,10 +15335,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15699,6 +15724,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15922,6 +15952,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16027,6 +16060,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18224,9 +18261,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18261,6 +18316,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19466,6 +19527,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22117,7 +22181,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22369,7 +22436,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22384,6 +22454,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22399,6 +22472,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22417,18 +22496,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23142,6 +23215,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23235,6 +23317,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25438,6 +25523,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26318,9 +26418,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27404,7 +27501,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28265,6 +28362,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28739,18 +28854,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29402,6 +29508,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29417,6 +29526,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29445,10 +29560,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29483,6 +29594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29492,13 +29609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30289,6 +30405,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32243,6 +32404,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32254,27 +32430,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/be.po b/i18n/po/be.po
index e8b27fa..67f92b7 100644
--- a/i18n/po/be.po
+++ b/i18n/po/be.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-05 12:13+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-05 12:49+0000\n"
 "Last-Translator: Viktar Palstsiuk <Unknown>\n"
 "Language-Team: Belarusian <i18n at mova.org>\n"
 "MIME-Version: 1.0\n"
@@ -19,8 +19,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:35+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:39+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: be\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -59,21 +59,6 @@ msgstr "Умовы выкарыстання падкладкі"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Пераход па спасылцы не падтрымліваецца на гэтай платформе (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ПАМЫЛКА: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ПАПЯРЭДЖАННЕ: {0}"
-
-msgid "INFO: {0}"
-msgstr "ІНФАРМАЦЫЯ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "АДЛАДКА: {0}"
-
-msgid "Cause: "
-msgstr "Прычына: "
-
 msgid "Executing platform startup hook"
 msgstr "Выкананне стартавых працэдур"
 
@@ -507,6 +492,13 @@ msgstr "Запампоўка дадзеных"
 msgid "Download notes in current view"
 msgstr "Запампаваць нататкі для бачнай вобласці"
 
+msgid "Download in current view"
+msgstr "Спампаваць у вобласці, што праглядаецца"
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+"Спампаваць картаграфічныя дадзеныя з сервера OSM у вобласці, што праглядаецца"
+
 msgid "Download object..."
 msgstr "Запампаваць аб’ект..."
 
@@ -1155,13 +1147,14 @@ msgid "Paste"
 msgstr "Уклеіць"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Уставіць змесціва буфера абмену."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Уставіць у зыходную пазіцыю"
 
 msgid "Paste contents of clipboard at the position they were copied from."
 msgstr ""
+"Уставіць змесціва буфера абмену ў пазіцыю, з якой яно было скапіявана."
 
 msgid "Paste Tags"
 msgstr "Уклеіць Меткі"
@@ -2141,6 +2134,15 @@ msgstr ""
 "невыкарыстоўваемыя пункты пры выдаленні лініі. Ctrl: выдаліць спасылаючыя "
 "аб’екты."
 
+msgid "draw angle snap"
+msgstr "Прывязка да кутоў"
+
+msgid "draw angle snap highlight"
+msgstr "Прывязка да кутоў: падсвятленне"
+
+msgid "helper line"
+msgstr "дапаможная лінія"
+
 msgid "Draw"
 msgstr "Маляваць"
 
@@ -2153,9 +2155,6 @@ msgstr "Рэжым: Маляванне з прывязкай да кутоў"
 msgid "Backspace in Add mode"
 msgstr "Backspace ў рэжыме дадання"
 
-msgid "helper line"
-msgstr "дапаможная лінія"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Кропка не можа быць дададзеная за межамі свету."
 
@@ -2222,12 +2221,6 @@ msgstr "0,30,45,60,90,…"
 msgid "FIX"
 msgstr "Фікс."
 
-msgid "draw angle snap"
-msgstr "Прывязка да кутоў"
-
-msgid "draw angle snap highlight"
-msgstr "Прывязка да кутоў: падсвятленне"
-
 msgid "Angle snapping"
 msgstr "Прывязка да кутоў"
 
@@ -2330,15 +2323,15 @@ msgstr[2] "Дадаць новы пункт да {0} ліній"
 msgid "Cannot delete node that has tags"
 msgstr "Нельга выдаліць пункт, якая мае тэгі"
 
+msgid "make parallel helper line"
+msgstr "дапаможная лінія стварэння паралельных ліній"
+
 msgid "Parallel"
 msgstr "Паралельна"
 
 msgid "Make parallel copies of ways"
 msgstr "Ствараць паралельныя копіі ліній"
 
-msgid "make parallel helper line"
-msgstr "дапаможная лінія стварэння паралельных ліній"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3868,9 +3861,6 @@ msgstr "Чакаўся цэлы лік у дыяпазоне 1-60 для пар
 msgid "No unit found for: {0}"
 msgstr "Не знойдзена адзінка вымярэння для: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Параметр павінен пачынацца са знака «+» (знойдзены: «{0}»)"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Невядомы параметр: ''{0}''."
 
@@ -3880,6 +3870,9 @@ msgstr "Чакалася значэнне для параметру «{0}»."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Не чакалася значэнне для параметру «{0}»."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Параметр павінен пачынацца са знака «+» (знойдзены: «{0}»)"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Неспадзяваны фармат параметру («{0}»)"
 
@@ -5153,8 +5146,8 @@ msgstr ""
 "Пераканаецеся, што вы загрузілі хоць нейкія дадзеныя, калі вы "
 "выкарыстоўваеце --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Вывад адладкавых паведамленняў у кансоль"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr "Падрабязнасць вядзення журнала {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Запампоўка модуляў прапушчана"
@@ -6437,6 +6430,9 @@ msgstr "Націсніце, каб зачыніць гэты дыялог і п
 msgid "Conflicts detected"
 msgstr "Выяўлены канфлікты"
 
+msgid "Resolve conflicts"
+msgstr "Уладзіць канфлікты"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Адмяніць уладжванне канфліктаў і зачыніць дыялог"
 
@@ -6470,9 +6466,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Канфлікт уладжаны не цалкам"
 
-msgid "Resolve conflicts"
-msgstr "Уладзіць канфлікты"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Уладзіць канфлікты для ''{0}''"
 
@@ -7794,12 +7787,12 @@ msgstr "Паказаць/схаваць пласт"
 msgid "Discardable key: selection Foreground"
 msgstr "Выдаляемы ключ: пярэдні план вылучэння"
 
-msgid "Discardable key: selection Background"
-msgstr "Выдаляемы ключ: фон вылучэння"
-
 msgid "Discardable key: foreground"
 msgstr "Выдаляемы ключ: foreground"
 
+msgid "Discardable key: selection Background"
+msgstr "Выдаляемы ключ: фон вылучэння"
+
 msgid "Discardable key: background"
 msgstr "Выдаляемы ключ: background"
 
@@ -10088,12 +10081,12 @@ msgstr "Усяго нататак:"
 msgid "Changes need uploading?"
 msgstr "Трэба перадаць змены на сервер?"
 
-msgid "Data Layer {0}"
-msgstr "Пласт дадзеных {0}"
-
 msgid "outside downloaded area"
 msgstr "па-за запампаванай вобласцю"
 
+msgid "Data Layer {0}"
+msgstr "Пласт дадзеных {0}"
+
 msgid "Merging layers"
 msgstr "Аб’яднанне пластоў"
 
@@ -10614,6 +10607,9 @@ msgstr "Тут няма пластоў здымкаў."
 msgid "No imagery layers"
 msgstr "Няма пластоў здымкаў"
 
+msgid "gps point"
+msgstr "пункт GPS"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10626,9 +10622,6 @@ msgstr "Кірунак"
 msgid "Velocity, {0}"
 msgstr "Хуткасць, {0}"
 
-msgid "gps point"
-msgstr "пункт GPS"
-
 msgid "Import Audio"
 msgstr "Імпартаваць аўдыёфайлы"
 
@@ -12640,6 +12633,33 @@ msgstr "Крыніцы модуляў..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Канфігураваць спіс сервераў, з якіх можна загрузіць модулі"
 
+msgid "Load from list..."
+msgstr "Спампаваць са спіса..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Спампаваць модулі са спіса модуляў"
+
+msgid "Disable all other plugins"
+msgstr "Адключыць усе іншыя модулі"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Увядзіце спіс модуляў для спампоўкі."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Дадавайце па адным ідэнтыфікатары модуля ў радку, інфармацыя пра версію "
+"ігнаруецца."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "Можна скапіяваць і ўставіць сюды спіс са справаздачы пра стан."
+
+msgid "Load plugins from list"
+msgstr "Спампаваць модулі са спіса"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "Наступныя модулі не знойдзены. Усё адно працягнуць?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Дадаць спасылку на апісанне модуля JOSM."
 
@@ -13846,9 +13866,6 @@ msgstr "<html>Немагчыма прачытаць файлы.<br>Памылк
 msgid "GeoJSON Files"
 msgstr "Файлы GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Файлы Projected GeoJSON"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Пласт «{0}» не падтрымліваецца"
 
@@ -14945,8 +14962,8 @@ msgstr[0] "Модуль не загружаецца з сервера."
 msgstr[1] "Модулі не загружаюцца з сервера."
 msgstr[2] "Модулі не загружаюцца з сервера."
 
-msgid "Determine plugins to load..."
-msgstr "Вызначэнне модуляў для загрузкі з сервера..."
+msgid "Determining plugins to load..."
+msgstr "Вызначэнне модуляў для спампоўкі..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Выдаленне непажаданых модуляў..."
@@ -15591,6 +15608,9 @@ msgid ""
 msgstr ""
 "Няма доступу да каталога ''{0}'' па меркаваннях бяспекі. Памылка: {1}"
 
+msgid "Cause: "
+msgstr "Прычына: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15829,6 +15849,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Паведаміць пра памылку"
 
+msgid "Suppress this error for this session."
+msgstr "Не паказваць больш гэтую памылку ў гэтым сеансе"
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Больш не паказваць памылкі ў гэтай сесіі"
 
@@ -15863,8 +15886,8 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr "У вас найноўшая версія JOSM."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
-msgstr "Ваш JOSM састарэў. Бягучая версія — {0}. Рэкамендуем абнавіць JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
+msgstr "JOSM састарэў. Бягучая версія — {0}. Паспрабуйце абнавіць JOSM."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16613,14 +16636,20 @@ msgstr "Берлін - аэрафотаздымка 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Берлін - аэрафотаздымка 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Берлін - аэрафотаздымка 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Штутгарт (аэрафотаздымка)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Эрланген - аэрафотаздымка (2016 5.0 cm)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Эрланген - аэрафотаздымка (2013 6.25 см)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Эрланген 2011 аэрафотаздымка (5.0 см)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Эрланген - аэрафотаздымка (2011 5.0 cm)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Старая карта Цвенкау - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -17016,11 +17045,12 @@ msgstr "Цюрых: аглядны план горада (вуліцы, буды
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Горад Цюрых: аэрафотаздымка 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Кантон Залатурн: артафота RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Аэрафотаздымка кантона Золатурн RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Кантон Залатурн: артафота ў ІЧ-дыяпазоне (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
+"Аэрафотаздымка кантона Золатурн у ІЧ-дыяпазоне (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Кантон Жэнева 5 см (SITG 2011)"
@@ -17417,6 +17447,13 @@ msgstr ""
 "для палягчэння мапінга будынкаў з фонавага пласта. Аптымізаваны для "
 "basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Дазваляе карыстальніку выпраўляць рагі будынкаў на 90° і выраўноўвае ўсе "
+"загружаныя будынкі па найблізкай дарозе."
+
 msgid "Tools for drawing buildings."
 msgstr "Інструменты для прамалёўкі будынкаў."
 
@@ -17708,6 +17745,9 @@ msgstr ""
 "Забараняе выкарыстоўваць JOSM назаўжды (ПАПЯРЭДЖАННЕ: гэты модуль прадухіляе "
 "загрузку JOSM і ад яго цяжка пазбавіцца)"
 
+msgid "Import OSM data in o5m format"
+msgstr "Імпарт дадзеных OSM у фармаце o5m"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Пераўтварэнне дадзеных з парталаў Open Data ў пласт OSM"
 
@@ -17839,6 +17879,11 @@ msgid "Edit features for Sea Charts"
 msgstr "Рэдагаванне аб’ектаў марскіх карт"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+"Падае дадатковыя прылады, якія спрашчаюць выраўноўванне і паварот будынкаў."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20096,9 +20141,27 @@ msgstr "Дрэнажная труба"
 msgid "Basin"
 msgstr "Сцёкавы басейн"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr "інфільтрацыйны"
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Рэзервуар"
 
+msgid "evaporator"
+msgstr "выпаральнік"
+
+msgid "tailings"
+msgstr "для шламу"
+
+msgid "water_storage"
+msgstr "для захоўвання вады"
+
 msgid "Covered Reservoir"
 msgstr "Крыты рэзервуар"
 
@@ -20133,6 +20196,12 @@ msgstr "вадасховішча"
 msgid "river"
 msgstr "рака"
 
+msgid "lock"
+msgstr "заблакаваць"
+
+msgid "wastewater"
+msgstr "адстойнік сцёкавых вод"
+
 msgid "Salt Water"
 msgstr "Салёная вада"
 
@@ -21342,6 +21411,9 @@ msgstr "Парк забавак/Тэматычны парк"
 msgid "Water Park"
 msgstr "Аквапарк"
 
+msgid "Beach Resort"
+msgstr "Абслугоўваемы пляж"
+
 msgid "Swimming Pool"
 msgstr "Плавальны басейн"
 
@@ -23995,8 +24067,11 @@ msgstr "Морапрадукты"
 msgid "Deli (Fine Food)"
 msgstr "Дэлікатэсы"
 
-msgid "Candy Store"
-msgstr "Кандытарская"
+msgid "Pastry"
+msgstr "Выпечка"
+
+msgid "Confectionery"
+msgstr "Кандытарскія вырабы"
 
 msgid "Tea"
 msgstr "Чай"
@@ -24247,8 +24322,11 @@ msgstr "Гандлёвы аўтамат"
 msgid "Vending products"
 msgstr "Тавар"
 
-msgid "animal_food"
-msgstr "ежа для жывёл"
+msgid "admission_tickets"
+msgstr "уваходныя квіткі"
+
+msgid "animal_feed"
+msgstr "корм для жывёл"
 
 msgid "bicycle_tube"
 msgstr "веласіпедная шына"
@@ -24262,6 +24340,9 @@ msgstr "прэзерватывы"
 msgid "drinks"
 msgstr "напоі"
 
+msgid "elongated_coin"
+msgstr "падоўжаныя манеты"
+
 msgid "excrement_bags"
 msgstr "пакеты для экскрыментаў"
 
@@ -24277,6 +24358,12 @@ msgstr "газеты"
 msgid "parking_tickets"
 msgstr "талоны на паркоўку"
 
+msgid "parcel_pickup"
+msgstr "выдача пасылак"
+
+msgid "parcel_mail_in"
+msgstr "адпраўка пасылак"
+
 msgid "photos"
 msgstr "фатаграфіі"
 
@@ -24295,18 +24382,12 @@ msgstr "маркі"
 msgid "sweets"
 msgstr "прысмакі"
 
-msgid "tampons"
-msgstr "тампоны"
-
 msgid "telephone_vouchers"
 msgstr "тэлефонныя карты"
 
 msgid "toys"
 msgstr "цацкі"
 
-msgid "vouchers"
-msgstr "ваўчары"
-
 msgid "Payment Methods"
 msgstr "Спосабы аплаты"
 
@@ -25035,6 +25116,15 @@ msgstr "Парніковае садоўніцтва"
 msgid "Plant Nursery"
 msgstr "Гадавальнік раслін"
 
+msgid "Aquaculture"
+msgstr "Аквакультура"
+
+msgid "shrimp"
+msgstr "ракападобныя"
+
+msgid "mussels"
+msgstr "малюскі"
+
 msgid "Allotments"
 msgstr "Агародныя ўчасткі"
 
@@ -25128,6 +25218,9 @@ msgstr "Афіцыйная назва"
 msgid "Common name abbreviation"
 msgstr "Абрэвіятура"
 
+msgid "Address"
+msgstr "Адрас"
+
 msgid "House number"
 msgstr "Нумар хаты"
 
@@ -27528,6 +27621,24 @@ msgstr "Адладка"
 msgid "Debugging mode will write images for each processing step."
 msgstr "У рэжыме адладкі будуць створаны выявы для кожнага кроку апрацоўкі."
 
+msgid "Building Generalization"
+msgstr "Генералізацыя будынкаў"
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+"Пачаткоўцы часта малююць контуры вельмі недакладна. Такія будынкі павінны "
+"быць ператвораны ў прастакутныя. Куты паміж 84-96 градусаў ператворацца ў 90 "
+"градусаў."
+
+msgid "There is no frame loaded !"
+msgstr "Нічога не загружана!"
+
+msgid "Alert Message"
+msgstr "Папярэджанне"
+
 msgid "Street Name:"
 msgstr "Вуліца:"
 
@@ -28488,9 +28599,6 @@ msgstr ""
 "ніякай індыкацыі пра тое, што выконваюцца якія-небудзь дзеянні, і ніякага "
 "спосабу адмяніць спампоўку."
 
-msgid "Address"
-msgstr "Адрас"
-
 msgid "Split area"
 msgstr "Падзяліць вобласць"
 
@@ -29640,8 +29748,8 @@ msgstr "стварыць арграф канала"
 msgid "Check "
 msgstr "Праверыць "
 
-msgid "check the subust for junction properties"
-msgstr "праверыць набор на ўласцівасці злучэння"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Знайсці "
@@ -30539,6 +30647,24 @@ msgstr ""
 "(Калі вы гатовыя здацца і працягнуць маляваць карты,\n"
 "прыбярыце no_more_mapping з {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr "Сціснутыя файлы сервера OSM у фармаце o5m"
+
+msgid "Invalid changeset id: {0}"
+msgstr "Няслушны id пакета правак: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Няслушны штамп часу: {0}"
+
+msgid "wrong header byte "
+msgstr "няправільны байт загалоўка "
+
+msgid "unsupported header"
+msgstr "непадтрымліваемы загаловак"
+
+msgid "Reading OSM data..."
+msgstr "Чытанне дадзеных OSM..."
+
 msgid "Split by municipality"
 msgstr "Разбіць па муніцыпалітэтах"
 
@@ -31066,18 +31192,9 @@ msgstr "Сціснутыя pbf файлы OSM сервера"
 msgid "Download PBF"
 msgstr "Запампаваць PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Няслушны id пакета правак: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Няслушны штамп часу: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Няслушная DenseNodes табліца ключ/значэнне"
 
-msgid "Reading OSM data..."
-msgstr "Чытанне дадзеных OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 "Памылка пераўтварэння: Мінімальнае значэнне X павінна быць менш максімальнага"
@@ -31742,6 +31859,9 @@ msgstr "Збой друку."
 msgid "Add stop position"
 msgstr "Дадаць пазіцыю прыпынку"
 
+msgid "Repeat last fix"
+msgstr "Паўтарыць апошняе выпраўленне"
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr "Жадаеце сцягнуць аб''екты, якія спасылаюцца на платформы і прыпынкі?"
 
@@ -31760,6 +31880,12 @@ msgstr ""
 "Яны павінны быць загружаны, каб працягнуць праверку.\n"
 "Вы хочаце загрузіць іх?"
 
+msgid "Download incomplete route relation members"
+msgstr "Спампаваць патрэбных удзельнікаў дачынення маршруту"
+
+msgid "Include stop_area tests"
+msgstr "Уключаючы праверку stop_area"
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 "Модуль PT_Assistant выявіў, што ў гэтым дачыненні (id={0}) ёсць памылкі:"
@@ -31789,11 +31915,7 @@ msgid "PT: Platform should not be part of a way"
 msgstr "ГТ: платформа не павiнна быць часткай дарогі"
 
 msgid "PT: Stop position or platform is not part of a stop area relation"
-msgstr ""
-
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
+msgstr "ГТ: Месца прыпынку ці платформа не ўлучаны ў дачыненне зоны прыпынку"
 
 msgid "PT_Assistant Message"
 msgstr "Паведамленне PT_Assistant"
@@ -31829,24 +31951,31 @@ msgid "PT: Problem in the route segment"
 msgstr "ГТ: Праблема ў сегменце маршруту"
 
 msgid "PT: Stop not served"
-msgstr ""
+msgstr "ГТ: Прыпынак не абслугоўваецца."
+
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "ГТ: Праблема ў сегменце маршруту без аўтаматычнага выпраўлення"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "ГТ: Праблема ў сегменце маршруту з адным аўтаматычным выпраўленнем"
 
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
+"Папярэджанне: паказаныя варыянты выпраўлення заснаваны на менш строгіх "
+"крытэрах"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
-msgstr ""
+msgstr "ГТ: Праблема ў сегменце маршруту з адным аўтаматычным выпраўленнем"
 
 msgid "PT: Stop area relation has no stop position"
-msgstr ""
-
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
+msgstr "ГТ: Дачыненне зоны прыпынку не ўключае месца прыпынку"
 
 msgid "PT: Stop area relation has no platform"
-msgstr ""
+msgstr "ГТ: Дачыненне зоны прыпынку не ўключае платформу"
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32660,6 +32789,51 @@ msgstr "Вылучыце толькі адзін аб’ект"
 msgid "Select a map object"
 msgstr "Вылучыце аб’ект карты"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr "Рэжым кручэння:"
+
+msgid "Clockwise"
+msgstr "Па гадзіннікавай стрэлцы"
+
+msgid "Counter Clockwise"
+msgstr "Супраць гадзіннікавай стрэлкі"
+
+msgid "Input angle here"
+msgstr "Увядзіце тут вугал"
+
+msgid "Rotate"
+msgstr "Павярнуць"
+
+msgid "Align building "
+msgstr "Выраўноўванне будынка "
+
+msgid "Select building"
+msgstr "Выберыце будынак"
+
+msgid "Select road"
+msgstr "Выберыце дарогу"
+
+msgid "Select none"
+msgstr "Скасаваць вылучэнне"
+
+msgid "Min Distance:"
+msgstr "Мін. адлегласць:"
+
+msgid "Input min distance"
+msgstr "Увядзіце мінімальную адлегласць"
+
+msgid "Align all buildings"
+msgstr "Выраўнаць усе будынкі"
+
+msgid "Delete overlay"
+msgstr "Выдаліць пласт"
+
 msgid "Simplify Area"
 msgstr "Спрасціць палігон"
 
@@ -34850,18 +35024,6 @@ msgstr[2] "Атрыманне {0} ідэнтыфікатараў Вікідад
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Дадаць Вікідадзеныя для мовы ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Перазапісаць ''{0}'' тэг {1} з {2} новым значэннем ''{3}''?"
-msgstr[1] "Перазапісаць ''{0}'' тэгі {1} з {2} новым значэннем ''{3}''?"
-msgstr[2] "Перазапісаць ''{0}'' тэгаў {1} з {2} новым значэннем ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr "Пошук элементаў Вікідадзеных"
-
-msgid "Target key: "
-msgstr "Мэтавы ключ: "
-
 msgid "Add names from Wikipedia"
 msgstr "Дадаць назвы з Вікіпедыі"
 
@@ -34871,12 +35033,6 @@ msgstr ""
 "Атрымаць інтэрвікі спасылкі з Вікіпедыі для таго, каб дадаць некаторыя тэгі "
 "name"
 
-msgid "Search Wikipedia category"
-msgstr "Пошук катэгорыі Вікіпедыі"
-
-msgid "Load category"
-msgstr "Загрузка катэгорыі"
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34887,6 +35043,24 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Капіяваць шаблон {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Перазапісаць ''{0}'' тэг {1} з {2} новым значэннем ''{3}''?"
+msgstr[1] "Перазапісаць ''{0}'' тэгі {1} з {2} новым значэннем ''{3}''?"
+msgstr[2] "Перазапісаць ''{0}'' тэгаў {1} з {2} новым значэннем ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr "Пошук элементаў Вікідадзеных"
+
+msgid "Target key: "
+msgstr "Мэтавы ключ: "
+
+msgid "Search Wikipedia category"
+msgstr "Пошук катэгорыі Вікіпедыі"
+
+msgid "Load category"
+msgstr "Загрузка катэгорыі"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Атрымаць артыкулы Вікіпедыі з каардынатамі"
 
diff --git a/i18n/po/bg.po b/i18n/po/bg.po
index 33621a4..3b65d2e 100644
--- a/i18n/po/bg.po
+++ b/i18n/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-08-05 14:02+0000\n"
 "Last-Translator: pl <Unknown>\n"
 "Language-Team: Bulgarian <bg at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:38+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:43+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: bg\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "Отварянето на връзката не се поддържа на текущата платформа (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ГРЕШКА: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ПРЕДУПРЕЖДЕНИЕ: {0}"
-
-msgid "INFO: {0}"
-msgstr "ИНФО: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Причина: "
-
 msgid "Executing platform startup hook"
 msgstr "Стартиране"
 
@@ -493,6 +478,12 @@ msgstr "Сваляне на данни"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Сваляне на обект..."
 
@@ -2048,6 +2039,15 @@ msgstr ""
 "изтрива неизползваните възли при изтриване на път. Ctrl: изтриване на "
 "обекти, към които има обръщение."
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Рисуване"
 
@@ -2060,9 +2060,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Не може да се добави точка извън пределите на света."
 
@@ -2128,12 +2125,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2225,15 +2216,15 @@ msgstr[1] "Добавяне на нова точка към {0} пътя"
 msgid "Cannot delete node that has tags"
 msgstr "Невъзможно е изтриването на точка, която има тагове"
 
+msgid "make parallel helper line"
+msgstr ""
+
 msgid "Parallel"
 msgstr "Успоредно"
 
 msgid "Make parallel copies of ways"
 msgstr ""
 
-msgid "make parallel helper line"
-msgstr ""
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3638,10 +3629,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-"Параметърът трябва да започва със символа ''+'' (Намерен параметър ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Непознат параметър: ''{0}''."
 
@@ -3651,6 +3638,10 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+"Параметърът трябва да започва със символа ''+'' (Намерен параметър ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4877,7 +4868,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6030,6 +6021,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr "Забелязани са конфликти"
 
+msgid "Resolve conflicts"
+msgstr "Разрешаване на конфликти"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Прекъсни разрешаване на кофликти и затвори диалоговия прозорец"
 
@@ -6058,9 +6052,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Конфликтът не е разрешен напълно"
 
-msgid "Resolve conflicts"
-msgstr "Разрешаване на конфликти"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Разрешаване на конфликти за ''{0}''"
 
@@ -7283,10 +7274,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9323,12 +9314,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Слой Данни {0}"
-
 msgid "outside downloaded area"
 msgstr "извън областта за сваляне"
 
+msgid "Data Layer {0}"
+msgstr "Слой Данни {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9823,6 +9814,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "GPS точка"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9835,9 +9829,6 @@ msgstr "Посока"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "GPS точка"
-
 msgid "Import Audio"
 msgstr "Импорт Аудио"
 
@@ -11671,6 +11662,31 @@ msgstr "Настройка на сайтове..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Добавяне на URL за разширение на JOSM."
 
@@ -12763,9 +12779,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13749,7 +13762,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14223,6 +14236,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Причина: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14419,6 +14435,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Съобщаване за грешка"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14450,7 +14469,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15190,13 +15209,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15592,11 +15617,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -15981,6 +16006,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -16213,6 +16243,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16324,6 +16357,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18521,9 +18558,27 @@ msgstr ""
 msgid "Basin"
 msgstr "Басейн"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Резервоар"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Закрит резервоар"
 
@@ -18558,6 +18613,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19763,6 +19824,9 @@ msgstr "Развлекателен парк"
 msgid "Water Park"
 msgstr "Аквапарк"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22414,8 +22478,11 @@ msgstr "Морски деликатеси"
 msgid "Deli (Fine Food)"
 msgstr "Деликатесен магазин"
 
-msgid "Candy Store"
-msgstr "Захарни изделия"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Чай"
@@ -22666,8 +22733,11 @@ msgstr "Автомат за стоки"
 msgid "Vending products"
 msgstr "Продукти за автоматична продажба"
 
-msgid "animal_food"
-msgstr "храна за животни"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22681,6 +22751,9 @@ msgstr "презервативи"
 msgid "drinks"
 msgstr "напитки"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "торби за екскременти"
 
@@ -22696,6 +22769,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "билети за паркиране"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "фотографии"
 
@@ -22714,18 +22793,12 @@ msgstr "пощенски марки"
 msgid "sweets"
 msgstr "сладки"
 
-msgid "tampons"
-msgstr "тампони"
-
 msgid "telephone_vouchers"
 msgstr "телефонни ваучери"
 
 msgid "toys"
 msgstr "играчки"
 
-msgid "vouchers"
-msgstr "ваучери"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23441,6 +23514,15 @@ msgstr "Оранжерии"
 msgid "Plant Nursery"
 msgstr "Посадъчен материал"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Земя за лично ползване"
 
@@ -23534,6 +23616,9 @@ msgstr "Официално име"
 msgid "Common name abbreviation"
 msgstr "Общоприето съкращение на името"
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Номер"
 
@@ -25739,6 +25824,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Име на улица:"
 
@@ -26640,9 +26740,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27731,7 +27828,7 @@ msgstr ""
 msgid "Check "
 msgstr "Проверка "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28611,6 +28708,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29088,18 +29203,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29751,6 +29857,9 @@ msgstr "Принтирането се провали"
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29766,6 +29875,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29794,10 +29909,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29832,6 +29943,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29841,13 +29958,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30638,6 +30754,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32597,6 +32758,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32608,27 +32784,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/bn.po b/i18n/po/bn.po
index 2d6eea4..ee8a106 100644
--- a/i18n/po/bn.po
+++ b/i18n/po/bn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-04-03 09:24+0000\n"
 "Last-Translator: Md Alamgir <alamgircu at hotmail.com>\n"
 "Language-Team: Bengali <bn at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:36+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:40+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: bn\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "পটভূমি ব্যবহারের শর্তাবলী"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "লিঙ্ক খোলার বর্তমান প্ল্যাটফর্ম সমর্থিত নয় ('' {0} '')"
 
-msgid "ERROR: {0}"
-msgstr "ত্রুটি: {0}"
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -485,6 +470,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1964,6 +1955,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1976,9 +1976,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2044,12 +2041,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2140,13 +2131,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3507,9 +3498,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3519,6 +3507,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4729,7 +4720,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5879,6 +5870,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5906,9 +5900,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7129,10 +7120,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9136,10 +9127,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9619,6 +9610,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9631,9 +9625,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11423,6 +11414,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12510,9 +12526,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13485,7 +13498,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13951,6 +13964,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14147,6 +14163,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14178,7 +14197,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14912,13 +14931,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15314,10 +15339,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15703,6 +15728,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15926,6 +15956,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16031,6 +16064,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18228,9 +18265,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18265,6 +18320,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19470,6 +19531,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22121,7 +22185,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22373,7 +22440,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22388,6 +22458,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22403,6 +22476,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22421,18 +22500,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23146,6 +23219,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23239,6 +23321,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25442,6 +25527,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26322,9 +26422,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27408,7 +27505,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28269,6 +28366,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28743,18 +28858,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29406,6 +29512,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29421,6 +29530,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29449,10 +29564,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29487,6 +29598,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29496,13 +29613,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30293,6 +30409,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32247,6 +32408,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32258,27 +32434,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/br.po b/i18n/po/br.po
index a50fef3..478bf35 100644
--- a/i18n/po/br.po
+++ b/i18n/po/br.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-10-17 12:11+0000\n"
 "Last-Translator: Fulup <Unknown>\n"
 "Language-Team: Breton <br at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:37+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:42+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: br\n"
 
 msgid "License"
@@ -58,21 +58,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/bs.po b/i18n/po/bs.po
index 7879c8f..a279923 100644
--- a/i18n/po/bs.po
+++ b/i18n/po/bs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2012-11-03 23:07+0000\n"
 "Last-Translator: Alen Mahovic <eyeofthestorm at windowslive.com>\n"
 "Language-Team: Bosnian <bs at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:36+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:41+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: bs\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr "Uslovi korištenja pozadine"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Otvaranje linka nije podržano na trenutnoj platformi (\"{0}\")"
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -485,6 +470,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1964,6 +1955,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1976,9 +1976,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2044,12 +2041,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2140,13 +2131,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3507,9 +3498,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3519,6 +3507,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4729,7 +4720,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5879,6 +5870,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5906,9 +5900,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7129,10 +7120,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9136,10 +9127,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9619,6 +9610,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9631,9 +9625,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11423,6 +11414,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12510,9 +12526,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13485,7 +13498,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13951,6 +13964,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14147,6 +14163,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14178,7 +14197,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14912,13 +14931,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15314,10 +15339,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15703,6 +15728,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15926,6 +15956,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16031,6 +16064,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18228,9 +18265,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18265,6 +18320,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19470,6 +19531,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22121,7 +22185,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22373,7 +22440,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22388,6 +22458,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22403,6 +22476,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22421,18 +22500,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23146,6 +23219,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23239,6 +23321,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25442,6 +25527,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26322,9 +26422,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27408,7 +27505,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28269,6 +28366,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28743,18 +28858,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29406,6 +29512,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29421,6 +29530,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29449,10 +29564,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29487,6 +29598,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29496,13 +29613,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30293,6 +30409,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32247,6 +32408,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32258,27 +32434,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ca.po b/i18n/po/ca.po
index 894b2dd..8e9859c 100644
--- a/i18n/po/ca.po
+++ b/i18n/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-04-05 12:55+0000\n"
 "Last-Translator: pitort <pitort at eclipso.eu>\n"
 "Language-Team: el_libre - - www.catmidia.cat\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:38+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:44+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ca\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Termes d''ús de la imatge de fons"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "L''enllaç no pot ser obert en aquesta plataforma (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERROR: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ATENCIÓ: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMACIÓ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Causa: "
-
 msgid "Executing platform startup hook"
 msgstr "Inicialitzacions específiques de la plataforma"
 
@@ -505,6 +490,12 @@ msgstr "Baixa dades"
 msgid "Download notes in current view"
 msgstr "Baixa les notes de la vista actual"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Baixa l''objecte..."
 
@@ -2136,6 +2127,15 @@ msgstr ""
 "No esborra els nodes no utilitzats quan s''esborra una via. Tecla Ctrl: "
 "esborra els objectes relacionats."
 
+msgid "draw angle snap"
+msgstr "dibuixa angles discrets"
+
+msgid "draw angle snap highlight"
+msgstr "dibuix d''angles discrets ressaltat"
+
+msgid "helper line"
+msgstr "línia d''ajuda"
+
 msgid "Draw"
 msgstr "Dibuixa"
 
@@ -2148,9 +2148,6 @@ msgstr "Mode: Dibuix d''angles discretitzats"
 msgid "Backspace in Add mode"
 msgstr "Retrocés en mode d''afegir"
 
-msgid "helper line"
-msgstr "línia d''ajuda"
-
 msgid "Cannot add a node outside of the world."
 msgstr "No és possible afegir un node fora del món."
 
@@ -2216,12 +2213,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "ARREGLA"
 
-msgid "draw angle snap"
-msgstr "dibuixa angles discrets"
-
-msgid "draw angle snap highlight"
-msgstr "dibuix d''angles discrets ressaltat"
-
 msgid "Angle snapping"
 msgstr "Unió automàtica d''angles"
 
@@ -2326,15 +2317,15 @@ msgstr[1] "Afegeix un nou node a {0} vies"
 msgid "Cannot delete node that has tags"
 msgstr "No és possible d''eliminar un node amb atributs"
 
+msgid "make parallel helper line"
+msgstr "fes una línia d''ajuda paral·lela"
+
 msgid "Parallel"
 msgstr "Paral·lel"
 
 msgid "Make parallel copies of ways"
 msgstr "Fer una còpia paral·lela de les vies"
 
-msgid "make parallel helper line"
-msgstr "fes una línia d''ajuda paral·lela"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3852,9 +3843,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "No s''ha trobat unitat per: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "El paràmetre ha de començar amb el caràcter ''+'' (trobat ''{0}''"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Paràmetre desconegut:''{0}''."
 
@@ -3864,6 +3852,9 @@ msgstr "Valor esperat per al paràmetre ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "No s''esperava un valor per al paràmetre ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "El paràmetre ha de començar amb el caràcter ''+'' (trobat ''{0}''"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Format no esperat del paràmetre (''{0}'')"
 
@@ -5156,8 +5147,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Assegureu-vos que carregueu dades si utilitzeu --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Imprimint missatges de depuració a la consola"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Ignorada la càrrega del connector"
@@ -6440,6 +6431,9 @@ msgstr "Feu clic per a tancar aquesta finestra i continuar editant"
 msgid "Conflicts detected"
 msgstr "Conflictes detectats"
 
+msgid "Resolve conflicts"
+msgstr "Resol conflictes"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Anular la resolució de conflictes i tancar la finestra"
 
@@ -6473,9 +6467,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflicte parcialment resolt"
 
-msgid "Resolve conflicts"
-msgstr "Resol conflictes"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resoldre els conflictes per ''{0}''"
 
@@ -7807,12 +7798,12 @@ msgstr "Mostra/amaga la capa"
 msgid "Discardable key: selection Foreground"
 msgstr "Clau descartable: selecció en primer pla"
 
-msgid "Discardable key: selection Background"
-msgstr "Clau descartable: selecció en el fons"
-
 msgid "Discardable key: foreground"
 msgstr "Clau descartable: selecció en primer pla"
 
+msgid "Discardable key: selection Background"
+msgstr "Clau descartable: selecció en el fons"
+
 msgid "Discardable key: background"
 msgstr "Clau descartable: selecció en el fons"
 
@@ -10055,12 +10046,12 @@ msgstr "Total de notes:"
 msgid "Changes need uploading?"
 msgstr "Els canvis requereixen ser pujats?"
 
-msgid "Data Layer {0}"
-msgstr "Capa de dades {0}"
-
 msgid "outside downloaded area"
 msgstr "fore de l''àrea baixada"
 
+msgid "Data Layer {0}"
+msgstr "Capa de dades {0}"
+
 msgid "Merging layers"
 msgstr "Combinant capes"
 
@@ -10580,6 +10571,9 @@ msgstr "No hi ha capa d''imatgeria"
 msgid "No imagery layers"
 msgstr "Cap capa d''imatgeria"
 
+msgid "gps point"
+msgstr "punt GPS"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10592,9 +10586,6 @@ msgstr "Direcció"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "punt GPS"
-
 msgid "Import Audio"
 msgstr "Importar àudio"
 
@@ -12644,6 +12635,31 @@ msgstr "Configurar els llocs web..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configurar la llista de llocs web per a baixar connectors"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Afegeix una URL descriptiva del connector del JOSM"
 
@@ -13866,9 +13882,6 @@ msgstr "<html>No es poden llegir els arxius.<br>L''error és:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Fitxers GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Fitxers GeoJSON projectats"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Capa ''{0}'' no suportada"
 
@@ -14963,8 +14976,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "El connector no serà carregat."
 msgstr[1] "Els connectors no seran carregats."
 
-msgid "Determine plugins to load..."
-msgstr "Determinar els connectors a baixar ..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Suprimint els connectors obsolets..."
@@ -15587,6 +15600,9 @@ msgstr ""
 "Ha fallat l''accés al directori ''{0}'' per raons de seguretat. L''excepció "
 "ha estat: {1}"
 
+msgid "Cause: "
+msgstr "Causa: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15818,6 +15834,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Informa d''un error"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "No tornar a mostrar la finestra d''error durant aquesta sessió."
 
@@ -15849,7 +15868,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16599,14 +16618,20 @@ msgstr "Berlin fotografia aèria 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin fotografia aèria 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (imatgeria aèria)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen imatgeria aèria (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 imatgeria aèria (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr ""
@@ -17002,11 +17027,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Ciutat de Zuric Imatgeria aèria 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Cantó de Ginebra 5cm (SITG 2011)"
@@ -17403,6 +17428,11 @@ msgstr ""
 "en un polígon. Facilita la cartografia d''edificis de capes de fons. "
 "Optimitzat per basemap."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Eines per dibuixar edificis."
 
@@ -17691,6 +17721,9 @@ msgstr ""
 "Dehabilita la utilització del JOSM per sempre (AVÍS: aquest connector evita "
 "que JOSM es carregui i és difícil de treure''l un cop instal·lat)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Converteix dades dels portals Open Data ver una capa OSM"
 
@@ -17824,6 +17857,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Modifica funcionalitats de Sea Chart"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20078,9 +20115,27 @@ msgstr "Clavegueró"
 msgid "Basin"
 msgstr "Bassa d''infiltració"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Embassament"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Dipòsit cobert"
 
@@ -20115,6 +20170,12 @@ msgstr "embassament"
 msgid "river"
 msgstr "riu"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Aigua salada"
 
@@ -21331,6 +21392,9 @@ msgstr "Parc de diversió/Parc temàtic"
 msgid "Water Park"
 msgstr "Parc aquàtic"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Piscina"
 
@@ -23984,8 +24048,11 @@ msgstr "Peixateria"
 msgid "Deli (Fine Food)"
 msgstr "Delicatessen (al detall)"
 
-msgid "Candy Store"
-msgstr "Confiteria"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Te"
@@ -24236,8 +24303,11 @@ msgstr "Màquina expenedora"
 msgid "Vending products"
 msgstr "Productes expenendits"
 
-msgid "animal_food"
-msgstr "menjar_animals"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "Cambres d''aire per bicicletes"
@@ -24251,6 +24321,9 @@ msgstr "condons"
 msgid "drinks"
 msgstr "begudes"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "bosses per excrements"
 
@@ -24266,6 +24339,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "parquimetre"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotos"
 
@@ -24284,18 +24363,12 @@ msgstr "segells"
 msgid "sweets"
 msgstr "caramels"
 
-msgid "tampons"
-msgstr "tampons"
-
 msgid "telephone_vouchers"
 msgstr "Recàrrega de telèfon mòbil"
 
 msgid "toys"
 msgstr "joguines"
 
-msgid "vouchers"
-msgstr "bons"
-
 msgid "Payment Methods"
 msgstr "Sistema de pagament"
 
@@ -25025,6 +25098,15 @@ msgstr "Horticultura en hivernacle"
 msgid "Plant Nursery"
 msgstr "Viver"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Horts"
 
@@ -25118,6 +25200,9 @@ msgstr "Nom oficial"
 msgid "Common name abbreviation"
 msgstr "Nom comú abreviat"
 
+msgid "Address"
+msgstr "Adreça"
+
 msgid "House number"
 msgstr "Número de carrer"
 
@@ -27518,6 +27603,21 @@ msgid "Debugging mode will write images for each processing step."
 msgstr ""
 "El mode de depuració d''errors escriurà imatges per a cada etapa del procés."
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nom del carrer:"
 
@@ -28488,9 +28588,6 @@ msgstr ""
 "aquesta opció no hi haurà cap tipus d''indicació del que fa el procés de "
 "descàrrega i no podrà ser anul·lat."
 
-msgid "Address"
-msgstr "Adreça"
-
 msgid "Split area"
 msgstr "Divideix l''àrea"
 
@@ -29657,8 +29754,8 @@ msgstr "crea el graf orientat per canal"
 msgid "Check "
 msgstr "Comprova "
 
-msgid "check the subust for junction properties"
-msgstr "verifica les propietats dels encreuaments del subconjunt"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Cerca "
@@ -30572,6 +30669,24 @@ msgstr ""
 "(Per continuar cartografiant, elimineu no_more_mapping\n"
 "de {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Identificador invàlid del conjunt de canvis: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Data-hora invàlida: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Llegint dades OSM..."
+
 msgid "Split by municipality"
 msgstr "Divideix per municipi"
 
@@ -31113,18 +31228,9 @@ msgstr "Fitxers pbf comprimits del servidor OSM"
 msgid "Download PBF"
 msgstr "Baixa dades PBF (Protocolbuffer Binary Format)"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Identificador invàlid del conjunt de canvis: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Data-hora invàlida: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Taula DenseNodes de clau/valors no vàlida"
 
-msgid "Reading OSM data..."
-msgstr "Llegint dades OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Error de transformació: el mínim X ha de ser més petit que el màxim"
 
@@ -31793,6 +31899,9 @@ msgstr "La impressió ha fallat"
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31808,6 +31917,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31836,10 +31951,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31874,6 +31985,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31883,13 +32000,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32711,6 +32827,51 @@ msgstr "Seleccioneu nomé un objecte"
 msgid "Select a map object"
 msgstr "Seleccioneu un objecte del mapa"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Simplifica àrea"
 
@@ -34912,17 +35073,6 @@ msgstr[1] "Obtenint {0} IDs de dades wiki per la llengua ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Afegides dades wiki per a la llengua ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Reescriu  ''{0}''etiqueta {1} de {2} amb el nou valor ''{3}''?"
-msgstr[1] "Reescriu  ''{0}''etiquetes {1} de {2} amb el nou valor ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Afegeix noms de la viquipèdia"
 
@@ -34932,12 +35082,6 @@ msgstr ""
 "Obté els enllaços interwiki de la viquipèdia per tal d''afegir diverses "
 "etiquetes de nom"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34948,6 +35092,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copia la plantilla {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Reescriu  ''{0}''etiqueta {1} de {2} amb el nou valor ''{3}''?"
+msgstr[1] "Reescriu  ''{0}''etiquetes {1} de {2} amb el nou valor ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Mostra articles de la Viquipèdia amb les coordenades"
 
diff --git a/i18n/po/ca at valencia.po b/i18n/po/ca at valencia.po
index 1ae370c..ab46a5b 100644
--- a/i18n/po/ca at valencia.po
+++ b/i18n/po/ca at valencia.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-04-25 18:52+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: el_libre - - www.catmidia.cat\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:18+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:54+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ca at valencia\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Termes d''ús de la imatge de fons"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "L''enllaç no pot ser obert en esta plataforma (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERROR: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ATENCIÓ: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMACIÓ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr "Inicialitzacions específiques de la plataforma"
 
@@ -496,6 +481,12 @@ msgstr "Baixa dades"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Baixa l''objecte..."
 
@@ -2121,6 +2112,15 @@ msgstr ""
 "No esborra els nodes no utilitzats quan s''esborra una via. Tecla Ctrl: "
 "esborra els objectes relacionats."
 
+msgid "draw angle snap"
+msgstr "dibuixa angles discrets"
+
+msgid "draw angle snap highlight"
+msgstr "dibuix d''angles discrets ressaltat"
+
+msgid "helper line"
+msgstr "línia d''ajuda"
+
 msgid "Draw"
 msgstr "Dibuixa"
 
@@ -2133,9 +2133,6 @@ msgstr "Mode: Dibuix d''angles discretitzats"
 msgid "Backspace in Add mode"
 msgstr "Retrocés en mode d''afegir"
 
-msgid "helper line"
-msgstr "línia d''ajuda"
-
 msgid "Cannot add a node outside of the world."
 msgstr "No és possible afegir un node fora del món."
 
@@ -2201,12 +2198,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "ARREGLA"
 
-msgid "draw angle snap"
-msgstr "dibuixa angles discrets"
-
-msgid "draw angle snap highlight"
-msgstr "dibuix d''angles discrets ressaltat"
-
 msgid "Angle snapping"
 msgstr "Unió automàtica d''angles"
 
@@ -2310,15 +2301,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr "No és possible d''eliminar un node amb atributs"
 
+msgid "make parallel helper line"
+msgstr "fes una línia d''ajuda paral·lela"
+
 msgid "Parallel"
 msgstr "Paral·lel"
 
 msgid "Make parallel copies of ways"
 msgstr "Fer una còpia paral·lela de les vies"
 
-msgid "make parallel helper line"
-msgstr "fes una línia d''ajuda paral·lela"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3802,9 +3793,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "El paràmetre ha de començar amb el caràcter ''+'' (trobat ''{0}''"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3814,6 +3802,9 @@ msgstr "Valor esperat per al paràmetre ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "No s''esperava un valor per al paràmetre ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "El paràmetre ha de començar amb el caràcter ''+'' (trobat ''{0}''"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Format no esperat del paràmetre (''{0}'')"
 
@@ -5074,7 +5065,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Assegureu-vos que carregueu dades si utilitzeu --selection."
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6292,6 +6283,9 @@ msgstr "Feu clic per a tancar esta finestra i continuar editant"
 msgid "Conflicts detected"
 msgstr "Conflictes detectats"
 
+msgid "Resolve conflicts"
+msgstr "Resol conflictes"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Anular la resolució de conflictes i tancar la finestra"
 
@@ -6325,9 +6319,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflicte parcialment resolt"
 
-msgid "Resolve conflicts"
-msgstr "Resol conflictes"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resoldre els conflictes per ''{0}''"
 
@@ -7641,12 +7632,12 @@ msgstr "Mostra/amaga la capa"
 msgid "Discardable key: selection Foreground"
 msgstr "Clau descartable: selecció en primer pla"
 
-msgid "Discardable key: selection Background"
-msgstr "Clau descartable: selecció en el fons"
-
 msgid "Discardable key: foreground"
 msgstr "Clau descartable: selecció en primer pla"
 
+msgid "Discardable key: selection Background"
+msgstr "Clau descartable: selecció en el fons"
+
 msgid "Discardable key: background"
 msgstr "Clau descartable: selecció en el fons"
 
@@ -9885,12 +9876,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Capa de dades {0}"
-
 msgid "outside downloaded area"
 msgstr "fore de l''àrea descarregada"
 
+msgid "Data Layer {0}"
+msgstr "Capa de dades {0}"
+
 msgid "Merging layers"
 msgstr "Combinant capes"
 
@@ -10406,6 +10397,9 @@ msgstr "No hi ha capa d''imatgeria"
 msgid "No imagery layers"
 msgstr "Cap capa d''imatgeria"
 
+msgid "gps point"
+msgstr "punt GPS"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10418,9 +10412,6 @@ msgstr "Direcció"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "punt GPS"
-
 msgid "Import Audio"
 msgstr "Importar àudio"
 
@@ -12468,6 +12459,31 @@ msgstr "Configurar els llocs web..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configurar la llista de llocs web per a descarregar connectors"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Afig una URL descriptiva del connector de JOSM"
 
@@ -13673,9 +13689,6 @@ msgstr "<html>No es poden llegir els arxius.<br>L''error és:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Fitxers GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Capa ''{0}'' no suportada"
 
@@ -14761,8 +14774,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "El connector no serà carregat."
 msgstr[1] "Els connectors no seran carregats."
 
-msgid "Determine plugins to load..."
-msgstr "Determinar els connectors a descarregar ..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Suprimint els connectors obsolets..."
@@ -15391,6 +15404,9 @@ msgstr ""
 "Ha fallat l''accés al directori ''{0}'' per raons de seguretat. L''excepció "
 "ha estat: {1}"
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15603,6 +15619,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Informa d''un error"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "No tornar a mostrar la finestra d''error durant esta sessió."
 
@@ -15634,7 +15653,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16383,13 +16402,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16785,10 +16810,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -17179,6 +17204,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Eines per dibuixar edificis."
 
@@ -17455,6 +17485,9 @@ msgstr ""
 "Dehabilita la utilització de JOSM per sempre (AVÍS: este connector evita que "
 "JOSM es carregui i és difícil de traure''l un cop instal·lat)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Converteix dades dels portals Open Data ver una capa OSM"
 
@@ -17573,6 +17606,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19808,9 +19845,27 @@ msgstr "Clavegueró"
 msgid "Basin"
 msgstr "Bassa d''infiltració"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Embassament"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Dipòsit cobert"
 
@@ -19845,6 +19900,12 @@ msgstr ""
 msgid "river"
 msgstr "riu"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -21052,6 +21113,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Parc aquàtic"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -23703,7 +23767,10 @@ msgstr "Peixateria"
 msgid "Deli (Fine Food)"
 msgstr "Delicatessen (al detall)"
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -23955,8 +24022,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Productes expenendits"
 
-msgid "animal_food"
-msgstr "menjar_animals"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "Cambres d''aire per bicicletes"
@@ -23970,6 +24040,9 @@ msgstr "condons"
 msgid "drinks"
 msgstr "begudes"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "bosses per excrements"
 
@@ -23985,6 +24058,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "parquimetre"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotos"
 
@@ -24003,18 +24082,12 @@ msgstr "segells"
 msgid "sweets"
 msgstr "caramels"
 
-msgid "tampons"
-msgstr "tampons"
-
 msgid "telephone_vouchers"
 msgstr "Recàrrega de telèfon mòbil"
 
 msgid "toys"
 msgstr "joguines"
 
-msgid "vouchers"
-msgstr "bons"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -24728,6 +24801,15 @@ msgstr "Horticultura en hivernacle"
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Parcel·les individuals"
 
@@ -24821,6 +24903,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr "Adreça"
+
 msgid "House number"
 msgstr "Número de carrer"
 
@@ -27166,6 +27251,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nom del carrer:"
 
@@ -28120,9 +28220,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Adreça"
-
 msgid "Split area"
 msgstr "Divideix l''àrea"
 
@@ -29288,8 +29385,8 @@ msgstr "crea el graf orientat per canal"
 msgid "Check "
 msgstr "Comprova "
 
-msgid "check the subust for junction properties"
-msgstr "verifica les propietats dels encreuaments del subconjunt"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Cerca "
@@ -30198,6 +30295,24 @@ msgstr ""
 "(Per continuar cartografiant, elimineu no_more_mapping\n"
 "de {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Identificador invàlid del conjunt de canvis: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Data-hora invàlida: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Llegint dades OSM..."
+
 msgid "Split by municipality"
 msgstr "Divideix per municipi"
 
@@ -30742,18 +30857,9 @@ msgstr "Fitxers pbf comprimits del servidor OSM"
 msgid "Download PBF"
 msgstr "Descarrega dades PBF (Protocolbuffer Binary Format)"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Identificador invàlid del conjunt de canvis: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Data-hora invàlida: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Taula DenseNodes de clau/valors no vàlida"
 
-msgid "Reading OSM data..."
-msgstr "Llegint dades OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Error de transformació: el mínim X ha de ser més petit que el màxim"
 
@@ -31417,6 +31523,9 @@ msgstr "La impressió ha fallat"
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31432,6 +31541,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31460,10 +31575,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31498,6 +31609,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31507,13 +31624,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32333,6 +32449,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Simplifica àrea"
 
@@ -34518,17 +34679,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Afig noms de la viquipèdia"
 
@@ -34538,12 +34688,6 @@ msgstr ""
 "Obté els enllaços interwiki de la viquipèdia per tal d''afegir diverses "
 "etiquetes de nom"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34554,6 +34698,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copia la plantilla {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Mostra articles de la Viquipèdia amb les coordenades"
 
diff --git a/i18n/po/cs.po b/i18n/po/cs.po
index 6b132a9..521b8a1 100644
--- a/i18n/po/cs.po
+++ b/i18n/po/cs.po
@@ -8,16 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-10 09:19+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-29 07:48+0000\n"
 "Last-Translator: Dalibor Jelínek <launchpad.net at dalibor.cz>\n"
 "Language-Team: Czech <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:39+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:45+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: cs\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr "Podmínky použití podkladové mapy"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Otevírání odkazů není podporováno ve vašem prostředí (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "CHYBA: {0}"
-
-msgid "WARNING: {0}"
-msgstr "VAROVÁNÍ: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "LADĚNÍ: {0}"
-
-msgid "Cause: "
-msgstr "Přičina: "
-
 msgid "Executing platform startup hook"
 msgstr "Startovací činnosti specifické pro platformu"
 
@@ -505,6 +490,12 @@ msgstr "Stahování dat"
 msgid "Download notes in current view"
 msgstr "Stáhnout poznámky v aktuálním zorném poli"
 
+msgid "Download in current view"
+msgstr "Stáhnout v aktuálním pohledu"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Stáhnout mapová data ze serveru OSM do aktuálního pohledu"
+
 msgid "Download object..."
 msgstr "Stáhnout objekt..."
 
@@ -2126,6 +2117,15 @@ msgstr ""
 "Kliknutím smažete. Shift: smaže úsek cesty. Alt: nesmaže nepoužité uzly, "
 "když vymažete cestu. Ctrl: smaže odkazované objekty."
 
+msgid "draw angle snap"
+msgstr "Kreslit přichytávání úhlů"
+
+msgid "draw angle snap highlight"
+msgstr "Zvýraznění přichytávání úhlů"
+
+msgid "helper line"
+msgstr "pomocná čára"
+
 msgid "Draw"
 msgstr "Kreslit"
 
@@ -2138,9 +2138,6 @@ msgstr "Režim: kreslení přichytávání úhlů"
 msgid "Backspace in Add mode"
 msgstr "Backspace v režimu změn"
 
-msgid "helper line"
-msgstr "pomocná čára"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Nemůžu přidat uzel ležící mimo svět."
 
@@ -2207,12 +2204,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "OPRAVIT"
 
-msgid "draw angle snap"
-msgstr "Kreslit přichytávání úhlů"
-
-msgid "draw angle snap highlight"
-msgstr "Zvýraznění přichytávání úhlů"
-
 msgid "Angle snapping"
 msgstr "Přichytávání úhlů"
 
@@ -2312,15 +2303,15 @@ msgstr[2] "Přidat nový uzel do {0} cest"
 msgid "Cannot delete node that has tags"
 msgstr "Nemohu odstranit uzel, který má značky."
 
+msgid "make parallel helper line"
+msgstr "vytvořit paralelní pomocnou linii"
+
 msgid "Parallel"
 msgstr "Paralelní"
 
 msgid "Make parallel copies of ways"
 msgstr "Vytvořit paralelní kopie cest"
 
-msgid "make parallel helper line"
-msgstr "vytvořit paralelní pomocnou linii"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3843,9 +3834,6 @@ msgstr "Pro parametr ''+zone=...'' očekáváno celé  číslo v rozsahu 1-60."
 msgid "No unit found for: {0}"
 msgstr "Žádné jednotka nenalezena pro: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parametr musí začínat znakem ''+'' (nalezeno ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Neznámý parametr: ''{0}''."
 
@@ -3855,6 +3843,9 @@ msgstr "Očekávaná hodnota pro parametr ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Žádná hodnota nebyla očekávaná pro parametr ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parametr musí začínat znakem ''+'' (nalezeno ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Neočekávaný formát parametru (''{0}'')"
 
@@ -5120,8 +5111,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Pokud používáte --selection, ujistěte se, že nahrajete nějaká data"
 
-msgid "Printing debugging messages to console"
-msgstr "Vypisuji ladící informace na konzoli"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr "Úroveň logování je na {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Načítání doplňků přeskočeno"
@@ -6390,6 +6381,9 @@ msgstr "Klikněte pro uzavření tohoto dialogu a návrat k editaci"
 msgid "Conflicts detected"
 msgstr "Objeveny konflikty"
 
+msgid "Resolve conflicts"
+msgstr "Vyřešit konflikty"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Zrušit řešení konfliktu a zavřít dialog"
 
@@ -6423,9 +6417,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Konflikt není vyřešen kompletně"
 
-msgid "Resolve conflicts"
-msgstr "Vyřešit konflikty"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Vyřešit konflikty pro ''{0}''"
 
@@ -7728,12 +7719,12 @@ msgstr "Zobrazit/skrýt vrstvu"
 msgid "Discardable key: selection Foreground"
 msgstr "Nepotřebné klíče: popředí vybraných"
 
-msgid "Discardable key: selection Background"
-msgstr "Nepotřebné klíče: pozadí vybraných"
-
 msgid "Discardable key: foreground"
 msgstr "Nepotřebné klíče: popředí"
 
+msgid "Discardable key: selection Background"
+msgstr "Nepotřebné klíče: pozadí vybraných"
+
 msgid "Discardable key: background"
 msgstr "Nepotřebné klíče: pozadí"
 
@@ -9981,12 +9972,12 @@ msgstr "Poznámek celkem:"
 msgid "Changes need uploading?"
 msgstr "Je třeba nahrát změny na server?"
 
-msgid "Data Layer {0}"
-msgstr "Datová vrstva {0}"
-
 msgid "outside downloaded area"
 msgstr "mimo staženou oblast"
 
+msgid "Data Layer {0}"
+msgstr "Datová vrstva {0}"
+
 msgid "Merging layers"
 msgstr "Slučování vrstev"
 
@@ -10505,6 +10496,9 @@ msgstr "Nejsou tu žádné podkladové vrstvy."
 msgid "No imagery layers"
 msgstr "Žádné podkladové vrstvy."
 
+msgid "gps point"
+msgstr "GPS bod"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10517,9 +10511,6 @@ msgstr "Směr"
 msgid "Velocity, {0}"
 msgstr "Rychlost, {0}"
 
-msgid "gps point"
-msgstr "GPS bod"
-
 msgid "Import Audio"
 msgstr "Importovat zvuk"
 
@@ -12513,6 +12504,33 @@ msgstr "Nastavit zdroje..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Nastavit seznam webů, ze kterých se stahují doplňky"
 
+msgid "Load from list..."
+msgstr "Načíst ze seznamu..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Načte doplňky ze seznamu doplňků"
+
+msgid "Disable all other plugins"
+msgstr "Zakázat všechny ostatní doplňky"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Zadejte seznam doplňků, které chcete stáhnout."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Měli byste přidat na každý řádek jedno ID doplňku, informace o verzi jsou "
+"ignorovány."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "Můžete zkopírovat seznam z této zprávy o stavu."
+
+msgid "Load plugins from list"
+msgstr "Načíst doplňky ze seznamu"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "Následující doplňky nebyly nalezeny. I tak pokračovat?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Přidat další URL, odkud se dají stahovat doplňky."
 
@@ -13703,9 +13721,6 @@ msgstr "<html> Nelze číst soubory.<br>Chyba je: <br> {0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON soubory"
 
-msgid "Projected GeoJSON Files"
-msgstr "Projected GeoJSON soubory"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Vrstva ''{0}'' není podporována"
 
@@ -14773,8 +14788,8 @@ msgstr[0] "Doplněk nebude načten."
 msgstr[1] "Doplňky nebudou načteny."
 msgstr[2] "Doplňky nebudou načteny."
 
-msgid "Determine plugins to load..."
-msgstr "Určuji doplňky k načtení..."
+msgid "Determining plugins to load..."
+msgstr "Určování doplňků k načtení..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Odstraňuji zastaralé doplňky..."
@@ -15416,6 +15431,9 @@ msgstr ""
 "Přístup do adresáře ''{0}'' se nezdařil kvůli zabezpečení. Došlo k výjimce: "
 "{1}"
 
+msgid "Cause: "
+msgstr "Přičina: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15655,6 +15673,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Nahlásit chybu"
 
+msgid "Suppress this error for this session."
+msgstr "Potlačit tuto chybu pro toto sezení."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Potlačit další chybová hlášení v tomto sezení."
 
@@ -15688,8 +15709,9 @@ msgstr "Při kontrole, zda je vaše JOSM aktuální, došlo k chybě."
 msgid "JOSM is up to date."
 msgstr "JOSM je aktuální."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
-msgstr "JOSM je zastaralé. Aktuální verze je {0}. Zkuste JOSM aktualizovat."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
+msgstr ""
+"Editor JOSM je zastaralý. Aktuální verze je {0}. Zkuste JOSM aktualizovat."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16438,14 +16460,20 @@ msgstr "Berlin aerial photograph 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin aerial photograph 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Berlin aerial photograph 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (aerial imagery"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Erlangen aerial imagery (2016 5.0 cm)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen aerial imagery (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Erlangen aerial imagery (2011 5.0 cm)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Stará mapa Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16840,11 +16868,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -17240,6 +17268,13 @@ msgstr ""
 "Zjednodušuje mapování budov z podkladových vrstev. Optimalizováno pro "
 "basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Dovoluje uživateli opravit úhly budov na 90 stupňů a vyrovnat všechny budovy "
+"k nejbližší silnici."
+
 msgid "Tools for drawing buildings."
 msgstr "Nástroje pro tvorbu budov."
 
@@ -17524,6 +17559,9 @@ msgstr ""
 "Nastálo znemožní používání JOSM (POZOR! Tento doplněk zabraňuje JOSM ve "
 "spuštění a není pak snadné se ho zbavit.)"
 
+msgid "Import OSM data in o5m format"
+msgstr "Importuje OSM data ve formátu o5m"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Převádí data z portálů Open Data do vrstvy OSM"
 
@@ -17650,6 +17688,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Upravit vlastnosti Sea Charts"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr "Dává uživateli více nástrojů na vyrovnávání a rotaci budov."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19901,9 +19943,27 @@ msgstr "Propustek"
 msgid "Basin"
 msgstr "Vodní nádrž"
 
+msgid "retention"
+msgstr "retenční nádrž"
+
+msgid "infiltration"
+msgstr "vsakovací nádrž"
+
+msgid "detention"
+msgstr "suchá nádrž"
+
 msgid "Reservoir"
 msgstr "Umělá vodní nádrž"
 
+msgid "evaporator"
+msgstr "odpařovací"
+
+msgid "tailings"
+msgstr "usazovací"
+
+msgid "water_storage"
+msgstr "zásobní"
+
 msgid "Covered Reservoir"
 msgstr "Krytá vodní nádrž"
 
@@ -19938,6 +19998,12 @@ msgstr "nádrž"
 msgid "river"
 msgstr "řeka (river)"
 
+msgid "lock"
+msgstr "zdymadlo"
+
+msgid "wastewater"
+msgstr "odpadní"
+
 msgid "Salt Water"
 msgstr "Slaná voda"
 
@@ -21146,6 +21212,9 @@ msgstr "Zábavní park"
 msgid "Water Park"
 msgstr "Akvapark"
 
+msgid "Beach Resort"
+msgstr "Přímořské letovisko"
+
 msgid "Swimming Pool"
 msgstr "Plavecký bazén"
 
@@ -23799,8 +23868,11 @@ msgstr "Mořské plody"
 msgid "Deli (Fine Food)"
 msgstr "Delikatesy"
 
-msgid "Candy Store"
-msgstr "Cukrárna"
+msgid "Pastry"
+msgstr "Sladké pečivo"
+
+msgid "Confectionery"
+msgstr "Cukrovinky"
 
 msgid "Tea"
 msgstr "Čaj"
@@ -24051,8 +24123,11 @@ msgstr "Prodejní automat"
 msgid "Vending products"
 msgstr "Prodávané produkty"
 
-msgid "animal_food"
-msgstr "krmivo pro zvířata"
+msgid "admission_tickets"
+msgstr "vstupenky"
+
+msgid "animal_feed"
+msgstr "krmení pro zvířata"
 
 msgid "bicycle_tube"
 msgstr "duše na bicykle"
@@ -24066,6 +24141,9 @@ msgstr "kondomy"
 msgid "drinks"
 msgstr "pití"
 
+msgid "elongated_coin"
+msgstr "vyražené mince"
+
 msgid "excrement_bags"
 msgstr "sáčky na výkaly"
 
@@ -24081,6 +24159,12 @@ msgstr "noviny"
 msgid "parking_tickets"
 msgstr "parkovací lístky"
 
+msgid "parcel_pickup"
+msgstr "vyzvednutí balíčků"
+
+msgid "parcel_mail_in"
+msgstr "posílání balíčků"
+
 msgid "photos"
 msgstr "fotografie"
 
@@ -24099,18 +24183,12 @@ msgstr "známky"
 msgid "sweets"
 msgstr "sladkosti"
 
-msgid "tampons"
-msgstr "tampóny"
-
 msgid "telephone_vouchers"
 msgstr "telefonní karty"
 
 msgid "toys"
 msgstr "hračky"
 
-msgid "vouchers"
-msgstr "poukazy"
-
 msgid "Payment Methods"
 msgstr "Způsoby platby"
 
@@ -24838,6 +24916,15 @@ msgstr "Skleníkové zahradnictví"
 msgid "Plant Nursery"
 msgstr "Školka rostlin"
 
+msgid "Aquaculture"
+msgstr "Akvakultura"
+
+msgid "shrimp"
+msgstr "krevety"
+
+msgid "mussels"
+msgstr "slávky"
+
 msgid "Allotments"
 msgstr "Zahrádkářská kolonie"
 
@@ -24931,6 +25018,9 @@ msgstr "Oficiální název"
 msgid "Common name abbreviation"
 msgstr "Obvyklý zkrácený název"
 
+msgid "Address"
+msgstr "Adresa"
+
 msgid "House number"
 msgstr "Číslo domu"
 
@@ -27319,6 +27409,23 @@ msgstr "Ladění"
 msgid "Debugging mode will write images for each processing step."
 msgstr "Režim ladění zapíše obrázky v každém kroku zpracování."
 
+msgid "Building Generalization"
+msgstr "Zobecnění budov"
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+"Začátečníci často kreslí obrysy velmi nepřesně. Takové budovy by se měly "
+"převést na pravoúhlé. Úhly mezi 84-96 stupni se převedou na 90 stupňů."
+
+msgid "There is no frame loaded !"
+msgstr "Není načtený žádný rámeček!"
+
+msgid "Alert Message"
+msgstr "Varovná zpráva"
+
 msgid "Street Name:"
 msgstr "Jméno ulice:"
 
@@ -28276,9 +28383,6 @@ msgstr ""
 "povolena, pak není žádný indikátor, že se něco stahuje a ani žádná možnost "
 "jak stahování přerušit."
 
-msgid "Address"
-msgstr "Adresa"
-
 msgid "Split area"
 msgstr "Rozdělit oblast"
 
@@ -29439,8 +29543,8 @@ msgstr "vytvořit orientovaný graf toků"
 msgid "Check "
 msgstr "Zkontrolovat "
 
-msgid "check the subust for junction properties"
-msgstr "zkontrolovat v podmnožině vlastnosti křižovatky"
+msgid "check the subset for junction properties"
+msgstr "zkontrolovat podmnožinu na vlastnosti křižovatky"
 
 msgid "Search "
 msgstr "Hledat "
@@ -30340,6 +30444,24 @@ msgstr ""
 "(Chcete-li bídně pokračovat v mapování, musíte odstranit\n"
 "no_more_mapping z {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr "Soubory OSM Server o5m komprimované"
+
+msgid "Invalid changeset id: {0}"
+msgstr "Neplatné id sady změn: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Neplatný časový údaj: {0}"
+
+msgid "wrong header byte "
+msgstr "chybný bajt hlavičky "
+
+msgid "unsupported header"
+msgstr "nepodprorovaná hlavička"
+
+msgid "Reading OSM data..."
+msgstr "Načítaní dat OSM..."
+
 msgid "Split by municipality"
 msgstr "Rozdělit dle samosprávných obcí"
 
@@ -30867,18 +30989,9 @@ msgstr "soubory OSM serveru zkomprimované v pbf"
 msgid "Download PBF"
 msgstr "Stáhnout PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Neplatné id sady změn: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Neplatný časový údaj: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Nepoužitelná tabulka klíče/hodnot DenseNodes"
 
-msgid "Reading OSM data..."
-msgstr "Načítaní dat OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Chyba transformace: Minimální X musí být menší, než maximální"
 
@@ -31539,6 +31652,9 @@ msgstr "Tisk selhal."
 msgid "Add stop position"
 msgstr "Přidat místo zastavení"
 
+msgid "Repeat last fix"
+msgstr "Opakovat poslední opravu"
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr "Chcete stáhnout prvky odkazující na nástupiště a místa zastavení?"
 
@@ -31557,6 +31673,12 @@ msgstr ""
 "Před pokračováním kontroly musí být staženy.\n"
 "Chcete je stáhnout?"
 
+msgid "Download incomplete route relation members"
+msgstr "Stáhnout nekompletní členy relace route"
+
+msgid "Include stop_area tests"
+msgstr "Zahrnout testy stop_area"
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 "Doplněk PT_Assistant zjistil, že tato relace (id={0}) obsahuje chyby:"
@@ -31588,10 +31710,6 @@ msgstr "VD: Nástupiště by nemělo být částí cesty"
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr "VD: Zastávka nebo nástupiště není součástí relace stop area"
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr "VD: Zastávka a její nástupiště mají rozdílnou relaci route"
-
 msgid "PT_Assistant Message"
 msgstr "Zpráva Asistenta VD"
 
@@ -31628,8 +31746,16 @@ msgstr "VD: Problém v segmentu trasy"
 msgid "PT: Stop not served"
 msgstr "VD: Zastávka není obsluhována"
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "VD: Problém se segmentem trasy s žádnou automatickou opravou"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "VD: Problém se segmentem trasy s jednou automatickou opravou"
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
+"Varování: zobrazené varianty oprav jsou založené na méně striktních "
+"kritériích"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
 msgstr ""
@@ -31639,14 +31765,13 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr "VD: Relace stop area nemá žádnou zastávku"
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr "VD: Relace stop area má několik zastávek"
-
 msgid "PT: Stop area relation has no platform"
 msgstr "VD: Relace stop area nemá nástupiště"
 
-msgid "PT: Stop area relation has several platforms"
-msgstr "VD: Relace stop area má několik nástupišť"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
+msgstr "VD: Relace route zastávky a nástupiště zastávky divergují"
 
 msgid "PT: Route type does not match the type of the road it passes on"
 msgstr "VD: Typ trasy neodpovídá typu silnice, po které vede"
@@ -32456,6 +32581,51 @@ msgstr "Vyberte pouze jeden objekt"
 msgid "Select a map object"
 msgstr "Vyberte objekt na mapě"
 
+msgid "Shape actions panel"
+msgstr "Panel akcí tvaru"
+
+msgid "Shape mode control panel"
+msgstr "Panel ovládání režimu tvaru"
+
+msgid "Rotate Mode:"
+msgstr "Režim otáčení:"
+
+msgid "Clockwise"
+msgstr "Po směru hodinových ručiček"
+
+msgid "Counter Clockwise"
+msgstr "Proti směru hodinových ručiček"
+
+msgid "Input angle here"
+msgstr "Sem vložte úhel"
+
+msgid "Rotate"
+msgstr "Otočení"
+
+msgid "Align building "
+msgstr "Vyrovnat budovu "
+
+msgid "Select building"
+msgstr "Zvolte budovu"
+
+msgid "Select road"
+msgstr "Zvolte silnici"
+
+msgid "Select none"
+msgstr "Nevybrat žádné"
+
+msgid "Min Distance:"
+msgstr "Min. vzdálenost:"
+
+msgid "Input min distance"
+msgstr "Zadejte minimální vzdálenost"
+
+msgid "Align all buildings"
+msgstr "Vyrovnat všechny budovy"
+
+msgid "Delete overlay"
+msgstr "Smazat překryvnou vrstvu"
+
 msgid "Simplify Area"
 msgstr "Zjednodušit plochu"
 
@@ -34617,18 +34787,6 @@ msgstr[2] "Načítám {0} identifikátorů Wikidata jazyka ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Přidávám Wikidata pro jazyk ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Přepsat ''{0}'' značku {1} z {2} na novou hodnotu ''{3}''?"
-msgstr[1] "Přepsat ''{0}'' značky {1} z {2} na novou hodnotu ''{3}''?"
-msgstr[2] "Přepsat ''{0}'' značek {1} z {2} na novou hodnotu ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr "Prohledávání položek Wikidat"
-
-msgid "Target key: "
-msgstr "Cílový klíč: "
-
 msgid "Add names from Wikipedia"
 msgstr "Přidat názvy z Wikipedie"
 
@@ -34638,12 +34796,6 @@ msgstr ""
 "Načte z Wikipedie odkazy mezi různými jazyky, aby šlo přidat různé značky "
 "názvů"
 
-msgid "Search Wikipedia category"
-msgstr "Prohledat kategorii Wikipedie"
-
-msgid "Load category"
-msgstr "Načíst kategorii"
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34654,6 +34806,24 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Kopírovat šablonu {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Přepsat ''{0}'' značku {1} z {2} na novou hodnotu ''{3}''?"
+msgstr[1] "Přepsat ''{0}'' značky {1} z {2} na novou hodnotu ''{3}''?"
+msgstr[2] "Přepsat ''{0}'' značek {1} z {2} na novou hodnotu ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr "Prohledávání položek Wikidat"
+
+msgid "Target key: "
+msgstr "Cílový klíč: "
+
+msgid "Search Wikipedia category"
+msgstr "Prohledat kategorii Wikipedie"
+
+msgid "Load category"
+msgstr "Načíst kategorii"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Načíst články obsahující souřadnice z Wikipedie"
 
diff --git a/i18n/po/cy.po b/i18n/po/cy.po
index c63377d..eebfbd4 100644
--- a/i18n/po/cy.po
+++ b/i18n/po/cy.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2009-07-17 21:45+0000\n"
 "Last-Translator: iggy23 <Unknown>\n"
 "Language-Team: Welsh <cy at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
 "2 : 3;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:12+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:43+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: cy\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -483,6 +468,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1962,6 +1953,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1974,9 +1974,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2042,12 +2039,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2138,13 +2129,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3505,9 +3496,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3517,6 +3505,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4727,7 +4718,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5877,6 +5868,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5904,9 +5898,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7127,10 +7118,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9134,10 +9125,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9617,6 +9608,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9629,9 +9623,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11421,6 +11412,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12508,9 +12524,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13483,7 +13496,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13949,6 +13962,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14145,6 +14161,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14176,7 +14195,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14910,13 +14929,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15312,10 +15337,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15701,6 +15726,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15924,6 +15954,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16029,6 +16062,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18226,9 +18263,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18263,6 +18318,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19468,6 +19529,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22119,7 +22183,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22371,7 +22438,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22386,6 +22456,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22401,6 +22474,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22419,18 +22498,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23144,6 +23217,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23237,6 +23319,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25440,6 +25525,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26320,9 +26420,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27406,7 +27503,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28267,6 +28364,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28741,18 +28856,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29404,6 +29510,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29419,6 +29528,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29447,10 +29562,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29485,6 +29596,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29494,13 +29611,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30291,6 +30407,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32245,6 +32406,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32256,27 +32432,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/da.po b/i18n/po/da.po
index 54f87af..5532b40 100644
--- a/i18n/po/da.po
+++ b/i18n/po/da.po
@@ -8,16 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-03 22:02+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-04 14:59+0000\n"
 "Last-Translator: Jørn <joern.map at gmail.com>\n"
 "Language-Team: Dansk <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:40+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:46+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: da_DK\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
@@ -57,21 +57,6 @@ msgstr "Betingelser for brug af baggrund"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Åbning af link ikke understøttet på den nuværende platform (\"{0}\")"
 
-msgid "ERROR: {0}"
-msgstr "FEJL: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ADVARSEL: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Årsag: "
-
 msgid "Executing platform startup hook"
 msgstr "Afvikler tilføjelse til opstart af platform"
 
@@ -507,6 +492,12 @@ msgstr "Download data"
 msgid "Download notes in current view"
 msgstr "Download noter i aktuel visning"
 
+msgid "Download in current view"
+msgstr "Download i aktuel visning"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Download kortdata fra OSM serveren i aktuel visning"
+
 msgid "Download object..."
 msgstr "Download objekt..."
 
@@ -1139,13 +1130,14 @@ msgid "Paste"
 msgstr "Indsæt"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Indsæt indholdet fra udklipsholder."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Indsæt ved kilde position"
 
 msgid "Paste contents of clipboard at the position they were copied from."
 msgstr ""
+"Indsæt indholdet fra udklipsholder i den position de blev kopieret fra."
 
 msgid "Paste Tags"
 msgstr "Indsæt tags"
@@ -2100,6 +2092,15 @@ msgstr ""
 "Klik for at slette. Shift: Slet vejsegment. Alt: Slet ikke ubrugte punkter, "
 "når en vej slettes. Ctrl: Slet refererende objekter."
 
+msgid "draw angle snap"
+msgstr "tegn vinkellås"
+
+msgid "draw angle snap highlight"
+msgstr "tegn vinkellås fremhævning"
+
+msgid "helper line"
+msgstr "hjælpelinje"
+
 msgid "Draw"
 msgstr "Tegn"
 
@@ -2112,9 +2113,6 @@ msgstr "Tilstand: Vinkellås"
 msgid "Backspace in Add mode"
 msgstr "Backspace i tilføj tilstand"
 
-msgid "helper line"
-msgstr "hjælpelinje"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Kan ikke tilføje et punkt uden for verdenen."
 
@@ -2180,12 +2178,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "tegn vinkellås"
-
-msgid "draw angle snap highlight"
-msgstr "tegn vinkellås fremhævning"
-
 msgid "Angle snapping"
 msgstr "Vinkellås"
 
@@ -2285,15 +2277,15 @@ msgstr[1] "Tilføj et nyt punkt til {0} veje"
 msgid "Cannot delete node that has tags"
 msgstr "Kan ikke slette et punkt der har tags"
 
+msgid "make parallel helper line"
+msgstr "lav parallel hjælpelinje"
+
 msgid "Parallel"
 msgstr "Parallel"
 
 msgid "Make parallel copies of ways"
 msgstr "Lav paralelle kopier af veje"
 
-msgid "make parallel helper line"
-msgstr "lav parallel hjælpelinje"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3791,9 +3783,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "Ingen enhed fundet for: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameteren skal begynde med et ''+'' tegn (fandt ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Ukendt parameter: ''{0}''."
 
@@ -3803,6 +3792,9 @@ msgstr "Værdi forventet for parameteren \"{0}\"."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Ingen værdi forventet for parameteren \"{0}\"."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameteren skal begynde med et ''+'' tegn (fandt ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Uventet parameter format (\"{0}\")"
 
@@ -5062,8 +5054,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Vær sikker på at du indlæser nogle data hvis du bruger --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Skriver debug beskeder til skærm"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr "Log niveau er på {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Udvidelsesindlæsningen sprunget over"
@@ -6321,6 +6313,9 @@ msgstr "Klik for at lukke denne dialog og fortsætte med at redigere"
 msgid "Conflicts detected"
 msgstr "Konflikter opdaget"
 
+msgid "Resolve conflicts"
+msgstr "Løs konflikter"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Abryd konfliktløsning og luk dialogen"
 
@@ -6354,9 +6349,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Konflikt er ikke helt løst"
 
-msgid "Resolve conflicts"
-msgstr "Løs konflikter"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Løs konflikter for ''{0}''"
 
@@ -7658,12 +7650,12 @@ msgstr "Vis/skjul lag"
 msgid "Discardable key: selection Foreground"
 msgstr "Kasserbar nøgle: markering forgrund"
 
-msgid "Discardable key: selection Background"
-msgstr "Kasserbar nøgle: markering baggrund"
-
 msgid "Discardable key: foreground"
 msgstr "Kasserbar nøgle: forgrund"
 
+msgid "Discardable key: selection Background"
+msgstr "Kasserbar nøgle: markering baggrund"
+
 msgid "Discardable key: background"
 msgstr "Kasserbar nøgle: baggrund"
 
@@ -9865,12 +9857,12 @@ msgstr "Noter totalt:"
 msgid "Changes need uploading?"
 msgstr "Ændringer behøver upload?"
 
-msgid "Data Layer {0}"
-msgstr "Datalag {0}"
-
 msgid "outside downloaded area"
 msgstr "Uden for det downloadede område"
 
+msgid "Data Layer {0}"
+msgstr "Datalag {0}"
+
 msgid "Merging layers"
 msgstr "Sammenlægger lag"
 
@@ -10383,6 +10375,9 @@ msgstr "Der er ingen billedlag."
 msgid "No imagery layers"
 msgstr "Ingen billedlag"
 
+msgid "gps point"
+msgstr "gps-punkt"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10395,9 +10390,6 @@ msgstr "Retning"
 msgid "Velocity, {0}"
 msgstr "Hastighed, {0}"
 
-msgid "gps point"
-msgstr "gps-punkt"
-
 msgid "Import Audio"
 msgstr "Importer lyd"
 
@@ -12390,6 +12382,32 @@ msgstr "Konfigurer steder..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Konfigurer listen over steder hvorfra udvidelser bliver downloadet"
 
+msgid "Load from list..."
+msgstr "Indlæs fra liste..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Indlæs udvidelser fra en liste af udvidelser"
+
+msgid "Disable all other plugins"
+msgstr "Deaktiver alle andre udvidelser"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Indtast en liste af udvidelser der skal indlæses."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Tilføj et udvidelse id per linje, oplysninger om versionen ignoreres."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "Du kan kopiere+indsætte listen fra en statusrapport her."
+
+msgid "Load plugins from list"
+msgstr "Indlæs udvidelser fra liste"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "Følgende udvidelser blev ikke fundet. Fortsæt alligevel?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Tilføj JOSM-udvidelsers beskrivelses-URL."
 
@@ -13572,9 +13590,6 @@ msgstr "<html>Kunne ikke indlæse filerne.<br>Fejlen er:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON filer"
 
-msgid "Projected GeoJSON Files"
-msgstr "Projekterede GeoJSON filer"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Laget \"{0}\" er ikke understøttet"
 
@@ -14638,7 +14653,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "Denne udvidelse vil ikke blive indlæst."
 msgstr[1] "Disse udvidelser vil ikke blive indlæst."
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr "Vælger udvidelser der skal indlæses..."
 
 msgid "Removing deprecated plugins..."
@@ -15249,6 +15264,9 @@ msgstr ""
 "Kunne ikke få adgang til mappen ''{0}'' af sikkerhedsmæssige årsager. "
 "Handlingen var: {1}"
 
+msgid "Cause: "
+msgstr "Årsag: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15485,6 +15503,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Rapporter fejl"
 
+msgid "Suppress this error for this session."
+msgstr "Undertryk denne fejl for denne session."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Undertryk yderligere fejldialoger for denne session."
 
@@ -15518,7 +15539,7 @@ msgstr "Der opstod en fejl under tjek af om din JOSM instans er opdateret."
 msgid "JOSM is up to date."
 msgstr "JOSM er opdateret."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 "JOSM er forældet. Den aktuelle version er {0}. Prøv at opdatere JOSM."
 
@@ -16270,14 +16291,20 @@ msgstr "Berlin aerial photograph 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin aerial photograph 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Berlin aerial photograph 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (aerial imagery)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Erlangen aerial imagery (2016 5.0 cm)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen aerial imagery (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Erlangen aerial imagery (2011 5.0 cm)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16672,11 +16699,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -17074,6 +17101,13 @@ msgstr ""
 "som polygon. Lavet for at lette kortlægning af bygninger fra baggrunds lag. "
 "Optimeret til basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Tillader brugeren at rette vinkel på bygninger til 90 grader, og tilpasse "
+"alle indlæste bygninger til nærmeste vej."
+
 msgid "Tools for drawing buildings."
 msgstr "Værktøj til at tegne bygninger."
 
@@ -17366,6 +17400,9 @@ msgstr ""
 "Forbyd brug af JOSM for evigt (ADVARSEL: Denne udvidelse forhindrer JOSM "
 "starter og er svær at slippe af med)"
 
+msgid "Import OSM data in o5m format"
+msgstr "Importer OSM data i o5m format"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Konverter data fra Open Data portaler til OSM lag"
 
@@ -17495,6 +17532,12 @@ msgid "Edit features for Sea Charts"
 msgstr "Rediger funktioner for søkort"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+"Giver brugeren flere værktøjer, der letter tilpasning og rotation af "
+"bygninger."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19744,9 +19787,27 @@ msgstr "Gennemløb"
 msgid "Basin"
 msgstr "Bassin"
 
+msgid "retention"
+msgstr "nedsivning"
+
+msgid "infiltration"
+msgstr "tilbageholdelse"
+
+msgid "detention"
+msgstr "fastholdelse"
+
 msgid "Reservoir"
 msgstr "Vandreservoir"
 
+msgid "evaporator"
+msgstr "fordampning"
+
+msgid "tailings"
+msgstr "restadfald"
+
+msgid "water_storage"
+msgstr "vandopbevaring"
+
 msgid "Covered Reservoir"
 msgstr "Overdækket reservoir"
 
@@ -19781,6 +19842,12 @@ msgstr "reservoir"
 msgid "river"
 msgstr "flod"
 
+msgid "lock"
+msgstr "sluse"
+
+msgid "wastewater"
+msgstr "spildevand"
+
 msgid "Salt Water"
 msgstr "Saltvand"
 
@@ -20992,6 +21059,9 @@ msgstr "Forlystelsespark"
 msgid "Water Park"
 msgstr "Badeland"
 
+msgid "Beach Resort"
+msgstr "Styret standområde"
+
 msgid "Swimming Pool"
 msgstr "Svømmebasin"
 
@@ -23645,8 +23715,11 @@ msgstr "Fiskehandel"
 msgid "Deli (Fine Food)"
 msgstr "Delikatesse"
 
-msgid "Candy Store"
-msgstr "Slikbutik"
+msgid "Pastry"
+msgstr "Bagværk"
+
+msgid "Confectionery"
+msgstr "Konditori"
 
 msgid "Tea"
 msgstr "Tebutik"
@@ -23897,8 +23970,11 @@ msgstr "Selvbetjeningsautomat"
 msgid "Vending products"
 msgstr "Varer i automat"
 
-msgid "animal_food"
-msgstr "dyremad"
+msgid "admission_tickets"
+msgstr "entrebilletter"
+
+msgid "animal_feed"
+msgstr "dyrefoder"
 
 msgid "bicycle_tube"
 msgstr "cykelslange"
@@ -23912,6 +23988,9 @@ msgstr "kondomer"
 msgid "drinks"
 msgstr "drikkevarer"
 
+msgid "elongated_coin"
+msgstr "souvenir mønt"
+
 msgid "excrement_bags"
 msgstr "høm-høm-pose"
 
@@ -23927,6 +24006,12 @@ msgstr "aviser"
 msgid "parking_tickets"
 msgstr "parkeringsbilletter"
 
+msgid "parcel_pickup"
+msgstr "hente pakker"
+
+msgid "parcel_mail_in"
+msgstr "aflevere pakker"
+
 msgid "photos"
 msgstr "billeder"
 
@@ -23945,18 +24030,12 @@ msgstr "frimærker"
 msgid "sweets"
 msgstr "slik"
 
-msgid "tampons"
-msgstr "tamponer"
-
 msgid "telephone_vouchers"
 msgstr "telefonkort"
 
 msgid "toys"
 msgstr "legetøj"
 
-msgid "vouchers"
-msgstr "gavekort"
-
 msgid "Payment Methods"
 msgstr "Betalingsmetoder"
 
@@ -24664,7 +24743,7 @@ msgid "cherry_trees"
 msgstr "kirsebærtræer"
 
 msgid "persimmon_trees"
-msgstr "Kakitræer"
+msgstr "kakitræer"
 
 msgid "walnut_trees"
 msgstr "valnøddetræer"
@@ -24687,6 +24766,15 @@ msgstr "Drivhusområde"
 msgid "Plant Nursery"
 msgstr "Planteskole"
 
+msgid "Aquaculture"
+msgstr "Akvakultur"
+
+msgid "shrimp"
+msgstr "rejer"
+
+msgid "mussels"
+msgstr "muslinger"
+
 msgid "Allotments"
 msgstr "Kolonihaver"
 
@@ -24780,6 +24868,9 @@ msgstr "Officielt navn"
 msgid "Common name abbreviation"
 msgstr "Forkortet navn"
 
+msgid "Address"
+msgstr "Adresse"
+
 msgid "House number"
 msgstr "Husnummer"
 
@@ -27161,6 +27252,24 @@ msgstr "Fejlfind"
 msgid "Debugging mode will write images for each processing step."
 msgstr "Fejlfindingstilstand vil skrive billeder for hver behandlingstrin."
 
+msgid "Building Generalization"
+msgstr "Bygnings generalisering"
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+"Begyndere tegner ofte omrids meget unøjagtige. Sådanne bygninger skal "
+"omregnes til nogle rektangulære. Vinkler mellem 84-96 grader konverteres til "
+"90 grader."
+
+msgid "There is no frame loaded !"
+msgstr "Der er ingen ramme indlæst!"
+
+msgid "Alert Message"
+msgstr "Alarmbesked"
+
 msgid "Street Name:"
 msgstr "Vejnavn:"
 
@@ -28117,9 +28226,6 @@ msgstr ""
 "denne indstilling er der ingen indikation af at noget bliver gjort, og ingen "
 "måde at annullere overførslen."
 
-msgid "Address"
-msgstr "Adresse"
-
 msgid "Split area"
 msgstr "Opdel område"
 
@@ -29266,7 +29372,7 @@ msgstr "opret kanalen digraf"
 msgid "Check "
 msgstr "Tjek "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr "tjek delmængden for vejkryds egenskaber"
 
 msgid "Search "
@@ -30152,6 +30258,24 @@ msgstr ""
 "(For ynkeligt at fortsætte kortlægning, fjern no_more_mapping\n"
 "fra {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr "OSM server filer o5m komprimeret"
+
+msgid "Invalid changeset id: {0}"
+msgstr "Ugyldig rettesæt id: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Ugyldig tidsstempel: {0}"
+
+msgid "wrong header byte "
+msgstr "forkert header byte "
+
+msgid "unsupported header"
+msgstr "header ikke understøttet"
+
+msgid "Reading OSM data..."
+msgstr "Indlæser OSM data..."
+
 msgid "Split by municipality"
 msgstr "Opdel efter kommune"
 
@@ -30673,18 +30797,9 @@ msgstr "OSM Server filer pbf komprimeret"
 msgid "Download PBF"
 msgstr "Download PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Ugyldig rettesæt id: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Ugyldig tidsstempel: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Ugyldig TætPunkts nøgle/værdier tabel"
 
-msgid "Reading OSM data..."
-msgstr "Indlæser OSM data..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Transformations fejl: Min X skal være mindre end maks."
 
@@ -31344,8 +31459,11 @@ msgstr "Udskrivning mislykkedes."
 msgid "Add stop position"
 msgstr "Tilføj stopposition"
 
+msgid "Repeat last fix"
+msgstr "Gentag seneste rettelse"
+
 msgid "Do you want to download referrers of platforms and stop positions?"
-msgstr "Vil du at downloade refererende platforme og stop positioner?"
+msgstr "Vil du at downloade refererende platforme og stoppositioner?"
 
 msgid "Remember my choice and do not ask me again in this session"
 msgstr "Husk mit valg og spørg mig ikke igen i denne session"
@@ -31362,6 +31480,12 @@ msgstr ""
 "Der er brug for at de bliver hentet for at fortsætte med validering.\n"
 "Vil du downloade dem?"
 
+msgid "Download incomplete route relation members"
+msgstr "Download ufuldstændige rute relations medlemmer"
+
+msgid "Include stop_area tests"
+msgstr "Medtag stopområde tests"
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr "OT_Assistent udvidelse fandt at denne relation (id={0}) har fejl:"
 
@@ -31389,10 +31513,7 @@ msgstr "OT: Platform bør ikke være en del af en vej"
 
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
-
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
+"OT: Stopposition eller platform er ikke en del af en stopområde relation"
 
 msgid "PT_Assistant Message"
 msgstr "OT_Assistent besked"
@@ -31429,23 +31550,33 @@ msgstr "OT: Problem i rutesegmentet"
 msgid "PT: Stop not served"
 msgstr "OT: Stop ikke serviceret"
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "OT: Problem i rute segmentet uden automatiske rettelse"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "OT: Problem i rute segmentet med en automatiske rettelse"
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
+"Advarsel: de viste rettelses varianter er baseret på mindre strenge kriterier"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
 msgstr ""
+"Skriv bogstav for at vælge rettelses variant eller tryk på Escape for ingen "
+"rettelse"
 
 msgid "PT: Stop area relation has no stop position"
-msgstr ""
-
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
+msgstr "OT: Stopområde relation har ingen stopposition"
 
 msgid "PT: Stop area relation has no platform"
-msgstr ""
+msgstr "OT: Stopområde relation har ingen platform"
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
+"OT: Rute relationer med stop-position(er) og platform(e) med stopområde "
+"medlemmer afviger"
 
 msgid "PT: Route type does not match the type of the road it passes on"
 msgstr "OT: Rute type passer ikke til den type af vej den passerer på"
@@ -32255,6 +32386,51 @@ msgstr "Vælg kun et objekt"
 msgid "Select a map object"
 msgstr "Vælg et kort objekt"
 
+msgid "Shape actions panel"
+msgstr "Form handlings panel"
+
+msgid "Shape mode control panel"
+msgstr "Form tilstands kontrol panel"
+
+msgid "Rotate Mode:"
+msgstr "Rotere tilstand:"
+
+msgid "Clockwise"
+msgstr "Med uret"
+
+msgid "Counter Clockwise"
+msgstr "Mod uret"
+
+msgid "Input angle here"
+msgstr "Indtast vinkel her"
+
+msgid "Rotate"
+msgstr "Rotere"
+
+msgid "Align building "
+msgstr "Tilpas bygning "
+
+msgid "Select building"
+msgstr "Vælg bygning"
+
+msgid "Select road"
+msgstr "Vælg vej"
+
+msgid "Select none"
+msgstr "Vælg intet"
+
+msgid "Min Distance:"
+msgstr "Min afstand:"
+
+msgid "Input min distance"
+msgstr "Indtast min afstand"
+
+msgid "Align all buildings"
+msgstr "Tilpas alle bygninger"
+
+msgid "Delete overlay"
+msgstr "Slet dæklag"
+
 msgid "Simplify Area"
 msgstr "Simplificer område"
 
@@ -34402,17 +34578,6 @@ msgstr[1] "Henter {0} Wikidata ID''er for sprog ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Tilføj Wikidata for sprog ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Overskriv ''{0}'' tag {1} fra {2} med ny værdi ''{3}''?"
-msgstr[1] "Overskriv ''{0}'' tags {1} fra {2} med ny værdi ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr "Søg Wikidata emner"
-
-msgid "Target key: "
-msgstr "Ønsket nøgle: "
-
 msgid "Add names from Wikipedia"
 msgstr "Tilføj navne fra Wikipedia"
 
@@ -34420,12 +34585,6 @@ msgid ""
 "Fetches interwiki links from Wikipedia in order to add several name tags"
 msgstr "Henter interwiki links fra Wikipedia for at tilføje flere navne tags"
 
-msgid "Search Wikipedia category"
-msgstr "Søg Wikipedia kategori"
-
-msgid "Load category"
-msgstr "Indlæs kategori"
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34436,6 +34595,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Kopier {0} skabelon"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Overskriv ''{0}'' tag {1} fra {2} med ny værdi ''{3}''?"
+msgstr[1] "Overskriv ''{0}'' tags {1} fra {2} med ny værdi ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr "Søg Wikidata emner"
+
+msgid "Target key: "
+msgstr "Ønsket nøgle: "
+
+msgid "Search Wikipedia category"
+msgstr "Søg Wikipedia kategori"
+
+msgid "Load category"
+msgstr "Indlæs kategori"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Hent Wikipedia-artikler med koordinater"
 
diff --git a/i18n/po/de.po b/i18n/po/de.po
index 28e522a..a46f2bb 100644
--- a/i18n/po/de.po
+++ b/i18n/po/de.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-09 19:07+0000\n"
-"Last-Translator: holger (lp) <Unknown>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-02 21:55+0000\n"
+"Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: JOSM\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:44+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:54+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: de\n"
 "X-Poedit-SearchPath-0: .\n"
 "X-Poedit-Basepath: /home/simon/src/josm.all/i18n\n"
@@ -59,21 +59,6 @@ msgstr ""
 "Das Öffnen von Links wird von der derzeitigen Plattform (''{0}'') nicht "
 "unterstützt"
 
-msgid "ERROR: {0}"
-msgstr "Fehler: {0}"
-
-msgid "WARNING: {0}"
-msgstr "WARNUNG: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Ursache: "
-
 msgid "Executing platform startup hook"
 msgstr "Plattform-Einschaltmethode wird ausgeführt"
 
@@ -514,6 +499,12 @@ msgstr "Daten herunterladen"
 msgid "Download notes in current view"
 msgstr "Hinweise in aktueller Ansicht herunterladen"
 
+msgid "Download in current view"
+msgstr "In aktueller Ansicht herunterladen"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Kartendaten vom OSM-Server in aktueller Ansicht herunterladen"
+
 msgid "Download object..."
 msgstr "Objekt herunterladen…"
 
@@ -1511,7 +1502,7 @@ msgid ""
 "A role based relation membership was copied to all new ways.<br>You should "
 "verify this and correct it when necessary."
 msgstr ""
-"Eine rollenbasierte Relations-Mitgliedschaft wurde in alle neuen Linien "
+"Eine rollenbasierte Relationsmitgliedschaft wurde in alle neuen Linien "
 "kopiert.<br>Sie sollten dies überprüfen und falls nötig korrigieren."
 
 msgid ""
@@ -2169,8 +2160,17 @@ msgid ""
 "Click to delete. Shift: delete way segment. Alt: do not delete unused nodes "
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
-"Anklicken: löschen. Umschalt: Lösche Linienabschnitt. Alt: unbenutzte Punkte "
-"nicht löschen. Strg: Lösche Elternobjekte."
+"Anklicken: löschen. Umschalt: Linienabschnitt löschen. Alt: unbenutzte "
+"Punkte nicht löschen. Strg: Elternobjekte löschen."
+
+msgid "draw angle snap"
+msgstr "Winkelfang zeichnen"
+
+msgid "draw angle snap highlight"
+msgstr "Winkelfang-Hervorhebung"
+
+msgid "helper line"
+msgstr "Hilfslinie"
 
 msgid "Draw"
 msgstr "Zeichnen"
@@ -2184,9 +2184,6 @@ msgstr "Modus: Zeichenwinkel einrasten"
 msgid "Backspace in Add mode"
 msgstr "Backspace im Änderungsmodus"
 
-msgid "helper line"
-msgstr "Hilfslinie"
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 "Außerhalb des heruntergeladenen Bereichs können keine Punkte erstellt werden."
@@ -2253,12 +2250,6 @@ msgstr "0,30,45,60,90, …"
 msgid "FIX"
 msgstr "FIXIEREN"
 
-msgid "draw angle snap"
-msgstr "Winkelfang zeichnen"
-
-msgid "draw angle snap highlight"
-msgstr "Winkelfang-Hervorhebung"
-
 msgid "Angle snapping"
 msgstr "Winkelfang"
 
@@ -2364,15 +2355,15 @@ msgstr[1] "Einen neuen Punkt zu {0} Wegen hinzufügen"
 msgid "Cannot delete node that has tags"
 msgstr "Kann Punkt mit Merkmalen nicht löschen"
 
+msgid "make parallel helper line"
+msgstr "Parallelweg-Hilfslinie"
+
 msgid "Parallel"
 msgstr "Parallel"
 
 msgid "Make parallel copies of ways"
 msgstr "Parallele Kopien einer Linie erstellen"
 
-msgid "make parallel helper line"
-msgstr "Parallelweg-Hilfslinie"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3906,9 +3897,6 @@ msgstr "Erwarteter Ganzzahlwert im Bereich 1-60 für Parameter ''+zone=...''."
 msgid "No unit found for: {0}"
 msgstr "Keine Einheit gefunden für: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameter muss mit einem ''+''-Zeichen beginnen (''{0}'' gefunden)"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Unbekannter Parameter: ''{0}''."
 
@@ -3918,6 +3906,9 @@ msgstr "Erwarteter Wert für Parameter ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Kein erwarteter Wert für Parameter ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameter muss mit einem ''+''-Zeichen beginnen (''{0}'' gefunden)"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Unerwartetes Parameterformat (''{0}'')"
 
@@ -4331,14 +4322,15 @@ msgid "Number of lane dependent values inconsistent in backward direction"
 msgstr "Anzahl der spurabhängigen Werte in Rückwärtsrichtung inkonsistent"
 
 msgid "Long segments"
-msgstr "Lange Segmente"
+msgstr "Lange Abschnitte"
 
 msgid "This tests for long way segments, which are usually errors."
 msgstr ""
-"Tested auf lange Linienabschnitte, welche i.d.R. einen Fahler darstellen."
+"Tested auf lange Linienabschnitte, welche normalerweise einen Fahler "
+"darstellen."
 
 msgid "Very long segment of {0} kilometers"
-msgstr "Sehr lange Segmente mit {0} Kilometer"
+msgstr "Sehr lange Abschnitte mit {0} Kilometer"
 
 msgid "Tag checker (MapCSS based)"
 msgstr "Eigenschaftsprüfer (basierend auf MapCSS)"
@@ -4491,16 +4483,16 @@ msgstr ""
 "als einer Linie verwendet wird."
 
 msgid "Areas share segment"
-msgstr "Flächen mit gemeinsamen Liniensegmenten"
+msgstr "Flächen teilen Abschnitt"
 
 msgid "Highways share segment with area"
-msgstr "Straßensegment mit Fläche gemeinsam"
+msgstr "Straßen teilen Abschnitt mit Fläche"
 
 msgid "Railways share segment with area"
-msgstr "Gleise teilen sich ein Segment mit einer Fläche"
+msgstr "Gleise teilen Abschnitt mit Fläche"
 
 msgid "Ways share segment with area"
-msgstr "Liniensegment mit Fläche gemeinsam"
+msgstr "Wege teilen Abschnitt mit Fläche"
 
 msgid "Overlapping highways"
 msgstr "Überlappende Straßen"
@@ -4509,7 +4501,7 @@ msgid "Overlapping railways"
 msgstr "Überlappende Gleise"
 
 msgid "Way contains segment twice"
-msgstr "Linie enthält Segment doppelt"
+msgstr "Linie enthält Abschnitt doppelt"
 
 msgid "Power lines"
 msgstr "Hochspannungsleitungen"
@@ -5205,8 +5197,8 @@ msgid "Make sure you load some data if you use --selection."
 msgstr ""
 "Stellen Sie sicher, dass Sie Daten laden, falls Sie --selection verwenden."
 
-msgid "Printing debugging messages to console"
-msgstr "Debug-Nachrichten werden auf der Konsole ausgegeben"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr "Protokollierungsgrad ist bei {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Erweiterungen-Ladevorgang übersprungen"
@@ -6478,6 +6470,9 @@ msgstr "Diesen Dialog schließen und Bearbeitung fortsetzen"
 msgid "Conflicts detected"
 msgstr "Konflikte gefunden"
 
+msgid "Resolve conflicts"
+msgstr "Konflikte auflösen"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Konfliktauflösung abbrechen und Fenster schließen"
 
@@ -6511,9 +6506,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Konflikt konnte nicht vollständig gelöst werden."
 
-msgid "Resolve conflicts"
-msgstr "Konflikte auflösen"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Konflikte lösen für ''{0}''"
 
@@ -7165,19 +7157,19 @@ msgid "Toggle dynamic buttons"
 msgstr "Dynamische Schaltflächen umschalten"
 
 msgid "Open preferences for this panel"
-msgstr "Einstellungen für dieses Fenster öffnen"
+msgstr "Einstellungen für dieses Bedienfeld öffnen"
 
 msgid "Undock the panel"
-msgstr "Ansicht separat darstellen"
+msgstr "Bedienfeld separat darstellen"
 
 msgid ""
 "Close this panel. You can reopen it with the buttons in the left toolbar."
 msgstr ""
-"Diese Ansicht schließen. Neu öffnen mit den Schaltflächen in der linken "
+"Dieses Bedienfeld schließen. Neu öffnen mit den Schaltflächen in der linken "
 "Werkzeugleiste."
 
 msgid "Click to minimize/maximize the panel content"
-msgstr "Klicken Sie zum Minimieren oder Maximieren der Ansicht"
+msgstr "Klicken Sie zum Minimieren oder Maximieren des Bedienfeldinhalts"
 
 msgid "Side buttons"
 msgstr "Seitenschaltflächen"
@@ -7446,8 +7438,7 @@ msgstr "Geschlossen am:"
 
 msgid "Remove the changeset in the detail view panel from the local cache"
 msgstr ""
-"Den Änderungssatz in der Detail-Ansicht aus dem lokalen Zwischenspeicher "
-"entfernen"
+"Änderungssatz im Detailansichtfeld aus dem lokalen Zwischenspeicher entfernen"
 
 msgid "Update the changeset from the OSM server"
 msgstr "Änderungssatz vom OSM-Server aktualisieren"
@@ -7848,12 +7839,12 @@ msgstr "Ebene anzeigen/ausblenden"
 msgid "Discardable key: selection Foreground"
 msgstr "Überflüssiger Schlüssel: Auswahl-Vordergrund"
 
-msgid "Discardable key: selection Background"
-msgstr "Überflüssiger Schlüssel: Auswahl-Hintergrund"
-
 msgid "Discardable key: foreground"
 msgstr "Überflüssiger Schlüssel: Vordergrund"
 
+msgid "Discardable key: selection Background"
+msgstr "Überflüssiger Schlüssel: Auswahl-Hintergrund"
+
 msgid "Discardable key: background"
 msgstr "Überflüssiger Schlüssel: Hintergrund"
 
@@ -8475,18 +8466,18 @@ msgstr ""
 "versuchen.</html>"
 
 msgid "Select objects for selected relation members"
-msgstr "Wählen Sie Objekte für die ausgewählten Relationsmitglieder"
+msgstr "Wählen Sie Objekte für die ausgewählten Relationselemente aus"
 
 msgid ""
 "Select relation members which refer to objects in the current selection"
 msgstr ""
-"Relationsmitglieder auswählen, die sich auf Objekte in der aktuellen Auswahl "
-"beziehen"
+"Wählen Sie Relationselemente aus, die sich auf Objekte in der aktuellen "
+"Auswahl beziehen"
 
 msgid ""
 "Select relation members which refer to {0} objects in the current selection"
 msgstr ""
-"Relationsmitglieder auswählen, die sich auf {0} Objekte in der aktuellen "
+"Wählen Sie Relationselemente aus, die sich auf {0} Objekte in der aktuellen "
 "Auswahl beziehen"
 
 msgid "Sets a role for the selected members"
@@ -8526,7 +8517,7 @@ msgstr "Unten sortieren"
 
 msgid "Sort the selected relation members and all members below"
 msgstr ""
-"Die ausgewählten Relationsmitglieder und alle Mitglieder darunter sortieren"
+"Die ausgewählten Relationselemente und alle Mitglieder darunter sortieren"
 
 msgid "way is connected"
 msgstr "Linie ist verbunden"
@@ -9556,13 +9547,13 @@ msgid "Update objects"
 msgstr "Objekte aktualisieren"
 
 msgid "Initializing nodes to update ..."
-msgstr "Punkte zum Aktualisieren werden initialisiert …"
+msgstr "Punkte werden zum Aktualisieren initialisiert …"
 
 msgid "Initializing ways to update ..."
-msgstr "Linien zum Aktualisieren werden initialisiert …"
+msgstr "Linien werden zum Aktualisieren initialisiert …"
 
 msgid "Initializing relations to update ..."
-msgstr "Relationen zum Aktualisieren werden initialisiert …"
+msgstr "Relationen werden zum Aktualisieren initialisiert …"
 
 msgid "Settings"
 msgstr "Einstellungen"
@@ -10146,12 +10137,12 @@ msgstr "Hinweise insgesamt:"
 msgid "Changes need uploading?"
 msgstr "Änderungen erfordern Hochladen?"
 
-msgid "Data Layer {0}"
-msgstr "Datenebene {0}"
-
 msgid "outside downloaded area"
 msgstr "Außerhalb des heruntergeladenen Bereichs"
 
+msgid "Data Layer {0}"
+msgstr "Datenebene {0}"
+
 msgid "Merging layers"
 msgstr "Ebenen vereinen"
 
@@ -10669,6 +10660,9 @@ msgstr "Es gibt keine Hintergrundbildebenen."
 msgid "No imagery layers"
 msgstr "Keine Hintergrundbildebenen"
 
+msgid "gps point"
+msgstr "GPS-Punkt"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10681,9 +10675,6 @@ msgstr "Richtung"
 msgid "Velocity, {0}"
 msgstr "Geschwindigkeit, {0}"
 
-msgid "gps point"
-msgstr "GPS-Punkt"
-
 msgid "Import Audio"
 msgstr "Audio importieren"
 
@@ -11963,7 +11954,7 @@ msgid "Local files"
 msgstr "Lokale Dateien"
 
 msgid "Force lines if no segments imported"
-msgstr "Linien erzwingen, falls keine Segmente importiert"
+msgstr "Linien erzwingen, falls keine Segmente importiert wurden"
 
 msgid "Draw large GPS points"
 msgstr "Große GPS-Punkte zeichnen"
@@ -12090,17 +12081,17 @@ msgid "Colors points and track segments by velocity."
 msgstr "Punkte und Spuren nach Geschwindigkeit einfärben."
 
 msgid "Colors points and track segments by direction."
-msgstr "Färbt Punkte und Spurabschnitte anhand der Fahrtrichtung."
+msgstr "Färbt Punkte und Spurabschnitte anhand der Fahrtrichtung ein."
 
 msgid ""
 "Colors points and track segments by dilution of position (HDOP). Your "
 "capture device needs to log that information."
 msgstr ""
-"Punkte und Spuren anhand der Positionsverschlechterung (HDOP) färben. Ihr "
+"Punkte und Spuren anhand der Positionsverschlechterung (HDOP) einfärben. Ihr "
 "GPS-Empfänger muss diese Information aufzeichnen."
 
 msgid "Colors points and track segments by its timestamp."
-msgstr "Punkte und Spurabschnitte anhand des Zeitstempels färben."
+msgstr "Punkte und Spurabschnitte anhand des Zeitstempels einfärben."
 
 msgid "Allows to tune the track coloring for different average speeds."
 msgstr ""
@@ -12541,7 +12532,7 @@ msgid ""
 "Internal style to be used as base for runtime switchable overlay styles"
 msgstr ""
 "Interner Stil zur Nutzung als Basis für zur Laufzeit wechselbare "
-"Ergänzungsstile"
+"Einblendungsstile"
 
 msgid "Potlatch 2"
 msgstr "Potlatch 2"
@@ -12751,6 +12742,35 @@ msgstr ""
 "Konfigurieren Sie die Liste der Quellen, von denen Erweiterungen "
 "heruntergeladen werden sollen"
 
+msgid "Load from list..."
+msgstr "Von Liste laden..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Erweiterungen aus einer Liste von Erweiterungen laden"
+
+msgid "Disable all other plugins"
+msgstr "Alle anderen Erweiterungen deaktivieren"
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+"Geben Sie eine Liste von Erweiterungen ein, die Sie herunterladen möchten."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Sie sollten eine Erweiterungskennung pro Zeile hinzufügen, "
+"Versionsinformationen werden ignoriert."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "Sie können die Liste eines Statusberichts hierher kopieren+einfügen."
+
+msgid "Load plugins from list"
+msgstr "Erweiterungen aus Liste laden"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+"Die folgenden Erweiterungen wurden nicht gefunden. Trotzdem fortsetzen?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "JOSM-Erweiterungsbeschreibungs-URL hinzufügen."
 
@@ -13984,9 +14004,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr "GeoJSON-Dateien"
 
-msgid "Projected GeoJSON Files"
-msgstr "Projizierte GeoJSON-Dateien"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Ebene ''{0}'' nicht unterstützt"
 
@@ -15109,8 +15126,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "Diese Erweiterung wird nicht geladen."
 msgstr[1] "Diese Erweiterungen werden nicht geladen."
 
-msgid "Determine plugins to load..."
-msgstr "Zu ladene Erweiterungen ermitteln..."
+msgid "Determining plugins to load..."
+msgstr "Zu ladende Erweiterungen werden ermittelt..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Veraltete Erweiterungen werden entfernt …"
@@ -15736,6 +15753,9 @@ msgstr ""
 "Der Zugriff auf das Verzeichnis ''{0}'' wurde aus Sicherheitsgründen "
 "verweigert. Fehlermeldung: {1}"
 
+msgid "Cause: "
+msgstr "Ursache: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15976,6 +15996,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Programmfehler melden"
 
+msgid "Suppress this error for this session."
+msgstr "Diesen Fehler für diese Sitzung unterdrücken."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Weitere Fehlermeldungen für diese Sitzung unterdrücken."
 
@@ -16012,9 +16035,9 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr "JOSM ist auf dem neuesten Stand."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
-"JOSM ist nicht mehr aktuell. Die aktuelle Version ist {0}. Versuchen Sie, "
+"JOSM ist auf einem alten Stand. Die aktuelle Version ist {0}. Versuchen Sie, "
 "JOSM zu aktualisieren."
 
 msgid ""
@@ -16424,7 +16447,7 @@ msgid "Strava cycling and running heatmap"
 msgstr "Strava Radfahr- und Laufsport-Heatmap"
 
 msgid "Locator Overlay"
-msgstr "Orientierungs-Overlay"
+msgstr "Positionsanzeiger-Einblendung"
 
 msgid "QA No Address"
 msgstr "Qualitätssicherung keine Adressen"
@@ -16613,7 +16636,7 @@ msgid "Kelowna 2012"
 msgstr "Kelowna 2012"
 
 msgid "Kelowna Roads overlay"
-msgstr "Kelowna Straßen Overlay"
+msgstr "Kelowna-Straßeneinblendung"
 
 msgid "Czech CUZK:KM"
 msgstr "Tschechisches CUZK:KM"
@@ -16768,14 +16791,20 @@ msgstr "Berlin Luftbild 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin Luftbild 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Berlin Luftaufnahme 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (Luftbild)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Erlangen Luftbild (2016 5,0 cm)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen Luftbild (2013 6,25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 Luftbild (5,0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Erlangen Luftbild (2011 5,0 cm)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr ""
@@ -17171,11 +17200,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Luftbild Kanton Solothurn RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr "Luftbild Kanton Solothurn Infrarot (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Kanton Genf 5cm (SITG 2011)"
@@ -17241,7 +17270,7 @@ msgid "USGS Large Scale Imagery"
 msgstr "USGS Großflächige Bilder"
 
 msgid "TIGER 2012 Roads Overlay"
-msgstr "TIGER 2012 Straßen Overlay"
+msgstr "TIGER 2012-Straßeneinblendung"
 
 msgid "New & Misaligned TIGER Roads (2015)"
 msgstr "Neue & falsch ausgerichtete TIGER-Straßen (2015)"
@@ -17547,7 +17576,7 @@ msgid ""
 "around a chosen pivot."
 msgstr ""
 "Macht ein Paar ausgewählter Linien durch Drehen einer Linie um einen "
-"gewählten Angelpunkt parallel."
+"ausgewählten Angelpunkt parallel."
 
 msgid ""
 "Provides Apache Commons library components. Not meant to be installed "
@@ -17574,6 +17603,13 @@ msgstr ""
 "Erzeugung von Wegen als Polygonen. Entwickelt zum vereinfachten Abzeichnen "
 "von Gebäuden. Optimiert für basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Ermöglicht es dem Benutzer, den Winkel von Gebäuden auf 90 Grad zu "
+"korrigieren und richtet alle geladenen Gebäude zur nächsten Straße aus."
+
 msgid "Tools for drawing buildings."
 msgstr "Erleichtert das Zeichnen von Gebäuden"
 
@@ -17873,6 +17909,9 @@ msgstr ""
 "Verhindert die Verwendung von JOSM für immer (WARNUNG: Diese Erweiterung "
 "verhindert den Start von JOSM und ist schwierig loszuwerden)"
 
+msgid "Import OSM data in o5m format"
+msgstr "OSM-Daten im o5m-Format importieren"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Konvertiert Daten aus Open-Data-Portalen in eine OSM-Ebene"
 
@@ -17970,7 +18009,7 @@ msgstr ""
 
 msgid "Relation and multipolygon creating and editing panel."
 msgstr ""
-"Werkzeuge zum Erstellen und Ändern von Relationen und Multipolygonen."
+"Bearbeitungsfeld zum Erstellen und Ändern von Relationen und Multipolygonen."
 
 msgid "Plugin for reverting changesets"
 msgstr "Erweiterung zum rückgängig machen von Änderungssätzen"
@@ -18006,6 +18045,12 @@ msgid "Edit features for Sea Charts"
 msgstr "Bearbeitungsfunktionen für Seekarten"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+"Bietet dem Nutzer mehr Werkzeuge, die das Ausrichten und Drehen von Gebäuden "
+"erleichtern."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18583,7 +18628,7 @@ msgid "pitch"
 msgstr "Spielfeld"
 
 msgid "sports_centre"
-msgstr "Sporthalle"
+msgstr "Sportzentrum"
 
 msgid "stadium"
 msgstr "Stadion"
@@ -20266,9 +20311,27 @@ msgstr "Wasserdurchlass"
 msgid "Basin"
 msgstr "Wasserbecken"
 
+msgid "retention"
+msgstr "Speicherung"
+
+msgid "infiltration"
+msgstr "Versickerung"
+
+msgid "detention"
+msgstr "Rückhaltung"
+
 msgid "Reservoir"
 msgstr "Speicherbecken"
 
+msgid "evaporator"
+msgstr "Verdampfer"
+
+msgid "tailings"
+msgstr "Absetzung"
+
+msgid "water_storage"
+msgstr "Wasserspeicher"
+
 msgid "Covered Reservoir"
 msgstr "Überdecktes Speicherbassin"
 
@@ -20303,6 +20366,12 @@ msgstr "Speicherbecken"
 msgid "river"
 msgstr "Fluss"
 
+msgid "lock"
+msgstr "Sperre"
+
+msgid "wastewater"
+msgstr "Abwasser"
+
 msgid "Salt Water"
 msgstr "Salzwasser"
 
@@ -21517,6 +21586,9 @@ msgstr "Freizeit-/Themenpark"
 msgid "Water Park"
 msgstr "Schwimmbad"
 
+msgid "Beach Resort"
+msgstr "Bewirtschafteter Strandbereich"
+
 msgid "Swimming Pool"
 msgstr "Schwimmbecken"
 
@@ -22323,7 +22395,7 @@ msgid "Stadium"
 msgstr "Stadion"
 
 msgid "Sports Centre"
-msgstr "Sporthalle"
+msgstr "Sportzentrum"
 
 msgid "Fitness Centre"
 msgstr "Fitnessstudio"
@@ -24170,7 +24242,10 @@ msgstr "Fischhändler"
 msgid "Deli (Fine Food)"
 msgstr "Feinkost"
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr "Konditorei"
+
+msgid "Confectionery"
 msgstr "Süßwarengeschäft"
 
 msgid "Tea"
@@ -24422,8 +24497,11 @@ msgstr "Verkaufsautomat"
 msgid "Vending products"
 msgstr "Automatenprodukte"
 
-msgid "animal_food"
-msgstr "Tiernahrung"
+msgid "admission_tickets"
+msgstr "Eintrittskarten"
+
+msgid "animal_feed"
+msgstr "Tierfutter"
 
 msgid "bicycle_tube"
 msgstr "Fahrradschlauch"
@@ -24437,6 +24515,9 @@ msgstr "Kondome"
 msgid "drinks"
 msgstr "Getränke"
 
+msgid "elongated_coin"
+msgstr "Souvenir-Prägung"
+
 msgid "excrement_bags"
 msgstr "Hundekot-Tüten"
 
@@ -24452,6 +24533,12 @@ msgstr "Zeitungen"
 msgid "parking_tickets"
 msgstr "Parkscheine"
 
+msgid "parcel_pickup"
+msgstr "Pakete abholen"
+
+msgid "parcel_mail_in"
+msgstr "Pakete abgeben"
+
 msgid "photos"
 msgstr "Fotos"
 
@@ -24470,18 +24557,12 @@ msgstr "Briefmarken"
 msgid "sweets"
 msgstr "Süßigkeiten"
 
-msgid "tampons"
-msgstr "Tampons"
-
 msgid "telephone_vouchers"
 msgstr "Telefonkarten"
 
 msgid "toys"
 msgstr "Spielzeug"
 
-msgid "vouchers"
-msgstr "Karten/Belege"
-
 msgid "Payment Methods"
 msgstr "Zahlungsarten"
 
@@ -25216,6 +25297,15 @@ msgstr "Gewächshäuser"
 msgid "Plant Nursery"
 msgstr "Gärtnerei/Pflanzschule/Baumschule"
 
+msgid "Aquaculture"
+msgstr "Aquakultur"
+
+msgid "shrimp"
+msgstr "Garnele"
+
+msgid "mussels"
+msgstr "Muscheln"
+
 msgid "Allotments"
 msgstr "Schrebergärten"
 
@@ -25309,6 +25399,9 @@ msgstr "Offizieller Name"
 msgid "Common name abbreviation"
 msgstr "Übliche Namensabkürzung"
 
+msgid "Address"
+msgstr "Adresse"
+
 msgid "House number"
 msgstr "Hausnummer"
 
@@ -25584,10 +25677,10 @@ msgstr ""
 "Objekt verbessert werden muss."
 
 msgid "outer segment"
-msgstr "Äußeres Segment"
+msgstr "Äußerer Abschnitt"
 
 msgid "inner segment"
-msgstr "Inneres Segment"
+msgstr "Innerer Abschnitt"
 
 msgid "Boundary"
 msgstr "Grenze"
@@ -27254,7 +27347,7 @@ msgid ""
 msgstr ""
 "Die Ausrichtung unter Beibehaltung der Winkel der verbundenen Abschnitte ist "
 "nicht möglich.\n"
-"Entweder die Methode ''Länge erhalten'' nutzen, oder andere Abschnitte "
+"Entweder die Methode ''Länge erhalten'' verwenden oder andere Abschnitte "
 "auswählen.\n"
 
 msgid ""
@@ -27277,17 +27370,17 @@ msgid ""
 "Please select two segments that don''t share any nodes\n"
 " or put the pivot on their common node.\n"
 msgstr ""
-"Bitte zwei Abschnitte ohne gemeinsame Punkte wählen\n"
+"Bitte zwei Abschnitte ohne gemeinsame Punkte auswählen\n"
 "oder den Angelpunkt auf den Schnittpunkt legen.\n"
 
 msgid "Align Way Segments: Modes"
-msgstr "Liniensgemente ausrichten: Arbeitsweise"
+msgstr "Linienabschnitte ausrichten: Arbeitsweise"
 
 msgid "Align Ways control panel"
-msgstr "Kontrollfeldlinien ausrichten"
+msgstr "Kontrollfeld Linien ausrichten"
 
 msgid "This panel activates in Align Ways mode:"
-msgstr "Dieses Kontrollfeld aktiviert im Modus Linien ausrichten:"
+msgstr "Dieses Bedienfeld aktiviert im Modus Linien ausrichten:"
 
 msgid "Length preserved"
 msgstr "Länge erhalten"
@@ -27310,7 +27403,7 @@ msgid ""
 "adjacent segments are preserved.<br/>The length of the aligned segment is "
 "likely to change as result.</html>"
 msgstr ""
-"<html>Liniensegmente zur Referenz so ausrichten, dass die Winkel "
+"<html>Linienabschnitte zur Referenz so ausrichten, dass die Winkel "
 "angrenzender Abschnitte erhalten bleiben.<br/>Die Länge der ausgerichteten "
 "Abschnitte ändert sich dadurch meist.</html>"
 
@@ -27333,8 +27426,8 @@ msgid ""
 "Segment to be aligned cannot be the same with the reference segment.\n"
 "Please choose a different segment to be aligned."
 msgstr ""
-"Auszurichtendes Segment kann nicht mit Referenzsegment identisch sein.\n"
-"Bitte ein anderes Segment zum Ausrichten auswählen."
+"Auszurichtender Abschnitt kann nicht mit Referenzabschnitt identisch sein.\n"
+"Bitte einen anderen Abschnitt zum Ausrichten auswählen."
 
 msgid "AlignWayS message"
 msgstr "Linien ausrichten: Nachricht"
@@ -27343,16 +27436,15 @@ msgid ""
 "Reference segment cannot be the same with the segment to be aligned.\n"
 "Please choose a different reference segment."
 msgstr ""
-"Referenzsegment kann nicht mit auszurichtendem Segment identisch sein.\n"
-"Bitte ein anderes Referenzsegment zum Ausrichten auswählen."
+"Referenzabschnitt kann nicht mit auszurichtendem Abschnitt identisch sein.\n"
+"Bitte einen anderen Referenzabschnitt zum Ausrichten auswählen."
 
 msgid "Ctrl-Click: select reference way segment; Alt-click: Clear selection"
 msgstr ""
-"Strg+Klick um einen Referenz-Linienabschnitt auszuwählen, Alt+Klick um "
-"Auswahl zu löschen"
+"Strg+Klick: Referenz-Linienabschnitt auswählen; Alt+Klick: Auswahl aufheben"
 
 msgid ": Align segments; Alt-click: Clear selection"
-msgstr ": Segmente ausrichten; Alt+Klick: Auswahl aufheben"
+msgstr ": Abschnitte ausrichten; Alt+Klick: Auswahl aufheben"
 
 msgid ""
 "Ctrl-click: select reference way segment; Click: select way segment to be "
@@ -27427,10 +27519,10 @@ msgstr ""
 "<html>\n"
 "<div style=\"font-family: sans-serif;\">\n"
 "<ul>\n"
-"<li><b>Ein Referenzsegment auswählen.</b> Dies ist durch <b><i><span "
+"<li><b>Einen Referenzabschnitt auswählen.</b> Dies ist durch <b><i><span "
 "style=\"color:green\">Strg-Klick</span></i></b>en\n"
-"auf ein Segment möglich. Das andere auszurichtende Segment wird parallel zu "
-"diesem.</li>\n"
+"auf einen Abschnitt möglich. Der andere auszurichtende Abschnitt wird "
+"parallel zu diesem.</li>\n"
 "</ul>\n"
 "</div>\n"
 "</html>\n"
@@ -27454,10 +27546,10 @@ msgstr ""
 "<html>\n"
 "<div style=\"font-family:sans-serif\">\n"
 "<ul>\n"
-"  <li><b>Das auszurichtende Segment auswählen.</b> Dies ist einfach durch "
-"<b><i><span style=\"color:green\">Klick</span></i></b>en auf ein anderes "
-"Segment möglich. Der Rotationspunkt (standardmäßig im Segmentzentrum) wird "
-"hervorgehoben.\n"
+"  <li><b>Den auszurichtenden Abschnitt  auswählen.</b> Dies ist einfach "
+"durch <b><i><span style=\"color:green\">Klick</span></i></b>en auf einen "
+"anderen Abschnitt möglich. Der Drehpunkt (standardmäßig im Abschnittzentrum) "
+"wird hervorgehoben.\n"
 "  </li>\n"
 "</ul>\n"
 "</div>\n"
@@ -27482,11 +27574,10 @@ msgstr ""
 "<html>\n"
 "<div style=\"font-family:sans-serif\">\n"
 "<ul>\n"
-"  <li>Optional kann der <b>Rotationspunkt geändert werden</b>. Zum "
-"Ausrichten des Abschnittes parallel zum Referenzabschnitt, wird um diesen "
-"Punkt gedreht. Die Linienendpunkte oder das Abschnittszentrum können durch "
-"<b><i><span style=\"color:green\">Klicken</span></i></b> in Punktnähe "
-"gewählt werden. \n"
+"  <li>Optional kann der <b>Drehpunkt geändert werden</b>. Zum Ausrichten des "
+"Abschnittes parallel zum Referenzabschnitt, wird um diesen Punkt gedreht. "
+"Die Linienendpunkte oder das Abschnittszentrum können durch <b><i><span "
+"style=\"color:green\">Klicken</span></i></b> in Punktnähe gewählt werden. \n"
 "  </li>\n"
 "</ul>\n"
 "</div>\n"
@@ -27510,10 +27601,10 @@ msgstr ""
 "<html>\n"
 "<div style=\"font-family:sans-serif\">\n"
 "<ul>\n"
-"  <li><b>Segmente ausrichten.</b> Drücken von <b><i><span "
-"style=\"color:green\">{0}</span></i></b>. Alternativ ist das Kommando im "
-"<b>Werkzeuge</b>menü oder kann in der <b>Werkzeugleiste</b> platziert "
-"werden.\n"
+"  <li><b>Abschnitte ausrichten.</b> Drücken Sie <b><i><span "
+"style=\"color:green\">{0}</span></i></b>. Alternativ finden Sie den Befehl "
+"im Menü <b>Werkzeuge</b> oder Sie möchten Ihn in der <b>Werkzeugleiste</b> "
+"platzieren.\n"
 "  </li>\n"
 "</ul>\n"
 "</div>\n"
@@ -27722,6 +27813,24 @@ msgstr ""
 "Im Fehleranalysemodus wird ein Bild für jeden Bearbeitungsschritt "
 "geschrieben."
 
+msgid "Building Generalization"
+msgstr "Gebäudegeneralisierung"
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+"Anfänger zeichnen Umrisse oft ungenau. Solche Gebäude sollten in "
+"rechtwinklige umgewandelt werden. Winkel zwischen 84 und 96 Grad werden in "
+"90 Grad umgewandelt."
+
+msgid "There is no frame loaded !"
+msgstr "Es ist kein Rahmen geladen!"
+
+msgid "Alert Message"
+msgstr "Alarmmeldung"
+
 msgid "Street Name:"
 msgstr "Straße:"
 
@@ -28696,9 +28805,6 @@ msgstr ""
 "angezeigt wird. Wenn diese Option aktiv ist gibt es keinen Hinweis, dass "
 "etwas getan wird, und keine Möglichkeit das Herunterladen abzubrechen."
 
-msgid "Address"
-msgstr "Adresse"
-
 msgid "Split area"
 msgstr "Fläche aufspalten"
 
@@ -28840,7 +28946,7 @@ msgid "GeoChat"
 msgstr "GeoChat"
 
 msgid "Open GeoChat panel"
-msgstr "GeoChat-Anzeige öffnen"
+msgstr "GeoChat-Bedienfeld öffnen"
 
 msgid "Zoom in to see messages"
 msgstr "Hineinzoomen, um Nachrichten zu sehen"
@@ -29321,7 +29427,7 @@ msgid "graphview default node"
 msgstr "Graphenanzeige-Standardpunkt"
 
 msgid "graphview default segment"
-msgstr "GraphView Standardsegment"
+msgstr "GraphView-Standardabschnitt"
 
 msgid "graphview arrowhead core"
 msgstr "Graphenanzeigepfeil"
@@ -29860,8 +29966,8 @@ msgstr "Kanal-Digraph erzeugen"
 msgid "Check "
 msgstr "Überprüfe "
 
-msgid "check the subust for junction properties"
-msgstr "überprüft eine markierte Teilmenge auf die Kreuzungskriterien"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Suche "
@@ -29965,7 +30071,7 @@ msgid "land"
 msgstr "Land"
 
 msgid "Maximum number of segments per way"
-msgstr "Maximale Anzahl von Abschnitten je Linie"
+msgstr "Maximale Anzahl von Abschnitten pro Linie"
 
 msgid "Maximum number of nodes in initial trace"
 msgstr "Maximale Anzahl von Punkten in der Anfangsspur"
@@ -30016,7 +30122,7 @@ msgstr ""
 msgid ""
 "Maximum number of segments allowed in each generated way. Default 250."
 msgstr ""
-"Maximale Anzahl von Abschnitten in jeder generierten Linie. Standard ist 250."
+"Maximale Anzahl von Abschnitten in jeder erzeugten Linie. Standard ist 250."
 
 msgid ""
 "Maximum number of nodes to generate before bailing out (before simplifying "
@@ -30430,7 +30536,7 @@ msgstr ""
 "Wechseln Sie zur Bildadresse mit den nächstes/vorheriges Schaltflächen"
 
 msgid "Preview images when hovering its icon"
-msgstr "Beim Überfahen des Symbols Vorschaubilder anzeigen"
+msgstr "Beim Überfahren des Symbols Vorschaubilder anzeigen"
 
 msgid "Download mode"
 msgstr "Herunterlademodus"
@@ -30605,9 +30711,8 @@ msgid ""
 "<html>A role based relation membership was copied to all new ways.<br>You "
 "should verify this and correct it when necessary.</html>"
 msgstr ""
-"<html>Eine rollenbasierte Relations-Mitgliedschaft wurde in alle neuen "
-"Linien kopiert.<br>Sie sollten dies überprüfen und falls nötig "
-"korrigieren.</html>"
+"<html>Eine rollenbasierte Relationsmitgliedschaft wurde in alle neuen Linien "
+"kopiert.<br>Sie sollten dies überprüfen und falls nötig korrigieren.</html>"
 
 msgid ""
 "<html>A relation membership was copied to all new ways.<br>You should verify "
@@ -30771,6 +30876,24 @@ msgid ""
 "from {0})"
 msgstr "(Um jämmerlich weiter zu mappen, lösche no_more_mapping von {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr "OSM-Serverdateien o5m-komprimiert"
+
+msgid "Invalid changeset id: {0}"
+msgstr "Ungültige Änderungssatznummer: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Ungültiger Zeitstempel: {0}"
+
+msgid "wrong header byte "
+msgstr "falsches Kopfdatenbyte "
+
+msgid "unsupported header"
+msgstr "nicht unterstützte Kopfdaten"
+
+msgid "Reading OSM data..."
+msgstr "Lese OSM-Daten …"
+
 msgid "Split by municipality"
 msgstr "Nach Gemeinden trennen"
 
@@ -31307,18 +31430,9 @@ msgstr "OSM-Serverdateien (pbf-komprimiert)"
 msgid "Download PBF"
 msgstr "PBF herunterladen"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Ungültige Änderungssatznummer: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Ungültiger Zeitstempel: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Ungültige ''DenseNodes'' Schlüssel-/Wertetabelle"
 
-msgid "Reading OSM data..."
-msgstr "Lese OSM-Daten …"
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Umwandlungsfehler: Min X muß kleiner als das Maximum sein."
 
@@ -31380,7 +31494,7 @@ msgid "Shape closed"
 msgstr "Element abgeschlossen"
 
 msgid "Single segments"
-msgstr "Einzelne Segmente"
+msgstr "Einzelne Abschnitte"
 
 msgid "Orthogonal shapes"
 msgstr "Rechteckige Formen"
@@ -31462,7 +31576,7 @@ msgid "Error while parsing: {0}"
 msgstr "Fehler beim Lesen: {0}"
 
 msgid "Removing parallel segments"
-msgstr "Parallele Segmente werden entfernt"
+msgstr "Parallele Abschnitte werden entfernt"
 
 msgid "Max distance is not a number"
 msgstr "Maximale Entfernung ist kein numerischer Wert"
@@ -31471,7 +31585,7 @@ msgid "Joining nodes"
 msgstr "Punkte verbinden"
 
 msgid "Joining adjacent segments"
-msgstr "Benachbarte Punkte verbinden"
+msgstr "Benachbarte Abschnitte werden verbunden"
 
 msgid "Removing small objects"
 msgstr "Kleine Objekte werden entfernt"
@@ -31982,6 +32096,9 @@ msgstr "Durcken fehlgeschlagen."
 msgid "Add stop position"
 msgstr "Haltepunkt hinzufügen"
 
+msgid "Repeat last fix"
+msgstr "Letzte Korrektur wiederholen"
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 "Möchten Sie Verweise auf Plattformen und Haltepositionen herunterladen?"
@@ -32001,6 +32118,12 @@ msgstr ""
 "Sie müssen zum Fortsetzen der Validierung heruntergeladen werden.\n"
 "Möchten Sie sie herunterladen?"
 
+msgid "Download incomplete route relation members"
+msgstr "Unvollständige Routenrelationselemente herunterladen"
+
+msgid "Include stop_area tests"
+msgstr "Haltebereichprüfungen miteinbeziehen"
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 "PT_Assistant-Erweiterungen hat Fehler in dieser Relation (id={0}) gefunden:"
@@ -32022,18 +32145,14 @@ msgid "PT_Assistant Proceed Request"
 msgstr "PT_Assistant Fahranforderung"
 
 msgid "PT: Stop_position is not part of a way"
-msgstr "PT: Haltepunkt ist nicht Teil eines Weges"
+msgstr "ÖV: Haltepunkt ist nicht Teil eines Weges"
 
 msgid "PT: Platform should not be part of a way"
-msgstr "PT: Plattform sollte nicht Teil eines Weges sein"
+msgstr "ÖV: Plattform sollte nicht Teil eines Weges sein"
 
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
-"PT: Haltstelle oder Plattform ist nicht Teil einer Haltebereichrelation"
-
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
+"ÖV: Haltstelle oder Plattform ist nicht Teil einer Haltebereichrelation"
 
 msgid "PT_Assistant Message"
 msgstr "PT_Assistant Meldung"
@@ -32051,55 +32170,64 @@ msgid "Fix error"
 msgstr "Fehler beheben"
 
 msgid "PT: dummy test warning"
-msgstr "Öffentlicher Verkehr: Pseudotestwarnung"
+msgstr "ÖV: Pseudotestwarnung"
 
 msgid "PT: Route contains a gap that can be fixed by sorting"
 msgstr ""
-"PT: Route enthält eine Lücke, die durch das Sortieren behoben werden kann."
+"ÖV: Route enthält eine Lücke, die durch das Sortieren behoben werden kann."
 
 msgid "PT: Relation member roles do not match tags"
-msgstr "PT: Relationsmitgliederrollen passen nicht zu den Merkmalen"
+msgstr "ÖV: Relationsmitgliederrollen passen nicht zu den Merkmalen"
 
 msgid "PT: Route should start and end with a stop_position"
-msgstr "PT: Route sollte mit einem Halteplatz beginnen und enden"
+msgstr "ÖV: Route sollte mit einem Halteplatz beginnen und enden"
 
 msgid "PT: First or last way needs to be split"
-msgstr "PT: Erster oder letzter Weg muss aufgeteilt werden"
+msgstr "ÖV: Erster oder letzter Weg muss aufgeteilt werden"
 
 msgid "PT: Problem in the route segment"
-msgstr "PT: Problem in dem Routensegment"
+msgstr "ÖV: Problem in dem Routenabschnitt"
 
 msgid "PT: Stop not served"
-msgstr "PT: Haltestelle nicht bedient"
+msgstr "ÖV: Haltestelle nicht bedient"
+
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "ÖV: Problem im Routenabschnitt ohne automatischer Korrektur"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "ÖV: Problem im Routenabschnitt mit automatischer Korrektur"
 
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
+"Warnung: die angezeigten Korrekturvarianten basieren auf weniger strengen "
+"Kriterien"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
 msgstr ""
+"Tippen Sie einen Buchstaben zum Auswählen einer Korrekturvariante ein oder "
+"drücken Sie Esc für keine Korrektur"
 
 msgid "PT: Stop area relation has no stop position"
-msgstr "PT: Haltebereichrelation hat keine Haltestelle"
-
-msgid "PT: Stop area relation has several stop positions"
-msgstr "PT: Haltebereichrelation hat mehrere Haltestellen"
+msgstr "ÖV: Haltebereichrelation hat keine Haltestelle"
 
 msgid "PT: Stop area relation has no platform"
-msgstr "PT: Haltebereichrelation hat keine Plattform"
+msgstr "ÖV: Haltebereichrelation hat keine Plattform"
 
-msgid "PT: Stop area relation has several platforms"
-msgstr "PT: Haltebereichrelation hat mehrere Plattformen"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
+msgstr ""
+"ÖV: Routenrelationen von Haltepunkt(en) und Plattform(en) der "
+"Haltebereichselemente weichen voneinander ab"
 
 msgid "PT: Route type does not match the type of the road it passes on"
-msgstr ""
-"Öffentlicher Verkehr: Routentyp passt nicht zum Typ der Straße, auf der sie "
-"verläuft"
+msgstr "ÖV: Routentyp passt nicht zum Typ der Straße, auf der sie verläuft"
 
 msgid "PT: Road is under construction"
-msgstr "PT: Straße ist im Bau"
+msgstr "ÖV: Straße ist im Bau"
 
 msgid "PT: Route passes a oneway road in the wrong direction"
-msgstr "PT: Route führt in falscher Richtung über eine Einbahnstraße"
+msgstr "ÖV: Route führt in falscher Richtung über eine Einbahnstraße"
 
 msgid "rail"
 msgstr "Eisenbahn"
@@ -32506,7 +32634,7 @@ msgid "Select relation in main selection."
 msgstr "Relation in Hauptauswahl übernehmen."
 
 msgid "Fix roles of the chosen relation members"
-msgstr "Rolle der ausgewählten Relationsmitglieder reparieren"
+msgstr "Rolle der ausgewählten Relationselemente reparieren"
 
 msgid "Complete multipolygon for way {0}"
 msgstr "Multipolygon für Linie {0} vervollständigen"
@@ -32915,6 +33043,51 @@ msgstr "Nur ein Objekt auswählen"
 msgid "Select a map object"
 msgstr "Ein Kartenobjekt auswählen"
 
+msgid "Shape actions panel"
+msgstr "Formaktionen-Bedienfeld"
+
+msgid "Shape mode control panel"
+msgstr "Formmodus-Kontrollfeld"
+
+msgid "Rotate Mode:"
+msgstr "Drehmodus:"
+
+msgid "Clockwise"
+msgstr "Im Uhrzeigersinn"
+
+msgid "Counter Clockwise"
+msgstr "Gegen den Uhrzeigersinn"
+
+msgid "Input angle here"
+msgstr "Winkel hier eingeben"
+
+msgid "Rotate"
+msgstr "Drehen"
+
+msgid "Align building "
+msgstr "Gebäude ausrichten "
+
+msgid "Select building"
+msgstr "Gebäude auswählen"
+
+msgid "Select road"
+msgstr "Straße auswählen"
+
+msgid "Select none"
+msgstr "Nichts auswählen"
+
+msgid "Min Distance:"
+msgstr "Minimale Entfernung:"
+
+msgid "Input min distance"
+msgstr "Minimale Entfernung eingeben"
+
+msgid "Align all buildings"
+msgstr "Alle Gebäude ausrichten"
+
+msgid "Delete overlay"
+msgstr "Einblendung löschen"
+
 msgid "Simplify Area"
 msgstr "Fläche vereinfachen"
 
@@ -33582,7 +33755,7 @@ msgstr ""
 
 msgid "Sorry, there are no Signatures for the selected Segment."
 msgstr ""
-"Entschuldigung, für das ausgewählte Segment existieren keine Signaturen."
+"Entschuldigung, für den ausgewählten Abschnitt gibt es keine Signaturen."
 
 msgid "Selected WaySegment was:"
 msgstr "Ausgewählter Linienabschnitt:"
@@ -33821,13 +33994,14 @@ msgstr ""
 "Leere die ausgewählten Rollen oder lösche die ausgewählten Relationselemente"
 
 msgid "Insert new relation members from object in the clipboard"
-msgstr "Füge Objekte in der Zwischenablage als neue Relationselemente ein"
+msgstr "Objekt aus der Zwischenablage als neue Relationselemente einfügen"
 
 msgid "Move the selected relation members down by one position"
-msgstr "Verschiebe ausgewählte Relationselemente um eine Zeile nach unten"
+msgstr ""
+"Ausgewählte Relationselemente um eine Position nach unten verschieben"
 
 msgid "Move the selected relation members up by one position"
-msgstr "Verschiebe ausgewählte Relationselemente um eine Zeile nach oben"
+msgstr "Ausgewählte Relationselemente um eine Position nach oben verschieben"
 
 msgid "Edit basic attributes of a turn restriction"
 msgstr "Basisattribute einer Abbiegebeschränkung bearbeiten"
@@ -34411,7 +34585,8 @@ msgstr "Fehlende Punkte an den Schnittpunkten der gewählten Linien einfügen"
 
 msgid "Please select one or more ways with intersections of segments."
 msgstr ""
-"Bitte wählen Sie mindestens eine Linie mit sich überschneidenden Abschnitten."
+"Bitte wählen Sie eine oder mehr Linien mit sich überschneidenden Abschnitten "
+"aus."
 
 msgid "Align Way Nodes"
 msgstr "Linienpunkte ausrichten"
@@ -34451,8 +34626,8 @@ msgstr "Relationen einfügen"
 msgid ""
 "Paste relation membership from objects in the buffer onto selected object(s)"
 msgstr ""
-"Relationsmitgliedschaft von den Objekten im Puffer auf die gewählten Objekte "
-"kopieren."
+"Relationsmitgliedschaft von den Objekten im Puffer auf das/die "
+"ausgewählte(n) Objekt(e) einfügen."
 
 msgid "Split Object"
 msgstr "Objekt aufteilen"
@@ -35130,18 +35305,6 @@ msgstr[1] "{0} Wikidata-Kennungen für Sprache ''{1}'' werden abgerufen"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Wikidata für Sprache ''{0}'' hinzufügen"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "''{0}'' Merkmal {1} von {2} mit neuem Wert ''{3}'' überschreiben?"
-msgstr[1] ""
-"''{0}'' Merkmale {1} von {2} mit neuem Wert ''{3}'' überschreiben?"
-
-msgid "Search Wikidata items"
-msgstr "Wikidata-Einträge suchen"
-
-msgid "Target key: "
-msgstr "Zielschlüssel: "
-
 msgid "Add names from Wikipedia"
 msgstr "Namen aus Wikipedia hinzufügen"
 
@@ -35150,12 +35313,6 @@ msgid ""
 msgstr ""
 "Interwiki-Links zum Ergänzen von Namensmerkmalen von Wikipedia abrufen"
 
-msgid "Search Wikipedia category"
-msgstr "Wikipedia-Kategorie durchsuchen"
-
-msgid "Load category"
-msgstr "Kategorie laden"
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -35166,6 +35323,24 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "{0}-Vorlage kopieren"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "''{0}'' Merkmal {1} von {2} mit neuem Wert ''{3}'' überschreiben?"
+msgstr[1] ""
+"''{0}'' Merkmale {1} von {2} mit neuem Wert ''{3}'' überschreiben?"
+
+msgid "Search Wikidata items"
+msgstr "Wikidata-Einträge suchen"
+
+msgid "Target key: "
+msgstr "Zielschlüssel: "
+
+msgid "Search Wikipedia category"
+msgstr "Wikipedia-Kategorie durchsuchen"
+
+msgid "Load category"
+msgstr "Kategorie laden"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Wikipedia-Artikel mit Koordinaten abrufen"
 
diff --git a/i18n/po/de_DE.po b/i18n/po/de_DE.po
index 6d6abf3..121ed22 100644
--- a/i18n/po/de_DE.po
+++ b/i18n/po/de_DE.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-07-10 12:32+0000\n"
 "Last-Translator: ralekuja <Unknown>\n"
 "Language-Team: German (Germany) <de_DE at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:15+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:49+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -491,6 +476,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Objekt herunterladen..."
 
@@ -1970,6 +1961,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1982,9 +1982,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2050,12 +2047,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2146,13 +2137,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3513,9 +3504,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3525,6 +3513,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4735,7 +4726,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5885,6 +5876,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5912,9 +5906,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7135,10 +7126,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9142,10 +9133,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9625,6 +9616,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9637,9 +9631,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11429,6 +11420,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12516,9 +12532,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13491,7 +13504,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13957,6 +13970,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14153,6 +14169,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14184,7 +14203,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14921,13 +14940,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15323,10 +15348,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15712,6 +15737,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15935,6 +15965,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16040,6 +16073,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18237,9 +18274,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18274,6 +18329,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19479,6 +19540,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22130,7 +22194,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22382,7 +22449,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22397,6 +22467,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22412,6 +22485,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22430,18 +22509,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23155,6 +23228,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23248,6 +23330,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25451,6 +25536,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26335,9 +26435,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27421,7 +27518,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28282,6 +28379,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28756,18 +28871,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29419,6 +29525,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29434,6 +29543,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29462,10 +29577,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29500,6 +29611,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29509,13 +29626,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30306,6 +30422,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32260,6 +32421,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32271,27 +32447,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/el.po b/i18n/po/el.po
index 70e364d..dbc34f6 100644
--- a/i18n/po/el.po
+++ b/i18n/po/el.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-01-25 09:17+0000\n"
 "Last-Translator: Aggelos Arnaoutis <angelosarn at hotmail.com>\n"
 "Language-Team: Greek <el at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:46+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:57+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: el\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "Το άνοιγμα δεσμού δεν υποστηρίζεται στην τρέχουσα πλατφόρμα (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ΣΦΑΛΜΑ: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: {0}"
-
-msgid "INFO: {0}"
-msgstr "ΠΛΗΡΟΦΟΡΙΕΣ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "ΑΠΟΣΦΑΛΜΑΤΩΣΗ: {0}"
-
-msgid "Cause: "
-msgstr "Αιτία: "
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -496,6 +481,12 @@ msgstr "Λήψη δεδομένων"
 msgid "Download notes in current view"
 msgstr "Λήψη σημειώσεων στην τρέχουσα προβολή"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Λήψη αντικειμένου..."
 
@@ -2101,6 +2092,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Σχεδίαση"
 
@@ -2113,9 +2113,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Δεν μπορείτε να προσθέσετε κόμβο εκτός κόσμου."
 
@@ -2181,12 +2178,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2280,15 +2271,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr "Δεν μπορεί να διαγραφεί κόμβος ο οποίος έχει ετικέτες"
 
+msgid "make parallel helper line"
+msgstr "κατασκευή παράλληλης βοηθητικής γραμμής"
+
 msgid "Parallel"
 msgstr "Παράλληλο"
 
 msgid "Make parallel copies of ways"
 msgstr "Δημιουργία παράλληλων αντιγράφων διαδρομών"
 
-msgid "make parallel helper line"
-msgstr "κατασκευή παράλληλης βοηθητικής γραμμής"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3684,9 +3675,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3696,6 +3684,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4936,7 +4927,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6108,6 +6099,9 @@ msgstr "Κάντε κλικ για κλείσιμο διαλόγου και συ
 msgid "Conflicts detected"
 msgstr "Εντοπίστηκαν συγκρούσεις"
 
+msgid "Resolve conflicts"
+msgstr "Επίλυση συγκρούσεων"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Ακύρωση επίλυσης συγκρούσεων και κλείσιμο διαλόγου"
 
@@ -6135,9 +6129,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Η σύγκρουση δεν επιλύθηκε εντελώς"
 
-msgid "Resolve conflicts"
-msgstr "Επίλυση συγκρούσεων"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Επίλυση συγκρούσεων για ''{0}''"
 
@@ -7381,10 +7372,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9450,12 +9441,12 @@ msgstr "Σύνολο σημειώσεων:"
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Επίπεδο Δεδομένων {0}"
-
 msgid "outside downloaded area"
 msgstr "εκτός περιοχής λήψης"
 
+msgid "Data Layer {0}"
+msgstr "Επίπεδο Δεδομένων {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9935,6 +9926,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "σημείο gps"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9947,9 +9941,6 @@ msgstr "Κατεύθυνση"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "σημείο gps"
-
 msgid "Import Audio"
 msgstr "Εισαγωγή Ήχου"
 
@@ -11766,6 +11757,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12865,9 +12881,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13858,7 +13871,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14338,6 +14351,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Αιτία: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14534,6 +14550,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Αναφορά σφάλματος"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14565,7 +14584,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15302,13 +15321,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15704,10 +15729,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -16093,6 +16118,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Εργαλεία για σχεδίαση κτηρίων."
 
@@ -16316,6 +16346,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16421,6 +16454,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18621,9 +18658,27 @@ msgstr ""
 msgid "Basin"
 msgstr "Λεκάνη"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Ταμιευτήρας"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Καλυμένος Ταμιευτήρας"
 
@@ -18658,6 +18713,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19863,6 +19924,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22514,7 +22578,10 @@ msgstr "Ιχθυοπωλείο"
 msgid "Deli (Fine Food)"
 msgstr "Ντελικατέσεν (εκλεκτά προϊόντα)"
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22766,8 +22833,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Πωλούμενα Προϊόντα"
 
-msgid "animal_food"
-msgstr "τροφές ζώων"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22781,6 +22851,9 @@ msgstr "Προφυλακτικά"
 msgid "drinks"
 msgstr "ποτά"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22796,6 +22869,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "εισιτήρια Στάθμευσης"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "φωτογραφίες"
 
@@ -22814,18 +22893,12 @@ msgstr "Γραμματόσημα"
 msgid "sweets"
 msgstr "γλυκά"
 
-msgid "tampons"
-msgstr "tampons"
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr "Παιχνίδια"
 
-msgid "vouchers"
-msgstr "κουπόνια"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23539,6 +23612,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Κλήροι"
 
@@ -23632,6 +23714,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Αριθμός σπιτιού"
 
@@ -25839,6 +25924,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Όνομα Οδού:"
 
@@ -26724,9 +26824,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr "Διαίρεση περιοχής"
 
@@ -27816,7 +27913,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28691,6 +28788,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29167,18 +29282,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29830,6 +29936,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29845,6 +29954,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29873,10 +29988,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29911,6 +30022,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29920,13 +30037,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30720,6 +30836,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32724,6 +32885,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32735,27 +32911,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/en_AU.po b/i18n/po/en_AU.po
index bc58750..5dd5b7b 100644
--- a/i18n/po/en_AU.po
+++ b/i18n/po/en_AU.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-06-08 12:52+0000\n"
 "Last-Translator: Mark Pulley <mrpulley at lizzy.com.au>\n"
 "Language-Team: English (Australia) <en_AU at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:14+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:46+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Background Terms of Use"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Opening link not supported on current platform (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERROR: {0}"
-
-msgid "WARNING: {0}"
-msgstr "WARNING: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Cause: "
-
 msgid "Executing platform startup hook"
 msgstr "Executing platform startup hook"
 
@@ -501,6 +486,12 @@ msgstr "Download data"
 msgid "Download notes in current view"
 msgstr "Download notes in current view"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Download object..."
 
@@ -2093,6 +2084,15 @@ msgstr ""
 "Click to delete. Shift: delete way segment. Alt: do not delete unused nodes "
 "when deleting a way. Ctrl: delete referring objects."
 
+msgid "draw angle snap"
+msgstr "draw angle snap"
+
+msgid "draw angle snap highlight"
+msgstr "draw angle snap highlight"
+
+msgid "helper line"
+msgstr "helper line"
+
 msgid "Draw"
 msgstr "Draw"
 
@@ -2105,9 +2105,6 @@ msgstr "Mode: Draw Angle snapping"
 msgid "Backspace in Add mode"
 msgstr "Backspace in Add mode"
 
-msgid "helper line"
-msgstr "helper line"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Cannot add a node outside of the world."
 
@@ -2173,12 +2170,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "draw angle snap"
-
-msgid "draw angle snap highlight"
-msgstr "draw angle snap highlight"
-
 msgid "Angle snapping"
 msgstr "Angle snapping"
 
@@ -2279,15 +2270,15 @@ msgstr[1] "Add a new node to {0} ways"
 msgid "Cannot delete node that has tags"
 msgstr "Cannot delete node that has tags"
 
+msgid "make parallel helper line"
+msgstr "make parallel helper line"
+
 msgid "Parallel"
 msgstr "Parallel"
 
 msgid "Make parallel copies of ways"
 msgstr "Make parallel copies of ways"
 
-msgid "make parallel helper line"
-msgstr "make parallel helper line"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3756,9 +3747,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameter must begin with a ''+'' character (found ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Unknown parameter: ''{0}''."
 
@@ -3768,6 +3756,9 @@ msgstr "Value expected for parameter ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "No value expected for parameter ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameter must begin with a ''+'' character (found ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Unexpected parameter format (''{0}'')"
 
@@ -5017,8 +5008,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Make sure you load some data if you use --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Plugin loading skipped"
@@ -6253,6 +6244,9 @@ msgstr "Click to close this dialogue and continue editing"
 msgid "Conflicts detected"
 msgstr "Conflicts detected"
 
+msgid "Resolve conflicts"
+msgstr "Resolve conflicts"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Cancel conflict resolution and close the dialogue"
 
@@ -6286,9 +6280,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflict not resolved completely"
 
-msgid "Resolve conflicts"
-msgstr "Resolve conflicts"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resolve conflicts for ''{0}''"
 
@@ -7573,12 +7564,12 @@ msgstr "Show/hide layer"
 msgid "Discardable key: selection Foreground"
 msgstr "Discardable key: selection Foreground"
 
-msgid "Discardable key: selection Background"
-msgstr "Discardable key: selection Background"
-
 msgid "Discardable key: foreground"
 msgstr "Discardable key: foreground"
 
+msgid "Discardable key: selection Background"
+msgstr "Discardable key: selection Background"
+
 msgid "Discardable key: background"
 msgstr "Discardable key: background"
 
@@ -9759,12 +9750,12 @@ msgstr "Total notes:"
 msgid "Changes need uploading?"
 msgstr "Changes need uploading?"
 
-msgid "Data Layer {0}"
-msgstr "Data Layer {0}"
-
 msgid "outside downloaded area"
 msgstr "outside downloaded area"
 
+msgid "Data Layer {0}"
+msgstr "Data Layer {0}"
+
 msgid "Merging layers"
 msgstr "Merging layers"
 
@@ -10276,6 +10267,9 @@ msgstr "There are no imagery layers."
 msgid "No imagery layers"
 msgstr "No imagery layers"
 
+msgid "gps point"
+msgstr "gps point"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10288,9 +10282,6 @@ msgstr "Direction"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps point"
-
 msgid "Import Audio"
 msgstr "Import Audio"
 
@@ -12216,6 +12207,31 @@ msgstr "Configure sites..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configure the list of sites where plug-ins are downloaded from"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Add JOSM Plug-in description URL."
 
@@ -13350,9 +13366,6 @@ msgstr "<html>Could not read files.<br>Error is:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -14369,8 +14382,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "The plug-in is not going to be loaded."
 msgstr[1] "The plug-ins are not going to be loaded."
 
-msgid "Determine plugins to load..."
-msgstr "Determine plug-ins to load..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Removing deprecated plug-ins..."
@@ -14880,6 +14893,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Cause: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15086,6 +15102,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Report Bug"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -15117,7 +15136,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15855,13 +15874,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16257,10 +16282,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -16648,6 +16673,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Tools for drawing buildings."
 
@@ -16884,6 +16914,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16998,6 +17031,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19201,9 +19238,27 @@ msgstr ""
 msgid "Basin"
 msgstr "Basin"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservoir"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Covered Reservoir"
 
@@ -19238,6 +19293,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -20443,6 +20504,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Water Park"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -23094,7 +23158,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -23346,8 +23413,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Vending products"
 
-msgid "animal_food"
-msgstr "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -23361,6 +23431,9 @@ msgstr "condoms"
 msgid "drinks"
 msgstr "drinks"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "excrement_bags"
 
@@ -23376,6 +23449,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "parking_tickets"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "photos"
 
@@ -23394,18 +23473,12 @@ msgstr "stamps"
 msgid "sweets"
 msgstr "sweets"
 
-msgid "tampons"
-msgstr "tampons"
-
 msgid "telephone_vouchers"
 msgstr "telephone_vouchers"
 
 msgid "toys"
 msgstr "toys"
 
-msgid "vouchers"
-msgstr "vouchers"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -24119,6 +24192,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Allotments"
 
@@ -24212,6 +24294,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "House number"
 
@@ -26420,6 +26505,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Street Name:"
 
@@ -27344,9 +27444,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr "Split area"
 
@@ -28436,7 +28533,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -29310,6 +29407,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29786,18 +29901,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -30450,6 +30556,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30465,6 +30574,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30493,10 +30608,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30531,6 +30642,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -30540,13 +30657,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -31341,6 +31457,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -33308,6 +33469,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -33319,27 +33495,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/en_CA.po b/i18n/po/en_CA.po
index 0cc12de..02232ae 100644
--- a/i18n/po/en_CA.po
+++ b/i18n/po/en_CA.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2010-09-24 17:25+0000\n"
 "Last-Translator: Johann Beda <Unknown>\n"
 "Language-Team: English (Canada) <en_CA at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:16+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:50+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -488,6 +473,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Download object..."
 
@@ -1967,6 +1958,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1979,9 +1979,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2047,12 +2044,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2143,13 +2134,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3510,9 +3501,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3522,6 +3510,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4732,7 +4723,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5882,6 +5873,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5909,9 +5903,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7132,10 +7123,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9139,10 +9130,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9622,6 +9613,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9634,9 +9628,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11426,6 +11417,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12513,9 +12529,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13488,7 +13501,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13954,6 +13967,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14150,6 +14166,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14181,7 +14200,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14915,13 +14934,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15317,10 +15342,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15706,6 +15731,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15929,6 +15959,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16034,6 +16067,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18231,9 +18268,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18268,6 +18323,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19473,6 +19534,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22124,7 +22188,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22376,7 +22443,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22391,6 +22461,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22406,6 +22479,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22424,18 +22503,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23149,6 +23222,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23242,6 +23324,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25445,6 +25530,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26325,9 +26425,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27411,7 +27508,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28272,6 +28369,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28746,18 +28861,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29409,6 +29515,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29424,6 +29533,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29452,10 +29567,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29490,6 +29601,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29499,13 +29616,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30296,6 +30412,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32250,6 +32411,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32261,27 +32437,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/en_GB.po b/i18n/po/en_GB.po
index a81f179..fac82d3 100644
--- a/i18n/po/en_GB.po
+++ b/i18n/po/en_GB.po
@@ -10,16 +10,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: JOSM\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-10 11:05+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-17 12:49+0000\n"
 "Last-Translator: Andi Chandler <Unknown>\n"
 "Language-Team: German <josm-dev at openstreetmap.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:13+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:45+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: de\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -58,21 +58,6 @@ msgstr "Background Terms of Use"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Opening link not supported on current platform (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERROR: {0}"
-
-msgid "WARNING: {0}"
-msgstr "WARNING: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Cause: "
-
 msgid "Executing platform startup hook"
 msgstr "Executing platform startup hook"
 
@@ -504,6 +489,12 @@ msgstr "Download data"
 msgid "Download notes in current view"
 msgstr "Download notes in current view"
 
+msgid "Download in current view"
+msgstr "Download in current view"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Download map data from the OSM server in current view"
+
 msgid "Download object..."
 msgstr "Download object..."
 
@@ -2096,6 +2087,15 @@ msgstr ""
 "Click to delete. Shift: delete way segment. Alt: do not delete unused nodes "
 "when deleting a way. Ctrl: delete referring objects."
 
+msgid "draw angle snap"
+msgstr "draw angle snap"
+
+msgid "draw angle snap highlight"
+msgstr "draw angle snap highlight"
+
+msgid "helper line"
+msgstr "helper line"
+
 msgid "Draw"
 msgstr "Draw"
 
@@ -2108,9 +2108,6 @@ msgstr "Mode: Draw Angle snapping"
 msgid "Backspace in Add mode"
 msgstr "Backspace in Add mode"
 
-msgid "helper line"
-msgstr "helper line"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Cannot add a node outside of the world."
 
@@ -2176,12 +2173,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "draw angle snap"
-
-msgid "draw angle snap highlight"
-msgstr "draw angle snap highlight"
-
 msgid "Angle snapping"
 msgstr "Angle snapping"
 
@@ -2282,15 +2273,15 @@ msgstr[1] "Add a new node to {0} ways"
 msgid "Cannot delete node that has tags"
 msgstr "Cannot delete a node that has tags"
 
+msgid "make parallel helper line"
+msgstr "make parallel helper line"
+
 msgid "Parallel"
 msgstr "Parallel"
 
 msgid "Make parallel copies of ways"
 msgstr "Make parallel copies of ways"
 
-msgid "make parallel helper line"
-msgstr "make parallel helper line"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3768,9 +3759,6 @@ msgstr "Expected integer value in range 1-60 for ''+zone=...'' parameter."
 msgid "No unit found for: {0}"
 msgstr "No unit found for: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameter must begin with a ''+'' character (found ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Unknown parameter: ''{0}''."
 
@@ -3780,6 +3768,9 @@ msgstr "Value expected for parameter ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "No value expected for parameter ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameter must begin with a ''+'' character (found ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Unexpected parameter format (''{0}'')"
 
@@ -5031,8 +5022,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Make sure you load some data if you use --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Plugin loading skipped"
@@ -6272,6 +6263,9 @@ msgstr "Click to close this dialogue and continue editing"
 msgid "Conflicts detected"
 msgstr "Conflicts detected"
 
+msgid "Resolve conflicts"
+msgstr "Resolve conflicts"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Cancel conflict resolution and close the dialogue"
 
@@ -6305,9 +6299,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflict not resolved completely"
 
-msgid "Resolve conflicts"
-msgstr "Resolve conflicts"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resolve conflicts for ''{0}''"
 
@@ -7606,12 +7597,12 @@ msgstr "Show/hide layer"
 msgid "Discardable key: selection Foreground"
 msgstr "Discardable key: selection Foreground"
 
-msgid "Discardable key: selection Background"
-msgstr "Discardable key: selection Background"
-
 msgid "Discardable key: foreground"
 msgstr "Discardable key: foreground"
 
+msgid "Discardable key: selection Background"
+msgstr "Discardable key: selection Background"
+
 msgid "Discardable key: background"
 msgstr "Discardable key: background"
 
@@ -9801,12 +9792,12 @@ msgstr "Total notes:"
 msgid "Changes need uploading?"
 msgstr "Changes need uploading?"
 
-msgid "Data Layer {0}"
-msgstr "Data Layer {0}"
-
 msgid "outside downloaded area"
 msgstr "outside downloaded area"
 
+msgid "Data Layer {0}"
+msgstr "Data Layer {0}"
+
 msgid "Merging layers"
 msgstr "Merging layers"
 
@@ -10320,6 +10311,9 @@ msgstr "There are no imagery layers."
 msgid "No imagery layers"
 msgstr "No imagery layers"
 
+msgid "gps point"
+msgstr "gps point"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10332,9 +10326,6 @@ msgstr "Direction"
 msgid "Velocity, {0}"
 msgstr "Velocity, {0}"
 
-msgid "gps point"
-msgstr "gps point"
-
 msgid "Import Audio"
 msgstr "Import Audio"
 
@@ -12313,6 +12304,32 @@ msgstr "Configure sites..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configure the list of sites where plug-ins are downloaded from"
 
+msgid "Load from list..."
+msgstr "Load from list..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Load plugins from a list of plugins"
+
+msgid "Disable all other plugins"
+msgstr "Disable all other plugins"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Enter a list of plugins you want to download."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"You should add one plugin id per line, version information is ignored."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "You can copy+paste the list of a status report here."
+
+msgid "Load plugins from list"
+msgstr "Load plugins from list"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "The following plugins were not found. Continue anyway?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Add JOSM Plug-in description URL."
 
@@ -13492,9 +13509,6 @@ msgstr "<html>Could not read files.<br>Error is:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON Files"
 
-msgid "Projected GeoJSON Files"
-msgstr "Projected GeoJSON Files"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Layer ''{0}'' not supported"
 
@@ -14551,8 +14565,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "The plug-in is not going to be loaded."
 msgstr[1] "The plug-ins are not going to be loaded."
 
-msgid "Determine plugins to load..."
-msgstr "Determine plug-ins to load..."
+msgid "Determining plugins to load..."
+msgstr "Determining plugins to load..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Removing deprecated plug-ins..."
@@ -15156,6 +15170,9 @@ msgid ""
 msgstr ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 
+msgid "Cause: "
+msgstr "Cause: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15391,6 +15408,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Report Bug"
 
+msgid "Suppress this error for this session."
+msgstr "Suppress this error for this session."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Suppress further error dialogues for this session."
 
@@ -15423,8 +15443,8 @@ msgstr "An error occured while checking if your JOSM instance is up to date."
 msgid "JOSM is up to date."
 msgstr "JOSM is up to date."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
-msgstr "JOSM is out of date. The current version is {0}. Try updating JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
+msgstr ""
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16173,14 +16193,20 @@ msgstr "Berlin aerial photograph 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin aerial photograph 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (aerial imagery)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen aerial imagery (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16575,11 +16601,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -16975,6 +17001,11 @@ msgstr ""
 "polygon. Built to ease mapping of building from background layers. Optimised "
 "for basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Tools for drawing buildings."
 
@@ -17254,6 +17285,9 @@ msgstr ""
 "Disallow using JOSM forever (WARNING: this plugin prevents JOSM from loading "
 "and is hard to rid of)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Convert data from Open Data portals to OSM layer"
 
@@ -17382,6 +17416,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Edit features for Sea Charts"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19630,9 +19668,27 @@ msgstr "Culvert"
 msgid "Basin"
 msgstr "Basin"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservoir"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Covered Reservoir"
 
@@ -19667,6 +19723,12 @@ msgstr "reservoir"
 msgid "river"
 msgstr "river"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Salt Water"
 
@@ -20877,6 +20939,9 @@ msgstr "Amusement/Theme park"
 msgid "Water Park"
 msgstr "Water Park"
 
+msgid "Beach Resort"
+msgstr "Beach Resort"
+
 msgid "Swimming Pool"
 msgstr "Swimming Pool"
 
@@ -23530,8 +23595,11 @@ msgstr "Seafood"
 msgid "Deli (Fine Food)"
 msgstr "Deli (Fine Food)"
 
-msgid "Candy Store"
-msgstr "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Tea"
@@ -23782,8 +23850,11 @@ msgstr "Vending Machine"
 msgid "Vending products"
 msgstr "Vending products"
 
-msgid "animal_food"
-msgstr "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "bicycle_tube"
@@ -23797,6 +23868,9 @@ msgstr "condoms"
 msgid "drinks"
 msgstr "drinks"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "excrement_bags"
 
@@ -23812,6 +23886,12 @@ msgstr "newspapers"
 msgid "parking_tickets"
 msgstr "parking_tickets"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "photos"
 
@@ -23830,18 +23910,12 @@ msgstr "stamps"
 msgid "sweets"
 msgstr "sweets"
 
-msgid "tampons"
-msgstr "tampons"
-
 msgid "telephone_vouchers"
 msgstr "telephone_vouchers"
 
 msgid "toys"
 msgstr "toys"
 
-msgid "vouchers"
-msgstr "vouchers"
-
 msgid "Payment Methods"
 msgstr "Payment Methods"
 
@@ -24573,6 +24647,15 @@ msgstr "Greenhouse Horticulture"
 msgid "Plant Nursery"
 msgstr "Plant Nursery"
 
+msgid "Aquaculture"
+msgstr "Aquaculture"
+
+msgid "shrimp"
+msgstr "shrimp"
+
+msgid "mussels"
+msgstr "mussels"
+
 msgid "Allotments"
 msgstr "Allotments"
 
@@ -24666,6 +24749,9 @@ msgstr "Official name"
 msgid "Common name abbreviation"
 msgstr "Common name abbreviation"
 
+msgid "Address"
+msgstr "Address"
+
 msgid "House number"
 msgstr "House number"
 
@@ -27041,6 +27127,21 @@ msgstr "Debug"
 msgid "Debugging mode will write images for each processing step."
 msgstr "Debugging mode will write images for each processing step."
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Street Name:"
 
@@ -27988,9 +28089,6 @@ msgstr ""
 "is selected there is no indication that something is being done, and no way "
 "to cancel the download."
 
-msgid "Address"
-msgstr "Address"
-
 msgid "Split area"
 msgstr "Split area"
 
@@ -29139,8 +29237,8 @@ msgstr "create the channel digraph"
 msgid "Check "
 msgstr "Check "
 
-msgid "check the subust for junction properties"
-msgstr "check the subust for junction properties"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Search "
@@ -30025,6 +30123,24 @@ msgstr ""
 "(To miserably continue mapping, edit out no_more_mapping\n"
 "from {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Invalid changeset id: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Invalid timestamp: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Reading OSM data..."
+
 msgid "Split by municipality"
 msgstr "Split by municipality"
 
@@ -30543,18 +30659,9 @@ msgstr "OSM Server Files pbf compressed"
 msgid "Download PBF"
 msgstr "Download PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Invalid changeset id: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Invalid timestamp: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Invalid DenseNodes key/values table"
 
-msgid "Reading OSM data..."
-msgstr "Reading OSM data..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Transform error: Min X must be smaller than max"
 
@@ -31215,6 +31322,9 @@ msgstr "Printing has failed."
 msgid "Add stop position"
 msgstr "Add stop position"
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr "Do you want to download referrers of platforms and stop positions?"
 
@@ -31233,6 +31343,12 @@ msgstr ""
 "They need to be downloaded to proceed with validation.\n"
 "Do you want to download them?"
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr "PT_Assistant plugin found that this relation (id={0}) has errors:"
 
@@ -31261,11 +31377,6 @@ msgstr "PT: Platform should not be part of a way"
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr "PT: Stop position or platform is not part of a stop area relation"
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-"PT: Stop position and its related platform(s) have different route relations"
-
 msgid "PT_Assistant Message"
 msgstr "PT_Assistant Message"
 
@@ -31301,8 +31412,14 @@ msgstr "PT: Problem in the route segment"
 msgid "PT: Stop not served"
 msgstr "PT: Stop not served"
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "PT: Problem in the route segment with no automatic fix"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "PT: Problem in the route segment with one automatic fix"
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
-msgstr ""
+msgstr "Warning: the diplayed fix variants are based on less strict criteria"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
 msgstr "Type letter to select the fix variant or press Escape for no fix"
@@ -31310,14 +31427,13 @@ msgstr "Type letter to select the fix variant or press Escape for no fix"
 msgid "PT: Stop area relation has no stop position"
 msgstr "PT: Stop area relation has no stop position"
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr "PT: Stop area relation has several stop positions"
-
 msgid "PT: Stop area relation has no platform"
 msgstr "PT: Stop area relation has no platform"
 
-msgid "PT: Stop area relation has several platforms"
-msgstr "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
+msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
 msgstr "PT: Route type does not match the type of the road it passes on"
@@ -32126,6 +32242,51 @@ msgstr "Select only one object"
 msgid "Select a map object"
 msgstr "Select a map object"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Simplify Area"
 
@@ -34267,17 +34428,6 @@ msgstr[1] "Fetching {0} Wikidata IDs for language ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Add Wikidata for language ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgstr[1] "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr "Search Wikidata items"
-
-msgid "Target key: "
-msgstr "Target key: "
-
 msgid "Add names from Wikipedia"
 msgstr "Add names from Wikipedia"
 
@@ -34286,12 +34436,6 @@ msgid ""
 msgstr ""
 "Fetches interwiki links from Wikipedia in order to add several name tags"
 
-msgid "Search Wikipedia category"
-msgstr "Search Wikipedia category"
-
-msgid "Load category"
-msgstr "Load category"
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34302,6 +34446,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copy {0} template"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgstr[1] "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr "Search Wikidata items"
+
+msgid "Target key: "
+msgstr "Target key: "
+
+msgid "Search Wikipedia category"
+msgstr "Search Wikipedia category"
+
+msgid "Load category"
+msgstr "Load category"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Fetch Wikipedia articles with coordinates"
 
diff --git a/i18n/po/eo.po b/i18n/po/eo.po
index 95e783d..1fde0af 100644
--- a/i18n/po/eo.po
+++ b/i18n/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2012-10-03 21:33+0000\n"
 "Last-Translator: Michael Moroni <michael.moroni at openmailbox.org>\n"
 "Language-Team: Esperanto <eo at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:41+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:48+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: eo\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -484,6 +469,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1963,6 +1954,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1975,9 +1975,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2043,12 +2040,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2139,13 +2130,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3506,9 +3497,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3518,6 +3506,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4728,7 +4719,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5878,6 +5869,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5905,9 +5899,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7128,10 +7119,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9135,10 +9126,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9618,6 +9609,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9630,9 +9624,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11422,6 +11413,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12509,9 +12525,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13488,7 +13501,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13954,6 +13967,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14150,6 +14166,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14181,7 +14200,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14915,13 +14934,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15317,10 +15342,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15706,6 +15731,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15929,6 +15959,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16034,6 +16067,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18231,9 +18268,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18268,6 +18323,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19473,6 +19534,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22124,7 +22188,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22376,7 +22443,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22391,6 +22461,9 @@ msgstr "kondomoj"
 msgid "drinks"
 msgstr "trinkoj"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22406,6 +22479,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22424,18 +22503,12 @@ msgstr "poŝtmarko"
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23149,6 +23222,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23242,6 +23324,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Domo numero"
 
@@ -25445,6 +25530,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26325,9 +26425,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27411,7 +27508,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28272,6 +28369,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28746,18 +28861,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29409,6 +29515,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29424,6 +29533,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29452,10 +29567,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29490,6 +29601,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29499,13 +29616,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30296,6 +30412,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32250,6 +32411,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32261,27 +32437,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/es.po b/i18n/po/es.po
index 1278f24..f148b42 100644
--- a/i18n/po/es.po
+++ b/i18n/po/es.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-07-28 11:48+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-04 10:02+0000\n"
 "Last-Translator: Emilio Gomez Fernandez <Unknown>\n"
 "Language-Team: Spanish <es at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:07+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:29+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: es\n"
 "X-Language: es_ES\n"
 "X-Source-Language: C\n"
@@ -57,21 +57,6 @@ msgstr "Condiciones de uso de la imagen de fondo"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "La apertura de enlace no se admite en la plataforma actual (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERROR: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ADVERTENCIA: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMACIÓN: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEPURACIÓN: {0}"
-
-msgid "Cause: "
-msgstr "Causa: "
-
 msgid "Executing platform startup hook"
 msgstr "Ejecutando enganche de inicio a la plataforma"
 
@@ -505,6 +490,12 @@ msgstr "Descargar datos"
 msgid "Download notes in current view"
 msgstr "Descargar notas en la vista actual"
 
+msgid "Download in current view"
+msgstr "Descargar en vista actual"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Descargar datos del mapa desde el servidor de OSM en la vista actual"
+
 msgid "Download object..."
 msgstr "Descargar objeto..."
 
@@ -522,7 +513,7 @@ msgid "Duplicate"
 msgstr "Duplicar"
 
 msgid "Duplicate selection."
-msgstr ""
+msgstr "Duplicar selección."
 
 msgid "Exit"
 msgstr "Salir"
@@ -1161,13 +1152,14 @@ msgid "Paste"
 msgstr "Pegar"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Pegar contenido del portapapeles."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Pegar en la posición de origen"
 
 msgid "Paste contents of clipboard at the position they were copied from."
 msgstr ""
+"Pegar el contenido del portapapeles en la posición en que se ha copiado."
 
 msgid "Paste Tags"
 msgstr "Pegar etiquetas"
@@ -1932,7 +1924,7 @@ msgid "Errors during download"
 msgstr "Errores durante la descarga"
 
 msgid "Download Geo URL"
-msgstr ""
+msgstr "Descargar Geo URL"
 
 msgid "Download GPS"
 msgstr "Descargar GPS"
@@ -2140,6 +2132,15 @@ msgstr ""
 "Clic para borrar. Con mayúscula: borrar segmento de vía. Con Alt: no borrar "
 "los nodos sin usar al borrar una vía. Con Ctrl: borrar los objetos referidos."
 
+msgid "draw angle snap"
+msgstr "dibujar ajuste de ángulo"
+
+msgid "draw angle snap highlight"
+msgstr "resaltar dibujado de ángulo de corte"
+
+msgid "helper line"
+msgstr "línea del asistente"
+
 msgid "Draw"
 msgstr "Dibujar"
 
@@ -2152,9 +2153,6 @@ msgstr "Modo: Dibujo de angulos instantaneo"
 msgid "Backspace in Add mode"
 msgstr "Tecla retroceso en modo Agregar"
 
-msgid "helper line"
-msgstr "línea del asistente"
-
 msgid "Cannot add a node outside of the world."
 msgstr "No se puede añadir un nodo fuera del mundo."
 
@@ -2220,12 +2218,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "dibujar ajuste de ángulo"
-
-msgid "draw angle snap highlight"
-msgstr "resaltar dibujado de ángulo de corte"
-
 msgid "Angle snapping"
 msgstr "Autoensamblado de ángulos"
 
@@ -2328,15 +2320,15 @@ msgstr[1] "Añadir nuevo nodos a las {0} vías"
 msgid "Cannot delete node that has tags"
 msgstr "No se puede eliminar el nodo que tiene etiquetas"
 
+msgid "make parallel helper line"
+msgstr "línea guía hacer paralela"
+
 msgid "Parallel"
 msgstr "Paralelo"
 
 msgid "Make parallel copies of ways"
 msgstr "Hacer copias paralelas de vías"
 
-msgid "make parallel helper line"
-msgstr "línea guía hacer paralela"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3063,7 +3055,7 @@ msgid "Change relation {0}"
 msgstr "Cambiar relación {0}"
 
 msgid "Change nodes of {0}"
-msgstr ""
+msgstr "Cambiar los nodos de {0}"
 
 msgid "Remove \"{0}\" for node ''{1}''"
 msgstr "Eliminar \"{0}\" por nodo ''{1}''"
@@ -3866,10 +3858,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "No hay resultados para la unidad: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-"El parámetro debe comenzar con un carácter de «+» (encontrados \\\"{0}\\\")"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Parámetro desconocido: ''{0}''."
 
@@ -3879,6 +3867,10 @@ msgstr "Valor esperado para el parámetro \\\"{0}\\\"."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Ningún valor esperado para el parámetro  ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+"El parámetro debe comenzar con un carácter de «+» (encontrados \\\"{0}\\\")"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Formato de parámetro inesperado (\\\"{0}\\\")"
 
@@ -5172,8 +5164,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Hay que cargar algún dato si se usa --selección."
 
-msgid "Printing debugging messages to console"
-msgstr "Visualización de mensajes de depuración en consola"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr "El nivel de registro es a las {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Carga de plugins omitida"
@@ -6467,6 +6459,9 @@ msgstr "botón izquierdo para cerrar este diálogo y continuar editando"
 msgid "Conflicts detected"
 msgstr "Se han detectado conflictos"
 
+msgid "Resolve conflicts"
+msgstr "Resolver los conflictos"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Cancelar la resolución de conflictos y cerrar el cuadro de diálogo"
 
@@ -6500,9 +6495,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflicto no resuelto completamente"
 
-msgid "Resolve conflicts"
-msgstr "Resolver los conflictos"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resolver los conflictos de ''{0}''"
 
@@ -7843,12 +7835,12 @@ msgstr "Mostrar/ocultar capa"
 msgid "Discardable key: selection Foreground"
 msgstr "Clave descartable: selección de Frente"
 
-msgid "Discardable key: selection Background"
-msgstr "Discardable key: selección de Fondo"
-
 msgid "Discardable key: foreground"
 msgstr "Clave descartable: frente"
 
+msgid "Discardable key: selection Background"
+msgstr "Discardable key: selección de Fondo"
+
 msgid "Discardable key: background"
 msgstr "Clave descartable: fondo"
 
@@ -10114,8 +10106,8 @@ msgstr "Guardar capa"
 
 msgid "{0} note"
 msgid_plural "{0} notes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "{0} nota"
+msgstr[1] "{0} notas"
 
 msgid "Notes layer"
 msgstr "Capa de notas"
@@ -10126,12 +10118,12 @@ msgstr "Total de notas:"
 msgid "Changes need uploading?"
 msgstr "¿Los cambios necesitan ser subidos?"
 
-msgid "Data Layer {0}"
-msgstr "Capa de datos {0}"
-
 msgid "outside downloaded area"
 msgstr "fuera del área descargada"
 
+msgid "Data Layer {0}"
+msgstr "Capa de datos {0}"
+
 msgid "Merging layers"
 msgstr "Combinar capas"
 
@@ -10471,7 +10463,7 @@ msgid "Previous"
 msgstr "Anterior"
 
 msgid "Show previous Image"
-msgstr "Mostrar imagen previa"
+msgstr "Mostrar la imagen previa"
 
 msgid "Geoimage: {0}"
 msgstr "Geoimagen: {0}"
@@ -10651,6 +10643,9 @@ msgstr "No hay capas de imagenes disponibles."
 msgid "No imagery layers"
 msgstr "No hay capas de imágenes"
 
+msgid "gps point"
+msgstr "punto GPS"
+
 msgid "HDOP"
 msgstr "Incertidumbre 2D (en la horizontal)"
 
@@ -10663,9 +10658,6 @@ msgstr "Dirección"
 msgid "Velocity, {0}"
 msgstr "Velocidad, {0}"
 
-msgid "gps point"
-msgstr "punto GPS"
-
 msgid "Import Audio"
 msgstr "Importar audio"
 
@@ -12734,6 +12726,35 @@ msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 "Configurar la lista de sitios desde donde se descargan los complementos"
 
+msgid "Load from list..."
+msgstr "Cargar desde la lista..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Carga los complementos desde una lista de complementos"
+
+msgid "Disable all other plugins"
+msgstr "Desactivar todos los demás complementos"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Introducir una lista de complementos que desea descargar."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Debe añadir un identificador de complemento por línea, la información de la "
+"versión se ignora."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "Puede copiar y pegar la lista de un informe de estado aquí."
+
+msgid "Load plugins from list"
+msgstr "Cargar complementos desde la lista"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+"No se encontraron los siguientes complementos. ¿Continuar de cualquier "
+"manera?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Añadir URL de la descripción del complemento de JOSM."
 
@@ -13828,7 +13849,7 @@ msgstr ""
 "archivo zip ''{0}''. La excepción fue: {1}"
 
 msgid "The requested URL {0} was not found"
-msgstr ""
+msgstr "No se encontró la dirección URL {0} solicitada"
 
 msgid "Failed to rename file {0} to {1}."
 msgstr "Falló el cambio de nombre del archivo {0} por el de {1}."
@@ -13957,9 +13978,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr "Archivos GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Archivos GeoJSON proyectados"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Capa ''{0}'' no soportada"
 
@@ -14725,6 +14743,7 @@ msgstr "Confirmar la acción del control remoto"
 
 msgid "The following keys are mandatory, but have not been provided: {0}"
 msgstr ""
+"Las claves siguientes son obligatorias pero no se han proporcionado: {0}"
 
 msgid ""
 "Remote Control has been asked to report its protocol version. This enables "
@@ -15065,8 +15084,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "El complemento no será cargado."
 msgstr[1] "Los complementos no serán cargados."
 
-msgid "Determine plugins to load..."
-msgstr "Determinar los complementos a cargar ..."
+msgid "Determining plugins to load..."
+msgstr "Determinando los complementos a cargar..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Eliminando complementos obsoletos..."
@@ -15686,6 +15705,9 @@ msgstr ""
 "No se ha podido acceder al directorio ''{0}'' por razones de seguridad. La "
 "excepción fue: {1}"
 
+msgid "Cause: "
+msgstr "Causa: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15893,18 +15915,22 @@ msgid ""
 "This is always a coding error. If you are running the latest version of "
 "JOSM, please consider being kind and file a bug report."
 msgstr ""
+"Se produjo una excepción inesperada.\n"
+"Esto es siempre debido a un error de codificación. Si está ejecutando la "
+"última versión de JOSM, por favor considere esto y  presente un informe de "
+"error."
 
 msgid "Debug information"
-msgstr ""
+msgstr "Información de depuración"
 
 msgid "Manually report at:"
-msgstr ""
+msgstr "Reportar manualmente en:"
 
 msgid "Is JOSM up to date?"
-msgstr ""
+msgstr "¿Se encuentra JOSM actualizado?"
 
 msgid "Send bug report"
-msgstr ""
+msgstr "Enviar informe de error"
 
 msgid ""
 "If you are running the latest version of JOSM and the plugins, please file a "
@@ -15913,15 +15939,23 @@ msgid ""
 "include information on how to reproduce the error and try to supply as much "
 "detail as possible."
 msgstr ""
+"Si está ejecutando la última versión de JOSM y de los complementos por favor "
+"añada un informe de error en nuestro  sistema de gestión de incidencias.\n"
+"Es allí donde deberá rellenar la información sobre el fallo. Por favor, "
+"incluya información de cómo poder volver a reproducirle y trate de "
+"suministrar la mayor cantidad posible de detalles."
 
 msgid "Report Bug"
 msgstr "Informar del error"
 
+msgid "Suppress this error for this session."
+msgstr "Suprimir este error para esta sesión."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Suprimir otros mensajes de error durante esta sesión."
 
 msgid "Ignore this error."
-msgstr ""
+msgstr "Ignorar este error."
 
 msgid ""
 "Opening the bug report failed. Please report manually using this website:"
@@ -15930,33 +15964,38 @@ msgstr ""
 "utilizando este sitio web:"
 
 msgid "Include the system status report."
-msgstr ""
+msgstr "Incluir el informe de estado del sistema."
 
 msgid "Include information about the data you were working on."
-msgstr ""
+msgstr "Incluir información sobre los datos que estaba trabajando."
 
 msgid "Include all stack traces."
-msgstr ""
+msgstr "Incluir todas las trazas de la pila."
 
 msgid "Your current version of JOSM is {0}"
-msgstr ""
+msgstr "Su versión actual de JOSM es {0}"
 
 msgid "JOSM is searching for updates..."
-msgstr ""
+msgstr "JOSM está buscando actualizaciones ..."
 
 msgid "An error occured while checking if your JOSM instance is up to date."
 msgstr ""
+"Se produjo un error al comprobar si su instancia de JOSM se encuentra "
+"actualizada."
 
 msgid "JOSM is up to date."
-msgstr ""
+msgstr "JOSM se encuentra actualizado."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
+"JOSM no está actualizado. La versión actual es {0}. Intente actualizar JOSM."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
 "version of JOSM here:"
 msgstr ""
+"Antes de presentar un informe de error asegúrese de que ha actualizado a la "
+"última versión de JOSM aquí:"
 
 msgid "Update JOSM"
 msgstr "Actualizar JOSM"
@@ -16354,7 +16393,7 @@ msgid "Strava running heatmap"
 msgstr "Mapa de calor para corredores de Strava"
 
 msgid "Strava cycling and running heatmap"
-msgstr ""
+msgstr "Strava - Mapa de calor de ciclismo y running"
 
 msgid "Locator Overlay"
 msgstr "Superponer ubicador"
@@ -16405,10 +16444,10 @@ msgid "OSM Inspector: Boundaries (EU)"
 msgstr "OSM Inspector: Límites (EU)"
 
 msgid "IGN Argentina (WMTS)"
-msgstr ""
+msgstr "IGN Argentina (WMTS)"
 
 msgid "IGN Argentina (WMS)"
-msgstr ""
+msgstr "IGN Argentina (WMS)"
 
 msgid "AGRI black-and-white 2.5m"
 msgstr "AGRI blanco y negro 2.5m"
@@ -16483,10 +16522,10 @@ msgid "VoGIS: Höhen und Gelände"
 msgstr "VoGIS: Alturas y terrenos"
 
 msgid "AGIV (Vlaanderen / Flanders) most recent aerial imagery (winter)"
-msgstr ""
+msgstr "AGIV (Flandes) - Imágenes aéreas más recientes (invierno)"
 
 msgid "AGIV aerial imagery 10cm 2013-15"
-msgstr ""
+msgstr "AGIV - Imágenes aéreas de 10cm 2013-15"
 
 msgid "URBISfr numerical imagery (2013)"
 msgstr "Imágenes aéreas numéricas de URBISfr (2013)"
@@ -16701,14 +16740,20 @@ msgstr "Berlin fotografía aérea 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin fotografía aérea 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Berlín - Fotografías aéreas de 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Imágenes aéreas de Stuttgart"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Erlangen - Imágenes aéreas (2016 5.0 cm)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Imágenes aéreas de Erlangen (2013 6,25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Imágenes aéreas de 2011 de Erlangen (5,0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Erlangen - Imágenes aéreas (2011 5.0 cm)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr ""
@@ -17105,11 +17150,12 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Ciudad de Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Ortofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Cantón de Solothurn - Imágenes aéreas RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Ortofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
+"Cantón de Solothurn - Imágenes aéreas Infrarrojo (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génova 5cm (SITG 2011)"
@@ -17508,6 +17554,13 @@ msgstr ""
 "como polígonos. Hecho para facilitar el mapeo de construcciones desde capas "
 "de fondo. Optimizado para basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Permite al usuario corregir el ángulo de los edificios a 90 grados y alinea "
+"todos los edificios cargados a la carretera más cercana."
+
 msgid "Tools for drawing buildings."
 msgstr "Herramientas para dibujar edificios."
 
@@ -17812,6 +17865,9 @@ msgstr ""
 "Deshabilitar de forma permanente el uso de JOSM (ADVERTENCIA: este "
 "complemento impide que JOSM se ejecute y es complicado de deshacer)"
 
+msgid "Import OSM data in o5m format"
+msgstr "Importación de datos de OSM en formato o5m"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 "Permite importar a JOSM archivos de datos de formatos conocidos (shp, kml, "
@@ -17951,6 +18007,12 @@ msgid "Edit features for Sea Charts"
 msgstr "Editar características para Cartas Marinas"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+"Ofrece a los usuarios más herramientas que facilitan la alineación y la "
+"rotación de edificios."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18077,6 +18139,8 @@ msgstr ""
 msgid ""
 "Simplifies linking OSM objects to Wikipedia articles and Wikidata items"
 msgstr ""
+"Simplifica la vinculación de objetos de OSM a artículos de Wikipedia y "
+"elementos de Wikidata"
 
 msgid ""
 "Drive a race car from point A to point B over aerial imagery, leave cacti "
@@ -18315,19 +18379,19 @@ msgstr "Electrificado"
 
 msgctxt "electrified"
 msgid "contact_line"
-msgstr ""
+msgstr "catenaria"
 
 msgctxt "electrified"
 msgid "no"
-msgstr ""
+msgstr "no"
 
 msgctxt "electrified"
 msgid "yes"
-msgstr ""
+msgstr "sí"
 
 msgctxt "electrified"
 msgid "rail"
-msgstr ""
+msgstr "ferrocarril"
 
 msgid "Voltage in Volts (V)"
 msgstr "Voltaje en voltios (V)"
@@ -20218,9 +20282,27 @@ msgstr "Alcantarilla"
 msgid "Basin"
 msgstr "Cuenca"
 
+msgid "retention"
+msgstr "retencion"
+
+msgid "infiltration"
+msgstr "infiltración"
+
+msgid "detention"
+msgstr "detención"
+
 msgid "Reservoir"
 msgstr "Embalse"
 
+msgid "evaporator"
+msgstr "evaporador"
+
+msgid "tailings"
+msgstr "relaves"
+
+msgid "water_storage"
+msgstr "almacenamiento de agua"
+
 msgid "Covered Reservoir"
 msgstr "Depósito de agua"
 
@@ -20255,6 +20337,12 @@ msgstr "reservorio"
 msgid "river"
 msgstr "río"
 
+msgid "lock"
+msgstr "esclusa"
+
+msgid "wastewater"
+msgstr "aguas residuales"
+
 msgid "Salt Water"
 msgstr "Agua salada"
 
@@ -21469,6 +21557,9 @@ msgstr "Parque de atracciones"
 msgid "Water Park"
 msgstr "Parque acuático"
 
+msgid "Beach Resort"
+msgstr "Complejo vacacional de playa"
+
 msgid "Swimming Pool"
 msgstr "Piscina"
 
@@ -21658,7 +21749,7 @@ msgstr "protestante"
 
 msgctxt "christian"
 msgid "quaker"
-msgstr "cuáquero"
+msgstr "cuáquera"
 
 msgctxt "christian"
 msgid "roman_catholic"
@@ -22282,7 +22373,7 @@ msgid "Sports Centre"
 msgstr "Polideportivo"
 
 msgid "Fitness Centre"
-msgstr ""
+msgstr "Gimnasio"
 
 msgid "Pitch"
 msgstr "Cancha de juego"
@@ -22371,7 +22462,7 @@ msgstr "Polideportivo"
 
 msgctxt "running"
 msgid "fitness_centre"
-msgstr ""
+msgstr "gimnasio"
 
 msgctxt "running"
 msgid "stadium"
@@ -22431,7 +22522,7 @@ msgid "Gymnastics"
 msgstr "Gimnasia"
 
 msgid "fitness_centre"
-msgstr ""
+msgstr "gimnasio"
 
 msgid "Ice Skating"
 msgstr "Patinaje sobre hielo"
@@ -24126,8 +24217,11 @@ msgstr "Pescadería o marisquería"
 msgid "Deli (Fine Food)"
 msgstr "Delicatessen"
 
-msgid "Candy Store"
-msgstr "Tienda de chucherías"
+msgid "Pastry"
+msgstr "Pasteles"
+
+msgid "Confectionery"
+msgstr "Confitería"
 
 msgid "Tea"
 msgstr "Casa de té"
@@ -24292,13 +24386,13 @@ msgid "Hairdresser/Barber"
 msgstr "Peluquería/Barbería"
 
 msgid "Female"
-msgstr ""
+msgstr "Mujer"
 
 msgid "Male"
-msgstr ""
+msgstr "Hombre"
 
 msgid "Unisex"
-msgstr ""
+msgstr "Unisex"
 
 msgid "Tattoo"
 msgstr "Tatuaje"
@@ -24378,7 +24472,10 @@ msgstr "Máquina expendedora"
 msgid "Vending products"
 msgstr "Expendedor automático de productos"
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr "billete de admisión"
+
+msgid "animal_feed"
 msgstr "comida para animales"
 
 msgid "bicycle_tube"
@@ -24393,6 +24490,9 @@ msgstr "condones"
 msgid "drinks"
 msgstr "Bebidas"
 
+msgid "elongated_coin"
+msgstr "monedas alargadas"
+
 msgid "excrement_bags"
 msgstr "Bolsas para excrementos"
 
@@ -24400,7 +24500,7 @@ msgid "food"
 msgstr "Alimentación"
 
 msgid "milk"
-msgstr ""
+msgstr "leche"
 
 msgid "newspapers"
 msgstr "Periódicos"
@@ -24408,6 +24508,12 @@ msgstr "Periódicos"
 msgid "parking_tickets"
 msgstr "tickets de aparcamiento"
 
+msgid "parcel_pickup"
+msgstr "recogida de paquetes"
+
+msgid "parcel_mail_in"
+msgstr "depósito de paquete postal"
+
 msgid "photos"
 msgstr "fotos"
 
@@ -24426,18 +24532,12 @@ msgstr "sellos"
 msgid "sweets"
 msgstr "Caramelos"
 
-msgid "tampons"
-msgstr "tampones"
-
 msgid "telephone_vouchers"
 msgstr "Tarjetas telefónicas"
 
 msgid "toys"
 msgstr "juguetes"
 
-msgid "vouchers"
-msgstr "Bonos"
-
 msgid "Payment Methods"
 msgstr "Formas de pago"
 
@@ -24585,16 +24685,16 @@ msgid "Government"
 msgstr "Gobierno"
 
 msgid "ministry"
-msgstr ""
+msgstr "ministerio"
 
 msgid "prosecutor"
-msgstr ""
+msgstr "fiscalía"
 
 msgid "tax"
-msgstr ""
+msgstr "recaudación de impuestos"
 
 msgid "register_office"
-msgstr ""
+msgstr "oficina de registro"
 
 msgctxt "office"
 msgid "Insurance"
@@ -24910,16 +25010,16 @@ msgid "Islet"
 msgstr "Islote"
 
 msgid "Reef"
-msgstr ""
+msgstr "Arrecife"
 
 msgid "coral"
-msgstr ""
+msgstr "coral"
 
 msgid "oyster"
-msgstr ""
+msgstr "ostras"
 
 msgid "rock"
-msgstr ""
+msgstr "roca"
 
 msgid "Nature"
 msgstr "Natural"
@@ -25173,6 +25273,15 @@ msgstr "Invernadero hortofrutícola"
 msgid "Plant Nursery"
 msgstr "Vivero de plantas"
 
+msgid "Aquaculture"
+msgstr "Acuicultura"
+
+msgid "shrimp"
+msgstr "camarón"
+
+msgid "mussels"
+msgstr "mejillones"
+
 msgid "Allotments"
 msgstr "Huertos de ocio"
 
@@ -25272,6 +25381,9 @@ msgstr "Nombre oficial"
 msgid "Common name abbreviation"
 msgstr "Abreviatura común del nombre"
 
+msgid "Address"
+msgstr "Dirección"
+
 msgid "House number"
 msgstr "Número de portal"
 
@@ -26016,7 +26128,7 @@ msgstr ""
 "También puedes validar el cruce de puentes y sus {1} etiquetas."
 
 msgid "{0} together with {1} and {2}. Remove {1} and {2}"
-msgstr ""
+msgstr "{0} junto con {1} y {2}. Eliminar {1} y {2}"
 
 msgid "{0} is deprecated"
 msgstr "{0} está obsoleto"
@@ -27693,6 +27805,24 @@ msgstr "Depurar"
 msgid "Debugging mode will write images for each processing step."
 msgstr "El modo de depuración escribirá imágenes para cada paso del proceso."
 
+msgid "Building Generalization"
+msgstr "Generalización de edificios"
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+"Los contornos de dibujo iniciales a menudo son muy inexactos. Tales "
+"edificios se regularizarán mediante su ortogonalización. Los ángulos de "
+"entre 84-96 grados se transformarán a 90º."
+
+msgid "There is no frame loaded !"
+msgstr "¡No se ha cargado ningún marco!"
+
+msgid "Alert Message"
+msgstr "Mensaje de alerta"
+
 msgid "Street Name:"
 msgstr "Nombre de Calle:"
 
@@ -28666,9 +28796,6 @@ msgstr ""
 "opción está seleccionada no habrá ninguna indicación de que algo se ha "
 "concluido, y no hay forma de cancelar la descarga."
 
-msgid "Address"
-msgstr "Dirección"
-
 msgid "Split area"
 msgstr "Dividir área"
 
@@ -29843,8 +29970,8 @@ msgstr "crear el digrama de canal"
 msgid "Check "
 msgstr "Comprobar "
 
-msgid "check the subust for junction properties"
-msgstr "verificar el subust de las propiedades de cruce"
+msgid "check the subset for junction properties"
+msgstr "comprobar el subconjunto de propiedades de unión"
 
 msgid "Search "
 msgstr "Buscar "
@@ -30360,28 +30487,28 @@ msgid "Open Mapillary main dialog"
 msgstr "Abrir ventana principal de Mapillary"
 
 msgid "Next picture"
-msgstr "Siguiente imagen"
+msgstr "Fotografía siguiente"
 
 msgid "Shows the next picture in the sequence"
-msgstr "Mostrar la siguiente imagen en una secuencia"
+msgstr "Mostrar la imagen siguiente de la secuencia"
 
 msgid "Previous picture"
-msgstr "Previa imagen"
+msgstr "Fotografía anterior"
 
 msgid "Shows the previous picture in the sequence"
-msgstr "Mostrar la imagen previa en una secuencia"
+msgstr "Mostrar la imagen previa de la secuencia"
 
 msgid "Jump to red"
 msgstr "Saltar al rojo"
 
 msgid "Jumps to the picture at the other side of the red line"
-msgstr "Saltar a la imagen del otro lado de la línea roja"
+msgstr "Saltar a la imagen al otro lado de la línea roja"
 
 msgid "Jump to blue"
 msgstr "Saltar al azul"
 
 msgid "Jumps to the picture at the other side of the blue line"
-msgstr "Saltar a la imagen del otro lado de la línea azul"
+msgstr "Saltar a la imagen al otro lado de la línea azul"
 
 msgid "Stops the walk."
 msgstr "Detiene la caminata."
@@ -30467,13 +30594,13 @@ msgid "2 images unjoined"
 msgstr "2 imágenes  separadas"
 
 msgid "everything in the visible area"
-msgstr ""
+msgstr "todo en la zona visible"
 
 msgid "areas with downloaded OSM-data"
-msgstr ""
+msgstr "áreas con datos OSM descargados"
 
 msgid "only when manually requested"
-msgstr ""
+msgstr "sólo cuando se solicitan manualmente"
 
 msgid ""
 "The downloaded OSM area is too big. Download mode has been changed to "
@@ -30749,6 +30876,24 @@ msgstr ""
 "(para continuar mapeando miserablemente, edite out no_more_mapping\n"
 "de {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr "Archivos o5m comprimidos del servidor de OSM"
+
+msgid "Invalid changeset id: {0}"
+msgstr "Identificador de conjunto de cambios inválido: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "fecha y hora inválida: {0}"
+
+msgid "wrong header byte "
+msgstr "byte de cabecera incorrecto "
+
+msgid "unsupported header"
+msgstr "cabecera no soportada"
+
+msgid "Reading OSM data..."
+msgstr "Leyendo datos OSM..."
+
 msgid "Split by municipality"
 msgstr "Dividir por municipio"
 
@@ -31288,18 +31433,9 @@ msgstr "Archivos pbf comprimidos del Servidor OSM"
 msgid "Download PBF"
 msgstr "Descargar PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Identificador de conjunto de cambios inválido: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "fecha y hora inválida: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Tabla de claves/valores DenseNodes inválida"
 
-msgid "Reading OSM data..."
-msgstr "Leyendo datos OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Error de transformación: La X mínima debe ser menor que la máxima"
 
@@ -31970,6 +32106,9 @@ msgstr "La impresión ha fallado."
 msgid "Add stop position"
 msgstr "Añadir posición de parada"
 
+msgid "Repeat last fix"
+msgstr "Repetir la última corrección"
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 "¿Desea descargar las referentes de plataformas y posiciones de paradas?"
@@ -31978,7 +32117,7 @@ msgid "Remember my choice and do not ask me again in this session"
 msgstr "Recordar mi elección y no volver a preguntar en esta sesión"
 
 msgid "PT_Assistant Fetch Request"
-msgstr ""
+msgstr "Asistente PT de petición de recuperación"
 
 msgid ""
 "Route relations have incomplete members.\n"
@@ -31989,6 +32128,12 @@ msgstr ""
 "Necesitan ser descargados para proceder a la validación.\n"
 "¿Desea descargarlas?"
 
+msgid "Download incomplete route relation members"
+msgstr "Descarga miembros de la relación de ruta incompletos"
+
+msgid "Include stop_area tests"
+msgstr "Incluir análisis de la zona de parada"
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 "El complemento PT_Assistant encontró que esta relación (ID = {0}) tiene "
@@ -32018,10 +32163,8 @@ msgstr "PT: La plataforma no debe formar parte de una vía"
 
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
-
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
+"PT: La posición de detención o de la plataforma no es parte de una relación "
+"de área de parada"
 
 msgid "PT_Assistant Message"
 msgstr "Mensaje de PT_Assistant"
@@ -32055,28 +32198,39 @@ msgid "PT: First or last way needs to be split"
 msgstr "PT: Es necesario dividir la primera o última vía"
 
 msgid "PT: Problem in the route segment"
-msgstr ""
+msgstr "PT: Problema en el segmento de ruta"
 
 msgid "PT: Stop not served"
-msgstr ""
+msgstr "PT: Parada no operativa"
+
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "PT: Problema en el segmento de ruta sin corrección automática"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "PT: Problema en el segmento de ruta con una corrección automática"
 
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
+"Advertencia: las variantes de resolución de problemas que se muestran se "
+"basan en criterios menos estrictos"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
 msgstr ""
+"Introduzca el tipo de letra para seleccionar la variante de solución de "
+"problemas o pulse la tecla Esc para no elegir ninguna solución"
 
 msgid "PT: Stop area relation has no stop position"
-msgstr ""
-
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
+msgstr "PT: La relación de área de parada no tiene una posición de detención"
 
 msgid "PT: Stop area relation has no platform"
-msgstr ""
+msgstr "PT: La relación de área de parada no tiene plataforma"
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
+"PT: Las relaciones de posición de parada de rutas y las plataformas de los "
+"miembros del área de parada divergen"
 
 msgid "PT: Route type does not match the type of the road it passes on"
 msgstr ""
@@ -32898,6 +33052,51 @@ msgstr "Seleccione únicamente un objeto"
 msgid "Select a map object"
 msgstr "Seleccione un objeto del mapa"
 
+msgid "Shape actions panel"
+msgstr "Panel de acciones de forma"
+
+msgid "Shape mode control panel"
+msgstr "Panel de control de modo de forma"
+
+msgid "Rotate Mode:"
+msgstr "Modo de giro:"
+
+msgid "Clockwise"
+msgstr "Sentido horario"
+
+msgid "Counter Clockwise"
+msgstr "Sentido antihorario"
+
+msgid "Input angle here"
+msgstr "Introducir el ángulo aquí"
+
+msgid "Rotate"
+msgstr "Rotar"
+
+msgid "Align building "
+msgstr "Alinear edificio "
+
+msgid "Select building"
+msgstr "Seleccionar un edificio"
+
+msgid "Select road"
+msgstr "Seleccionar una carretera"
+
+msgid "Select none"
+msgstr "No seleccionar ninguno"
+
+msgid "Min Distance:"
+msgstr "Distancia mínima:"
+
+msgid "Input min distance"
+msgstr "Introducir distancia mínima"
+
+msgid "Align all buildings"
+msgstr "Alinear todos los edificios"
+
+msgid "Delete overlay"
+msgstr "Eliminar superposición"
+
 msgid "Simplify Area"
 msgstr "Simplificar aŕea"
 
@@ -33294,7 +33493,7 @@ msgid "No change to upload!"
 msgstr "¡Sin cambios que subir!"
 
 msgid "The bounding box is too big."
-msgstr ""
+msgstr "El cuadro delimitador es demasiado grande."
 
 msgid "Cannot place a node outside of the world."
 msgstr "No se puede colocar un nodo fuera del mundo."
@@ -35113,19 +35312,6 @@ msgstr[1] "Buscando {0} ID de Wikidata para el idioma ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Añadir Wikidata para el idioma ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-"¿Sobrescribir la etiqueta ''{0}'' {1} de {2} con el nuevo valor ''{3}''?"
-msgstr[1] ""
-"¿Sobrescribir las etiquetas ''{0}'' {1} de {2} con el nuevo valor ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr "Buscar elementos de Wikidata"
-
-msgid "Target key: "
-msgstr "Clave objetivo: "
-
 msgid "Add names from Wikipedia"
 msgstr "Añadir nombres desde Wikipedia"
 
@@ -35135,12 +35321,6 @@ msgstr ""
 "Obtiene los enlaces interwiki de Wikipedia para agregar varias etiquetas de "
 "denominación"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -35151,6 +35331,25 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copiar plantilla {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+"¿Sobrescribir la etiqueta ''{0}'' {1} de {2} con el nuevo valor ''{3}''?"
+msgstr[1] ""
+"¿Sobrescribir las etiquetas ''{0}'' {1} de {2} con el nuevo valor ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr "Buscar elementos de Wikidata"
+
+msgid "Target key: "
+msgstr "Clave objetivo: "
+
+msgid "Search Wikipedia category"
+msgstr "Buscar categoría de Wikipedia"
+
+msgid "Load category"
+msgstr "Cargar categoría"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Buscar artículos de Wikipedia con sus coordenadas"
 
diff --git a/i18n/po/et.po b/i18n/po/et.po
index fe99827..8ede06c 100644
--- a/i18n/po/et.po
+++ b/i18n/po/et.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-01-02 11:25+0000\n"
 "Last-Translator: AivoK <aivo.kuhlberg at hot.ee>\n"
 "Language-Team: Estonian <et at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:42+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:49+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: et\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Tausta kasutustingimused"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Linkide avamine ei ole praegusel platvormil toetatud (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "VIGA: {0}"
-
-msgid "WARNING: {0}"
-msgstr "HOIATUS:{0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Põhjus: "
-
 msgid "Executing platform startup hook"
 msgstr "Käivitan platvormi käivitamise haagi"
 
@@ -493,6 +478,12 @@ msgstr "Andmete allalaadimine"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Laadi objekt alla..."
 
@@ -2021,6 +2012,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Joonistamine"
 
@@ -2033,9 +2033,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Sõlme ei saa lisada maailmast väljapoole."
 
@@ -2101,12 +2098,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2198,15 +2189,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
+msgid "make parallel helper line"
+msgstr ""
+
 msgid "Parallel"
 msgstr ""
 
 msgid "Make parallel copies of ways"
 msgstr "Tee joontest paralleelseid koopiaid"
 
-msgid "make parallel helper line"
-msgstr ""
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3593,9 +3584,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3605,6 +3593,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4815,7 +4806,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5970,6 +5961,9 @@ msgstr "Klõpsa, et sulgeda see dialoog ja jätka redigeerimist"
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr "Lahenda vastuolud"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5997,9 +5991,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr "Lahenda vastuolud"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Lahenda \"{0}\" vastuolud"
 
@@ -7235,10 +7226,10 @@ msgstr "Näita/peida kihti"
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9286,12 +9277,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Andmekiht {0}"
-
 msgid "outside downloaded area"
 msgstr ""
 
+msgid "Data Layer {0}"
+msgstr "Andmekiht {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9781,6 +9772,9 @@ msgstr "Aluskaardi kihte ei ole"
 msgid "No imagery layers"
 msgstr "Aluskaardi kihte ei ole"
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9793,9 +9787,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr "Heli import"
 
@@ -11598,6 +11589,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Lisa JOSM plugina kirjelduse URL."
 
@@ -12707,9 +12723,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13696,7 +13709,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14175,6 +14188,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Põhjus: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14385,6 +14401,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Teata veast"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Ära näita rohkem veateateid selle seansi ajal."
 
@@ -14416,7 +14435,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15152,13 +15171,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15554,10 +15579,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15943,6 +15968,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Töövahendid ehitiste joonistamiseks."
 
@@ -16172,6 +16202,9 @@ msgstr ""
 "Keelab igaveseks JOSMi kasutamise (HOIATUS: see plugin keelab JOSMi "
 "laadimise ja sellest on raske lahti saada)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Teisendab Open Data portaalidest pärinevad andmed OSM kihiks"
 
@@ -16278,6 +16311,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18477,9 +18514,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18514,6 +18569,12 @@ msgstr "reservuaar"
 msgid "river"
 msgstr "jõgi"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Soolane vesi"
 
@@ -19719,6 +19780,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Veepark"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22370,8 +22434,11 @@ msgstr "Mereannid"
 msgid "Deli (Fine Food)"
 msgstr "Delikatessid"
 
-msgid "Candy Store"
-msgstr "Maiustused"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Teepood"
@@ -22622,8 +22689,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Müüdavad kaubad"
 
-msgid "animal_food"
-msgstr "looma_toit"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22637,6 +22707,9 @@ msgstr "kondoomid"
 msgid "drinks"
 msgstr "joogid"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22652,6 +22725,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "parkimis_pilet"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotod"
 
@@ -22670,18 +22749,12 @@ msgstr "templid"
 msgid "sweets"
 msgstr "maiustused"
 
-msgid "tampons"
-msgstr "tampoonid"
-
 msgid "telephone_vouchers"
 msgstr "telefoni_kaardid"
 
 msgid "toys"
 msgstr "mänguasjad"
 
-msgid "vouchers"
-msgstr "maksedokumendid"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23395,6 +23468,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Aiamaa"
 
@@ -23488,6 +23570,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Maja number"
 
@@ -25701,6 +25786,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Tänava nimi:"
 
@@ -26582,9 +26682,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27670,7 +27767,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28534,6 +28631,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Vigane muutuskogumi id: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29016,18 +29131,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr "Vigane muutuskogumi id: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29679,6 +29785,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29694,6 +29803,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29722,10 +29837,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29760,6 +29871,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29769,13 +29886,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30566,6 +30682,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32527,6 +32688,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr "Kopeeri {0} mall(i)"
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32538,27 +32714,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr "Kopeeri {0} mall(i)"
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Tõmba Vikipeedia artiklid koordinaatidega"
 
diff --git a/i18n/po/eu.po b/i18n/po/eu.po
index 023b311..279cc07 100644
--- a/i18n/po/eu.po
+++ b/i18n/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-03-09 16:55+0000\n"
 "Last-Translator: Asier Sarasua Garmendia <Unknown>\n"
 "Language-Team: Basque <eu at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:35+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:38+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: eu\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Atzeko planoko erabilera baldintzak"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr "ERROREA: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ABISUA: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMAZIOA: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "ARAZKETA: {0}"
-
-msgid "Cause: "
-msgstr "Zergatia: "
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -493,6 +478,12 @@ msgstr "Datuak deskargatu"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Deskargatu objektua..."
 
@@ -2042,6 +2033,15 @@ msgstr ""
 "erabili ez diren nodoak bidea ezabatzerakoan. Ctrl: ezabatu objektu hori "
 "erabiltzen duten objektu guztiak."
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Marraztu"
 
@@ -2054,9 +2054,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Ezin da nodorik gehitu mundutik kanpo."
 
@@ -2122,12 +2119,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2219,13 +2210,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3638,9 +3629,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3650,6 +3638,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4887,7 +4878,7 @@ msgid "Make sure you load some data if you use --selection."
 msgstr ""
 "--selection erabiltzen baduzu, ziurtatu zenbait datu kargatzen dituzula."
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6064,6 +6055,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr "Gatazkak aurkitu dira"
 
+msgid "Resolve conflicts"
+msgstr "Gatazkak konpondu"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -6091,9 +6085,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Gatazka ez da guztiz konpondu"
 
-msgid "Resolve conflicts"
-msgstr "Gatazkak konpondu"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Gatazkak konpondu \"{0}\"(r)entzat"
 
@@ -7317,10 +7308,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9324,10 +9315,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9809,6 +9800,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9821,9 +9815,6 @@ msgstr "Norabidea"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11613,6 +11604,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12700,9 +12716,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13676,7 +13689,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14142,6 +14155,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Zergatia: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14338,6 +14354,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14369,7 +14388,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15108,13 +15127,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15510,10 +15535,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15899,6 +15924,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Eraikinak marrazteko erremintak."
 
@@ -16131,6 +16161,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16248,6 +16281,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18464,9 +18501,27 @@ msgstr ""
 msgid "Basin"
 msgstr "Arroa"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Urtegia"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Estalitako urtegia"
 
@@ -18501,6 +18556,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19706,6 +19767,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Ur-jolasen parkea"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22357,7 +22421,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22609,8 +22676,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Produktuen makina-saltzailea"
 
-msgid "animal_food"
-msgstr "animalientzako janaria"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22624,6 +22694,9 @@ msgstr "kondoiak"
 msgid "drinks"
 msgstr "edariak"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "gorotz-poltsa"
 
@@ -22639,6 +22712,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "aparkalekuko txartelak"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "argazkiak"
 
@@ -22657,18 +22736,12 @@ msgstr "seiluak"
 msgid "sweets"
 msgstr "gozokiak"
 
-msgid "tampons"
-msgstr "tanpoiak"
-
 msgid "telephone_vouchers"
 msgstr "Telefono-txartelak"
 
 msgid "toys"
 msgstr "jostailuak"
 
-msgid "vouchers"
-msgstr "Bonuak"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23382,6 +23455,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Soroak"
 
@@ -23475,6 +23557,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Eraikinaren atari zenbakia"
 
@@ -25678,6 +25763,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26558,9 +26658,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr "Azalera banandu"
 
@@ -27644,7 +27741,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28510,6 +28607,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28984,18 +29099,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29647,6 +29753,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29662,6 +29771,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29690,10 +29805,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29728,6 +29839,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29737,13 +29854,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30534,6 +30650,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32496,6 +32657,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32507,27 +32683,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/fa.po b/i18n/po/fa.po
index a2d1ce5..4145fba 100644
--- a/i18n/po/fa.po
+++ b/i18n/po/fa.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2014-03-18 07:32+0000\n"
 "Last-Translator: Saeed Ghazi Joolaee <Unknown>\n"
 "Language-Team: Persian <fa at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:01+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:20+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: fa\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "زمینه و شرایط استفاده"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "باز کردن پیوند در بستر کنونی پشتیبانی نمی شود (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "خطا: {0}"
-
-msgid "WARNING: {0}"
-msgstr "هشدار: {0}"
-
-msgid "INFO: {0}"
-msgstr "اطلاعات: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "اشکال زدایی: {0}"
-
-msgid "Cause: "
-msgstr "علت: "
-
 msgid "Executing platform startup hook"
 msgstr "اجرا کردن بستر قلاب راه اندازی"
 
@@ -490,6 +475,12 @@ msgstr "دانلود داده ها"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "دانلود شیئ..."
 
@@ -2026,6 +2017,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -2038,9 +2038,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2106,12 +2103,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2202,13 +2193,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3567,9 +3558,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3579,6 +3567,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4790,7 +4781,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5944,6 +5935,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5971,9 +5965,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7194,10 +7185,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9206,10 +9197,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9689,6 +9680,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9701,9 +9695,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11493,6 +11484,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12580,9 +12596,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13555,7 +13568,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14021,6 +14034,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "علت: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14217,6 +14233,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14248,7 +14267,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14982,13 +15001,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15384,10 +15409,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15773,6 +15798,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15996,6 +16026,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16101,6 +16134,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18298,9 +18335,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18335,6 +18390,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19540,6 +19601,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22191,7 +22255,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22443,7 +22510,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22458,6 +22528,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22473,6 +22546,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22491,18 +22570,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23216,6 +23289,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23309,6 +23391,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25512,6 +25597,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26392,9 +26492,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27478,7 +27575,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28339,6 +28436,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28813,18 +28928,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29476,6 +29582,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29491,6 +29600,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29519,10 +29634,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29557,6 +29668,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29566,13 +29683,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30363,6 +30479,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32317,6 +32478,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32328,27 +32504,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/fi.po b/i18n/po/fi.po
index b0fb31d..a60ad6b 100644
--- a/i18n/po/fi.po
+++ b/i18n/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-01-19 17:11+0000\n"
 "Last-Translator: Lauri Kytömaa <Unknown>\n"
 "Language-Team: Finnish <fi at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:43+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:51+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: fi\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "Linkkien avaaminen ei onnistu nykyisellä ohjelmisto-alustalla (\"{0}\")"
 
-msgid "ERROR: {0}"
-msgstr "VIRHE: {0}"
-
-msgid "WARNING: {0}"
-msgstr "VAROITUS: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Syy: "
-
 msgid "Executing platform startup hook"
 msgstr "Alustetaan käyttöjärjestelmäyhteys"
 
@@ -500,6 +485,12 @@ msgstr "Lataa dataa"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Lataa objekti..."
 
@@ -2107,6 +2098,15 @@ msgstr ""
 "kaikki pisteet poistettavasta polusta. Ctrl: poista kaikki pistettä "
 "käyttävät polut."
 
+msgid "draw angle snap"
+msgstr "Kulman askelluksen apuviiva"
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Piirrä"
 
@@ -2119,9 +2119,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr "Askelpalautin piirrä pisteitä -tilassa"
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Maailman ulkopuolelle ei voi lisätä pistettä."
 
@@ -2187,12 +2184,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "PAKOTA"
 
-msgid "draw angle snap"
-msgstr "Kulman askelluksen apuviiva"
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr "Piirtokulman askellus"
 
@@ -2296,15 +2287,15 @@ msgstr[1] "Lisää uusi piste {0} polkuun"
 msgid "Cannot delete node that has tags"
 msgstr "Tageja sisältävää pistettä ei voi poistaa"
 
+msgid "make parallel helper line"
+msgstr ""
+
 msgid "Parallel"
 msgstr "Rinnakkainen"
 
 msgid "Make parallel copies of ways"
 msgstr "Tee poluista rinnakkaiskopiot"
 
-msgid "make parallel helper line"
-msgstr ""
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3759,9 +3750,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3771,6 +3759,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -5027,7 +5018,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Muista ladata dataa, jos käytät --selection-valitsinta"
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6228,6 +6219,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr "Ristiriitoja"
 
+msgid "Resolve conflicts"
+msgstr "Selvitä ristiriidat"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Peruuta ristiriitojen selvitys ja sulje ikkuna"
 
@@ -6261,9 +6255,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Ristiriita ei ratkennut kokonaan"
 
-msgid "Resolve conflicts"
-msgstr "Selvitä ristiriidat"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Ratkaise ristiriidat kohteelle \"{0}\""
 
@@ -7549,10 +7540,10 @@ msgstr "Näytä/piilota taso"
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9758,12 +9749,12 @@ msgstr "Karttailmoituksia yhteensä:"
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Datataso {0}"
-
 msgid "outside downloaded area"
 msgstr "ladatun alueen ulkopuolella"
 
+msgid "Data Layer {0}"
+msgstr "Datataso {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -10256,6 +10247,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "gps-piste"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10268,9 +10262,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps-piste"
-
 msgid "Import Audio"
 msgstr "Tuo äänitiedosto"
 
@@ -12136,6 +12127,31 @@ msgstr "Valitse sivustot..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Valitse sivustot, joilta liitännäisiä ladataan"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -13282,9 +13298,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr "GeoJSON-tiedostot"
 
-msgid "Projected GeoJSON Files"
-msgstr "Projisoidut GeoJSON -tiedostot"
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -14304,7 +14317,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14799,6 +14812,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Syy: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15007,6 +15023,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Ilmoita ohjelmavirheestä"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Älä näytä virheilmoituksia enää tämän käyttökerran aikana."
 
@@ -15038,7 +15057,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15776,13 +15795,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16178,10 +16203,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -16569,6 +16594,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Lisää työkaluja rakennusten piirtämiseen."
 
@@ -16809,6 +16839,9 @@ msgstr ""
 "VAROITUS: Lopeta kartoitus. Estä JOSMia lataamasta mitään tietoja jatkossa. "
 "Vaikea poistaa."
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16924,6 +16957,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19132,9 +19169,27 @@ msgstr "Tierumpu (putki)"
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Tekojärvi"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Katettu raakavesiallas"
 
@@ -19169,6 +19224,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -20374,6 +20435,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Vesipuisto"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -23025,8 +23089,11 @@ msgstr "Mereneläviä"
 msgid "Deli (Fine Food)"
 msgstr "Deli (herkkukauppa)"
 
-msgid "Candy Store"
-msgstr "Karkkikauppa"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Teekauppa"
@@ -23277,8 +23344,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Automaatin tuotteet"
 
-msgid "animal_food"
-msgstr "eläinruokaa"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "polkupyörän sisäkumeja"
@@ -23292,6 +23362,9 @@ msgstr "kondomeja"
 msgid "drinks"
 msgstr "juomat"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "koirankakkapusseja"
 
@@ -23307,6 +23380,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "pysäköintilippuja"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -23325,18 +23404,12 @@ msgstr "postimerkkejä"
 msgid "sweets"
 msgstr "makeisia"
 
-msgid "tampons"
-msgstr "tamponeja"
-
 msgid "telephone_vouchers"
 msgstr "liittymän latauslipukkeita"
 
 msgid "toys"
 msgstr "leluja"
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -24050,6 +24123,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Siirtolapuutarha"
 
@@ -24143,6 +24225,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Talon numero"
 
@@ -26377,6 +26462,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Kadunnimi:"
 
@@ -27269,9 +27369,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -28372,7 +28469,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -29250,6 +29347,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Muutoskokoelman id {0} ei ole kelvollinen"
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29732,18 +29847,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr "Muutoskokoelman id {0} ei ole kelvollinen"
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -30400,6 +30506,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30415,6 +30524,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30443,10 +30558,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30481,6 +30592,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -30490,13 +30607,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -31290,6 +31406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -33306,17 +33467,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Lisää nimen puuttuvat kieliversiot Wikipediasta"
 
@@ -33326,12 +33476,6 @@ msgstr ""
 "Hae Wikipedian artikkelista linkit eri kieliversioihin ja lisää kohteelle "
 "puuttuvat nimiversiot."
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -33342,6 +33486,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Luo malline {0} leikepöydälle"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/fil.po b/i18n/po/fil.po
index 618c28a..c0cd21e 100644
--- a/i18n/po/fil.po
+++ b/i18n/po/fil.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-06-19 14:15+0000\n"
 "Last-Translator: Anthony Balico <Unknown>\n"
 "Language-Team: Filipino <fil at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:17+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:52+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: fil\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/fo.po b/i18n/po/fo.po
index 4eb7698..98fb729 100644
--- a/i18n/po/fo.po
+++ b/i18n/po/fo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-02-28 16:15+0000\n"
 "Last-Translator: LiFo <Unknown>\n"
 "Language-Team: Faroese <fo at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:42+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:50+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr "{0}: valmøguleiki ''{1}'' er tvítýddur"
@@ -54,21 +54,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr "Ávaring: {0}"
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr "KEMBA: {0}"
-
-msgid "Cause: "
-msgstr "Orsøk : "
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -481,6 +466,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1960,6 +1951,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1972,9 +1972,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2040,12 +2037,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2136,13 +2127,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3503,9 +3494,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3515,6 +3503,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4725,7 +4716,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5875,6 +5866,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5902,9 +5896,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7125,10 +7116,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9132,10 +9123,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9615,6 +9606,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9627,9 +9621,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11419,6 +11410,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12506,9 +12522,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13481,7 +13494,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13947,6 +13960,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Orsøk : "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14143,6 +14159,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14174,7 +14193,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14908,13 +14927,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15310,10 +15335,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15699,6 +15724,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15922,6 +15952,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16027,6 +16060,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18224,9 +18261,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18261,6 +18316,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19466,6 +19527,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22117,7 +22181,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22369,7 +22436,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22384,6 +22454,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22399,6 +22472,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22417,18 +22496,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23142,6 +23215,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23235,6 +23317,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25438,6 +25523,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26318,9 +26418,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27404,7 +27501,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28265,6 +28362,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28739,18 +28854,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29402,6 +29508,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29417,6 +29526,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29445,10 +29560,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29483,6 +29594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29492,13 +29609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30289,6 +30405,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32243,6 +32404,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32254,27 +32430,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/fr.po b/i18n/po/fr.po
index e47f9cb..f055337 100644
--- a/i18n/po/fr.po
+++ b/i18n/po/fr.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-08-09 15:32+0000\n"
 "Last-Translator: Don-vip <Unknown>\n"
 "Language-Team: Fr <>\n"
@@ -13,8 +13,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:43+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:52+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: fr\n"
 "X-Poedit-Bookmarks: 1767,-1,-1,2669,-1,-1,-1,-1,-1,-1\n"
 
@@ -55,21 +55,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "L’ouverture du lien n’est pas supportée sur cette plateforme (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "Erreur : {0}"
-
-msgid "WARNING: {0}"
-msgstr "ATTENTION : {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO : {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG : {0}"
-
-msgid "Cause: "
-msgstr "Cause : "
-
 msgid "Executing platform startup hook"
 msgstr "Initialisation spécifique à la plateforme"
 
@@ -506,6 +491,12 @@ msgstr "Télécharger les données."
 msgid "Download notes in current view"
 msgstr "Télécharger les notes dans la vue actuelle"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Télécharger un objet"
 
@@ -2134,6 +2125,15 @@ msgstr ""
 "supprimer les nœuds non utilisés lors de la suppression du chemin. Ctrl : "
 "supprimer les objets s’y référant."
 
+msgid "draw angle snap"
+msgstr "tracer des angles discrets"
+
+msgid "draw angle snap highlight"
+msgstr "Surbrillance du tracé des angles discrets"
+
+msgid "helper line"
+msgstr "ligne de guide"
+
 msgid "Draw"
 msgstr "Tracer"
 
@@ -2146,9 +2146,6 @@ msgstr "Mode: Discrétisation des angles"
 msgid "Backspace in Add mode"
 msgstr "Annuler la dernière action"
 
-msgid "helper line"
-msgstr "ligne de guide"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Impossible d’ajouter un nœud en dehors du monde."
 
@@ -2214,12 +2211,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "Correctif"
 
-msgid "draw angle snap"
-msgstr "tracer des angles discrets"
-
-msgid "draw angle snap highlight"
-msgstr "Surbrillance du tracé des angles discrets"
-
 msgid "Angle snapping"
 msgstr "Discrétisation des angles"
 
@@ -2325,15 +2316,15 @@ msgstr[1] "Ajout d’un nouveau jeu aux {0} chemins"
 msgid "Cannot delete node that has tags"
 msgstr "Impossible de supprimer un nœud doté d’attributs"
 
+msgid "make parallel helper line"
+msgstr "ligne de guide de parallélisme"
+
 msgid "Parallel"
 msgstr "Parallèle"
 
 msgid "Make parallel copies of ways"
 msgstr "Créer des chemins parallèles"
 
-msgid "make parallel helper line"
-msgstr "ligne de guide de parallélisme"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3854,9 +3845,6 @@ msgstr "Le paramètre « +zone=... » attend un entier compris entre 1 et 60"
 msgid "No unit found for: {0}"
 msgstr "Aucune unité trouvée pour : {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Le paramètre doit commencer par un caractère ''+'' (trouvé ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Paramêtre inconnu: \"{0}\"."
 
@@ -3866,6 +3854,9 @@ msgstr "Valeur attendue pour le paramètre \"{0}\"."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Pas de valeur attendue pour le paramètre \"{0}\""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Le paramètre doit commencer par un caractère ''+'' (trouvé ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Format de paramètre inattendu (''{0}'')"
 
@@ -5149,8 +5140,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Assurez-vous de charger des données si vous utilisez --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Ecrire les messages de débogage vers la console"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Le chargement des greffons a été ignoré"
@@ -6419,6 +6410,9 @@ msgstr "Fermer la fenêtre et continuer les modifications"
 msgid "Conflicts detected"
 msgstr "Conflits détectés"
 
+msgid "Resolve conflicts"
+msgstr "Résoudre les conflits"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Appliquer la résolution des conflits"
 
@@ -6452,9 +6446,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflit partiellement résolu"
 
-msgid "Resolve conflicts"
-msgstr "Résoudre les conflits"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Résoudre les conflits pour ''{0}''"
 
@@ -7774,12 +7765,12 @@ msgstr "Afficher/masquer le calque"
 msgid "Discardable key: selection Foreground"
 msgstr "Clé inutile: sélection dʼavant-plan"
 
-msgid "Discardable key: selection Background"
-msgstr "Clé inutile: sélection dʼarrière-plan"
-
 msgid "Discardable key: foreground"
 msgstr "Clé inutile: avant-plan"
 
+msgid "Discardable key: selection Background"
+msgstr "Clé inutile: sélection dʼarrière-plan"
+
 msgid "Discardable key: background"
 msgstr "Clé inutile: arrière-plan"
 
@@ -10054,12 +10045,12 @@ msgstr "Nombre total des notes :"
 msgid "Changes need uploading?"
 msgstr "Les changements nécessitent-ils un envoi des données ?"
 
-msgid "Data Layer {0}"
-msgstr "Calque de données {0}"
-
 msgid "outside downloaded area"
 msgstr "en dehors de la zone téléchargée"
 
+msgid "Data Layer {0}"
+msgstr "Calque de données {0}"
+
 msgid "Merging layers"
 msgstr "Fusion des calques"
 
@@ -10576,6 +10567,9 @@ msgstr "Il n’’y a pas de calque d’’imagerie."
 msgid "No imagery layers"
 msgstr "Aucun calque d’’imagerie"
 
+msgid "gps point"
+msgstr "point GPS"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10588,9 +10582,6 @@ msgstr "Sens"
 msgid "Velocity, {0}"
 msgstr "Vélocité, {0}"
 
-msgid "gps point"
-msgstr "point GPS"
-
 msgid "Import Audio"
 msgstr "Importer des sons"
 
@@ -12613,6 +12604,31 @@ msgstr "Configurer les sites"
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configurer les sites de téléchargement des greffons"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Ajouter une adresse web de téléchargement des greffons :"
 
@@ -13834,9 +13850,6 @@ msgstr "<html>Impossible de lire les fichiers.<br>Erreur :<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Fichiers GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Fichiers GeoJSON projetés"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Calque ''{0}'' non supporté"
 
@@ -14974,8 +14987,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "Le greffon ne sera pas chargé."
 msgstr[1] "Les greffons ne seront pas chargés."
 
-msgid "Determine plugins to load..."
-msgstr "Déterminer les greffons à charger…"
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Suppression des greffons dépréciés…"
@@ -15588,6 +15601,9 @@ msgstr ""
 "Impossible dʼaccéder au répertoire ''{0}'' pour des raisons de droit. "
 "Lʼexception était: {1}"
 
+msgid "Cause: "
+msgstr "Cause : "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15823,6 +15839,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Rapporter l’erreur"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Masquer les prochaines fenêtres d’erreur pour cette session."
 
@@ -15856,7 +15875,7 @@ msgstr "Une erreur est survenue pendant la vérification des mises à jour."
 msgid "JOSM is up to date."
 msgstr "JOSM est à jour."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16608,14 +16627,20 @@ msgstr "Imagerie aérienne Berlin 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Imagerie aérienne Berlin 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (imagerie aérienne)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Imagerie aérienne d''Erlangue (2013 6,25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Imagerie aérienne 2011 d''Erlangue (6,25 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr ""
@@ -17012,10 +17037,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -17418,6 +17443,11 @@ msgstr ""
 "d''une route comme polygone. Conçu pour une modélisation facile des "
 "bâtiments à partir de calques en arrière-plan. Optimisé pour basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Outils pour dessiner des bâtiments."
 
@@ -17714,6 +17744,9 @@ msgstr ""
 "Désactive JOSM pour toujours (ATTENTION: ce greffon empêche JOSM de démarrer "
 "et est difficile à retirer)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 "Convertit des données provenant de portails Open Data en des calques OSM"
@@ -17847,6 +17880,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Éditer les fonctionnalités des cartes nautiques"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20103,9 +20140,27 @@ msgstr "Buse"
 msgid "Basin"
 msgstr "Bassin"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Réservoir"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Réservoir couvert"
 
@@ -20140,6 +20195,12 @@ msgstr "retenue artificielle"
 msgid "river"
 msgstr "rivière"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Eau salée"
 
@@ -21361,6 +21422,9 @@ msgstr "Parc d’attractions/Parc à thème"
 msgid "Water Park"
 msgstr "Parc aquatique"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Piscine"
 
@@ -24019,8 +24083,11 @@ msgstr "Poissonnerie"
 msgid "Deli (Fine Food)"
 msgstr "Épicerie fine"
 
-msgid "Candy Store"
-msgstr "Confiserie"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Thé"
@@ -24271,8 +24338,11 @@ msgstr "Distributeur"
 msgid "Vending products"
 msgstr "Produits vendus"
 
-msgid "animal_food"
-msgstr "alimentation animale"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "chambres à air"
@@ -24286,6 +24356,9 @@ msgstr "préservatifs"
 msgid "drinks"
 msgstr "boissons"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "sacs pour excrément"
 
@@ -24301,6 +24374,12 @@ msgstr "presse"
 msgid "parking_tickets"
 msgstr "tickets de parking"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "photos"
 
@@ -24319,18 +24398,12 @@ msgstr "timbres"
 msgid "sweets"
 msgstr "bonbons"
 
-msgid "tampons"
-msgstr "tampons hygiéniques"
-
 msgid "telephone_vouchers"
 msgstr "bons de rechargement téléphonique"
 
 msgid "toys"
 msgstr "jouets"
 
-msgid "vouchers"
-msgstr "bons"
-
 msgid "Payment Methods"
 msgstr "Moyen de paiement"
 
@@ -25062,6 +25135,15 @@ msgstr "Serre horticole"
 msgid "Plant Nursery"
 msgstr "Pépinière"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Jardins familiaux"
 
@@ -25155,6 +25237,9 @@ msgstr "Nom officiel"
 msgid "Common name abbreviation"
 msgstr "Nom abrégé"
 
+msgid "Address"
+msgstr "Adresse"
+
 msgid "House number"
 msgstr "Numéro"
 
@@ -27575,6 +27660,21 @@ msgstr "Débogueur"
 msgid "Debugging mode will write images for each processing step."
 msgstr "Le mode débogage écrira des images à chaque étape du traitement."
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nom de la rue :"
 
@@ -28543,9 +28643,6 @@ msgstr ""
 "actions en cours ne sera affichée et il n''y aura aucun moyen d''annuler le "
 "téléchargement."
 
-msgid "Address"
-msgstr "Adresse"
-
 msgid "Split area"
 msgstr "Couper la zone"
 
@@ -29715,7 +29812,7 @@ msgstr "créer le digraphe par canal"
 msgid "Check "
 msgstr "Vérifier "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -30620,6 +30717,24 @@ msgstr ""
 "(Pour continuer lamentablement la cartographie, supprimez no_more_mapping\n"
 "de {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Identifiant de groupe de modifications invalide : {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Horodatage invalide : {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Lecture de données OSM en cours"
+
 msgid "Split by municipality"
 msgstr "Découper par municipalité"
 
@@ -31156,18 +31271,9 @@ msgstr "Fichiers compressés pbf du serveur OSM"
 msgid "Download PBF"
 msgstr "Téléchargement de PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Identifiant de groupe de modifications invalide : {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Horodatage invalide : {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Table de clé/valeurs DenseNodes invalide"
 
-msgid "Reading OSM data..."
-msgstr "Lecture de données OSM en cours"
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Erreur de transformation : Min X doit être inférieur à max"
 
@@ -31835,6 +31941,9 @@ msgstr "L’’impression a échoué."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31850,6 +31959,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31878,10 +31993,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31916,6 +32027,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31925,13 +32042,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32760,6 +32876,51 @@ msgstr "Sélectionner un seul objet"
 msgid "Select a map object"
 msgstr "Sélectionner un objet cartographique"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Simplifier la zone"
 
@@ -35009,19 +35170,6 @@ msgstr[1] "Récupération de {0} identifiants Wikidata pour la langage ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Ajouter Wikidata pour le langae ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-"Ecraser ''{0}'' attribut {1} de {2} avec la nouvelle valeur ''{3}'' ?"
-msgstr[1] ""
-"Ecraser ''{0}'' attributs {1} de {2} avec la nouvelle valeur ''{3}'' ?"
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Ajout du nom depuis Wikipedia"
 
@@ -35031,12 +35179,6 @@ msgstr ""
 "Cherche les liens interwiki de Wikipedia pour ajouter plusieurs attributs de "
 "noms"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -35047,6 +35189,25 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copier le modèle {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+"Ecraser ''{0}'' attribut {1} de {2} avec la nouvelle valeur ''{3}'' ?"
+msgstr[1] ""
+"Ecraser ''{0}'' attributs {1} de {2} avec la nouvelle valeur ''{3}'' ?"
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Récupérer les articles Wikipédia avec des coordonnées"
 
diff --git a/i18n/po/ga.po b/i18n/po/ga.po
index c8e7713..e917b76 100644
--- a/i18n/po/ga.po
+++ b/i18n/po/ga.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-05-17 11:43+0000\n"
 "Last-Translator: Thorsten <Unknown>\n"
 "Language-Team: Irish <ga at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:45+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:55+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -54,21 +54,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -481,6 +466,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1960,6 +1951,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1972,9 +1972,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2040,12 +2037,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2136,13 +2127,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3503,9 +3494,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3515,6 +3503,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4725,7 +4716,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5875,6 +5866,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5902,9 +5896,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7125,10 +7116,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9132,10 +9123,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9615,6 +9606,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9627,9 +9621,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11419,6 +11410,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12506,9 +12522,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13481,7 +13494,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13947,6 +13960,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14143,6 +14159,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14174,7 +14193,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14908,13 +14927,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15310,10 +15335,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15699,6 +15724,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15922,6 +15952,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16027,6 +16060,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18224,9 +18261,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18261,6 +18316,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19466,6 +19527,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22117,7 +22181,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22369,7 +22436,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22384,6 +22454,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22399,6 +22472,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22417,18 +22496,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23142,6 +23215,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23235,6 +23317,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25438,6 +25523,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26318,9 +26418,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27404,7 +27501,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28265,6 +28362,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28739,18 +28854,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29402,6 +29508,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29417,6 +29526,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29445,10 +29560,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29483,6 +29594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29492,13 +29609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30289,6 +30405,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32243,6 +32404,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32254,27 +32430,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/gl.po b/i18n/po/gl.po
index 34695ec..04af47e 100644
--- a/i18n/po/gl.po
+++ b/i18n/po/gl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-01-01 15:11+0000\n"
 "Last-Translator: Marcos Lans <Unknown>\n"
 "Language-Team: Galician <proxecto at trasno.net>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:46+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:56+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: gl\n"
 "X-Poedit-Language: Galician\n"
 
@@ -58,21 +58,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "A apertura do enlace non é compatíbel coa plataforma actual (''{0}'')."
 
-msgid "ERROR: {0}"
-msgstr "ERRO: {0}"
-
-msgid "WARNING: {0}"
-msgstr "AVISO: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMACIÓN: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEPURAR: {0}"
-
-msgid "Cause: "
-msgstr "Causa: "
-
 msgid "Executing platform startup hook"
 msgstr "A executar arranque da plataforma"
 
@@ -504,6 +489,12 @@ msgstr "Descargar data"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Descargar obxecto…"
 
@@ -2108,6 +2099,15 @@ msgstr ""
 "Prema para eliminar. Maiúsculas: elimina o segmento de vía. Alt: Non elimina "
 "os nodos sen usar cando se elimina unha vía. Ctrl: eliminar referenciados."
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Debuxar"
 
@@ -2120,9 +2120,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Non é posíbel engadir un nodo fora do mundo."
 
@@ -2188,12 +2185,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2286,15 +2277,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
+msgid "make parallel helper line"
+msgstr ""
+
 msgid "Parallel"
 msgstr "Paralela"
 
 msgid "Make parallel copies of ways"
 msgstr ""
 
-msgid "make parallel helper line"
-msgstr ""
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3707,9 +3698,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3719,6 +3707,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4944,7 +4935,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Asegurate de que cargas algún dato se usas --selección."
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6154,6 +6145,9 @@ msgstr "Premer para pechar o diálogo e continuar editando"
 msgid "Conflicts detected"
 msgstr "Detectaronse conflitos"
 
+msgid "Resolve conflicts"
+msgstr "Resolver conflitos"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Cancelar a resolución de conflitos e pechar o cadro de diálogo"
 
@@ -6187,9 +6181,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflito non resolto completamente"
 
-msgid "Resolve conflicts"
-msgstr "Resolver conflitos"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resolver os conflitos de ''{0}''"
 
@@ -7448,10 +7439,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9505,12 +9496,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Capa de datos {0}"
-
 msgid "outside downloaded area"
 msgstr "fora da área descargada"
 
+msgid "Data Layer {0}"
+msgstr "Capa de datos {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9992,6 +9983,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "punto gps"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10004,9 +9998,6 @@ msgstr "Dirección"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "punto gps"
-
 msgid "Import Audio"
 msgstr "Importar son"
 
@@ -11863,6 +11854,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12967,9 +12983,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13989,8 +14002,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "O complemento non vai a ser cargado."
 msgstr[1] "Os complementos non van seren cargados."
 
-msgid "Determine plugins to load..."
-msgstr "Determinando complementos a cargar…"
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Retirando complementos obsoletos…"
@@ -14470,6 +14483,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Causa: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14666,6 +14682,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Informar dun fallo"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14697,7 +14716,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15433,13 +15452,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15835,10 +15860,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -16224,6 +16249,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Ferramentas para debuxar edificios."
 
@@ -16452,6 +16482,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16571,6 +16604,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18782,9 +18819,27 @@ msgstr ""
 msgid "Basin"
 msgstr "Conca"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservorio"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Depósito de auga"
 
@@ -18819,6 +18874,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -20024,6 +20085,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Parque acuático"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22675,7 +22739,10 @@ msgstr "Pescado"
 msgid "Deli (Fine Food)"
 msgstr "Deli (Boa comida)"
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22927,8 +22994,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Expendedor automático de productos"
 
-msgid "animal_food"
-msgstr "comida para animais"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "tubo_de_bicicleta"
@@ -22942,6 +23012,9 @@ msgstr "gomas do pito"
 msgid "drinks"
 msgstr "Bebidas"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "Bolsas para excrementos"
 
@@ -22957,6 +23030,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "Tickets de aparcamento"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "Fotos"
 
@@ -22975,18 +23054,12 @@ msgstr "selos"
 msgid "sweets"
 msgstr "doces"
 
-msgid "tampons"
-msgstr "tampóns"
-
 msgid "telephone_vouchers"
 msgstr "Tarxetas telefónicas"
 
 msgid "toys"
 msgstr "xoguetes"
 
-msgid "vouchers"
-msgstr "Bonos"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23700,6 +23773,15 @@ msgstr "Horticultura"
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Área cultivábel"
 
@@ -23793,6 +23875,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Número de casa"
 
@@ -25997,6 +26082,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nome da Calle:"
 
@@ -26891,9 +26991,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr "Dividir área"
 
@@ -27981,7 +28078,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28848,6 +28945,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29324,18 +29439,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29987,6 +30093,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30002,6 +30111,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30030,10 +30145,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30068,6 +30179,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -30077,13 +30194,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30876,6 +30992,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32845,6 +33006,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32856,27 +33032,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/he.po b/i18n/po/he.po
index 9c7b7fd..1d56b01 100644
--- a/i18n/po/he.po
+++ b/i18n/po/he.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2013-03-30 13:38+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: Hebrew <he at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:48+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:59+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: he\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -485,6 +470,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1967,6 +1958,15 @@ msgstr ""
 "לחץ למחיקה. Shift: מחק מקטע דרך. Alt: אל תמחק צמתים שאינם בשימוש בעת מחיקת "
 "דרך. Ctrl: מחק פריטים מפנים."
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "צייר"
 
@@ -1979,9 +1979,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "לא ניתן להוסיף צומת מחוץ לעולם"
 
@@ -2047,12 +2044,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2143,13 +2134,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3517,9 +3508,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3529,6 +3517,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4743,7 +4734,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5901,6 +5892,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr "פתור התנגשויות"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "בטל את פתרון ההתנגשות וסגור את הדיאלוג"
 
@@ -5928,9 +5922,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr "פתור התנגשויות"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7152,10 +7143,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9160,12 +9151,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "שכבת נתונים {0}"
-
 msgid "outside downloaded area"
 msgstr "מחוץ לשטח שהורד"
 
+msgid "Data Layer {0}"
+msgstr "שכבת נתונים {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9651,6 +9642,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "נקודת gps"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9663,9 +9657,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "נקודת gps"
-
 msgid "Import Audio"
 msgstr "ייבא שמע"
 
@@ -11457,6 +11448,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12544,9 +12560,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13521,7 +13534,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13987,6 +14000,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14183,6 +14199,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "דווח על תקלה"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14214,7 +14233,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14950,13 +14969,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15352,10 +15377,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15741,6 +15766,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15964,6 +15994,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16069,6 +16102,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18266,9 +18303,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18303,6 +18358,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19508,6 +19569,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "פארק מים"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22159,7 +22223,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22411,8 +22478,11 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
-msgstr "מזון בע\"ח"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22426,6 +22496,9 @@ msgstr "קונדומים"
 msgid "drinks"
 msgstr "משקאות"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "שקיות צואה"
 
@@ -22441,6 +22514,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "כרטיסי חניה"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "תמונות"
 
@@ -22459,18 +22538,12 @@ msgstr "בולים"
 msgid "sweets"
 msgstr "ממתקים"
 
-msgid "tampons"
-msgstr "טמפונים"
-
 msgid "telephone_vouchers"
 msgstr "שוברי טלפון"
 
 msgid "toys"
 msgstr "צעצועים"
 
-msgid "vouchers"
-msgstr "שוברים"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23184,6 +23257,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23277,6 +23359,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "מספר בית"
 
@@ -25480,6 +25565,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26360,9 +26460,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27446,7 +27543,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28310,6 +28407,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28785,18 +28900,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29448,6 +29554,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29463,6 +29572,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29491,10 +29606,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29529,6 +29640,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29538,13 +29655,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30335,6 +30451,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32289,6 +32450,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32300,27 +32476,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/hi.po b/i18n/po/hi.po
index a318c75..766c701 100644
--- a/i18n/po/hi.po
+++ b/i18n/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2009-11-14 16:28+0000\n"
 "Last-Translator: nipunreddevil <nipunreddevil at gmail.com>\n"
 "Language-Team: Hindi <hi at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:48+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:00+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: hi\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/hr.po b/i18n/po/hr.po
index 516ff2b..0081eb1 100644
--- a/i18n/po/hr.po
+++ b/i18n/po/hr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-01-04 15:56+0000\n"
 "Last-Translator: gogo <trebelnik2 at gmail.com>\n"
 "Language-Team: Croatian <hr at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:05+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:27+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: hr\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Otvaranje linka nije podržano na trenutnoj platformi (\"{0}\")"
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -490,6 +475,12 @@ msgstr "Preuzmi podatke"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Preuzmi objekt..."
 
@@ -2042,6 +2033,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Crtaj"
 
@@ -2054,9 +2054,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Ne mogu dodati točku van Svijeta"
 
@@ -2123,12 +2120,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2221,15 +2212,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr "Ne mogu izbrisati točku koja sadržava tagove"
 
+msgid "make parallel helper line"
+msgstr ""
+
 msgid "Parallel"
 msgstr "Paralelno"
 
 msgid "Make parallel copies of ways"
 msgstr "Napravi paralelne kopije puteva"
 
-msgid "make parallel helper line"
-msgstr ""
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3612,9 +3603,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3624,6 +3612,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4835,7 +4826,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5993,6 +5984,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -6020,9 +6014,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7245,10 +7236,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9279,10 +9270,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9766,6 +9757,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9778,9 +9772,6 @@ msgstr "Smjer"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11570,6 +11561,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12657,9 +12673,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13632,7 +13645,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14098,6 +14111,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14294,6 +14310,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14325,7 +14344,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15059,13 +15078,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15461,10 +15486,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15850,6 +15875,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Alati za crtanje zgrada."
 
@@ -16073,6 +16103,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16178,6 +16211,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18375,9 +18412,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18412,6 +18467,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19617,6 +19678,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22268,7 +22332,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22520,7 +22587,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22535,6 +22605,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22550,6 +22623,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22568,18 +22647,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23293,6 +23366,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23386,6 +23468,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25589,6 +25674,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26469,9 +26569,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27555,7 +27652,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28420,6 +28517,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28894,18 +29009,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29557,6 +29663,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29572,6 +29681,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29600,10 +29715,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29638,6 +29749,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29647,13 +29764,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30444,6 +30560,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Pojednostavi područje"
 
@@ -32400,6 +32561,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32411,27 +32587,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ht.po b/i18n/po/ht.po
index 9c6a320..cb714cc 100644
--- a/i18n/po/ht.po
+++ b/i18n/po/ht.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2010-03-11 21:17+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Haitian; Haitian Creole <ht at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:47+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:58+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/hu.po b/i18n/po/hu.po
index 200e9dc..bddcbab 100644
--- a/i18n/po/hu.po
+++ b/i18n/po/hu.po
@@ -8,16 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-06-14 20:17+0000\n"
-"Last-Translator: Szem <szem_net at freemail.hu>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-27 19:58+0000\n"
+"Last-Translator: Zoltan Faludi <Unknown>\n"
 "Language-Team: Hungarian <kde-l10n-hu at kde.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:49+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:01+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: hu\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -57,21 +57,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "A hivatkozás megnyitása nem támogatott az aktuális („{0}”) platformon"
 
-msgid "ERROR: {0}"
-msgstr "HIBA: {0}"
-
-msgid "WARNING: {0}"
-msgstr "FIGYELMEZTETÉS: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMÁCIÓ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "HIBAKERESÉS: {0}"
-
-msgid "Cause: "
-msgstr "Indok: "
-
 msgid "Executing platform startup hook"
 msgstr "Platform indítása"
 
@@ -505,6 +490,12 @@ msgstr "Adatok letöltése"
 msgid "Download notes in current view"
 msgstr "Aktuális nézethez tartozó jegyzetek letöltése"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Objektumok letöltése…"
 
@@ -2127,6 +2118,15 @@ msgstr ""
 "Kattints a törléshez. Shift: vonalszakaszt töröl. Alt: nem törli a nem "
 "használt pontokat a vonalból. Ctrl: törli a kapcsolódó objektumokat."
 
+msgid "draw angle snap"
+msgstr "rajzolási szög igazítás"
+
+msgid "draw angle snap highlight"
+msgstr "rajzolási szög igazítás kiemelés"
+
+msgid "helper line"
+msgstr "segédvonal"
+
 msgid "Draw"
 msgstr "Rajzolás"
 
@@ -2139,9 +2139,6 @@ msgstr "Mód: Igazított szögű rajzolás"
 msgid "Backspace in Add mode"
 msgstr "Backspace rajzolás módban"
 
-msgid "helper line"
-msgstr "segédvonal"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Nem lehet pontot hozzáadni a világon kívül."
 
@@ -2207,12 +2204,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "rajzolási szög igazítás"
-
-msgid "draw angle snap highlight"
-msgstr "rajzolási szög igazítás kiemelés"
-
 msgid "Angle snapping"
 msgstr "Igazított szög"
 
@@ -2313,15 +2304,15 @@ msgstr[1] "Új pont hozzáadása {0} vonalhoz"
 msgid "Cannot delete node that has tags"
 msgstr "Nem lehet törölni felcímkézett pontot"
 
+msgid "make parallel helper line"
+msgstr "párhuzamos készítő segédvonal"
+
 msgid "Parallel"
 msgstr "Párhuzamos"
 
 msgid "Make parallel copies of ways"
 msgstr "Párhuzamos vonalak készítése"
 
-msgid "make parallel helper line"
-msgstr "párhuzamos készítő segédvonal"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3808,9 +3799,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "{0} mértékegysége nem található"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "A paraméter ''+'' karakterrel kell kezdődjön (talált: ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Ismeretlen paraméter: ''{0}''."
 
@@ -3820,6 +3808,9 @@ msgstr "''{0}'' paraméternek érték szükséges."
 msgid "No value expected for parameter ''{0}''."
 msgstr "''{0}'' paraméternek nem kell érték."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "A paraméter ''+'' karakterrel kell kezdődjön (talált: ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Nemvárt paraméter formátum (''{0}'')"
 
@@ -5083,8 +5074,8 @@ msgid "Make sure you load some data if you use --selection."
 msgstr ""
 "Győződj meg róla, hogy betöltesz adatokat, ha a --selection-t használod."
 
-msgid "Printing debugging messages to console"
-msgstr "Hibaüzenetek írása a konzolra"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Bővítmény betöltése átugorva"
@@ -6330,6 +6321,9 @@ msgstr "Kattints az ablak bezárásához és a szerkesztés folytatásához"
 msgid "Conflicts detected"
 msgstr "Ütközések észlelve"
 
+msgid "Resolve conflicts"
+msgstr "Ütközések megoldása"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Ütközésmegoldás megszakítása és a dialógusablak bezárása"
 
@@ -6363,9 +6357,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Az ütközések nincsenek teljesen megoldva"
 
-msgid "Resolve conflicts"
-msgstr "Ütközések megoldása"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "''{0}'' ütközésének megoldása"
 
@@ -7683,12 +7674,12 @@ msgstr "Réteg elrejtése/mutatása"
 msgid "Discardable key: selection Foreground"
 msgstr "Eldobható kulcs: kiválasztás előtér"
 
-msgid "Discardable key: selection Background"
-msgstr "Eldobható kulcs: kiválasztás háttér"
-
 msgid "Discardable key: foreground"
 msgstr "Eldobható kulcs: előtér"
 
+msgid "Discardable key: selection Background"
+msgstr "Eldobható kulcs: kiválasztás háttér"
+
 msgid "Discardable key: background"
 msgstr "Eldobható kulcs: háttér"
 
@@ -9930,12 +9921,12 @@ msgstr "Összes jegyzet:"
 msgid "Changes need uploading?"
 msgstr "A változtatásokat fel kell tölteni?"
 
-msgid "Data Layer {0}"
-msgstr "Adatréteg {0}"
-
 msgid "outside downloaded area"
 msgstr "letöltött területen kívül"
 
+msgid "Data Layer {0}"
+msgstr "Adatréteg {0}"
+
 msgid "Merging layers"
 msgstr "Rétegek egyesítése"
 
@@ -10451,6 +10442,9 @@ msgstr "Nincsenek légifelvétel-rétegek."
 msgid "No imagery layers"
 msgstr "Nincsenek légifelvétel-rétegek"
 
+msgid "gps point"
+msgstr "gps pont"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10463,9 +10457,6 @@ msgstr "Irány"
 msgid "Velocity, {0}"
 msgstr "Sebesség, {0}"
 
-msgid "gps point"
-msgstr "gps pont"
-
 msgid "Import Audio"
 msgstr "Audio importálása"
 
@@ -12477,6 +12468,31 @@ msgstr "Tárhelyek konfigurálása…"
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "A bővítmények letöltésére szolgáló tárhelyek listájának megadása"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "JOSM Bővítmény leíró URL hozzáadása."
 
@@ -13691,9 +13707,6 @@ msgstr "<html>A fájlok olvasása nem lehetséges.<br>A hiba:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON fájlok"
 
-msgid "Projected GeoJSON Files"
-msgstr "GeoJSON fájlok vetületi koordinátákkal"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "A ''{0}'' réteg nem támogatott"
 
@@ -14769,8 +14782,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "A bővítmény nem lesz betöltve."
 msgstr[1] "A bővítmények nem lesznek betöltve."
 
-msgid "Determine plugins to load..."
-msgstr "Döntés a bővítmények betöltéséről…"
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Elavult bővítmények eltávolítása…"
@@ -15383,6 +15396,9 @@ msgstr ""
 "A(z) ''{0}'' könyvtárhoz való hozzáférésbiztonsági okokból meghiúsult. A "
 "kivétel ez volt: {1}"
 
+msgid "Cause: "
+msgstr "Indok: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15620,6 +15636,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Hiba jelentése"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "További párbeszédablakok elhagyása ebben a munkamenetben."
 
@@ -15653,7 +15672,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16402,14 +16421,20 @@ msgstr "Berlin légifotó 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin légifotó 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (légifelvétel)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen légifelvétel (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 légifelvétel (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Zwenkau régi térképe - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16804,11 +16829,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Ortofotó Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Ortofotó Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -17207,6 +17232,11 @@ msgstr ""
 "automatikus létrehozását. Épületek könnyű feltérképezésére készült a háttér "
 "rétegekre építve. A basemap.at-ra van optimalizálva."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Eszköz épületek rajzolásához."
 
@@ -17505,6 +17535,9 @@ msgstr ""
 "Örökre ellehetetleníti a JOSM használatát (FIGYELEM: ez a bővítmény megelőzi "
 "a JOSM betöltését és igen nehéz tőle megszabadulni)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Adatokat konvertál be az Open Data portálokról egy OSM rétegre"
 
@@ -17627,6 +17660,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19875,9 +19912,27 @@ msgstr "Áteresz"
 msgid "Basin"
 msgstr "Vízgyűjtő"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Víztározó"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Fedett víztározó"
 
@@ -19912,6 +19967,12 @@ msgstr "víztározó"
 msgid "river"
 msgstr "folyó"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Sós víz"
 
@@ -21123,6 +21184,9 @@ msgstr "Vidámpark"
 msgid "Water Park"
 msgstr "Akvapark"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Úszómedence"
 
@@ -23782,8 +23846,11 @@ msgstr "Halárus"
 msgid "Deli (Fine Food)"
 msgstr "Delikatesz bolt"
 
-msgid "Candy Store"
-msgstr "Édességbolt"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Tea"
@@ -24034,8 +24101,11 @@ msgstr "Árusító automata"
 msgid "Vending products"
 msgstr "Árusított termékek"
 
-msgid "animal_food"
-msgstr "állateledel"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "kerékpárgumi"
@@ -24049,6 +24119,9 @@ msgstr "óvszer"
 msgid "drinks"
 msgstr "italok"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "ürülékgyűjtő zacskó"
 
@@ -24064,6 +24137,12 @@ msgstr "újság"
 msgid "parking_tickets"
 msgstr "parkolójegy"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fénykép"
 
@@ -24082,18 +24161,12 @@ msgstr "bélyeg"
 msgid "sweets"
 msgstr "édesség"
 
-msgid "tampons"
-msgstr "tampon"
-
 msgid "telephone_vouchers"
 msgstr "telefon utalványok"
 
 msgid "toys"
 msgstr "játék"
 
-msgid "vouchers"
-msgstr "utalványok"
-
 msgid "Payment Methods"
 msgstr "Fizetési módok"
 
@@ -24824,6 +24897,15 @@ msgstr "Melegház"
 msgid "Plant Nursery"
 msgstr "Növény nevelde"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Telkek"
 
@@ -24917,6 +24999,9 @@ msgstr "Hivatalos név"
 msgid "Common name abbreviation"
 msgstr "Közismert név rövidítés"
 
+msgid "Address"
+msgstr "Lakcím"
+
 msgid "House number"
 msgstr "Házszám"
 
@@ -24924,7 +25009,7 @@ msgid "Street name"
 msgstr "Utcanév"
 
 msgid "Place name"
-msgstr "Helységnév"
+msgstr "Hely neve"
 
 msgid "City name"
 msgstr "Városnév"
@@ -27193,6 +27278,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Utca:"
 
@@ -28092,9 +28192,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Lakcím"
-
 msgid "Split area"
 msgstr ""
 
@@ -29195,7 +29292,7 @@ msgstr ""
 msgid "Check "
 msgstr "Ellenőrzés "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -30066,6 +30163,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -30549,18 +30664,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr "PBF letöltése"
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -31215,6 +31321,9 @@ msgstr "A nyomtatás meghiúsult."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31230,6 +31339,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31258,10 +31373,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31296,6 +31407,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31305,13 +31422,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32115,6 +32231,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Terület egyszerűsítése"
 
@@ -34228,17 +34389,6 @@ msgstr[1] "{0} Wikidata ID lekérése a „{1}” nyelvhez"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Wikidata hozzáadása „{0}” nyelvhez"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Nevek hozzáadása a Wikipedia-ról"
 
@@ -34248,12 +34398,6 @@ msgstr ""
 "Interwiki linkek lekérése a Wikipédiából további név címkék hozzáadása "
 "céljából"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34264,6 +34408,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "{0} sablon másolása"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Wikipédia cikkeket hoz el koordinátákkal"
 
diff --git a/i18n/po/hy.po b/i18n/po/hy.po
index e566068..492bc88 100644
--- a/i18n/po/hy.po
+++ b/i18n/po/hy.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-04-13 21:51+0000\n"
 "Last-Translator: Gev777 <Unknown>\n"
 "Language-Team: Armenian <hy at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:33+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:36+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: hy\n"
 
 msgid "Cancel"
@@ -58,21 +58,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ia.po b/i18n/po/ia.po
index ffda33a..02ce8f5 100644
--- a/i18n/po/ia.po
+++ b/i18n/po/ia.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-08-29 01:02+0000\n"
 "Last-Translator: Emilio Sepulveda <Unknown>\n"
 "Language-Team: Interlingua <ia at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:50+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:03+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ia\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/id.po b/i18n/po/id.po
index 1253567..d38445e 100644
--- a/i18n/po/id.po
+++ b/i18n/po/id.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-03-10 03:36+0000\n"
 "Last-Translator: Ezagren <ezagren at gmail.com>\n"
 "Language-Team: Indonesian <id at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:51+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:04+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: id\n"
 "X-Language: id_ID\n"
 
@@ -56,21 +56,6 @@ msgstr "Latar Belakang syarat penggunaan"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Membuka tautan tidak dapat dilakukan pada platform ini (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "KESALAHAN: {0}"
-
-msgid "WARNING: {0}"
-msgstr "PERINGATAN: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Sebab: "
-
 msgid "Executing platform startup hook"
 msgstr "Melaksanakan platform baru yang terkait"
 
@@ -495,6 +480,12 @@ msgstr "Download data"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Download objek..."
 
@@ -2086,6 +2077,15 @@ msgstr ""
 "yang tidak terpakai ketika menghapus sebuah jalur. Ctrl: menghapus objek "
 "acuan."
 
+msgid "draw angle snap"
+msgstr "gambar angle snap"
+
+msgid "draw angle snap highlight"
+msgstr "gambar angel snap yang disorot"
+
+msgid "helper line"
+msgstr "garis bantu"
+
 msgid "Draw"
 msgstr "Gambar"
 
@@ -2098,9 +2098,6 @@ msgstr "Mode: Gambar Angle snapping"
 msgid "Backspace in Add mode"
 msgstr "Backspace di mode add"
 
-msgid "helper line"
-msgstr "garis bantu"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Tidak dapat menambah node diluar dunia"
 
@@ -2166,12 +2163,6 @@ msgid "FIX"
 msgstr ""
 "Perbaiki (pe,pn) - arah garis snapping (e0,n0) - garis snapping yang asli"
 
-msgid "draw angle snap"
-msgstr "gambar angle snap"
-
-msgid "draw angle snap highlight"
-msgstr "gambar angel snap yang disorot"
-
 msgid "Angle snapping"
 msgstr "Menempelkan sudut"
 
@@ -2275,15 +2266,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr "Tidak dapat menghapus node/titik yang mempunyai tag"
 
+msgid "make parallel helper line"
+msgstr "membuat garis bantu paralel"
+
 msgid "Parallel"
 msgstr "Paralel"
 
 msgid "Make parallel copies of ways"
 msgstr "Buat salinan jalur paralel"
 
-msgid "make parallel helper line"
-msgstr "membuat garis bantu paralel"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3722,9 +3713,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameter harus dimulai dengan a \"+\" karakter  (found ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3734,6 +3722,9 @@ msgstr "Nilai yang diharapkan untuk parameter ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Tidak ada nilai yang diharapkan untuk parameter ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameter harus dimulai dengan a \"+\" karakter  (found ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Format parameter tidak terduga (''{0}'')"
 
@@ -4984,7 +4975,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Pastikan anda memuat beberapa data jika anda menggunakan --seleksi."
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6173,6 +6164,9 @@ msgstr "Klik keluar dari kotak dialog dan mengedit selanjutnya"
 msgid "Conflicts detected"
 msgstr "Konflik terdeteksi"
 
+msgid "Resolve conflicts"
+msgstr "Menyelesaikan konflik"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Tunda penyelesaian konflik dan tutup kotak dialog"
 
@@ -6206,9 +6200,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Konflik tidak terselesaikan sepenuhnya"
 
-msgid "Resolve conflicts"
-msgstr "Menyelesaikan konflik"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Menyelesaikan konflik untuk ''{0}''"
 
@@ -7490,10 +7481,10 @@ msgstr "Tunjukkan/Sembunyikan layer"
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9649,12 +9640,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Data Layer {0}"
-
 msgid "outside downloaded area"
 msgstr "diluar area yang didownload"
 
+msgid "Data Layer {0}"
+msgstr "Data Layer {0}"
+
 msgid "Merging layers"
 msgstr "Gabungan layer"
 
@@ -10160,6 +10151,9 @@ msgstr "Disana tidak ada lapisan citra satelit"
 msgid "No imagery layers"
 msgstr "Tidak ada lapisan citra satelit"
 
+msgid "gps point"
+msgstr "titik gps"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10172,9 +10166,6 @@ msgstr "Arah"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "titik gps"
-
 msgid "Import Audio"
 msgstr "Impor Audio"
 
@@ -12164,6 +12155,31 @@ msgstr "mengkonfigurasi situs..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "mengkonfigurasi daftar dari situs plugin yang didownload dari"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Tambahkan deskripsi URL JOSM plugin"
 
@@ -13321,9 +13337,6 @@ msgstr "<html>Tidak bisa membaca berkas.<br>Kesalahan:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Berkas GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Layer \"{0}\" tidak mendukung"
 
@@ -14365,8 +14378,8 @@ msgid "The plugin is not going to be loaded."
 msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "Plugin ini tidak akan dimuat."
 
-msgid "Determine plugins to load..."
-msgstr "Tentukan plugin untuk memuat ..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Menghapus plugin usang ..."
@@ -14920,6 +14933,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Sebab: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15129,6 +15145,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Laporkan Bug"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Menekan dialog kesalahan lebih lanjut untuk sesi ini."
 
@@ -15160,7 +15179,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15906,13 +15925,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16308,10 +16333,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -16701,6 +16726,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Alat untuk menggambar bangunan"
 
@@ -16972,6 +17002,9 @@ msgstr ""
 "Dilarang menggunakan JOSM selamanya (PERINGATAN: plugin ini mencegah JOSM "
 "dari pemuatan dan sulit untuk disingkirkan)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Konversi data dari portal Open Data ke layer OSM"
 
@@ -17087,6 +17120,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19315,9 +19352,27 @@ msgstr "Saluran air"
 msgid "Basin"
 msgstr "Cekungan"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservoir"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Ditutupi Waduk"
 
@@ -19352,6 +19407,12 @@ msgstr ""
 msgid "river"
 msgstr "sungai"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -20557,6 +20618,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Taman Air"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -23208,7 +23272,10 @@ msgstr "Makanan Laut"
 msgid "Deli (Fine Food)"
 msgstr "Deli (Fine Food)"
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -23460,8 +23527,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Vending products"
 
-msgid "animal_food"
-msgstr "makanan_hewan"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "bicycle_tube"
@@ -23475,6 +23545,9 @@ msgstr "kondom"
 msgid "drinks"
 msgstr "minuman"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "excrement_bags"
 
@@ -23490,6 +23563,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "Tiket_parkir"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "foto"
 
@@ -23508,18 +23587,12 @@ msgstr "perangko"
 msgid "sweets"
 msgstr "permen"
 
-msgid "tampons"
-msgstr "tampon"
-
 msgid "telephone_vouchers"
 msgstr "voucher_telepon"
 
 msgid "toys"
 msgstr "mainan"
 
-msgid "vouchers"
-msgstr "voucher"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -24233,6 +24306,15 @@ msgstr "Rumah Hijau"
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "tanah pemberian"
 
@@ -24326,6 +24408,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Nomor Rumah"
 
@@ -26641,6 +26726,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nama Jalan:"
 
@@ -27573,9 +27673,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr "Area terpisah"
 
@@ -28726,8 +28823,8 @@ msgstr "Membuat saluran digraph"
 msgid "Check "
 msgstr "Periksa "
 
-msgid "check the subust for junction properties"
-msgstr "memeriksa subust untuk pengaturan yang menyimpang"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Telusuri "
@@ -29630,6 +29727,24 @@ msgid ""
 msgstr ""
 "(Terlalu buruk untuk melanjutkan pemetaan, jangan edit lagi peta dari {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Invalid id set perubahan: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Timestamp salah: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Membaca data OSM..."
+
 msgid "Split by municipality"
 msgstr "Memisahkan berdasarkan administrasi"
 
@@ -30148,18 +30263,9 @@ msgstr "Berkas server OSM pbf dikompresi"
 msgid "Download PBF"
 msgstr "Download PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Invalid id set perubahan: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Timestamp salah: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Tabel kunci/nilai DenseNode tidak valid"
 
-msgid "Reading OSM data..."
-msgstr "Membaca data OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Kesalahan perubahan: X minimum harus lebih kecil daripada maksimum"
 
@@ -30814,6 +30920,9 @@ msgstr "Pencetakan gagal"
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30829,6 +30938,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30857,10 +30972,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30895,6 +31006,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -30904,13 +31021,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -31725,6 +31841,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Sederhanakan area"
 
@@ -33893,17 +34054,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Menambahkan nama dari Wikipedia"
 
@@ -33913,12 +34063,6 @@ msgstr ""
 "Mengambil tautan didalam wiki dari Wikipedia untuk menambahkan beberapa tag "
 "nama."
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -33929,6 +34073,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Salin template {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "mengambil artikel wikipedia dengan koordinat"
 
diff --git a/i18n/po/is.po b/i18n/po/is.po
index 11b64bf..71135be 100644
--- a/i18n/po/is.po
+++ b/i18n/po/is.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-11-06 00:32+0000\n"
 "Last-Translator: Stefán Örvar Sigmundsson <stefan.orvar.sigmundsson at emi.is>\n"
 "Language-Team: Icelandic <is at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:49+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:02+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: is\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -485,6 +470,12 @@ msgstr "Sækja gögn"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Sækja hlut..."
 
@@ -1975,6 +1966,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1987,9 +1987,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Get ekki bætt við hnút handan endamarka veraldar."
 
@@ -2055,12 +2052,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2151,13 +2142,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3523,9 +3514,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3535,6 +3523,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4747,7 +4738,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5897,6 +5888,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5924,9 +5918,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7151,10 +7142,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9168,12 +9159,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Gagnalag {0}"
-
 msgid "outside downloaded area"
 msgstr "utan sótts svæðis"
 
+msgid "Data Layer {0}"
+msgstr "Gagnalag {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9651,6 +9642,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9663,9 +9657,6 @@ msgstr "Átt"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr "Flytja inn hljóð"
 
@@ -11465,6 +11456,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Tilgreina hvaðan á að sækja íforrit"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Bæta við viðbótarþjóni."
 
@@ -12554,9 +12570,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13531,7 +13544,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13999,6 +14012,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14195,6 +14211,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Senda villutilkynningu"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14226,7 +14245,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14960,13 +14979,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15362,10 +15387,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15751,6 +15776,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15975,6 +16005,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16080,6 +16113,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18277,9 +18314,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18314,6 +18369,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19519,6 +19580,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Vatnsleikjagarður"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22170,7 +22234,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22422,7 +22489,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22437,6 +22507,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22452,6 +22525,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22470,18 +22549,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr "dót"
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23195,6 +23268,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23288,6 +23370,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Húsnúmer"
 
@@ -25491,6 +25576,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26371,9 +26471,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27457,7 +27554,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28318,6 +28415,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28792,18 +28907,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29455,6 +29561,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29470,6 +29579,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29498,10 +29613,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29536,6 +29647,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29545,13 +29662,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30342,6 +30458,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32296,6 +32457,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32307,27 +32483,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/it.po b/i18n/po/it.po
index 2d55511..d7df17d 100644
--- a/i18n/po/it.po
+++ b/i18n/po/it.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm 20081003\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-07-30 09:58+0000\n"
 "Last-Translator: Don-vip <Unknown>\n"
 "Language-Team: Italian <talk-it at lists.openstreetmap.org>\n"
@@ -12,8 +12,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:51+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:05+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: it\n"
 "X-Language: it_IT\n"
 "X-Source-Language: en\n"
@@ -55,21 +55,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "Apertura del collegamento non supportata sulla piattaforma corrente (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERRORE: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ATTENZIONE: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Causa: "
-
 msgid "Executing platform startup hook"
 msgstr "Esecuzione del collegamento iniziale alla piattaforma"
 
@@ -507,6 +492,12 @@ msgstr "Scarica dati"
 msgid "Download notes in current view"
 msgstr "Scarica le note nella visualizzazione corrente"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Scarica oggetto..."
 
@@ -2161,6 +2152,15 @@ msgstr ""
 "cancellare i nodi inutilizzati quando elimini un percorso. Ctrl: cancella "
 "gli oggetti che si riferiscono a questo."
 
+msgid "draw angle snap"
+msgstr "disegna angolo con scatto"
+
+msgid "draw angle snap highlight"
+msgstr "evidenzia disegno angolo con scatto"
+
+msgid "helper line"
+msgstr "linea di supporto"
+
 msgid "Draw"
 msgstr "Disegna"
 
@@ -2173,9 +2173,6 @@ msgstr "Modalità: disegna angolo con scatto"
 msgid "Backspace in Add mode"
 msgstr "Tasto di ritorno in modalità aggiunta"
 
-msgid "helper line"
-msgstr "linea di supporto"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Non si può disegnare un nodo al di fuori dei confini della Terra."
 
@@ -2241,12 +2238,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "CORREZIONE"
 
-msgid "draw angle snap"
-msgstr "disegna angolo con scatto"
-
-msgid "draw angle snap highlight"
-msgstr "evidenzia disegno angolo con scatto"
-
 msgid "Angle snapping"
 msgstr "Scatto angolo"
 
@@ -2352,15 +2343,15 @@ msgstr[1] "Aggiungi un nuovo nodo a {0} percorsi"
 msgid "Cannot delete node that has tags"
 msgstr "Impossibile eliminare il nodo che contiene etichette"
 
+msgid "make parallel helper line"
+msgstr "linea di supporto parallelizzazione"
+
 msgid "Parallel"
 msgstr "Parallelo"
 
 msgid "Make parallel copies of ways"
 msgstr "Crea copie parallele dei percorsi"
 
-msgid "make parallel helper line"
-msgstr "linea di supporto parallelizzazione"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3889,9 +3880,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "Nessuna unità trovata per: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Il parametro deve iniziare con un carattere ''+'' (trovato ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Parametro sconosciuto: ''{0}''."
 
@@ -3901,6 +3889,9 @@ msgstr "È atteso un valore per il parametro ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Non è atteso alcun valore per il parametro ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Il parametro deve iniziare con un carattere ''+'' (trovato ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Formato parametro inatteso (''{0}'')"
 
@@ -5200,8 +5191,8 @@ msgid "Make sure you load some data if you use --selection."
 msgstr ""
 "Assicurarsi di caricare qualche dato se si utilizza il parametro --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Visualizzazione dei messaggi di debug su console"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Caricamento pluging saltato"
@@ -6492,6 +6483,9 @@ msgstr "Clicca per chiudere questa finestra e continuare a modificare"
 msgid "Conflicts detected"
 msgstr "Rilevati conflitti"
 
+msgid "Resolve conflicts"
+msgstr "Risolvi conflitti"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Annulla la risoluzione del conflitto e chiudi la finestra"
 
@@ -6525,9 +6519,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflitto non risolto completamente"
 
-msgid "Resolve conflicts"
-msgstr "Risolvi conflitti"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Risolvi i conflitti per ''{0}''"
 
@@ -7877,12 +7868,12 @@ msgstr "Mostra/nascondi livello"
 msgid "Discardable key: selection Foreground"
 msgstr "Chiave scartabile: primo piano selezione"
 
-msgid "Discardable key: selection Background"
-msgstr "Chiave scartabile: sfondo selezione"
-
 msgid "Discardable key: foreground"
 msgstr "Chiave scartabile: primo piano"
 
+msgid "Discardable key: selection Background"
+msgstr "Chiave scartabile: sfondo selezione"
+
 msgid "Discardable key: background"
 msgstr "Chiave scartabile: sfondo"
 
@@ -10171,12 +10162,12 @@ msgstr "Note totali:"
 msgid "Changes need uploading?"
 msgstr "Le modifiche devono essere caricate?"
 
-msgid "Data Layer {0}"
-msgstr "Livello dati {0}"
-
 msgid "outside downloaded area"
 msgstr "al di fuori dell''area scaricata"
 
+msgid "Data Layer {0}"
+msgstr "Livello dati {0}"
+
 msgid "Merging layers"
 msgstr "Unione dei livelli"
 
@@ -10698,6 +10689,9 @@ msgstr "Non c''è alcun livello di immagini aeree."
 msgid "No imagery layers"
 msgstr "Nessun livello di immagini aeree"
 
+msgid "gps point"
+msgstr "punto GPS"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10710,9 +10704,6 @@ msgstr "Direzione"
 msgid "Velocity, {0}"
 msgstr "Velocità, {0}"
 
-msgid "gps point"
-msgstr "punto GPS"
-
 msgid "Import Audio"
 msgstr "Importa l''audio"
 
@@ -12798,6 +12789,31 @@ msgstr "Configura siti..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configura la lista dei siti da dove sono scaricate le estensioni"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Aggiungi indirizzo URL di descrizione dell''estensione JOSM."
 
@@ -14030,9 +14046,6 @@ msgstr "<html>Impossibile leggere i file.<br>L''errore è:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "File GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "File con proiezione GeoJSON"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Livello ''{0}'' non supportato"
 
@@ -15154,8 +15167,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "L’estensione non sarà caricata."
 msgstr[1] "Le estensioni non saranno caricate."
 
-msgid "Determine plugins to load..."
-msgstr "Determinazione delle estensioni da caricare..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Rimozione delle estensioni deprecate..."
@@ -15789,6 +15802,9 @@ msgstr ""
 "Fallito l''accesso alla cartella ''{0}'' per ragioni di sicurezza. "
 "L''eccezione è stata: {1}"
 
+msgid "Cause: "
+msgstr "Causa: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -16017,6 +16033,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Segnala bug"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Non mostrare più le finestre di errore in questa sessione."
 
@@ -16048,10 +16067,8 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr "JOSM è aggiornato."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
-"È in esecuzione una vecchia versione di JOSM . Quella più recente è la {0}. "
-"È consigliabile aggiornare JOSM."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16801,13 +16818,19 @@ msgstr "Foto aeree Berlino 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Foto aeree Berlino 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stoccarda (immagini aeree)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -17203,11 +17226,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -17600,6 +17623,11 @@ msgstr ""
 "percorso come poligono. Creato per la mappatura facilitata di edifici a "
 "partire dai livelli di sfondo. Ottimizzato per basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Strumenti per il disegno degli edifici."
 
@@ -17895,6 +17923,9 @@ msgstr ""
 "Impedisce l''utilizzo di JOSM per sempre (ATTENZIONE: quest''estensione "
 "impedisce a JOSM di essere avviato ed è difficile liberarsene)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Converti i dati dai portali Open Data in livello OSM"
 
@@ -18029,6 +18060,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Modifica caratteristiche delle carte nautiche"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20285,9 +20320,27 @@ msgstr "Canale sotterraneo"
 msgid "Basin"
 msgstr "Bacino"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Serbatoio"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Bacino coperto"
 
@@ -20322,6 +20375,12 @@ msgstr "riserva"
 msgid "river"
 msgstr "fiume"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Acqua salata"
 
@@ -21535,6 +21594,9 @@ msgstr "Divertimento/Parco a tema"
 msgid "Water Park"
 msgstr "Parco acquatico"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Piscina"
 
@@ -24189,8 +24251,11 @@ msgstr "Pescheria"
 msgid "Deli (Fine Food)"
 msgstr "Cibi e bevande pregiate"
 
-msgid "Candy Store"
-msgstr "Negozio di dolci"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Tè"
@@ -24441,8 +24506,11 @@ msgstr "Distributore automatico"
 msgid "Vending products"
 msgstr "Prodotti distribuiti"
 
-msgid "animal_food"
-msgstr "cibo per animali"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "camere d''aria per biciclette"
@@ -24456,6 +24524,9 @@ msgstr "preservativi"
 msgid "drinks"
 msgstr "bevande"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "sacchetti per escrementi"
 
@@ -24471,6 +24542,12 @@ msgstr "giornali"
 msgid "parking_tickets"
 msgstr "biglietti per il parcheggio"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotografie"
 
@@ -24489,18 +24566,12 @@ msgstr "francobolli"
 msgid "sweets"
 msgstr "dolci"
 
-msgid "tampons"
-msgstr "assorbenti"
-
 msgid "telephone_vouchers"
 msgstr "ricariche telefoniche"
 
 msgid "toys"
 msgstr "giocattoli"
 
-msgid "vouchers"
-msgstr "buoni"
-
 msgid "Payment Methods"
 msgstr "Tipi di pagamento"
 
@@ -25231,6 +25302,15 @@ msgstr "Coltivazioni in serra"
 msgid "Plant Nursery"
 msgstr "Vivaio"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Area pubblica concessa ai cittadini per la realizzazione di orti"
 
@@ -25324,6 +25404,9 @@ msgstr "Nome ufficiale completo"
 msgid "Common name abbreviation"
 msgstr "Abbreviazione comune del nome"
 
+msgid "Address"
+msgstr "Indirizzo"
+
 msgid "House number"
 msgstr "Numero civico"
 
@@ -27727,6 +27810,21 @@ msgstr "Debug"
 msgid "Debugging mode will write images for each processing step."
 msgstr "la modalità debugging scriverà immagini per ogni fase del processo."
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nome della strada:"
 
@@ -28691,9 +28789,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Indirizzo"
-
 msgid "Split area"
 msgstr "Dividi area"
 
@@ -29862,8 +29957,8 @@ msgstr "crea il digrafo dei canali"
 msgid "Check "
 msgstr "Verifica "
 
-msgid "check the subust for junction properties"
-msgstr "verifica le proprietà del collegamento nel sottoinsieme"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Ricerca "
@@ -30765,6 +30860,24 @@ msgstr ""
 "(Per continuare miseramente a mappare elimina no_more_mapping\n"
 "da {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "ID non valido per il gruppo di modifiche: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Marca temporale non valida: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Lettura dei dati OSM in corso..."
+
 msgid "Split by municipality"
 msgstr "Suddividi per comune"
 
@@ -31304,18 +31417,9 @@ msgstr "File Server OSM compressi pbf"
 msgid "Download PBF"
 msgstr "Scarica PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "ID non valido per il gruppo di modifiche: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Marca temporale non valida: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Tabella chiave/valori DenseNodes non valida"
 
-msgid "Reading OSM data..."
-msgstr "Lettura dei dati OSM in corso..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Errore nella trasformazione: X minimo deve essere minore del massimo"
 
@@ -31985,6 +32089,9 @@ msgstr "La stampa è fallita."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -32000,6 +32107,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -32028,10 +32141,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -32066,6 +32175,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -32075,13 +32190,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32908,6 +33022,51 @@ msgstr "Selezionare un solo oggetto"
 msgid "Select a map object"
 msgstr "Selezionare un oggetto mappa"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Semplifica Area"
 
@@ -35140,17 +35299,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Aggiungi Wikidata per la lingua ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Aggiungi nomi da Wikipedia"
 
@@ -35160,12 +35308,6 @@ msgstr ""
 "Preleva i collegamenti interni da Wikipedia in modo da aggiungere ulteriori "
 "etichette per i nomi"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -35176,6 +35318,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copia {0} modello"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Ottieni gli articoli di Wikipedia con coordinate"
 
diff --git a/i18n/po/ja.po b/i18n/po/ja.po
index 73c0647..0abbe4e 100644
--- a/i18n/po/ja.po
+++ b/i18n/po/ja.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-06-16 14:17+0000\n"
-"Last-Translator: Yasunari Yamashita <yasunari at yamasita.jp>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-02 06:28+0000\n"
+"Last-Translator: fujimoto <fujimoto at internet.ne.jp>\n"
 "Language-Team: Japanese <tr at openstreetmap.jp>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:52+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:06+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "X-Poedit-Country: JAPAN\n"
 "Language: ja\n"
 "X-Poedit-Language: Japanese\n"
@@ -61,21 +61,6 @@ msgstr "背景利用規約"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "リンクを開く操作は、このプラットフォームには対応していません(''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "エラー: {0}"
-
-msgid "WARNING: {0}"
-msgstr "警告: {0}"
-
-msgid "INFO: {0}"
-msgstr "情報: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "デバッグ: {0}"
-
-msgid "Cause: "
-msgstr "原因: "
-
 msgid "Executing platform startup hook"
 msgstr "プラットフォームスタートアップフックを実行中"
 
@@ -489,6 +474,12 @@ msgstr "データのダウンロード"
 msgid "Download notes in current view"
 msgstr "現在のビューにメモをダウンロード"
 
+msgid "Download in current view"
+msgstr "現在のビューにダウンロード"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "現在のビューに OSM サーバから地図データをダウンロードします"
+
 msgid "Download object..."
 msgstr "オブジェクトをダウンロード..."
 
@@ -1077,13 +1068,13 @@ msgid "Paste"
 msgstr "貼り付け"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "クリップボードの内容を貼り付けます。"
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "元の位置に貼り付け"
 
 msgid "Paste contents of clipboard at the position they were copied from."
-msgstr ""
+msgstr "クリップボードの内容をコピー元の位置に貼り付けます。"
 
 msgid "Paste Tags"
 msgstr "タグの貼り付け"
@@ -1980,6 +1971,15 @@ msgid ""
 msgstr ""
 "クリックすると削除。Shift: ウェイ区間を削除。Alt: ウェイを消すときにノードは消さない。 Ctrl: 参照するオブジェクトを消す。"
 
+msgid "draw angle snap"
+msgstr "角度を合わせて描画"
+
+msgid "draw angle snap highlight"
+msgstr "合わせる角度を強調表示"
+
+msgid "helper line"
+msgstr "補助線"
+
 msgid "Draw"
 msgstr "描画"
 
@@ -1992,9 +1992,6 @@ msgstr "モード: 角度合わせして描画する"
 msgid "Backspace in Add mode"
 msgstr "追加モードでのBackspace"
 
-msgid "helper line"
-msgstr "補助線"
-
 msgid "Cannot add a node outside of the world."
 msgstr "世界の外にノードを追加できません。"
 
@@ -2059,12 +2056,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "角度を合わせて描画"
-
-msgid "draw angle snap highlight"
-msgstr "合わせる角度を強調表示"
-
 msgid "Angle snapping"
 msgstr "角度合わせ"
 
@@ -2155,15 +2146,15 @@ msgstr[0] "{0}本のウェイに新しいノードを追加"
 msgid "Cannot delete node that has tags"
 msgstr "タグのあるノードは削除できません"
 
+msgid "make parallel helper line"
+msgstr "平行補助線を作成"
+
 msgid "Parallel"
 msgstr "平行線"
 
 msgid "Make parallel copies of ways"
 msgstr "並行するウェイのコピーを作成"
 
-msgid "make parallel helper line"
-msgstr "平行補助線を作成"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3324,7 +3315,7 @@ msgstr "レイヤーが選択されていません"
 
 msgid ""
 "WMTS Parser error - start element {0} has different name than end element {2}"
-msgstr ""
+msgstr "WMTS パーサエラー - 開始要素 {0} が終了要素 {2} の名前が異なります"
 
 msgid ""
 "Only square tiles are supported. {0}x{1} returned by server for TileMatrix "
@@ -3532,9 +3523,6 @@ msgstr "''+zone=...'' パラメーターには 1-60 の範囲の整数値が求
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "パラメーターは ''+'' の文字で始まる必要があります(現在は''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "パラメーター ''{0}'' が不明です。"
 
@@ -3544,6 +3532,9 @@ msgstr "パラメーター ''{0}'' には値が必要です。"
 msgid "No value expected for parameter ''{0}''."
 msgstr "パラメーター ''{0}'' には値を付けるべきではありません。"
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "パラメーターは ''+'' の文字で始まる必要があります(現在は''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "パラメーターの書式が違います(''{0}'')"
 
@@ -3686,7 +3677,7 @@ msgid "E-mail address contains an invalid domain: {0}"
 msgstr "メールアドレスに無効なドメイン名「{0}」が含まれています"
 
 msgid "Email validator"
-msgstr ""
+msgstr "メールアドレスバリデーター"
 
 msgid "URL is invalid"
 msgstr "URLが無効です"
@@ -3707,7 +3698,7 @@ msgid "URL contains an invalid fragment: {0}"
 msgstr "URLに無効な部分が含まれています: {0}"
 
 msgid "URL validator"
-msgstr ""
+msgstr "URLバリデーター"
 
 msgid "Addresses"
 msgstr "住所"
@@ -4758,8 +4749,8 @@ msgstr "パラメータ --downloadと--downloadgpsと--selectionは、この順
 msgid "Make sure you load some data if you use --selection."
 msgstr "--selectionを使った場合、一部のデータだけをロードすることになります。"
 
-msgid "Printing debugging messages to console"
-msgstr "コンソールにデバッグメッセージを出力しています"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "プラグインの読み込みをスキップしました"
@@ -5912,6 +5903,9 @@ msgstr "クリックしてこのダイアログを閉じ、編集を続ける"
 msgid "Conflicts detected"
 msgstr "競合が検出されました"
 
+msgid "Resolve conflicts"
+msgstr "競合を解決"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "競合の解決をキャンセルしてダイアログを閉じる"
 
@@ -5942,9 +5936,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "競合は完全には解決されていません"
 
-msgid "Resolve conflicts"
-msgstr "競合を解決"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "''{0}'' の競合を解決する"
 
@@ -7183,12 +7174,12 @@ msgstr "レイヤー表示/非表示"
 msgid "Discardable key: selection Foreground"
 msgstr "削除可能なキー: 選択の前景色"
 
-msgid "Discardable key: selection Background"
-msgstr "削除可能なキー: 選択の背景色"
-
 msgid "Discardable key: foreground"
 msgstr "削除可能なキー: 前景色"
 
+msgid "Discardable key: selection Background"
+msgstr "削除可能なキー: 選択の背景色"
+
 msgid "Discardable key: background"
 msgstr "削除可能なキー: 背景色"
 
@@ -9240,12 +9231,12 @@ msgstr "メモの件数:"
 msgid "Changes need uploading?"
 msgstr "変更はアップロードが必要ですか?"
 
-msgid "Data Layer {0}"
-msgstr "データレイヤー {0}"
-
 msgid "outside downloaded area"
 msgstr "ダウンロード範囲外"
 
+msgid "Data Layer {0}"
+msgstr "データレイヤー {0}"
+
 msgid "Merging layers"
 msgstr "レイヤーを併合"
 
@@ -9739,6 +9730,9 @@ msgstr "画像レイヤーがありません。"
 msgid "No imagery layers"
 msgstr "画像レイヤーなし"
 
+msgid "gps point"
+msgstr "GPSポイント"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9751,9 +9745,6 @@ msgstr "方向"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "GPSポイント"
-
 msgid "Import Audio"
 msgstr "音声のインポート"
 
@@ -11605,6 +11596,31 @@ msgstr "サイトを構成..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "プラグインダウンロード元のサイトのリストを構成"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "JOSMプラグイン情報のURLを追加します。"
 
@@ -12715,9 +12731,6 @@ msgstr "<html>ファイルを読み込めません。<br>エラー:<br>{0}</html
 msgid "GeoJSON Files"
 msgstr "GeoJSONファイル"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "レイヤー ''{0}'' はサポートされていません。"
 
@@ -13701,8 +13714,8 @@ msgid "The plugin is not going to be loaded."
 msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "プラグインはロードされません。"
 
-msgid "Determine plugins to load..."
-msgstr "ロードすべきプラグインを確認しています..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "古くなったプラグインを削除しています..."
@@ -14211,6 +14224,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr "セキュリティのため''{0}''ディレクトリへのアクセスに失敗しました。例外: {1}"
 
+msgid "Cause: "
+msgstr "原因: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14414,6 +14430,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "バグを報告する"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "このセッションにおいて、これ以降のエラーダイアログを抑制します。"
 
@@ -14445,7 +14464,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15183,14 +15202,20 @@ msgstr "Berlin aerial photograph 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlin aerial photograph 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (aerial imagery)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen aerial imagery (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15585,11 +15610,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -15979,6 +16004,11 @@ msgstr ""
 "あるレイヤーのエリアを選択して、自動的にポリゴンとしてウェイを作成します。背景レイヤーから建物のマッピングが容易になるように作られています。basemap"
 ".atに最適化されています。"
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "建物描画用ツール"
 
@@ -16226,6 +16256,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr "永遠にJOSMの使用を禁止します(警告: このプラグインはロードされると同時にJOSMを制限し、外すのは困難です)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Open Data ポータルから OSM レイヤーにデータを変換します"
 
@@ -16335,6 +16368,10 @@ msgid "Edit features for Sea Charts"
 msgstr "海図の地物を編集"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr "極端な鈍角上のノードを取り除いてエリアを簡素化します。これは最大の削除エリアサイズで制限できます。近傍ノードの平均化も行います。"
@@ -18541,9 +18578,27 @@ msgstr "水路トンネル"
 msgid "Basin"
 msgstr "遊水地"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "貯水池"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "蓋付き貯水池"
 
@@ -18578,6 +18633,12 @@ msgstr "貯水池"
 msgid "river"
 msgstr "河川"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "塩水"
 
@@ -19783,6 +19844,9 @@ msgstr "テーマパーク"
 msgid "Water Park"
 msgstr "ウォーターパーク"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "遊泳プール"
 
@@ -22434,8 +22498,11 @@ msgstr "水産物店"
 msgid "Deli (Fine Food)"
 msgstr "惣菜屋"
 
-msgid "Candy Store"
-msgstr "菓子店"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "茶"
@@ -22686,8 +22753,11 @@ msgstr "自動販売機"
 msgid "Vending products"
 msgstr "販売商品"
 
-msgid "animal_food"
-msgstr "ペットフード"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "自転車のチューブ"
@@ -22701,6 +22771,9 @@ msgstr "コンドーム"
 msgid "drinks"
 msgstr "飲料"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "糞袋"
 
@@ -22716,6 +22789,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "パーキングチケット"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "写真"
 
@@ -22734,18 +22813,12 @@ msgstr "切手"
 msgid "sweets"
 msgstr "甘味"
 
-msgid "tampons"
-msgstr "タンポン"
-
 msgid "telephone_vouchers"
 msgstr "プリペイド携帯のチャージ"
 
 msgid "toys"
 msgstr "おもちゃ"
 
-msgid "vouchers"
-msgstr "商品券"
-
 msgid "Payment Methods"
 msgstr "支払方法"
 
@@ -23460,6 +23533,15 @@ msgstr "温室領域"
 msgid "Plant Nursery"
 msgstr "苗床"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "市民農園"
 
@@ -23553,6 +23635,9 @@ msgstr "公式名称"
 msgid "Common name abbreviation"
 msgstr "略号"
 
+msgid "Address"
+msgstr "住所"
+
 msgid "House number"
 msgstr "住居番号"
 
@@ -25847,6 +25932,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "通り名:"
 
@@ -26764,9 +26864,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "住所"
-
 msgid "Split area"
 msgstr "エリア分割"
 
@@ -27881,8 +27978,8 @@ msgstr "チャネル方向グラフを作成"
 msgid "Check "
 msgstr "チェック "
 
-msgid "check the subust for junction properties"
-msgstr "交差点のプロパティの部分をチェックします"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "検索 "
@@ -28747,6 +28844,24 @@ msgstr ""
 "(悲惨にもマッピングを続けたければ、{0}から\n"
 "no_more_mappingを外してください)"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "不正な変更セットID: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "不正なタイムスタンプ: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "OSMデータを読み込み中..."
+
 msgid "Split by municipality"
 msgstr "municipalityで分割"
 
@@ -29231,18 +29346,9 @@ msgstr "OSMサーバー用pbf圧縮ファイル"
 msgid "Download PBF"
 msgstr "PBFをダウンロード"
 
-msgid "Invalid changeset id: {0}"
-msgstr "不正な変更セットID: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "不正なタイムスタンプ: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "不正なDenseNodesのキー/値の表"
 
-msgid "Reading OSM data..."
-msgstr "OSMデータを読み込み中..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "変換エラー: Xの最小値は最大値よりも小さくなければなりません"
 
@@ -29898,6 +30004,9 @@ msgstr "印刷に失敗しました。"
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29913,6 +30022,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29941,10 +30056,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29979,6 +30090,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29988,13 +30105,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30789,6 +30905,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "エリアを簡素化"
 
@@ -32829,6 +32990,21 @@ msgstr[0] "{0} の ''{1}'' の Wikideta IDを検索しています"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "''{0}'' の Wikideta を追加"
 
+msgid "Add names from Wikipedia"
+msgstr "Wikipediaから名前を追加"
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr "該当するnameタグを追加するためにWikipediaからインターウィキリンクを探す"
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr "最初に選択されたノードの座標を例に、{0}のテンプレートをシステムのクリップボードにコピーする"
+
+msgid "Copy {0} template"
+msgstr "{0}のテンプレートをコピー"
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32840,27 +33016,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr "Wikipediaから名前を追加"
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr "該当するnameタグを追加するためにWikipediaからインターウィキリンクを探す"
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr "最初に選択されたノードの座標を例に、{0}のテンプレートをシステムのクリップボードにコピーする"
-
-msgid "Copy {0} template"
-msgstr "{0}のテンプレートをコピー"
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "座標からWikipediaの記事を検索"
 
diff --git a/i18n/po/ka.po b/i18n/po/ka.po
index 576ec11..3117787 100644
--- a/i18n/po/ka.po
+++ b/i18n/po/ka.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-12-16 00:14+0000\n"
 "Last-Translator: datogogishvili <Unknown>\n"
 "Language-Team: Georgian <ka at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:44+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:53+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ka\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "გასახსნელ ლინკს ამ პლატფორმაზე არ აქვს მხარდაჭერა (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -487,6 +472,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "გადმოწერე ობიექტი."
 
@@ -1966,6 +1957,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1978,9 +1978,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2046,12 +2043,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2142,13 +2133,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3509,9 +3500,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3521,6 +3509,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4731,7 +4722,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5881,6 +5872,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5908,9 +5902,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7131,10 +7122,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9138,10 +9129,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9621,6 +9612,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9633,9 +9627,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11425,6 +11416,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12512,9 +12528,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13487,7 +13500,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13953,6 +13966,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14149,6 +14165,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14180,7 +14199,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14914,13 +14933,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15316,10 +15341,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15705,6 +15730,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15928,6 +15958,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16033,6 +16066,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18230,9 +18267,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18267,6 +18322,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19472,6 +19533,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22123,7 +22187,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22375,7 +22442,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22390,6 +22460,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22405,6 +22478,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22423,18 +22502,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23148,6 +23221,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23241,6 +23323,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25444,6 +25529,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26324,9 +26424,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27410,7 +27507,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28271,6 +28368,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28745,18 +28860,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29408,6 +29514,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29423,6 +29532,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29451,10 +29566,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29489,6 +29600,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29498,13 +29615,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30295,6 +30411,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32249,6 +32410,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32260,27 +32436,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/km.po b/i18n/po/km.po
index a88b9e4..053f90e 100644
--- a/i18n/po/km.po
+++ b/i18n/po/km.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-01-27 10:25+0000\n"
 "Last-Translator: Sophea Sok <sksophea at gmail.com>\n"
 "Language-Team: Khmer <km at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:53+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:07+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "លក្ខខណ្ឌក្នុងការប្រើប្រា
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "ការ​បើក​តំណ​គឺ​មិន​គាំទ្រ​នៅ​លើ​កម្មវិធី​បច្ចុប្បន្ន (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "កំហុស៖ {0}"
-
-msgid "WARNING: {0}"
-msgstr "ព្រមាន៖ {0}"
-
-msgid "INFO: {0}"
-msgstr "ព័ត៌មាន៖ {0}"
-
-msgid "DEBUG: {0}"
-msgstr "បំបាត់​កំហុស៖ {0}"
-
-msgid "Cause: "
-msgstr "មូលហេតុ៖ "
-
 msgid "Executing platform startup hook"
 msgstr "ប្រតិបត្តិ​កម្មវិធី​ពេល​ចាប់ផ្ដើម"
 
@@ -494,6 +479,12 @@ msgstr "ទាញ​យក​ទិន្នន័យ"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "ទាញ​យក​វត្ថុ..."
 
@@ -2080,6 +2071,15 @@ msgstr ""
 "ចុច​ដើម្បី​លុប។ Shift ៖ លុប​កំណាត់​ផ្លូវ។ Alt ៖: ពេល​លុប​ផ្លូវ "
 "មិន​លុប​តំណ​ដែល​មិន​ប្រើ។ Ctrl ៖ លុប​វត្ថុ​យោង។"
 
+msgid "draw angle snap"
+msgstr "គូរ​មុំ​ឆក់"
+
+msgid "draw angle snap highlight"
+msgstr "គូរ​មុំ​ឆក់​រំលេច"
+
+msgid "helper line"
+msgstr "ខ្សែ​ជំនួយ"
+
 msgid "Draw"
 msgstr "គូស"
 
@@ -2092,9 +2092,6 @@ msgstr "របៀប៖ គូរ​មុំ​ឆក់"
 msgid "Backspace in Add mode"
 msgstr "លុប​ថយក្រោយ​ក្នុង​របៀប​បន្ថែម"
 
-msgid "helper line"
-msgstr "ខ្សែ​ជំនួយ"
-
 msgid "Cannot add a node outside of the world."
 msgstr "មិន​អាច​បន្ថែម​តំណ​នៅ​ក្រៅ​ផែនដី។"
 
@@ -2159,12 +2156,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "គូរ​មុំ​ឆក់"
-
-msgid "draw angle snap highlight"
-msgstr "គូរ​មុំ​ឆក់​រំលេច"
-
 msgid "Angle snapping"
 msgstr "មុំ​ឆក់"
 
@@ -2263,15 +2254,15 @@ msgstr[0] "បន្ថែម​តំណ​ថ្មី​ទៅ​ផ្លូ
 msgid "Cannot delete node that has tags"
 msgstr "មិន​អាច​លុប​តំណ​ដែល​មាន​ស្លាក"
 
+msgid "make parallel helper line"
+msgstr "បង្កើត​បន្ទាត់​កម្មវិធី​ជំនួយ​ប៉ារ៉ាឡែល"
+
 msgid "Parallel"
 msgstr "ប៉ារ៉ាឡែល​"
 
 msgid "Make parallel copies of ways"
 msgstr "បង្កើត​ច្បាប់​ចម្លង​ប៉ារ៉ាឡែល​របស់​ផ្លូវ"
 
-msgid "make parallel helper line"
-msgstr "បង្កើត​បន្ទាត់​កម្មវិធី​ជំនួយ​ប៉ារ៉ាឡែល"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3727,9 +3718,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "ប៉ារ៉ាម៉ែត្រ​ត្រូវតែ​ចាប់ផ្ដើម​ដោយ​តួអក្សរ ''+'' (រក​ឃើញ ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "មិន​ស្គាល់​ប៉ារ៉ាម៉ែត្រ៖ ''{0}'' ។"
 
@@ -3739,6 +3727,9 @@ msgstr "តម្លៃ​រំពឹង​ទុក​សម្រាប់​
 msgid "No value expected for parameter ''{0}''."
 msgstr "គ្មាន​តម្លៃ​រំពឹង​ទុក​សម្រាប់​ប៉ារ៉ាម៉ែត្រ ''{0}'' ។"
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "ប៉ារ៉ាម៉ែត្រ​ត្រូវតែ​ចាប់ផ្ដើម​ដោយ​តួអក្សរ ''+'' (រក​ឃើញ ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "ទ្រង់ទ្រាយ​ប៉ារ៉ាម៉ែត្រ​មិន​រំពឹង​ទុក (''{0}'')"
 
@@ -5003,8 +4994,8 @@ msgid "Make sure you load some data if you use --selection."
 msgstr ""
 "ត្រូវ​ប្រាកដ​ថា​អ្នក​បាន​ផ្ទុក​ទិន្នន័យ​ខ្លះៗ បើ​អ្នក​ប្រើ --selection ។"
 
-msgid "Printing debugging messages to console"
-msgstr "ការ​បោះពុម្ព​សារ​បំបាត់​កំហុស​ទៅ​កុងសូល"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr ""
@@ -6252,6 +6243,9 @@ msgstr "ចុច​ដើម្បី​បិទ​ប្រអប់​នេ
 msgid "Conflicts detected"
 msgstr "បាន​រក​ឃើញ​ការ​ប៉ះទង្គិច"
 
+msgid "Resolve conflicts"
+msgstr "ដោះស្រាយ​ការ​ប៉ះទង្គិច"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "បោះបង់​ការ​ដោះស្រាយ​ការ​ប៉ះទង្គិច រួច​បិទ​ប្រអប់"
 
@@ -6285,9 +6279,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "ការ​ប៉ះទង្គិច​មិន​ត្រូវ​បាន​ដោះស្រាយ​ទាំងស្រុង​ទេ"
 
-msgid "Resolve conflicts"
-msgstr "ដោះស្រាយ​ការ​ប៉ះទង្គិច"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "ដោះស្រាយ​ការ​ប៉ះទង្គិច​សម្រាប់ ''{0}''"
 
@@ -7594,12 +7585,12 @@ msgstr "បង្ហាញ/លាក់​ស្រទាប់"
 msgid "Discardable key: selection Foreground"
 msgstr "ពាក្យ​គន្លឹះ​ដែល​អាច​បោះបង់​បាន៖ ជម្រើស​ផ្ទៃ​ខាងមុខ"
 
-msgid "Discardable key: selection Background"
-msgstr "ពាក្យ​គន្លឹះ​ដែល​អាច​បោះបង់​បាន៖ ជម្រើស​ផ្ទៃ​ខាងក្រោយ"
-
 msgid "Discardable key: foreground"
 msgstr "ពាក្យ​គន្លឹះ​ដែល​អាច​បោះបង់​បាន៖ ផ្ទៃ​ខាងមុខ"
 
+msgid "Discardable key: selection Background"
+msgstr "ពាក្យ​គន្លឹះ​ដែល​អាច​បោះបង់​បាន៖ ជម្រើស​ផ្ទៃ​ខាងក្រោយ"
+
 msgid "Discardable key: background"
 msgstr "ពាក្យ​គន្លឹះ​ដែល​អាច​បោះបង់​បាន៖ ផ្ទៃ​ខាងក្រោយ"
 
@@ -9805,12 +9796,12 @@ msgstr "ចំណាំ​សរុប៖"
 msgid "Changes need uploading?"
 msgstr "ការ​ផ្លាស់ប្ដូរ​ដែល​ត្រូវ​ផ្ទុក​ឡើង?"
 
-msgid "Data Layer {0}"
-msgstr "ស្រទាប់​ទិន្នន័យ {0}"
-
 msgid "outside downloaded area"
 msgstr "នៅ​ក្រៅ​តំបន់​ទាញ​យក"
 
+msgid "Data Layer {0}"
+msgstr "ស្រទាប់​ទិន្នន័យ {0}"
+
 msgid "Merging layers"
 msgstr "បញ្ចូល​ស្រទាប់​ចូលគ្នា"
 
@@ -10319,6 +10310,9 @@ msgstr "មិន​មាន​ស្រទាប់​រូបភាព។"
 msgid "No imagery layers"
 msgstr "មិន​មាន​ស្រទាប់​រូបភាព"
 
+msgid "gps point"
+msgstr "ចំណុច​ជីភីអេស"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10331,9 +10325,6 @@ msgstr "​ទិស"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "ចំណុច​ជីភីអេស"
-
 msgid "Import Audio"
 msgstr "នាំចូល​អូឌីយ៉ូ"
 
@@ -12357,6 +12348,31 @@ msgstr "កំណត់​រចនាសម្ព័ន្ធ​តំបន់
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "កំណត់​រចនាសម្ព័ន្ធ​តំបន់បណ្ដាញ​ដែល​កម្មវិធី​ជំនួយ​ត្រូវ​ទាញ​យក​ពី​វា"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "បន្ថែម URL សេចក្ដី​ពណ៌នា​កម្មវិធី​ជំនួយ JOSM ។"
 
@@ -13570,9 +13586,6 @@ msgstr "<html>មិន​អាច​អាន​ឯកសារ។<br>កំ
 msgid "GeoJSON Files"
 msgstr "ឯកសារ GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "មិន​គាំទ្រ​ស្រទាប់ ''{0}''"
 
@@ -14658,8 +14671,8 @@ msgid "The plugin is not going to be loaded."
 msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "កម្មវិធី​ជំនួយ​នឹង​មិន​ត្រូវ​បាន​ផ្ទុក​ឡើង។"
 
-msgid "Determine plugins to load..."
-msgstr "កំណត់​កម្មវិធី​ជំនួយ​ដើម្បី​ផ្ទុក​ឡើង..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "កំពុង​លុប​កម្មវិធី​ជំនួយ​ដែល​បាន​បដិសេធ..."
@@ -15236,6 +15249,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "មូលហេតុ៖ "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15462,6 +15478,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "រាយការណ៍​កំហុស"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "ប្រអប់​កំហុស​ទប់ស្កាត់​សម្រាប់​សម័យ​នេះ។"
 
@@ -15493,7 +15512,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16243,13 +16262,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16645,10 +16670,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -17042,6 +17067,11 @@ msgstr ""
 "បង្កើត​ដើម្បី​បន្ថយ​ការ​គូរ​ផែនទី​អគារ​ពី​ស្រទាប់​ផ្ទៃ​ខាងក្រោយ។ "
 "គុណភាព​ខ្ពស់​សម្រាប់ basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "ឧបករណ៍​សម្រាប់​គូរ​អគារ។"
 
@@ -17330,6 +17360,9 @@ msgstr ""
 "មិន​អនុញ្ញាត​ការ​ប្រើ JOSM រៀង​រហូត (ព្រមាន៖ កម្មវិធី​ជំនួយ​នេះ​រារាំង JOSM "
 "ពី​ការ​ផ្ទុក ហើយ​វា​ពិបាក​កម្ចាត់​ណាស់)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "បម្លែង​ទិន្នន័យ​ពី Open Data portals ទៅ​ស្រទាប់ OSM"
 
@@ -17448,6 +17481,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19647,9 +19684,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -19684,6 +19739,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -20889,6 +20950,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -23540,7 +23604,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -23792,7 +23859,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -23807,6 +23877,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -23822,6 +23895,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -23840,18 +23919,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -24565,6 +24638,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -24658,6 +24740,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -26861,6 +26946,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -27741,9 +27841,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -28827,7 +28924,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -29688,6 +29785,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -30162,18 +30277,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -30825,6 +30931,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30840,6 +30949,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30868,10 +30983,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30906,6 +31017,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -30915,13 +31032,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -31712,6 +31828,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -33666,6 +33827,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -33677,27 +33853,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ko.po b/i18n/po/ko.po
index ca5a7a2..4dd66bd 100644
--- a/i18n/po/ko.po
+++ b/i18n/po/ko.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-08-05 12:36+0000\n"
 "Last-Translator: Myeongjin <aranet100 at gmail.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:54+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:08+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ko\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "배경 이용 약관"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "현재 플랫폼(\"{0}\")에서는 링크 열기를 지원하지 않습니다"
 
-msgid "ERROR: {0}"
-msgstr "오류: {0}"
-
-msgid "WARNING: {0}"
-msgstr "경고: {0}"
-
-msgid "INFO: {0}"
-msgstr "정보: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "디버그: {0}"
-
-msgid "Cause: "
-msgstr "원인: "
-
 msgid "Executing platform startup hook"
 msgstr "훅을 시작하면 플랫폼 실행"
 
@@ -481,6 +466,12 @@ msgstr "데이터 다운로드"
 msgid "Download notes in current view"
 msgstr "현재 보기에서 참고 다운로드"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "오브젝트 다운로드..."
 
@@ -1953,6 +1944,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "그리기"
 
@@ -1965,9 +1965,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "세계 바깥에 node를 추가할 수 없습니다"
 
@@ -2032,12 +2029,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2128,13 +2119,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3488,9 +3479,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3500,6 +3488,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4709,7 +4700,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5857,6 +5848,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5884,9 +5878,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7107,10 +7098,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9119,10 +9110,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9602,6 +9593,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9614,9 +9608,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11406,6 +11397,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12493,9 +12509,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13468,7 +13481,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13934,6 +13947,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "원인: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14130,6 +14146,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14161,7 +14180,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14895,13 +14914,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15297,10 +15322,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15686,6 +15711,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15909,6 +15939,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16014,6 +16047,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18211,9 +18248,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18248,6 +18303,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19453,6 +19514,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22104,7 +22168,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22356,7 +22423,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22371,6 +22441,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22386,6 +22459,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22404,18 +22483,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23129,6 +23202,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23222,6 +23304,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25425,6 +25510,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26305,9 +26405,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27391,7 +27488,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28252,6 +28349,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28726,18 +28841,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29389,6 +29495,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29404,6 +29513,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29432,10 +29547,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29470,6 +29581,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29479,13 +29596,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30276,6 +30392,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32229,6 +32390,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32240,27 +32416,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ky.po b/i18n/po/ky.po
index 9b1c8bb..bb08b47 100644
--- a/i18n/po/ky.po
+++ b/i18n/po/ky.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2012-12-18 02:36+0000\n"
 "Last-Translator: SimpleLeon <Unknown>\n"
 "Language-Team: Kirghiz <ky at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:53+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:07+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -54,21 +54,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -481,6 +466,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1960,6 +1951,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1972,9 +1972,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2040,12 +2037,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2136,13 +2127,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3503,9 +3494,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3515,6 +3503,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4725,7 +4716,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5875,6 +5866,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5902,9 +5896,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7125,10 +7116,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9132,10 +9123,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9615,6 +9606,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9627,9 +9621,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11419,6 +11410,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12506,9 +12522,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13481,7 +13494,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13947,6 +13960,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14143,6 +14159,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14174,7 +14193,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14908,13 +14927,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15310,10 +15335,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15699,6 +15724,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15922,6 +15952,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16027,6 +16060,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18224,9 +18261,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18261,6 +18316,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19466,6 +19527,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22117,7 +22181,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22369,7 +22436,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22384,6 +22454,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22399,6 +22472,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22417,18 +22496,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23142,6 +23215,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23235,6 +23317,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25438,6 +25523,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26318,9 +26418,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27404,7 +27501,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28265,6 +28362,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28739,18 +28854,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29402,6 +29508,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29417,6 +29526,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29445,10 +29560,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29483,6 +29594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29492,13 +29609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30289,6 +30405,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32243,6 +32404,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32254,27 +32430,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/lb.po b/i18n/po/lb.po
index 385f226..235d149 100644
--- a/i18n/po/lb.po
+++ b/i18n/po/lb.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-04-28 18:56+0000\n"
 "Last-Translator: Charel <ceilenbecker at gmail.com>\n"
 "Language-Team: Luxembourgish <lb at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:56+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:12+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr "{0}:D''Optioun \"{1}\" ass net eendeiteg"
@@ -54,21 +54,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -481,6 +466,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1960,6 +1951,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1972,9 +1972,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2040,12 +2037,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2136,13 +2127,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3503,9 +3494,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3515,6 +3503,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4725,7 +4716,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5875,6 +5866,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5902,9 +5896,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7125,10 +7116,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9132,10 +9123,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9615,6 +9606,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9627,9 +9621,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11419,6 +11410,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12506,9 +12522,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13481,7 +13494,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13947,6 +13960,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14143,6 +14159,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14174,7 +14193,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14908,13 +14927,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15310,10 +15335,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15699,6 +15724,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15922,6 +15952,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16027,6 +16060,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18224,9 +18261,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18261,6 +18316,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19466,6 +19527,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22117,7 +22181,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22369,7 +22436,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22384,6 +22454,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22399,6 +22472,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22417,18 +22496,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23142,6 +23215,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23235,6 +23317,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25438,6 +25523,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26318,9 +26418,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27404,7 +27501,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28265,6 +28362,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28739,18 +28854,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29402,6 +29508,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29417,6 +29526,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29445,10 +29560,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29483,6 +29594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29492,13 +29609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30289,6 +30405,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32243,6 +32404,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32254,27 +32430,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/lo.po b/i18n/po/lo.po
index 31f6278..7c6658b 100644
--- a/i18n/po/lo.po
+++ b/i18n/po/lo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2009-09-15 10:06+0000\n"
 "Last-Translator: Anousone <Unknown>\n"
 "Language-Team: Lao <lo at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:54+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:09+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/lt.po b/i18n/po/lt.po
index 212c040..b526c68 100644
--- a/i18n/po/lt.po
+++ b/i18n/po/lt.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-07-27 07:42+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-17 19:20+0000\n"
 "Last-Translator: Aurimas Fišeras <Unknown>\n"
 "Language-Team: Lithuanian <lt at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "(n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:55+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:11+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: lt\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr "Fono naudojimo sąlygos"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Nuorodos atvėrimas dabartinėje platformoje nepalaikomas („{0}“)"
 
-msgid "ERROR: {0}"
-msgstr "KLAIDA: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ĮSPĖJIMAS: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFORMACIJA: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DERINIMAS: {0}"
-
-msgid "Cause: "
-msgstr "Priežastis: "
-
 msgid "Executing platform startup hook"
 msgstr "Vykdomas platformos paleidimas"
 
@@ -507,6 +492,12 @@ msgstr "Atsiųsti duomenis"
 msgid "Download notes in current view"
 msgstr "Atsiųsti pastabas dabartiniame rodinyje"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Parsiųsti objektą..."
 
@@ -523,7 +514,7 @@ msgid "Duplicate"
 msgstr "Dubliuoti"
 
 msgid "Duplicate selection."
-msgstr ""
+msgstr "Dubliuoti pažymėjimą."
 
 msgid "Exit"
 msgstr "Baigti"
@@ -675,7 +666,7 @@ msgid "Reverting changes"
 msgstr "Atstatomi pakeitimai"
 
 msgid "Removed duplicate nodes"
-msgstr "Pašalinti identiškus taškus"
+msgstr "Pašalinti dubliuotus taškus"
 
 msgid "Added node on all intersections"
 msgstr "Pridėti tašką visuose susikirtimuose"
@@ -1141,16 +1132,16 @@ msgid "Paste"
 msgstr "Įdėti"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Įdėti iškarpinės turinį."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Įdėti šaltinio pozicijoje"
 
 msgid "Paste contents of clipboard at the position they were copied from."
-msgstr ""
+msgstr "Įdėti iškarpinės turinį pozicijoje iš kurios nukopijuota."
 
 msgid "Paste Tags"
-msgstr "Įdėti žymes"
+msgstr "Įdėti žymas"
 
 msgid "Apply tags of contents of paste buffer to all selected items."
 msgstr "Pritaikyti iškarpinės turinio žymas visiems pažymėtiems objektams."
@@ -1417,8 +1408,7 @@ msgid "Split a way at the selected node."
 msgstr "Perskirti kelią ties parinktu tašku."
 
 msgid "Cannot split since another split operation is already in progress"
-msgstr ""
-"Negalima padalinti, nes šiuo metu vykdomas kitas padalinimo veiksmas."
+msgstr "Negalima padalinti, nes šiuo metu vykdomas kitas padalinimo veiksmas"
 
 msgid ""
 "The current selection cannot be used for splitting - no node is selected."
@@ -2126,6 +2116,15 @@ msgstr ""
 "Spauskite, kad ištrintumėte. Shift: naikinti kelio segmentą. Alt: netrinti "
 "nenaudojamų taškų trinant kelią. Ctrl: trinti susietus objektus."
 
+msgid "draw angle snap"
+msgstr "paišymo kampų pritraukimas"
+
+msgid "draw angle snap highlight"
+msgstr "paišymo kampų pritraukimo paryškinimas"
+
+msgid "helper line"
+msgstr "pagalbos eilutė"
+
 msgid "Draw"
 msgstr "Piešti"
 
@@ -2138,9 +2137,6 @@ msgstr "Režimas: paišymo kampo pritraukimas"
 msgid "Backspace in Add mode"
 msgstr "„Backspace“ klavišas pridėjimo veiksenoje"
 
-msgid "helper line"
-msgstr "pagalbos eilutė"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Negalima pridėti taško už pasaulio ribų."
 
@@ -2207,12 +2203,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "PATAISYTI"
 
-msgid "draw angle snap"
-msgstr "paišymo kampų pritraukimas"
-
-msgid "draw angle snap highlight"
-msgstr "paišymo kampų pritraukimo paryškinimas"
-
 msgid "Angle snapping"
 msgstr "Kampų pritraukimas"
 
@@ -2314,15 +2304,15 @@ msgstr[2] "Pridėti tašką į {0} kelių"
 msgid "Cannot delete node that has tags"
 msgstr "Negalima pašalinti taško, turinčio žymų"
 
+msgid "make parallel helper line"
+msgstr "lygiagrečių kūrimo pagalbinė linija"
+
 msgid "Parallel"
 msgstr "Lygiagretus"
 
 msgid "Make parallel copies of ways"
 msgstr "Kurti lygiagrečias kelių kopijas"
 
-msgid "make parallel helper line"
-msgstr "lygiagrečių kūrimo pagalbinė linija"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3841,9 +3831,6 @@ msgstr "Parametrui „+zone=...“ tikėtasi sveiko skaičiaus intervale 1-60"
 msgid "No unit found for: {0}"
 msgstr "Šiam nerasta vieneto: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parametras turi prasidėti „+“ simboliu (rasta „{0}“)"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Nežinomas parametras: „{0}“."
 
@@ -3853,6 +3840,9 @@ msgstr "Parametrui „{0}“ tikėtasi reikšmės."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Parametrui „{0}“ reikšmės nesitikėta."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parametras turi prasidėti „+“ simboliu (rasta „{0}“)"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Netikėtas parametro formatas („{0}“)"
 
@@ -5111,8 +5101,8 @@ msgid "Make sure you load some data if you use --selection."
 msgstr ""
 "Įsitikinkite, kad įkeliate kokius nors duomenis, jei naudojate --selection"
 
-msgid "Printing debugging messages to console"
-msgstr "Derinimo pranešimai rašomi į konsolę"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Priedų įkėlimas praleistas"
@@ -6377,6 +6367,9 @@ msgstr "Spauskite, kad uždarytumėte šį dialogą ir tęstumėte redagavimą"
 msgid "Conflicts detected"
 msgstr "Aptikti konfliktai"
 
+msgid "Resolve conflicts"
+msgstr "Išspręsti konfliktus"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Nutraukti konfliktų sprendimą ir uždaryti dialogą"
 
@@ -6409,9 +6402,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Konfliktai pilnai neišspręstas"
 
-msgid "Resolve conflicts"
-msgstr "Išspręsti konfliktus"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Išspręsti „{0}“ konfliktus"
 
@@ -6723,15 +6713,15 @@ msgid ""
 "Use positive numbers or N, E characters to indicate North or East cardinal "
 "direction."
 msgstr ""
-"Naudokite teigiamus skaičius arba N, E simbolius, kad nustatyti šiaurės arba "
-"rytų kryptį."
+"Naudokite teigiamus skaičius arba N, E simbolius šiaurės ar rytų krypčiai "
+"parodyti."
 
 msgid ""
 "For South and West cardinal directions you can use either negative numbers "
 "or S, W characters."
 msgstr ""
-"Pietų ir vakarų kryptims, jūs galite naudoti tiek neigiamus skaičius, tiek "
-"S, W simbolius."
+"Pietų ir vakarų kryptims, galite naudoti tiek neigiamus skaičius, tiek S, W "
+"simbolius."
 
 msgid "Coordinate value can be in one of three formats:"
 msgstr "Koordinatės vertė galima būti viename iš trijų formatų:"
@@ -7725,12 +7715,12 @@ msgstr "Rodyti/slėpti sluoksnį"
 msgid "Discardable key: selection Foreground"
 msgstr "Išmetamas raktas: pažymėjimo tekstas"
 
-msgid "Discardable key: selection Background"
-msgstr "Išmetamas raktas: pažymėjimo fonas"
-
 msgid "Discardable key: foreground"
 msgstr "Išmetamas raktas: tekstas"
 
+msgid "Discardable key: selection Background"
+msgstr "Išmetamas raktas: pažymėjimo fonas"
+
 msgid "Discardable key: background"
 msgstr "Išmetamas raktas: fonas"
 
@@ -9981,12 +9971,12 @@ msgstr "Iš viso pastabų:"
 msgid "Changes need uploading?"
 msgstr "Pakeitimus reikia įkelti?"
 
-msgid "Data Layer {0}"
-msgstr "Duomenų sluoksnis {0}"
-
 msgid "outside downloaded area"
 msgstr "už atsiųsto ploto ribų"
 
+msgid "Data Layer {0}"
+msgstr "Duomenų sluoksnis {0}"
+
 msgid "Merging layers"
 msgstr "Suliejami sluoksniai"
 
@@ -10508,6 +10498,9 @@ msgstr "Nėra vaizdų sluoksnių."
 msgid "No imagery layers"
 msgstr "Nėra vaizdų sluoksnių"
 
+msgid "gps point"
+msgstr "gps taškas"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10520,9 +10513,6 @@ msgstr "Kryptis"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps taškas"
-
 msgid "Import Audio"
 msgstr "Importuoti garsą"
 
@@ -11190,7 +11180,7 @@ msgid "Retrieving user info..."
 msgstr "Gaunama naudotojo informacija..."
 
 msgid "Expert mode"
-msgstr "Eksperto režimas"
+msgstr "Eksperto veiksena"
 
 msgid "Close the preferences dialog and discard preference updates"
 msgstr "Uždaryti nustatymų dialogą ir panaikinti visus pakeitimus"
@@ -12520,6 +12510,31 @@ msgstr "Konfigūruoti svetaines..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Konfigūruokite svetainių sąrašą iš kurių atsiunčiami papildiniai"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Pridėkite JOSM papildinių aprašo URL."
 
@@ -13703,9 +13718,6 @@ msgstr "<html>Neišeina perskaityti failų.<br>Klaida yra:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON failai"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Sluoksnis ''{0}'' nėra palaikomas"
 
@@ -13902,6 +13914,7 @@ msgstr ""
 msgid ""
 "Unexpected format of new version of modified primitive ''{0}''. Got ''{1}''."
 msgstr ""
+"Netikėtas naujos versijos modifikuoto primityvo „{0}“ formatas. Gauta „{1}“."
 
 msgid "Creating changeset..."
 msgstr "Kuriamas pakeitimas..."
@@ -14120,12 +14133,14 @@ msgid ""
 "Normalizing value of attribute ''version'' of element {0} to {2}, API "
 "version is ''{3}''. Got {1}."
 msgstr ""
+"Normalizuojama elemento {0} atributo „version“ reikšmė į {2}, API versija "
+"yra „{3}“. Gauta {1}."
 
 msgid "Unknown or unsupported API version. Got {0}."
 msgstr "Nežinoma arba nepalaikoma API versija. Gauta {0}."
 
 msgid "Missing attribute ''version'' on OSM primitive with ID {0}."
-msgstr ""
+msgstr "Primityvui su ID {0} trūksta atributo „version“."
 
 msgid ""
 "Illegal value for attribute ''changeset'' on new object {1}. Got {0}. "
@@ -14470,11 +14485,13 @@ msgid ""
 "Version ''{0}'' of meta data for geoimage layer is not supported. Expected: "
 "0.1"
 msgstr ""
+"Geovaizdo sluoksnio meta duomenų versija „{0}“ nepalaikoma. Tikėtasi: 0.1"
 
 msgid ""
 "Version ''{0}'' of meta data for gpx track layer is not supported. Expected: "
 "0.1"
 msgstr ""
+"GPX pėdsakų sluoksnio meta duomenų versija „{0}“ nepalaikoma. Tikėtasi: 0.1"
 
 msgid "File name expected for layer no. {0}"
 msgstr "Tikėtąsi failo vardo, sluoksniui nr. {0}"
@@ -14488,15 +14505,18 @@ msgstr ""
 msgid ""
 "Version ''{0}'' of meta data for marker layer is not supported. Expected: 0.1"
 msgstr ""
+"Žymeklių sluoksnio meta duomenų versija „{0}“ nepalaikoma. Tikėtasi: 0.1"
 
 msgid ""
 "Version ''{0}'' of meta data for note layer is not supported. Expected: 0.1"
 msgstr ""
+"Pastabų sluoksnio meta duomenų versija „{0}“ nepalaikoma. Tikėtasi: 0.1"
 
 msgid ""
 "Version ''{0}'' of meta data for osm data layer is not supported. Expected: "
 "0.1"
 msgstr ""
+"OSM duomenų sluoksnio meta duomenų versija „{0}“ nepalaikoma. Tikėtasi: 0.1"
 
 msgid "Session file (*.jos, *.joz)"
 msgstr "Seanso failas (*.jos, *.joz)"
@@ -14742,8 +14762,8 @@ msgstr[0] "Papildinys nebus įkeltas."
 msgstr[1] "Papildiniai nebus įkelti."
 msgstr[2] "Papildiniai nebus įkelti."
 
-msgid "Determine plugins to load..."
-msgstr "Nustatyti papildinius įkėlimui..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Šalinami pasenę papildiniai..."
@@ -15350,6 +15370,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Priežastis: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15387,7 +15410,7 @@ msgid "Update Java"
 msgstr "Atnaujinkite Java"
 
 msgid "You are running version {0} of Java."
-msgstr "Jūsų veikianti Java versija {0}."
+msgstr "Naudojate Java {0} versiją."
 
 msgid "April 2015"
 msgstr "2015 m. balandis"
@@ -15412,6 +15435,8 @@ msgid ""
 "A previous version of JOSM has installed a custom certificate in order to "
 "provide HTTPS support for Remote Control:"
 msgstr ""
+"Ankstesnė JOSM versija įdiegė savą liudijimą nuotolinio valdymo HTTPS "
+"palaikymui:"
 
 msgid ""
 "It appears it could be an important <b>security risk</b>.<br><br>You are now "
@@ -15584,6 +15609,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Pranešti apie klaidą"
 
+msgid "Suppress this error for this session."
+msgstr "Nerodyti šios klaidos šiame seanse."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Nerodyti kitų klaidos dialogų langų šiame seanse."
 
@@ -15604,7 +15632,7 @@ msgid "Include all stack traces."
 msgstr "Įtraukti dėklo pėdsakus."
 
 msgid "Your current version of JOSM is {0}"
-msgstr ""
+msgstr "Dabartinė JOSM versija yra {0}"
 
 msgid "JOSM is searching for updates..."
 msgstr ""
@@ -15615,7 +15643,7 @@ msgstr "Įvyko klaida tikrinant ar JOSM yra naujausios versijos."
 msgid "JOSM is up to date."
 msgstr "JOSM yra naujausios versijos."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16353,13 +16381,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16757,11 +16791,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Ženevos kantonas 5cm (SITG 2011)"
@@ -17146,6 +17180,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Įrankiai pastatų braižymui."
 
@@ -17376,6 +17415,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -17488,6 +17530,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18552,7 +18598,7 @@ msgid "Toll"
 msgstr "Mokestis"
 
 msgid "Intermittent"
-msgstr ""
+msgstr "Protarpinis"
 
 msgid "Seasonal"
 msgstr ""
@@ -18564,7 +18610,7 @@ msgid "culvert"
 msgstr ""
 
 msgid "Water access rules:"
-msgstr ""
+msgstr "Vandens prieigos taisyklės:"
 
 msgid "Ship"
 msgstr ""
@@ -19637,11 +19683,11 @@ msgstr "Lavinos apsauga"
 
 msgctxt "main group"
 msgid "Water"
-msgstr ""
+msgstr "Vanduo"
 
 msgctxt "sub group"
 msgid "Water"
-msgstr ""
+msgstr "Vanduo"
 
 msgid "Drain"
 msgstr "Drenažas"
@@ -19664,7 +19710,7 @@ msgstr "Šaltinis"
 msgid ""
 "A point where groundwater naturally flows to the surface of the earth from "
 "underground."
-msgstr ""
+msgstr "Taškas, kur gruntinis vanduo natūraliai išteka į paviršių."
 
 msgid "Waterfall"
 msgstr "Krioklys"
@@ -19687,18 +19733,36 @@ msgstr "Pralaida"
 msgid "Basin"
 msgstr "Kūdra"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Tvenkinys"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Uždengtas rezervuaras"
 
 msgctxt "natural"
 msgid "Water"
-msgstr ""
+msgstr "Vanduo"
 
 msgid "A body of standing water, such as a lake or pond."
-msgstr ""
+msgstr "Stovinčio vandens telkinys, pvz., ežeras ar tvenkinys."
 
 msgid "Water Body"
 msgstr "Vandens telkinys"
@@ -19724,18 +19788,24 @@ msgstr "rezervuaras"
 msgid "river"
 msgstr "upė"
 
-msgid "Salt Water"
+msgid "lock"
 msgstr ""
 
-msgid "Is the water body intermittent (disappears seasonally)?"
+msgid "wastewater"
 msgstr ""
 
+msgid "Salt Water"
+msgstr "Jūros vanduo"
+
+msgid "Is the water body intermittent (disappears seasonally)?"
+msgstr "Ar vandens telkinys protarpinis (sezoniškai išnyksta)?"
+
 msgid "Coastline"
 msgstr "Pakrantė"
 
 msgid ""
 "Line between the sea and land (with the water on the right side of the way)."
-msgstr ""
+msgstr "Riba tarp jūros ir žemės (su vandeniu dešinėje kelio pusėje)."
 
 msgid "Riverbank"
 msgstr "Upės pakrantė"
@@ -19744,7 +19814,7 @@ msgid "Wetland"
 msgstr "Pelkė"
 
 msgid "Waterlogged area, either permanently or seasonally with vegetation."
-msgstr ""
+msgstr "Užlietas plotas, visuomet arba sezoniškai su augalija."
 
 msgid "swamp"
 msgstr "pelkė"
@@ -19800,9 +19870,10 @@ msgstr "Įlanka"
 msgid ""
 "A large body of water partially enclosed by land but with a wide mouth."
 msgstr ""
+"Didelis vandens telkinys iš dalies apsuptas žemės bet su didelėmis žiotimis."
 
 msgid "Shipping"
-msgstr ""
+msgstr "Laivininkystė"
 
 msgid "Ferry Terminal"
 msgstr "Kelto terminalas"
@@ -20929,6 +21000,9 @@ msgstr "Pramogos/Pramogų parkas"
 msgid "Water Park"
 msgstr "Vandens parkas"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22536,10 +22610,10 @@ msgid "Street Lamp"
 msgstr "Gatvės žibintas"
 
 msgid "Monitoring Station"
-msgstr ""
+msgstr "Stebėjimų stotis"
 
 msgid "Monitoring:"
-msgstr ""
+msgstr "Stebima:"
 
 msgid "Water level"
 msgstr ""
@@ -23580,7 +23654,10 @@ msgstr "Jūrų gėrybės"
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -23832,7 +23909,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -23847,6 +23927,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -23862,6 +23945,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -23880,18 +23969,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23992,7 +24075,7 @@ msgid "Litecoin"
 msgstr ""
 
 msgid "Offices"
-msgstr ""
+msgstr "Biurai"
 
 msgctxt "office"
 msgid "Accountant"
@@ -24095,7 +24178,7 @@ msgid "Telecommunication"
 msgstr ""
 
 msgid "Craft"
-msgstr ""
+msgstr "Profesija"
 
 msgid "Carpenter"
 msgstr ""
@@ -24137,7 +24220,7 @@ msgid "Stonemason"
 msgstr ""
 
 msgid "Handicraft"
-msgstr ""
+msgstr "Rankų darbas"
 
 msgid "Pottery"
 msgstr ""
@@ -24612,6 +24695,15 @@ msgstr "Sodininkystės šiltnamis"
 msgid "Plant Nursery"
 msgstr "Augalų daigynas"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Sklypai"
 
@@ -24705,6 +24797,9 @@ msgstr "Oficialus pavadinimas"
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Namo numeris"
 
@@ -25768,7 +25863,7 @@ msgid "Warn on missing audio files"
 msgstr ""
 
 msgid "Warn on conversion errors"
-msgstr ""
+msgstr "Įspėti dėl konvertavimo klaidų"
 
 msgid "Error in line "
 msgstr ""
@@ -26932,6 +27027,21 @@ msgstr "Derinimas"
 msgid "Debugging mode will write images for each processing step."
 msgstr "Derinimo veiksena įrašys vaizdus kiekvienam apdorojimo žingsniui."
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Gatvės Pavadinimas:"
 
@@ -27569,6 +27679,8 @@ msgid ""
 "Unsupported cache file version; found {0}, expected {1}\n"
 "Create a new one."
 msgstr ""
+"Nepalaikoma podėlio failo versija; rasta {0}, tikėtasi {1}\n"
+"Sukurkite naują."
 
 msgid "Cache Format Error"
 msgstr ""
@@ -27756,7 +27868,7 @@ msgid "Activate continuous downloads at startup."
 msgstr ""
 
 msgid "Supress the default modal progress monitor when downloading."
-msgstr ""
+msgstr "Nerodyti numatytojo modalinio eigos lango atsiunčiant."
 
 msgid "Download Settings"
 msgstr ""
@@ -27821,9 +27933,8 @@ msgid ""
 "is selected there is no indication that something is being done, and no way "
 "to cancel the download."
 msgstr ""
-
-msgid "Address"
-msgstr ""
+"Nerodyti eigos lango, kuris rodomas atsiunčiant. Jei pažymėta, nėra "
+"indikacijos, kad kažkas yra daroma ir nėra būdo atsisakyti atsiuntimo."
 
 msgid "Split area"
 msgstr ""
@@ -28922,7 +29033,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28985,7 +29096,7 @@ msgid "Running Douglas-Peucker approximation..."
 msgstr ""
 
 msgid "Removing duplicate nodes..."
-msgstr ""
+msgstr "Pašalinti dubliuotus taškus..."
 
 msgid "Lakewalker trace"
 msgstr ""
@@ -29787,6 +29898,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Neteisingas pakeitimo id: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -30113,7 +30242,7 @@ msgid "Could not load module {0}. Delete from preferences?"
 msgstr "Nepavyko įkelti modulio {0}. Pašalinti iš nuostatų?"
 
 msgid "loading module ''{0}'' (version {1})"
-msgstr ""
+msgstr "įkeliamas modulis „{0}“ (versija {1})"
 
 msgid ""
 "<html>Could not load module {0} because the module<br>main class ''{1}'' was "
@@ -30172,6 +30301,8 @@ msgid ""
 "Warning: failed to install already downloaded module ''{0}''. Skipping "
 "installation. JOSM is still going to load the old module version."
 msgstr ""
+"Įspėjimas: nepavyko įdiegti atsiųsto modulio „{0}“. Diegimas praleidžiamas. "
+"JOSM vis tiek įkels seną modulio versiją."
 
 msgid ""
 "Warning: failed to install module ''{0}'' from temporary download file "
@@ -30273,18 +30404,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr "Neteisingas pakeitimo id: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -30936,6 +31058,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30951,6 +31076,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30979,10 +31110,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30992,6 +31119,7 @@ msgstr ""
 msgid ""
 "Check if route relations are compatible with public transport version 2"
 msgstr ""
+"Patikrinti ar maršruto ryšiai yra suderinami su viešojo transporto 2 versija"
 
 msgid "Fix error"
 msgstr ""
@@ -31017,6 +31145,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31026,13 +31160,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -31829,6 +31962,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Supaprastinti Sritį"
 
@@ -33086,7 +33264,7 @@ msgid "The required tag <tt>{0}={1}</tt> is missing."
 msgstr ""
 
 msgid "Add missing tag"
-msgstr "Pridėti trūkstamą žymę"
+msgstr "Pridėti trūkstamą žymą"
 
 msgid "Add the missing tag {0}={1}"
 msgstr "Pridėti trūkstamą žymę {0}={1}"
@@ -33173,7 +33351,7 @@ msgid "Add nodes at intersections"
 msgstr "Pridėti taškus susikirtimuose"
 
 msgid "Add missing nodes at intersections of selected ways."
-msgstr ""
+msgstr "Pridėti trūkstamus taškus pažymėtų kelių sankirtose."
 
 msgid "Please select one or more ways with intersections of segments."
 msgstr ""
@@ -33182,7 +33360,7 @@ msgid "Align Way Nodes"
 msgstr "Lygiuoti kelio taškus"
 
 msgid "Align nodes in a way"
-msgstr ""
+msgstr "Lygiuoti kelio taškus"
 
 msgid "The way with selected nodes can not be straightened."
 msgstr ""
@@ -33214,13 +33392,13 @@ msgstr "Įdėti ryšius"
 
 msgid ""
 "Paste relation membership from objects in the buffer onto selected object(s)"
-msgstr ""
+msgstr "Įdėti ryšių narystę iš objektų iškarpinėje pažymėtiems objektams"
 
 msgid "Split Object"
 msgstr "Perskirti objektą"
 
 msgid "Split an object at the selected nodes."
-msgstr ""
+msgstr "Perskiria objektą pažymėtuose taškuose."
 
 msgid "The current selection cannot be used for splitting."
 msgstr "Dabartinė parinktis negali būti panaudota perskyrimui."
@@ -33278,7 +33456,7 @@ msgstr "Atjungti ryšį"
 
 msgid ""
 "Duplicate nodes, ways and relations that are used by multiple relations."
-msgstr ""
+msgstr "Dubliuoti taškus, kelius ir ryšius, kurie yra naudojami kelių ryšių."
 
 msgid "UnGlue Relations"
 msgstr "Atjungti ryšius"
@@ -33311,7 +33489,7 @@ msgid "Open custom URL"
 msgstr "Atverti pritaikytą URL"
 
 msgid "Opens specified URL browser"
-msgstr ""
+msgstr "Atveria pritaikytą URL naršyklėje"
 
 msgid "Utilsplugin2 settings"
 msgstr "Utilsplugin2 nustatymai"
@@ -33373,15 +33551,37 @@ msgid ""
 "24.5</li><li>-49 29.4 N -19 24.5 W</li></ul><li>48 deg 42' 52.13\" N, 21 "
 "deg 11' 47.60\" E</li></ul>"
 msgstr ""
+"Įveskite koordinates naujiems taškams, po vieną eilutėje.<br/>Jei įvesite "
+"dvi eilutes su tomis pačiomis koordinatėmis, bus sugeneruoti dubliuoti "
+"taškai.<br/>Ilgumą ir platumą galite atskirti tarpu, kableliu ar "
+"kabliataškiu.<br/>Naudokite teigiamus skaičius arba N, E simbolius šiaurės "
+"ar rytų krypčiai.<br/>Pietų ir vakarų kryptims, galite naudoti tiek "
+"neigiamus skaičius, tiek S, W simbolius.<br/>Koordinatės reikšmė gali būti "
+"pateikta vienu iš trijų "
+"formatų:<ul><li><i>laipsniai</i><tt>°</tt></li><li><i>laipsniai</i><tt>&d"
+"eg;</tt> <i>minutės</i><tt>'</tt></li><li><i>laipsniai</i><tt>°</tt> "
+"<i>minutės</i><tt>'</tt> "
+"<i>sekundės</i><tt>&quot</tt></li></ul>Simboliai <tt>°</tt>, "
+"<tt>'</tt>, <tt>′</tt>, <tt>"</tt>, <tt>″</tt> yra "
+"neprivalomi.<br/><br/>Keletas pavyzdžių:<ul><li>49.29918° "
+"19.24788°</li><li>N 49.29918 E 19.24788</li><li>W 49°29.918' S "
+"19°24.788'</li><li>N 49°29'04" E "
+"19°24'43"</li><li>49.29918 N, 19.24788 "
+"E</li><li>49°29'21" N 19°24'38" E</li><li>49 29 "
+"51, 19 24 18</li><li>49 29, 19 24</li><li>E 49 29, N 19 24</li><li>49° "
+"29; 19° 24</li><li>N 49° 29, W 19° 24</li><li>49° 29.5 S, "
+"19° 24.6 E</li><li>N 49 29.918 E 19 15.88</li><li>49 29.4 19 "
+"24.5</li><li>-49 29.4 N -19 24.5 W</li></ul><li>48 deg 42' 52.13\" N, 21 "
+"deg 11' 47.60\" E</li></ul>"
 
 msgid "Tag multiple objects [alpha]"
-msgstr ""
+msgstr "Keisti žymas keliems objektams [alfa]"
 
 msgid "Edit tags of object list in table"
 msgstr "Keisti objektų sąrašo lentelėje žymas"
 
 msgid "Tag multiple objects"
-msgstr ""
+msgstr "Keisti žymas keliems objektams"
 
 msgid "Sync with JOSM selection"
 msgstr ""
@@ -33542,6 +33742,8 @@ msgid ""
 "Nothing found. Please select some closed ways or multipolygons to find all "
 "primitives inside them!"
 msgstr ""
+"Nieko nerasta. Pažymėkite uždarus kelius ar multipoligonus visiems "
+"primityvams juose rasti!"
 
 msgid "Area boundary [testing]"
 msgstr "Ploto riba [testuojama]"
@@ -33558,7 +33760,7 @@ msgid "Select Highway"
 msgstr "Pažymėti greitkelį"
 
 msgid "Select highway for the name/ref given"
-msgstr ""
+msgstr "Pažymėti greitkelį su nustatyta name/ref reikšme"
 
 msgid "Please select one or two ways for this action"
 msgstr ""
@@ -33808,17 +34010,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr ""
 
@@ -33828,12 +34019,6 @@ msgstr ""
 "Ištraukiami interwiki ryšiai iš Wikipedijos, kad galima būtų pridėti kelias "
 "pavadinimų žymas"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -33842,6 +34027,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr ""
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Ištraukti Wikipedijos straipsnius su koordinatėmis"
 
diff --git a/i18n/po/lv.po b/i18n/po/lv.po
index d9a9685..b2958da 100644
--- a/i18n/po/lv.po
+++ b/i18n/po/lv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2012-10-03 22:16+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: Latvian <lv at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:55+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:10+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: lv\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -487,6 +472,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Lejupielādēt objektu..."
 
@@ -1972,6 +1963,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1984,9 +1984,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2052,12 +2049,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2148,13 +2139,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3515,9 +3506,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3527,6 +3515,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4736,7 +4727,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5886,6 +5877,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5913,9 +5907,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7136,10 +7127,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9143,10 +9134,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9626,6 +9617,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9638,9 +9632,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11430,6 +11421,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12517,9 +12533,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13496,7 +13509,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13962,6 +13975,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14158,6 +14174,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14189,7 +14208,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14923,13 +14942,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15325,10 +15350,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15714,6 +15739,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15937,6 +15967,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16042,6 +16075,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18239,9 +18276,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18276,6 +18331,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19481,6 +19542,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22132,7 +22196,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22384,7 +22451,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22399,6 +22469,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22414,6 +22487,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22432,18 +22511,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23157,6 +23230,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23250,6 +23332,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25453,6 +25538,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26333,9 +26433,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27419,7 +27516,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28280,6 +28377,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28754,18 +28869,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29417,6 +29523,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29432,6 +29541,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29460,10 +29575,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29498,6 +29609,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29507,13 +29624,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30304,6 +30420,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32258,6 +32419,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32269,27 +32445,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/mk.po b/i18n/po/mk.po
index 33e8328..d6c78b8 100644
--- a/i18n/po/mk.po
+++ b/i18n/po/mk.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2013-05-11 04:37+0000\n"
 "Last-Translator: Bojan Jankuloski <bojan.jankuloski at gmail.com>\n"
 "Language-Team: Macedonian <mk at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:56+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:13+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: mk\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Услови на употреба на позадината"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Отворањето на врски не е поддржано во тековната подлога (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr "ПРЕДУПРЕДУВАЊЕ: {0}"
-
-msgid "INFO: {0}"
-msgstr "ИНФО: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "ПОШТЕЊЕ: {0}"
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr "Ја извршувам на подготвителната постапка"
 
@@ -485,6 +470,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1964,6 +1955,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1976,9 +1976,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2044,12 +2041,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2140,13 +2131,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3507,9 +3498,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3519,6 +3507,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4729,7 +4720,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5879,6 +5870,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5906,9 +5900,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7129,10 +7120,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9136,10 +9127,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9619,6 +9610,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9631,9 +9625,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11423,6 +11414,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12511,9 +12527,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13486,7 +13499,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13952,6 +13965,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14148,6 +14164,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14179,7 +14198,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14913,13 +14932,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15315,10 +15340,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15704,6 +15729,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15927,6 +15957,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16032,6 +16065,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18229,9 +18266,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18266,6 +18321,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19471,6 +19532,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22122,7 +22186,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22374,7 +22441,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22389,6 +22459,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22404,6 +22477,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22422,18 +22501,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23147,6 +23220,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23240,6 +23322,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25443,6 +25528,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26323,9 +26423,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27409,7 +27506,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28270,6 +28367,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28744,18 +28859,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29407,6 +29513,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29422,6 +29531,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29450,10 +29565,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29488,6 +29599,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29497,13 +29614,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30294,6 +30410,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32248,6 +32409,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32259,27 +32435,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/mr.po b/i18n/po/mr.po
index 74d2473..cf44cf5 100644
--- a/i18n/po/mr.po
+++ b/i18n/po/mr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-05-24 23:45+0000\n"
 "Last-Translator: Singleton <singleton47+ubuntuone at live.com>\n"
 "Language-Team: Marathi <mr at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:57+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:14+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: mr\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "पार्श्वभूमि वापरावयाच्या 
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr "ताकीद: {0}"
-
-msgid "INFO: {0}"
-msgstr "सूचना: {0}"
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr "कारण: "
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -489,6 +474,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1988,6 +1979,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr "मदतनीस रेष"
+
 msgid "Draw"
 msgstr "रेखाटा"
 
@@ -2000,9 +2000,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr "मदतनीस रेष"
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2068,12 +2065,6 @@ msgstr "०,३०,४५,६०,९०,..."
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2164,15 +2155,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
+msgid "make parallel helper line"
+msgstr "समांतर मदतनीस रेष बनवा"
+
 msgid "Parallel"
 msgstr "समांतर"
 
 msgid "Make parallel copies of ways"
 msgstr "मार्गांच्या समांतर प्रती बनवा"
 
-msgid "make parallel helper line"
-msgstr "समांतर मदतनीस रेष बनवा"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3532,9 +3523,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "अज्ञात प्रमाणक: ''{0}''."
 
@@ -3544,6 +3532,9 @@ msgstr "प्रमाणक ''{0}'' साठी मूल्य अपेक
 msgid "No value expected for parameter ''{0}''."
 msgstr "प्रमाणक ''{0}'' साठी मूल्य अनपेक्षित."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "अनपेक्षित प्रमाणक प्रारूप (''{0}'')"
 
@@ -4754,7 +4745,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5904,6 +5895,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5931,9 +5925,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7154,10 +7145,10 @@ msgstr "थर दाखवा/लपवा"
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9161,10 +9152,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9654,6 +9645,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9666,9 +9660,6 @@ msgstr "दिशा"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11459,6 +11450,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12546,9 +12562,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13521,7 +13534,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13987,6 +14000,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "कारण: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14183,6 +14199,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14214,7 +14233,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14948,13 +14967,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15350,10 +15375,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15739,6 +15764,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15962,6 +15992,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16067,6 +16100,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18264,9 +18301,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18301,6 +18356,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19506,6 +19567,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22157,7 +22221,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22409,7 +22476,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22424,6 +22494,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22439,6 +22512,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22457,18 +22536,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23182,6 +23255,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23275,6 +23357,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25478,6 +25563,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26358,9 +26458,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27444,7 +27541,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28305,6 +28402,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28779,18 +28894,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29442,6 +29548,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29457,6 +29566,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29485,10 +29600,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29523,6 +29634,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29532,13 +29649,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30329,6 +30445,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32283,6 +32444,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32294,27 +32470,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ms.po b/i18n/po/ms.po
index 63c690a..2c9cb29 100644
--- a/i18n/po/ms.po
+++ b/i18n/po/ms.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-12-11 22:14+0000\n"
 "Last-Translator: abuyop <Unknown>\n"
 "Language-Team: Malay <ms at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:58+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:15+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ms\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/nb.po b/i18n/po/nb.po
index 1f75372..30185aa 100644
--- a/i18n/po/nb.po
+++ b/i18n/po/nb.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2015-11-28 16:18+0000\n"
-"Last-Translator: Magnus Meyer Hustveit <Unknown>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-20 10:10+0000\n"
+"Last-Translator: Thor K. H. <nitrolinken at gmail.com>\n"
 "Language-Team: Norwegian Bokmal <nb at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:59+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:17+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: nb\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -50,25 +50,10 @@ msgid "Invalid value {0} for parameter ''has_arg''"
 msgstr "Ugyldig verdi {0} for parameter ''has_arg''"
 
 msgid "Background Terms of Use"
-msgstr ""
+msgstr "Vilkår for bakgrunnskart"
 
 msgid "Opening link not supported on current platform (''{0}'')"
-msgstr "Åpning av lenke er ikke støttet på denne platformen (''{0}'')"
-
-msgid "ERROR: {0}"
-msgstr "FEIL: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ADVARSEL: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "FEILSØKING: {0}"
-
-msgid "Cause: "
-msgstr "Grunn: "
+msgstr "Åpning av lenke er ikke støttet på denne plattformen (''{0}'')"
 
 msgid "Executing platform startup hook"
 msgstr "Kjører plattformavhengig oppstartskode"
@@ -83,13 +68,13 @@ msgid "Initializing OSM API"
 msgstr "Starter OSM API"
 
 msgid "Initializing validator"
-msgstr ""
+msgstr "Laster inn kontrollør"
 
 msgid "Initializing presets"
-msgstr ""
+msgstr "Laster inn forhåndsdefinisjoner"
 
 msgid "Initializing map styles"
-msgstr ""
+msgstr "Laster inn stilkart"
 
 msgid "Loading imagery preferences"
 msgstr "Laster bildeinstillinger"
@@ -98,7 +83,7 @@ msgid "Updating user interface"
 msgstr "Oppdaterer brukergrensesnitt"
 
 msgid "Failed to save default preferences."
-msgstr ""
+msgstr "Feilet under lagring av standardinnstillinger."
 
 msgid "Ignoring malformed URL: \"{0}\""
 msgstr "Overser feilutformet URL: «{0}»"
@@ -128,7 +113,7 @@ msgid "Last change at {0}"
 msgstr "Siste endring på {0}"
 
 msgid "Java Version {0}"
-msgstr "Java versjon {0}"
+msgstr "Java-versjon {0}"
 
 msgid "Homepage"
 msgstr "Hjemmeside"
@@ -152,13 +137,13 @@ msgid "Plugins"
 msgstr "Programtillegg"
 
 msgid "About JOSM..."
-msgstr "Om JOSM"
+msgstr "Om JOSM..."
 
 msgid "OK"
 msgstr "OK"
 
 msgid "Report bug"
-msgstr "Raporter feil"
+msgstr "Rapportér feil"
 
 msgid "Failed to locate resource ''{0}''."
 msgstr "Klarte ikke å finne ressursen \"{0}\"."
@@ -197,7 +182,7 @@ msgid "Please select at least one already uploaded node, way, or relation."
 msgstr "Velg minst én allerede opplastet node, linje eller relasjon."
 
 msgid "Please select the target layer."
-msgstr "Venligst velg mållaget."
+msgstr "Vennligst velg mållaget."
 
 msgid "Select target layer"
 msgstr "Velg mållag."
@@ -244,13 +229,13 @@ msgid "WMS Error"
 msgstr "WMS-feil"
 
 msgid "Could not retrieve WMS layer list."
-msgstr "Kunne ikke hente liste med WMS-lag"
+msgstr "Kunne ikke hente liste med WMS-lag."
 
 msgid "Could not parse WMS layer list."
-msgstr "Kunne ikke tolke liste med WMS-lag"
+msgstr "Kunne ikke tolke liste med WMS-lag."
 
 msgid "Add Node..."
-msgstr "Legg til node …"
+msgstr "Legg til node…"
 
 msgid "Add a node by entering latitude / longitude or easting / northing."
 msgstr ""
@@ -270,7 +255,7 @@ msgid "Tool: {0}"
 msgstr "Verktøy: {0}"
 
 msgid "Not enough nodes in selected ways."
-msgstr ""
+msgstr "Ikke nok noder i valgte linjer."
 
 msgid "Please select at least four nodes."
 msgstr "Velg minst fire noder."
@@ -297,10 +282,10 @@ msgid "Can not align a polygon. Abort."
 msgstr ""
 
 msgid "Intersection of three or more ways can not be solved. Abort."
-msgstr ""
+msgstr "Krysning av tre eller flere veier kan ikke løses. Avbryter."
 
 msgid "Two parallels ways found. Abort."
-msgstr ""
+msgstr "To parallelle veier funnet. Avbryter."
 
 msgid "data"
 msgstr "data"
@@ -318,7 +303,7 @@ msgid "download"
 msgstr "last ned"
 
 msgid "problem"
-msgstr ""
+msgstr "problem"
 
 msgid "previous"
 msgstr "forrige"
@@ -327,7 +312,7 @@ msgid "next"
 msgstr "neste"
 
 msgid "Nothing selected to zoom to."
-msgstr "Inet utvalg å vise."
+msgstr "Intet utvalg å vise nærmere."
 
 msgid "Information"
 msgstr "Informasjon"
@@ -345,16 +330,16 @@ msgid "No conflicts to zoom to"
 msgstr "Ingen konflikter å vise."
 
 msgid "Changeset Manager"
-msgstr ""
+msgstr "Behandling av endringssett"
 
 msgid "Toggle visibility of Changeset Manager window"
-msgstr ""
+msgstr "Bytt synligheten til vinduet for endringssettbehandling"
 
 msgid "Close open changesets"
-msgstr "Steng åpent endringsset"
+msgstr "Lukk åpne endringssett"
 
 msgid "Closes open changesets"
-msgstr "Stenger åpent endringsset"
+msgstr "Lukker åpne endringssett"
 
 msgid "File: {0}"
 msgstr "Fil: {0}"
@@ -437,10 +422,10 @@ msgid "Those nodes are not in a circle. Aborting."
 msgstr "Disse nodene er ikke i en sirkel. Avbryter."
 
 msgid "Update multipolygon"
-msgstr ""
+msgstr "Oppdater multipolygon"
 
 msgid "Create multipolygon"
-msgstr ""
+msgstr "Opprett multipolygon"
 
 msgid "No data loaded."
 msgstr "Ingen data lastet inn."
@@ -455,16 +440,17 @@ msgid "Delete selected objects."
 msgstr "Slett valgte objekter."
 
 msgid "Delete Layer"
-msgstr ""
+msgstr "Fjern lag"
 
 msgid "Delete the active layer. Does not delete the associated file."
-msgstr ""
+msgstr "Fjern det aktive laget. Sletter ikke den tilknyttede kildefilen."
 
 msgid "Toggle dialogs panel"
-msgstr ""
+msgstr "Slå dialogpanelet av/på"
 
 msgid "Toggle dialogs panel, maximize mapview"
 msgstr ""
+"Veksler mellom å vise dialogpanelet, for å kunne maksimere kartvisningen"
 
 msgid "Distribute Nodes"
 msgstr "Fordel Noder"
@@ -473,13 +459,16 @@ msgid "Distribute the selected nodes to equal distances along a line."
 msgstr "Fordel valgte noder med lik avstand etter en linje."
 
 msgid "Ignoring {0} nodes with null coordinates"
-msgstr ""
+msgstr "Ignorerer {0} noder med null-koordinater"
 
 msgid ""
 "Please select :\n"
 "* One no self-crossing way with at most two of its nodes;\n"
 "* Three nodes."
 msgstr ""
+"Vennligst velg enten eller:\n"
+"* Én ikke-selvkryssende vei med minimum to av dens noder;\n"
+"* Tre noder"
 
 msgid "Download from OSM..."
 msgstr "Last ned fra OSM …"
@@ -498,7 +487,13 @@ msgid "Download data"
 msgstr "Last ned data"
 
 msgid "Download notes in current view"
-msgstr ""
+msgstr "Last ned notater innen nåværende visningsområde"
+
+msgid "Download in current view"
+msgstr "Last ned i nåværende visning"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Last ned kartdata fra OSM-tjeneren i den nåværende visningen"
 
 msgid "Download object..."
 msgstr "Last ned objekt..."
@@ -510,13 +505,13 @@ msgid "Download parent ways/relations..."
 msgstr "Last ned overordnede linjer/relasjoner …"
 
 msgid "Download objects referring to one of the selected objects"
-msgstr ""
+msgstr "Last ned objekter referert til ett av de valgte objektene"
 
 msgid "Duplicate"
 msgstr "Fordoble"
 
 msgid "Duplicate selection."
-msgstr ""
+msgstr "Dupliser utvalg."
 
 msgid "Exit"
 msgstr "Avslutt"
@@ -531,13 +526,13 @@ msgid "Enable/disable expert mode"
 msgstr "Slå på/av ekspertmodus"
 
 msgid "Follow line"
-msgstr ""
+msgstr "Følg linje"
 
 msgid "Continues drawing a line that shares nodes with another line."
-msgstr ""
+msgstr "Fortsetter å tegne en linje som deler noder med en annen linje."
 
 msgid "Follow"
-msgstr ""
+msgstr "Følg"
 
 msgid "Fullscreen view"
 msgstr "Fullskjermsvisning"
@@ -575,7 +570,7 @@ msgid ""
 msgstr "Vis historikk for linjer, noder eller relasjoner i nettleser."
 
 msgid "New offset"
-msgstr ""
+msgstr "Ny forskyvning"
 
 msgid "Adjust the position of this imagery layer"
 msgstr "Juster posisjonen til dette bildelaget"
@@ -633,19 +628,19 @@ msgstr "Velg minst én lukket linje som skal sammenføyes."
 
 msgid ""
 "One of the selected ways is not closed and therefore cannot be joined."
-msgstr ""
+msgstr "En av de valgte veien er ikke lukket og kan derfor ikke sammenslås."
 
 msgid "Join area confirmation"
-msgstr ""
+msgstr "Bekreftelse for sammenslåing"
 
 msgid "The selected way has nodes outside of the downloaded data region."
 msgid_plural ""
 "The selected ways have nodes outside of the downloaded data region."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Den valgte veien har noder utenfor det nedlastede dataområdet."
+msgstr[1] "De valgte veiene har noder utenfor det nedlastede dataområdet."
 
 msgid "This can lead to nodes being deleted accidentally."
-msgstr ""
+msgstr "Dette kan føre uheldig sletting av noder."
 
 msgid "Are you really sure to continue?"
 msgstr "Vil du virkelig fortsette?"
@@ -654,7 +649,7 @@ msgid "Please abort if you are not sure"
 msgstr "Angre hvis du er usikker"
 
 msgid "The selected area is incomplete. Continue?"
-msgstr ""
+msgstr "Valgt område er ufullstendig. Fortsette?"
 
 msgid "No intersection found. Nothing was changed."
 msgstr "Fant ingen skjæring. Ingen endringer ble gjort."
@@ -663,10 +658,10 @@ msgid "Move tags from ways to relations"
 msgstr "Flytt egenskaper fra linjer til relasjoner"
 
 msgid "Reverting changes"
-msgstr ""
+msgstr "Tilbakestiller endringer"
 
 msgid "Removed duplicate nodes"
-msgstr ""
+msgstr "Fjernet duplikatnoder"
 
 msgid "Added node on all intersections"
 msgstr "Noder er lagt til i alle skjæringspunkt"
@@ -687,28 +682,37 @@ msgid ""
 "Some of the ways were part of relations that have been modified.<br>Please "
 "verify no errors have been introduced."
 msgstr ""
+"Noen av veiene var deler av relasjoner som har blitt endret.<br>Verifiser at "
+"ingen feiler har blitt introdusert."
 
 msgid "Fix tag conflicts"
 msgstr "Reparer konflikter i egenskaper."
 
 msgid "Split ways into fragments"
-msgstr ""
+msgstr "Del veier inn i mindre fragmenter"
 
 msgid "Sorry. Cannot handle multipolygon relations with multiple outer ways."
 msgstr ""
+"Beklager. Kan ikke behandle multipolygon-relasjoner med flere ytre veier."
 
 msgid ""
 "Sorry. Cannot handle way that is outer in multiple multipolygon relations."
 msgstr ""
+"Beklager. Kan ikke behandle en ytre (\"outer\") vei i flere multipolygon-"
+"relasjoner."
 
 msgid ""
 "Sorry. Cannot handle way that is both inner and outer in multipolygon "
 "relations."
 msgstr ""
+"Beklager. Kan ikke behandle en vei som er både indre (\"inner\") og ytre "
+"(\"outer\") vei i multipolygon-relasjoner."
 
 msgid ""
 "Sorry. Cannot handle way that is inner in multiple multipolygon relations."
 msgstr ""
+"Beklager. Kan ikke behandler en vei som er den indre (\"inner\") veien i "
+"flere multipolygon-relasjoner."
 
 msgid "Removed Element from Relations"
 msgstr "Fjernede Element fra Relasjoner"
@@ -723,13 +727,13 @@ msgid "Join Node to Way"
 msgstr "Inkluder node i linje"
 
 msgid "Include a node into the nearest way segments"
-msgstr ""
+msgstr "Inkludér en node inn i nærmeste veisegment"
 
 msgid "Move Node onto Way"
-msgstr ""
+msgstr "Flytt node til vei"
 
 msgid "Move the node onto the nearest way segments and include it"
-msgstr ""
+msgstr "Flytt noden til det nærmeste veisegmentet og inkludér den"
 
 msgid "No Shortcut"
 msgstr "Ingen hurtigtast"
@@ -771,25 +775,25 @@ msgid "Unable to parse Lon/Lat"
 msgstr "Kunne ikke tolke Lat / Lon"
 
 msgid "Lasso Mode"
-msgstr ""
+msgstr "Lassomodus"
 
 msgid "Lasso selection mode: select objects within a hand-drawn region"
-msgstr ""
+msgstr "Lasso-utvalgsmodus: velg objekter inne i en håndtegnet region"
 
 msgid "Rectified Image..."
 msgstr "Ortografisk korrekt bilde …"
 
 msgid "Download Rectified Images From Various Services"
-msgstr ""
+msgstr "Last ned korrigerte bilder fra diverse tjenester"
 
 msgid "Imagery: {0}"
-msgstr ""
+msgstr "Bilde: {0}"
 
 msgid "Custom WMS Link"
 msgstr "Selvvalgt WMS-adresse"
 
 msgid "Supported Rectifier Services:"
-msgstr ""
+msgstr "Støttede korreksjonstjenester:"
 
 msgid "Visit Homepage"
 msgstr "Gå til hjemmeside"
@@ -798,7 +802,7 @@ msgid "WMS URL or Image ID:"
 msgstr "WMS-URL eller bilde-ID:"
 
 msgid "Add Rectified Image"
-msgstr ""
+msgstr "Legg til korrigert bilde"
 
 msgid ""
 "Couldn''t match the entered link or id to the selected service. Please try "
@@ -815,7 +819,7 @@ msgid "Merge the current layer into another layer"
 msgstr "Flett det gjeldende laget inn i et annet lag"
 
 msgid "Merging layers with different upload policies"
-msgstr ""
+msgstr "Fletter lag med forskjellige opplastningspoliser"
 
 msgid ""
 "You are about to merge data between layers ''{0}'' and ''{1}''.<br /><br "
@@ -828,7 +832,7 @@ msgid ""
 msgstr ""
 
 msgid "Ignore this hint and merge anyway"
-msgstr ""
+msgstr "Ignorér hintet og flett sammen likevel"
 
 msgid "Merge Nodes"
 msgstr "Samle noder"
@@ -842,28 +846,31 @@ msgid ""
 msgstr ""
 
 msgid "Abort Merging"
-msgstr ""
+msgstr "Avbryt fletting"
 
 msgid "Click to abort merging nodes"
-msgstr ""
+msgstr "Velg for å avbryte flettingen av noder"
 
 msgid ""
 "Cannot merge nodes: Would have to delete way {0} which is still used by {1}"
 msgstr ""
+"Kan ikke flette noder: må i så fall slette vei {0} som fortsatt er i bruk av "
+"{1}"
 
 msgid "Merge {0} node"
 msgid_plural "Merge {0} nodes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Flett {0} node"
+msgstr[1] "Flett {0} noder"
 
 msgid "Merge selection"
 msgstr "Flett utvalgte"
 
 msgid "Merge the currently selected objects into another layer"
-msgstr ""
+msgstr "Flett valgte objekter sammen med et annet lag"
 
 msgid "Merging too many objects with different upload policies"
 msgstr ""
+"Fletter sammen for mange objekter med forskjellige opplastningsvilkår"
 
 msgid ""
 "You are about to merge more than 1 object between layers ''{0}'' and "
@@ -906,7 +913,7 @@ msgid "Cannot move objects outside of the world."
 msgstr "Kan ikke flytte objekter utenfor kartet."
 
 msgid "Move Node..."
-msgstr "Flytt Node..."
+msgstr "Flytt node..."
 
 msgid "Edit latitude and longitude of a node."
 msgstr "Endre koordinatene til en node."
@@ -918,7 +925,7 @@ msgid "Create a new map layer."
 msgstr "Opprett et nytt kartlag."
 
 msgid "URL Files"
-msgstr ""
+msgstr "URL-filer"
 
 msgid "Open..."
 msgstr "Åpne …"
@@ -944,7 +951,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "no importer"
-msgstr ""
+msgstr "ingen importør"
 
 msgid "does not exist"
 msgstr "finnes ikke"
@@ -997,10 +1004,10 @@ msgid "Download Data"
 msgstr "Laster ned data"
 
 msgid "Which tasks to perform?"
-msgstr ""
+msgstr "Hvilke oppgaver skal utføres?"
 
 msgid "Ok"
-msgstr ""
+msgstr "OK"
 
 msgid ""
 "Cannot open URL ''{0}''<br>The following download tasks accept the URL "
@@ -1022,13 +1029,13 @@ msgid "Move nodes so all angles are 90 or 180 degrees"
 msgstr "Flytt noder slik at alle vinkler er 90 eller 180 grader"
 
 msgid "Orthogonalize Shape / Undo"
-msgstr ""
+msgstr "Vinkelkorriger form / Angre"
 
 msgid "Undo orthogonalization for certain nodes"
-msgstr ""
+msgstr "Angre vinkelkorreksjon av visse noder"
 
 msgid "Orthogonalize / Undo"
-msgstr ""
+msgstr "Vinkelkorriger / Angre"
 
 msgid ""
 "Orthogonalize Shape / Undo<br>Please select nodes that were moved by the "
@@ -1059,49 +1066,49 @@ msgid "Please select ways with angles of approximately 90 or 180 degrees."
 msgstr "Vennligst velg linjer med vinkler på omtrent 90 eller 180 grader."
 
 msgid "Download from Overpass API ..."
-msgstr ""
+msgstr "Last ned fra Overpass API-en..."
 
 msgid "Download map data from Overpass API server."
-msgstr ""
+msgstr "Last ned kartdata fra API-tjeneren til Overpass."
 
 msgid "Builds an Overpass query using the Overpass Turbo query wizard"
-msgstr ""
+msgstr "Bygger en Overpass-spørring med Overpass Turbo-veilederen"
 
 msgid "Build query"
-msgstr ""
+msgstr "Bygg spørring"
 
 msgid "<html>The Overpass wizard could not parse the following query:"
 msgstr ""
 
 msgid "Parse error"
-msgstr ""
+msgstr "Tolkningsfeil"
 
 msgid "Overpass query: "
-msgstr ""
+msgstr "Overpass-spørring: "
 
 msgid "Paste"
 msgstr "Lim inn"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Lim inn utklippstavlens innhold."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Lim inn på kildeposisjon"
 
 msgid "Paste contents of clipboard at the position they were copied from."
-msgstr ""
+msgstr "Lim inn utklippstavlens innhold der det var kopiert fra."
 
 msgid "Paste Tags"
 msgstr "Lim inn egenskaper"
 
 msgid "Apply tags of contents of paste buffer to all selected items."
-msgstr "Bruk egenskaper i utklippstavla på alle valgte element."
+msgstr "Bruk egenskaper i utklippstavlen på alle valgte elementer."
 
 msgid "Preferences..."
 msgstr "Innstillinger …"
 
 msgid "Open a preferences dialog for global settings."
-msgstr ""
+msgstr "Åpne dialogvinduet for globale innstillinger."
 
 msgid "Preferences"
 msgstr "Innstillinger"
@@ -1134,7 +1141,7 @@ msgstr ""
 "objektene:"
 
 msgid "Add to selection"
-msgstr ""
+msgstr "Legg til i utvalg"
 
 msgid ""
 "Some of the objects are modified.<br> Proceed, if these changes should be "
@@ -1144,7 +1151,7 @@ msgstr ""
 "fortsette.</html>"
 
 msgid "Clear Undo/Redo buffer"
-msgstr ""
+msgstr "Tilbakestill Angre/Gjør om-bufferen"
 
 msgid "Redo"
 msgstr "Gjør om"
@@ -1153,10 +1160,10 @@ msgid "Redo the last undone action."
 msgstr "Gjør om siste angrede handling."
 
 msgid "Redo ..."
-msgstr ""
+msgstr "Gjør om..."
 
 msgid "Redo {0}"
-msgstr ""
+msgstr "Gjør om {0}"
 
 msgid "Rename layer"
 msgstr "Endre navn på lag"
@@ -1168,7 +1175,7 @@ msgid "Could not rename file ''{0}''"
 msgstr "Kunne ikke endre filnavn \"{0}\""
 
 msgid "Report a ticket to JOSM bugtracker"
-msgstr ""
+msgstr "Rapportér en feilmelding til JOSMs feilsporer"
 
 msgid "Restart"
 msgstr "Start JOSM på nytt"
@@ -1213,19 +1220,19 @@ msgid "Save the current data to a new file."
 msgstr "Lagre aktive data i ny fil."
 
 msgid "Search Notes..."
-msgstr ""
+msgstr "Søk notater..."
 
 msgid "Download notes from the note search API"
-msgstr ""
+msgstr "Last ned notater fra API-en for notatsøking"
 
 msgid "Search the OSM API for notes containing words:"
-msgstr ""
+msgstr "Søk gjennom OSMs API for notater som inneholder ordene:"
 
 msgid "Search for notes"
-msgstr ""
+msgstr "Søk etter notater"
 
 msgid "You must enter a search term"
-msgstr ""
+msgstr "Du må skrive inn søketekst"
 
 msgid "Select All"
 msgstr "Velg alt"
@@ -1255,7 +1262,7 @@ msgid "Loading session ''{0}''"
 msgstr "Åpner økt \"{0}\""
 
 msgid "Data Error"
-msgstr ""
+msgstr "Datafeil"
 
 msgid "IO Error"
 msgstr "I/U-feil"
@@ -1386,7 +1393,7 @@ msgid " [id: {0}]"
 msgstr " [id: {0}]"
 
 msgid "Segment {0}: {1}"
-msgstr ""
+msgstr "Segment {0}: {1}"
 
 msgid "You must select two or more nodes to split a circular way."
 msgstr "Velg to eller flere noder for å splitte sirkelformet linje."
@@ -1476,28 +1483,28 @@ msgstr ""
 "kopier og alle noder bli valgt."
 
 msgid "Existing node"
-msgstr ""
+msgstr "Eksisterende node"
 
 msgid "Both nodes"
-msgstr ""
+msgstr "Begge noder"
 
 msgid "New node"
-msgstr ""
+msgstr "Ny node"
 
 msgid "Tags / Memberships"
-msgstr ""
+msgstr "Egenskaper / Medlemskap"
 
 msgid "Unglue"
-msgstr ""
+msgstr "Avknytt"
 
 msgid "Where should the tags of the node be put?"
-msgstr ""
+msgstr "Hvor burde egenskapene til noden plasseres?"
 
 msgid "Where should the memberships of this node be put?"
-msgstr ""
+msgstr "Hvor burde medlemskapene til noden plasseres?"
 
 msgid "Unglued Node"
-msgstr "Node uten tilknytning"
+msgstr "Node uten tilknytting"
 
 msgid "Dupe into {0} node"
 msgid_plural "Dupe into {0} nodes"
@@ -1510,7 +1517,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Unglue confirmation"
-msgstr ""
+msgstr "Frakoblingsbekreftelse"
 
 msgid ""
 "You are about to unglue nodes outside of the area you have "
@@ -1534,10 +1541,10 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Disconnect Node from Way"
-msgstr ""
+msgstr "Frakoble node fra vei"
 
 msgid "Disconnect nodes from a way they currently belong to"
-msgstr ""
+msgstr "Kobler noder vekk fra en vei som de for øyeblikket tilhører"
 
 msgid "Select at least one node to be disconnected."
 msgstr ""
@@ -1564,10 +1571,10 @@ msgid "Undo the last action."
 msgstr "Angre siste handling."
 
 msgid "Undo ..."
-msgstr ""
+msgstr "Angre..."
 
 msgid "Undo {0}"
-msgstr ""
+msgstr "Angre {0}"
 
 msgid "Unselect All"
 msgstr "Tøm utvalg"
@@ -1582,20 +1589,20 @@ msgid "Updates the objects in the active data layer from the server."
 msgstr ""
 
 msgid "Update modified"
-msgstr ""
+msgstr "Oppdater modifiserte"
 
 msgid ""
 "Updates the currently modified objects from the server (re-downloads data)"
 msgstr ""
 
 msgid "No current dataset found"
-msgstr ""
+msgstr "Intet nåværende datasett funnet"
 
 msgid "Did not find an object with id {0} in the current dataset"
 msgstr "Fant ikke noe objekt med ID {0} i dette datasettet"
 
 msgid "Update selection"
-msgstr "Oppdatere utvalg"
+msgstr "Oppdater utvalg"
 
 msgid ""
 "Updates the currently selected objects from the server (re-downloads data)"
@@ -1619,7 +1626,7 @@ msgid ""
 msgstr ""
 
 msgid "Upload discouraged"
-msgstr ""
+msgstr "Opplasting frarådet"
 
 msgid ""
 "You are about to upload data from the layer ''{0}''.<br /><br />Sending data "
@@ -1627,9 +1634,14 @@ msgid ""
 "require you subsequently have to revert your changes, or force other "
 "contributors to.<br /><br />Are you sure you want to continue?"
 msgstr ""
+"Du er i ferd med å laste opp data fra laget \"{0}\".<br /><br />Opplastning "
+"av data fra dette laget er <b>sterkt frarådet</b>. Hvis du fortsetter,<br "
+"/>kan laget kreve at du følgende må reversere dine endringer, eller tvinge "
+"andre bidragsytere til det.<br /><br />Er du sikker på at du ønsker å "
+"fortsette?"
 
 msgid "Ignore this hint and upload anyway"
-msgstr ""
+msgstr "Ignorér dette hintet og last opp likevel"
 
 msgid "No changes to upload."
 msgstr "Ingen endringer å laste opp."
@@ -1638,28 +1650,28 @@ msgid "Nothing to upload. Get some data first."
 msgstr "Ingen endringer å laste opp. Finn frem data først."
 
 msgid "Upload note changes to server"
-msgstr ""
+msgstr "Last opp notatendringer til tjener"
 
 msgid "Upload notes"
-msgstr ""
+msgstr "Last opp notater"
 
 msgid "Uploading notes to server"
-msgstr ""
+msgstr "Laster opp notater til tjener"
 
 msgid "Upload selection"
-msgstr ""
+msgstr "Last opp utvalg"
 
 msgid "Upload all changes in the current selection to the OSM server."
-msgstr ""
+msgstr "Last opp alle endringer i det nåværende utvalget til OSM-tjeneren."
 
 msgid "Checking parents for deleted objects"
-msgstr ""
+msgstr "Sjekker foreldre for slettede objekter"
 
 msgid "Reading parents of ''{0}''"
-msgstr ""
+msgstr "Leser foreldre av \"{0}\""
 
 msgid "Checking for deleted parents in the local dataset"
-msgstr ""
+msgstr "Leter etter slettede foreldre i det lokale datasettet"
 
 msgid "Validation"
 msgstr "Validering"
@@ -1668,28 +1680,29 @@ msgid "Performs the data validation"
 msgstr "Kjører datavalidering"
 
 msgid "Validating"
-msgstr ""
+msgstr "Validerer"
 
 msgid "Test {0}/{1}: Starting {2}"
-msgstr ""
+msgstr "Test {0}/{1}: starter {2}"
 
 msgid "Updating ignored errors ..."
-msgstr ""
+msgstr "Oppdaterer ignorerte feiler..."
 
 msgid "Viewport Following"
-msgstr ""
+msgstr "Visningsområdefølging"
 
 msgid "Enable/disable automatic moving of the map view to last placed node"
 msgstr ""
+"Slår av/på automatisk flytting av kartvisningen til den sist plasserte noden"
 
 msgid "Toggle Viewport Following"
-msgstr ""
+msgstr "Veksle mellom visningsområdefølging"
 
 msgid "Wireframe View"
 msgstr "Vis akselinjer"
 
 msgid "Enable/disable rendering the map as wireframe only"
-msgstr ""
+msgstr "Slå av/på visning av kartet som kun trådnett"
 
 msgid "Toggle Wireframe view"
 msgstr "Slå av/på akselinjer"
@@ -1698,34 +1711,35 @@ msgid "Zoom In"
 msgstr "Zoom inn"
 
 msgid "Zoom In (Keypad)"
-msgstr ""
+msgstr "Zoom inn (keypad)"
 
 msgid "Zoom Out"
 msgstr "Zoom ut"
 
 msgid "Zoom Out (Keypad)"
-msgstr ""
+msgstr "Zoom ut (keypad)"
 
 msgid "Zoom to"
-msgstr ""
+msgstr "Zoom til"
 
 msgid "Zoom to the object the first selected member refers to"
-msgstr ""
+msgstr "Zoom til objektet som det første valgte medlemmet refererer til"
 
 msgid "Zooming disabled because layer of this relation is not active"
 msgstr ""
+"Zooming deaktivert fordi at laget til denne relasjonen ikke er aktivt"
 
 msgid "Zooming disabled because there is no selected member"
-msgstr ""
+msgstr "Zoom deaktivert fordi det ikke er noe valgt medlem"
 
 msgid "Zoom to the first selected node"
-msgstr ""
+msgstr "Zoom til den første valgte noden"
 
 msgid "Zooming disabled because layer of this way is not active"
-msgstr ""
+msgstr "Zooming deaktivert fordi laget til denne veien ikke er aktivt"
 
 msgid "Zooming disabled because there is no selected node"
-msgstr ""
+msgstr "Zooming deaktivert fordi det ikke er noe valgt node"
 
 msgctxt "audio"
 msgid "Back"
@@ -1786,34 +1800,34 @@ msgid "Slower Forward"
 msgstr "Spill av sakte"
 
 msgid "Downloading changeset content"
-msgstr ""
+msgstr "Laster ned endringssettets innhold"
 
 msgid "({0}/{1}) Downloading changeset {2}..."
-msgstr ""
+msgstr "({0}/{1}) Laster ned endringssett {2}..."
 
 msgid "({0}/{1}) Downloading content for changeset {2}..."
-msgstr ""
+msgstr "({0}/{1}) Laster ned innholdet til endringssett {2}..."
 
 msgid "Download changesets"
-msgstr ""
+msgstr "Laster ned endringssett"
 
 msgid "Querying and downloading changesets"
-msgstr ""
+msgstr "Spør og laster ned endringssett"
 
 msgid "Determine user id for current user..."
-msgstr ""
+msgstr "Finner ID-en til nåværende bruker..."
 
 msgid "Query and download changesets ..."
-msgstr ""
+msgstr "Spør og last ned endringssett..."
 
 msgid "Errors during download"
-msgstr ""
+msgstr "Feiler under nedlastning"
 
 msgid "Download Geo URL"
-msgstr ""
+msgstr "Last ned fra Geo-URL"
 
 msgid "Download GPS"
-msgstr ""
+msgstr "Last ned GPS"
 
 msgid "Downloading GPS data"
 msgstr "Laster ned GPS-data"
@@ -1825,50 +1839,54 @@ msgid "Markers from {0}"
 msgstr "Markører fra {0}"
 
 msgid "Download OSM Notes"
-msgstr ""
+msgstr "Last ned OSM-notater"
 
 msgid "Downloading Notes"
-msgstr ""
+msgstr "Laster ned notater"
 
 msgid "Notes"
-msgstr "Sedler"
+msgstr "Notater"
 
 msgid "{0} note has been downloaded."
 msgid_plural "{0} notes have been downloaded."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "{0} notat har blitt nedlastet."
+msgstr[1] "{0} notater har blitt nedlastet."
 
 msgid ""
 "Since the download limit was {0}, there might be more notes to download."
 msgstr ""
+"Siden nedlastningsgrensen var {0} er det mulig at det er flere notater "
+"tilgjengelig for nedlastning."
 
 msgid ""
 "Request a smaller area to make sure that all notes are being downloaded."
 msgstr ""
+"Forespør et mindre område for å forsikre deg om at alle notater blir "
+"nedlastet."
 
 msgid "More notes to download"
-msgstr ""
+msgstr "Flere notater for nedlastning"
 
 msgid "Download OSM Notes within Bounds"
-msgstr ""
+msgstr "Last ned OSM-notater innen grenser"
 
 msgid "Download OSM Note by ID"
-msgstr ""
+msgstr "Last ned OSM-notat etter ID"
 
 msgid "Download Compressed OSM Change"
-msgstr ""
+msgstr "Last ned komprimert OSM-endring"
 
 msgid "Download OSM Change"
-msgstr ""
+msgstr "Last ned OSM-endring"
 
 msgid "Download Compressed OSM"
-msgstr ""
+msgstr "Last ned komprimert OSM"
 
 msgid "Download OSM object by ID"
-msgstr ""
+msgstr "Last ned OSM-objekt etter ID"
 
 msgid "Download OSM"
-msgstr ""
+msgstr "Last ned OSM"
 
 msgid "Downloading data"
 msgstr "Laster ned data"
@@ -1876,26 +1894,27 @@ msgstr "Laster ned data"
 msgid ""
 "Ignoring exception because download has been canceled. Exception was: {0}"
 msgstr ""
+"Ignorerer unntak fordi nedlastningen har blitt avbrutt. Unntaket var: {0}"
 
 msgid "No data found in this area."
-msgstr "Ingen data funnet i dette området"
+msgstr "Ingen data funnet i dette området."
 
 msgid "OSM Server URL:"
-msgstr ""
+msgstr "OSM tjener-URL:"
 
 msgid "Command"
-msgstr ""
+msgstr "Kommando"
 
 msgid "Request details: {0}"
-msgstr ""
+msgstr "Forespørselsdetaljer: {0}"
 
 msgid "Download OSM URL"
-msgstr ""
+msgstr "Last ned etter OSM-URL"
 
 msgid "There was {0} conflict during import."
 msgid_plural "There were {0} conflicts during import."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Det var {0} konflikt i løpet av importen."
+msgstr[1] "Det var {0} konflikter i løpet av importen."
 
 msgid "Conflict during download"
 msgid_plural "Conflicts during download"
@@ -1903,16 +1922,16 @@ msgstr[0] "Konflikt under nedlastingen"
 msgstr[1] "Konflikter under nedlastingen"
 
 msgid "({0}/{1}) Loading parents of node {2}"
-msgstr ""
+msgstr "({0}/{1}) Laster foreldrene til node {2}"
 
 msgid "({0}/{1}) Loading parents of way {2}"
-msgstr ""
+msgstr "({0}/{1}) Laster foreldrene til vei {2}"
 
 msgid "({0}/{1}) Loading parents of relation {2}"
-msgstr ""
+msgstr "({0}/{1}) Laster foreldrene til relasjon {2}"
 
 msgid "Download session"
-msgstr ""
+msgstr "Last ned sesjon"
 
 msgid "Download {0} of {1} ({2} left)"
 msgstr "Last ned {0} av {1} ({2} gjenstår)"
@@ -1921,18 +1940,20 @@ msgid "Updating data"
 msgstr "Oppdaterer data"
 
 msgid "Check on the server"
-msgstr ""
+msgstr "Sjekk på tjeneren"
 
 msgid ""
 "Click to check whether objects in your local dataset are deleted on the "
 "server"
 msgstr ""
+"Velg for å sjekke om objekter i ditt lokale datasett har blitt fjernet på "
+"tjeneren"
 
 msgid "Ignore"
-msgstr "Ignorer"
+msgstr "Ignorér"
 
 msgid "Click to abort and to resume editing"
-msgstr ""
+msgstr "Trykk for å avbryte og for å fortsette redigering"
 
 msgid ""
 "There is {0} object in your local dataset which might be deleted on the "
@@ -1956,34 +1977,34 @@ msgid "Click <strong>{0}</strong> to ignore.</html>"
 msgstr ""
 
 msgid "Deleted or moved objects"
-msgstr ""
+msgstr "Fjernet eller flyttede objekter"
 
 msgid "The following errors occurred during mass download: {0}"
-msgstr ""
+msgstr "Følgende feiler oppstod under stornedlastning: {0}"
 
 msgid "Error during download"
-msgstr ""
+msgstr "Feil under nedlastning"
 
 msgid "Add a new Note"
-msgstr ""
+msgstr "Legg til nytt notat"
 
 msgid "Add note mode"
-msgstr ""
+msgstr "Legg til notatmodus"
 
 msgid "Click the location where you wish to create a new note"
-msgstr ""
+msgstr "Velg lokasjonen hvor du ønsker å opprette en ny node"
 
 msgid "Create new note"
-msgstr ""
+msgstr "Opprett nytt notat"
 
 msgid "Create note"
-msgstr ""
+msgstr "Opprett notat"
 
 msgid "Enter a detailed comment to create a note"
-msgstr ""
+msgstr "Skriv inn en detaljert kommentar for å opprette et notat"
 
 msgid "You must enter a comment to create a new note"
-msgstr ""
+msgstr "Du må skrive en kommentar for å opprette et nytt notat"
 
 msgid "Delete Mode"
 msgstr "Slettemodus"
@@ -2001,6 +2022,15 @@ msgstr ""
 "Klikk for å slette. Shift: slett linjesegment. Alt: Ikke slett ubrukte noder "
 "når linjer slettes. Ctrl: slett objekt med referanse."
 
+msgid "draw angle snap"
+msgstr "tegn vinkelfesting"
+
+msgid "draw angle snap highlight"
+msgstr "tegn vinkelfestning"
+
+msgid "helper line"
+msgstr "hjelpelinje"
+
 msgid "Draw"
 msgstr "Tegn"
 
@@ -2013,9 +2043,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Kan ikke legge til node utenfor kartet."
 
@@ -2035,7 +2062,7 @@ msgid "Add node into way and connect"
 msgstr "Legg til node i linje og lag tilknytning"
 
 msgid "Create new node."
-msgstr "Lag ny node."
+msgstr "Opprett ny node."
 
 msgid "Select node under cursor."
 msgstr "Veg node under pekeren."
@@ -2052,46 +2079,40 @@ msgid "Continue way from last node."
 msgstr "Fortsett samme linje fra siste node."
 
 msgid "Angle snapping active."
-msgstr ""
+msgstr "Vinkelfesting aktiv."
 
 msgid "Finish drawing."
 msgstr "Avslutt tegning."
 
 msgid "Toggle snapping by {0}"
-msgstr ""
+msgstr "Veksle mellom festing etter {0}"
 
 msgid "Show helper geometry"
-msgstr ""
+msgstr "Vis hjelpegeometri"
 
 msgid "Snap to node projections"
-msgstr ""
+msgstr "Hopp til nodeprojeksjoner"
 
 msgid "Disable"
 msgstr "Deaktiver"
 
 msgid "0,90,..."
-msgstr ""
+msgstr "0,90,..."
 
 msgid "0,45,90,..."
-msgstr ""
+msgstr "0,45,90,..."
 
 msgid "0,30,45,60,90,..."
-msgstr ""
+msgstr "0,30,45,60,90,..."
 
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
-msgstr ""
+msgstr "Vinkelfesting"
 
 msgid "Switch angle snapping mode while drawing"
-msgstr ""
+msgstr "Bytt vinkelfestingmodus under tegning"
 
 msgid "Dual alignment"
 msgstr ""
@@ -2103,7 +2124,7 @@ msgid "Extrude"
 msgstr "Trekk ut"
 
 msgid "Create areas"
-msgstr "Tegn områder"
+msgstr "Opprett områder"
 
 msgid "Extrude Dual alignment"
 msgstr ""
@@ -2140,51 +2161,57 @@ msgid "Extrude Way"
 msgstr "Trekk ut linje"
 
 msgid "Improve Way Accuracy"
-msgstr ""
+msgstr "Forbedre veinøyaktighet"
 
 msgid "Improve Way Accuracy mode"
-msgstr ""
+msgstr "Forbedre veinøykaktighet-modus"
 
 msgid "improve way accuracy helper line"
-msgstr ""
+msgstr "hjelpelinje til forbedre veinøyaktighetsmodus"
 
 msgid "Click on the way to start improving its shape."
-msgstr ""
+msgstr "Trykk på veien for å forbedre utformingen dens."
 
 msgid "Select a way that you want to make more accurate."
-msgstr ""
+msgstr "Velg en vei som du ønsker å gjøre mer nøyaktig."
 
 msgid ""
 "Click to add a new node. Release Ctrl to move existing nodes or hold Alt to "
 "delete."
 msgstr ""
+"Trykk for å legge til en ny node. Slipp Ctrl for å flytte eksisterende noder "
+"eller hold Alt for å slette."
 
 msgid ""
 "Click to delete the highlighted node. Release Alt to move existing nodes or "
 "hold Ctrl to add new nodes."
 msgstr ""
+"Trykk for å slette den merkede noden. Slipp Alt for å flytte eksisterende "
+"noder eller hold Ctrl for å opprette nye noder."
 
 msgid ""
 "Click to move the highlighted node. Hold Ctrl to add new nodes, or Alt to "
 "delete."
 msgstr ""
+"Trykk for å flytte den merkede noden. Hold Ctrl for å opprette nye noder, "
+"eller Alt for å fjerne."
 
 msgid "Add a new node to way"
 msgid_plural "Add a new node to {0} ways"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Legg en node til veien"
+msgstr[1] "Legg en node til {0} veier"
 
 msgid "Cannot delete node that has tags"
 msgstr "Kan ikke slette node som har egenskaper"
 
+msgid "make parallel helper line"
+msgstr "hjelpelinje for opprettelse av parallell linje"
+
 msgid "Parallel"
 msgstr "Parallell"
 
 msgid "Make parallel copies of ways"
-msgstr ""
-
-msgid "make parallel helper line"
-msgstr ""
+msgstr "Opprett parallelle kopier av veier"
 
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
@@ -2192,7 +2219,7 @@ msgid ""
 msgstr ""
 
 msgid "Hold Ctrl to toggle snapping"
-msgstr ""
+msgstr "Hold Ctrl for å veksle mellom festing"
 
 msgid ""
 "ParallelWayAction\n"
@@ -2241,7 +2268,7 @@ msgid "Release the mouse button to select the objects in the rectangle."
 msgstr "Slipp museknappen for å velge objektene i rektangelet."
 
 msgid "Ctrl to merge with nearest node."
-msgstr ""
+msgstr "Ctrl for å flette med nærmeste node."
 
 msgid "Release the mouse button to stop moving."
 msgstr ""
@@ -2469,43 +2496,44 @@ msgid ""
 msgstr ""
 
 msgid "basic examples"
-msgstr ""
+msgstr "grunnleggende eksempler"
 
 msgid "Baker Street"
-msgstr ""
+msgstr "Baker Street"
 
 msgid "''Baker'' and ''Street'' in any key"
-msgstr ""
+msgstr "\"Baker\" og \"Street\" i hvilken som helst nøkkel"
 
 msgid "\"Baker Street\""
-msgstr ""
+msgstr "\"Baker Street\""
 
 msgid "''Baker Street'' in any key"
-msgstr ""
+msgstr "\"Baker Street\" i hvilken som helst nøkkel"
 
 msgid "basics"
-msgstr ""
+msgstr "grunnleggende"
 
 msgid "''valuefragment'' anywhere in ''key''"
-msgstr ""
+msgstr "\"verdifragment\" i \"nøkkel\""
 
 msgid "''valuefragment'' nowhere in ''key''"
-msgstr ""
+msgstr "\"verdifragment\" ikke i \"nøkkel\""
 
 msgid "''key'' with exactly ''value''"
-msgstr ""
+msgstr "\"nøkkel\" med eksakt \"verdi\""
 
 msgid "''key'' with any value"
-msgstr ""
+msgstr "\"nøkkel\" med hvilken som helst verdi"
 
 msgid "''value'' in any key"
-msgstr ""
+msgstr "\"verdi\" i hvilken som helst nøkkel"
 
 msgid "matches if ''key'' exists"
-msgstr ""
+msgstr "treffer hvis \"nøkkel\" eksisterer"
 
 msgid "matches if ''key'' is greater than ''value'' (analogously, less than)"
 msgstr ""
+"treffer hvis \"nøkkel\" er større enn \"verdi\" (verdi mindre enn nøkkel)"
 
 msgid ""
 "to quote operators.<br>Within quoted strings the <b>\"</b> and <b>\\</b> "
@@ -2514,37 +2542,37 @@ msgid ""
 msgstr ""
 
 msgid "combinators"
-msgstr ""
+msgstr "kombinasjoner"
 
 msgid "logical and (both expressions have to be satisfied)"
-msgstr ""
+msgstr "logiske og (begge uttrykkene må være sanne)"
 
 msgid "logical or (at least one expression has to be satisfied)"
-msgstr ""
+msgstr "logisk eller (minst ett uttrykk må være sant)"
 
 msgid "logical not"
-msgstr ""
+msgstr "logisk ikke"
 
 msgid "use parenthesis to group expressions"
-msgstr ""
+msgstr "bruk parenteser til å gruppere uttrykk"
 
 msgid "objects"
-msgstr ""
+msgstr "objekter"
 
 msgid "all ways"
-msgstr ""
+msgstr "alle veier"
 
 msgid "all relations"
-msgstr ""
+msgstr "alle relasjoner"
 
 msgid "all closed ways"
-msgstr ""
+msgstr "alle lukkede veier"
 
 msgid "object without useful tags"
-msgstr ""
+msgstr "objekter uten nyttige egenskaper"
 
 msgid "metadata"
-msgstr ""
+msgstr "metadata"
 
 msgid "objects changed by user"
 msgstr ""
@@ -2585,7 +2613,7 @@ msgid "ways with a length of 200 m or more"
 msgstr ""
 
 msgid "state"
-msgstr ""
+msgstr "tilstand"
 
 msgid "all modified objects"
 msgstr ""
@@ -2660,23 +2688,23 @@ msgstr[1] ""
 
 msgctxt "search"
 msgid "CS"
-msgstr ""
+msgstr "CS"
 
 msgctxt "search"
 msgid "CI"
-msgstr ""
+msgstr "CI"
 
 msgctxt "search"
 msgid "RX"
-msgstr ""
+msgstr "RX"
 
 msgctxt "search"
 msgid "CSS"
-msgstr ""
+msgstr "CSS"
 
 msgctxt "search"
 msgid "A"
-msgstr ""
+msgstr "A"
 
 msgid ""
 "The regex \"{0}\" had a parse error at offset {1}, full error:\n"
@@ -3558,9 +3586,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3570,6 +3595,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4671,11 +4699,11 @@ msgstr ""
 
 msgctxt "menu"
 msgid "Imagery"
-msgstr ""
+msgstr "Bilder"
 
 msgctxt "layer"
 msgid "Offset"
-msgstr ""
+msgstr "Forskyvning"
 
 msgid "Expected non-empty value for parameter ''{0}'', got ''{1}''"
 msgstr ""
@@ -4789,7 +4817,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -4885,60 +4913,60 @@ msgstr ""
 
 msgctxt "menu"
 msgid "File"
-msgstr ""
+msgstr "Fil"
 
 msgctxt "menu"
 msgid "Edit"
-msgstr ""
+msgstr "Rediger"
 
 msgctxt "menu"
 msgid "View"
-msgstr ""
+msgstr "Vis"
 
 msgctxt "menu"
 msgid "Tools"
-msgstr ""
+msgstr "Verktøy"
 
 msgctxt "menu"
 msgid "More tools"
-msgstr ""
+msgstr "Flere verktøy"
 
 msgctxt "menu"
 msgid "Data"
-msgstr ""
+msgstr "Data"
 
 msgctxt "menu"
 msgid "Selection"
-msgstr ""
+msgstr "Seleksjon"
 
 msgctxt "menu"
 msgid "Presets"
-msgstr ""
+msgstr "Forhåndsdef."
 
 msgid "More..."
-msgstr ""
+msgstr "Mer..."
 
 msgctxt "menu"
 msgid "GPS"
-msgstr ""
+msgstr "GPS"
 
 msgctxt "menu"
 msgid "Windows"
-msgstr ""
+msgstr "Vinduer"
 
 msgctxt "menu"
 msgid "Help"
-msgstr ""
+msgstr "Hjelp"
 
 msgid "Menu: {0}"
 msgstr "Meny: {0}"
 
 msgid "Main toolbar"
-msgstr ""
+msgstr "Verktøylinje"
 
 msgid ""
 "Toggles the visibility of the main toolbar (i.e., the horizontal toolbar)"
-msgstr ""
+msgstr "Veksler synligheten til"
 
 msgid "Edit toolbar"
 msgstr ""
@@ -4960,7 +4988,7 @@ msgstr ""
 
 msgctxt "menu"
 msgid "Audio"
-msgstr ""
+msgstr "Lyd"
 
 msgid "Do not hide toolbar"
 msgstr ""
@@ -5760,7 +5788,7 @@ msgstr ""
 
 msgctxt "tag"
 msgid "Key:"
-msgstr ""
+msgstr "Nøkkel:"
 
 msgid "<html>Enter a tag key, e.g. <strong><tt>fixme</tt></strong></html>"
 msgstr ""
@@ -5967,6 +5995,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr "Konflikter avdekkeet"
 
+msgid "Resolve conflicts"
+msgstr "Løs konflikter"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Avbryt konfliktløsning og lukk vinduet"
 
@@ -5994,9 +6025,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr "Løs konflikter"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -6080,39 +6108,39 @@ msgstr ""
 
 msgctxt "filter"
 msgid "E"
-msgstr ""
+msgstr "E"
 
 msgctxt "filter"
 msgid "H"
-msgstr ""
+msgstr "H"
 
 msgctxt "filter"
 msgid "Text"
-msgstr "tekst"
+msgstr "Tekst"
 
 msgctxt "filter"
 msgid "I"
-msgstr ""
+msgstr "I"
 
 msgctxt "filter"
 msgid "M"
-msgstr ""
+msgstr "M"
 
 msgctxt "filter"
 msgid "R"
-msgstr ""
+msgstr "R"
 
 msgctxt "filter"
 msgid "A"
-msgstr ""
+msgstr "A"
 
 msgctxt "filter"
 msgid "D"
-msgstr ""
+msgstr "D"
 
 msgctxt "filter"
 msgid "F"
-msgstr ""
+msgstr "F"
 
 msgid "<h2>Filter active</h2>"
 msgstr ""
@@ -6512,7 +6540,7 @@ msgstr "Objekttype:"
 
 msgctxt "osm object types"
 msgid "mixed"
-msgstr ""
+msgstr "mikset"
 
 msgid "Choose the OSM object type"
 msgstr "Velg OSM-objekt-type"
@@ -6764,11 +6792,11 @@ msgstr ""
 
 msgctxt "changeset.state"
 msgid "Open"
-msgstr ""
+msgstr "Åpen"
 
 msgctxt "changeset.state"
 msgid "Closed"
-msgstr ""
+msgstr "Lukket"
 
 msgid "ID"
 msgstr ""
@@ -7217,10 +7245,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -7240,13 +7268,13 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Select objects for which to change tags."
-msgstr ""
+msgstr "Velg objektene du vil endre merkelapper for"
 
 msgid "Tags/Memberships"
-msgstr ""
+msgstr "Merkelapper/relasjoner"
 
 msgid "Tags for selected objects."
-msgstr ""
+msgstr "Merkelapper for valgte objekter"
 
 msgid "<different>"
 msgstr "<different>"
@@ -7261,16 +7289,16 @@ msgid "Tag filter"
 msgstr ""
 
 msgid "Objects: {2} / Tags: {0} / Memberships: {1}"
-msgstr ""
+msgstr "Objekter: {2} / Merkelapper: {0} / Relasjoner: {1}"
 
 msgid "Tags: {0} / Memberships: {1}"
-msgstr ""
+msgstr "Merkelapper: {0} / Relasjoner: {1}"
 
 msgid "Delete the selected key in all objects"
 msgstr "Fjern den valgte nøkkel i alle objekt"
 
 msgid "Delete Tags"
-msgstr ""
+msgstr "Fjern merkelapper"
 
 msgid "Change relation"
 msgstr "Skift relasjon"
@@ -7285,19 +7313,19 @@ msgid "Add a new key/value pair to all objects"
 msgstr "Tilføy et nytt nøkkel/verdi-sett til alle objekter"
 
 msgid "Add Tag"
-msgstr ""
+msgstr "Legg til merkelapp"
 
 msgid "Edit the value of the selected key for all objects"
 msgstr "Rett verdien for den valgte nøkkel for alle objekter"
 
 msgid "Edit Tags"
-msgstr ""
+msgstr "Rediger merkelapper"
 
 msgid "Go to OSM wiki for tag help"
 msgstr ""
 
 msgid "Launch browser with wiki help for selected object"
-msgstr ""
+msgstr "Åpne hjelpeside i nettleser"
 
 msgid "Go to Taginfo"
 msgstr ""
@@ -7306,25 +7334,25 @@ msgid "Launch browser with Taginfo statistics for selected object"
 msgstr ""
 
 msgid "Paste Value"
-msgstr ""
+msgstr "Lim inn verdi"
 
 msgid "Paste the value of the selected tag from clipboard"
 msgstr ""
 
 msgid "Copy Value"
-msgstr ""
+msgstr "Kopier verdi"
 
 msgid "Copy the value of the selected tag to clipboard"
 msgstr ""
 
 msgid "Copy selected Key(s)/Value(s)"
-msgstr ""
+msgstr "Kopier valgte nøkler/verdier"
 
 msgid "Copy the key and value of the selected tag(s) to clipboard"
 msgstr ""
 
 msgid "Copy all Keys/Values"
-msgstr ""
+msgstr "Kopier alle nøkler/verdier"
 
 msgid "Copy the key and value of all the tags to clipboard"
 msgstr ""
@@ -7333,21 +7361,23 @@ msgid "Copy Tags"
 msgstr ""
 
 msgid "Search Key/Value/Type"
-msgstr ""
+msgstr "Søk med nøkkel/verdi/type"
 
 msgid ""
 "Search with the key and value of the selected tag, restrict to type (i.e., "
 "node/way/relation)"
 msgstr ""
+"Søk med nøkkel og verdi til valgt merkelapp, begrenset til type (f.eks. "
+"node, linje, relasjon)"
 
 msgid "Search Key/Value"
-msgstr ""
+msgstr "Søk nøkkel/verdi"
 
 msgid "Search with the key and value of the selected tag"
-msgstr ""
+msgstr "Søk med nøkkelen og verdien til valgt merkelapp"
 
 msgid "Overwrite key"
-msgstr ""
+msgstr "Overskriv nøkkel"
 
 msgid "Replace"
 msgstr "Erstatt"
@@ -7357,19 +7387,19 @@ msgstr ""
 
 msgid "Change value?"
 msgid_plural "Change values?"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Endre verdi?"
+msgstr[1] "Endre verdier?"
 
 msgid "This will change {0} object."
 msgid_plural "This will change up to {0} objects."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Dette vil endre {0} objekt."
+msgstr[1] "Dette vil endre inntil {0} objekter."
 
 msgid "An empty value deletes the tag."
-msgstr ""
+msgstr "En tom verdi sletter merkelappen."
 
 msgid "You changed the key from ''{0}'' to ''{1}''."
-msgstr ""
+msgstr "Du endret nøkkelen fra \"{0}\" til \"{1}\"."
 
 msgid "Change properties of up to {0} object"
 msgid_plural "Change properties of up to {0} objects"
@@ -7380,7 +7410,7 @@ msgid "Use English language for tag by default"
 msgstr ""
 
 msgid "Add value?"
-msgstr ""
+msgstr "Legg til verdi?"
 
 msgid "This will change up to {0} object."
 msgid_plural "This will change up to {0} objects."
@@ -7394,10 +7424,10 @@ msgid "Please select a value"
 msgstr "Velg en verdi"
 
 msgid "Set number of recently added tags"
-msgstr ""
+msgstr "Angi antall nylig brukte merkelapper"
 
 msgid "Remember last used tags after a restart"
-msgstr ""
+msgstr "Husk nylig brukte merkelapper etter omstart"
 
 msgid "Recent tags with existing key"
 msgstr ""
@@ -7430,25 +7460,25 @@ msgid "to add first suggestion without closing the dialog"
 msgstr ""
 
 msgid "Please enter the number of recently added tags to display"
-msgstr ""
+msgstr "Angi antall nylig brukte merkelapper som skal vises"
 
 msgid "Please enter integer number between 0 and {0}"
-msgstr ""
+msgstr "Skriv inn et tall mellom 0 og {0}"
 
 msgid "Recently added tags"
-msgstr ""
+msgstr "Nylig brukte merkelapper"
 
 msgid "Choose recent tag {0}"
-msgstr ""
+msgstr "Velg nylig brukt merkelapp {0}"
 
 msgid "Use this tag again"
 msgstr ""
 
 msgid "Apply recent tag {0}"
-msgstr ""
+msgstr "Bruk nylig brukt merkelapp {0}"
 
 msgid "The key ''{0}'' is already used"
-msgstr ""
+msgstr "Nøkkelen «{0}» er allerede brukt"
 
 msgid "Ignore key ''{0}''"
 msgstr ""
@@ -7460,7 +7490,7 @@ msgid "Edit ignore list"
 msgstr ""
 
 msgid "You changed the value of ''{0}'' from ''{1}'' to ''{2}''."
-msgstr ""
+msgstr "Du endret verdien av «{0}» fra «{1}» til «{2}»"
 
 msgid "Edit the relation the currently selected relation member refers to."
 msgstr ""
@@ -9252,12 +9282,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Datalag {0}"
-
 msgid "outside downloaded area"
 msgstr "utenfor nedlastet område"
 
+msgid "Data Layer {0}"
+msgstr "Datalag {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9749,6 +9779,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "gps-punkt"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9761,9 +9794,6 @@ msgstr "Retning"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps-punkt"
-
 msgid "Import Audio"
 msgstr "Importer lyd"
 
@@ -11583,6 +11613,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Legg til URL for liste over programtillegg."
 
@@ -12025,7 +12080,7 @@ msgstr ""
 
 msgctxt "server"
 msgid "Port:"
-msgstr ""
+msgstr "Port:"
 
 msgid ""
 "Please enter a username and a password if your proxy requires authentication."
@@ -12682,9 +12737,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13664,7 +13716,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14136,6 +14188,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Årsak: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14332,6 +14387,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Rapporter feil"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14363,7 +14421,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15101,13 +15159,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15503,10 +15567,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15892,6 +15956,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -16126,6 +16195,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16235,6 +16307,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -16567,11 +16643,11 @@ msgstr ""
 
 msgctxt "electrified"
 msgid "no"
-msgstr ""
+msgstr "nei"
 
 msgctxt "electrified"
 msgid "yes"
-msgstr ""
+msgstr "ja"
 
 msgctxt "electrified"
 msgid "rail"
@@ -16591,7 +16667,7 @@ msgstr ""
 
 msgctxt "railway"
 msgid "Tracks"
-msgstr ""
+msgstr "Spor"
 
 msgid "Gauge (mm)"
 msgstr ""
@@ -17420,7 +17496,7 @@ msgstr ""
 
 msgctxt "color"
 msgid "#CD853F"
-msgstr ""
+msgstr "#CD853F"
 
 msgid "Streets"
 msgstr "Veier"
@@ -17741,23 +17817,23 @@ msgstr ""
 
 msgctxt "overtaking"
 msgid "yes"
-msgstr ""
+msgstr "ja"
 
 msgctxt "overtaking"
 msgid "both"
-msgstr ""
+msgstr "både"
 
 msgctxt "overtaking"
 msgid "forward"
-msgstr ""
+msgstr "fremover"
 
 msgctxt "overtaking"
 msgid "backward"
-msgstr ""
+msgstr "bakover"
 
 msgctxt "overtaking"
 msgid "no"
-msgstr ""
+msgstr "nei"
 
 msgid "Roundabout"
 msgstr "Rundkjøring"
@@ -18141,7 +18217,7 @@ msgstr ""
 
 msgctxt "traffic_calming"
 msgid "Island"
-msgstr ""
+msgstr "Trafikkøy"
 
 msgid "Rumble strip"
 msgstr ""
@@ -18181,7 +18257,7 @@ msgstr ""
 
 msgctxt "junction=yes"
 msgid "Named Junction"
-msgstr ""
+msgstr "Navngitt kryss"
 
 msgid ""
 "Used in some countries for a named road junction who’s name serves for local "
@@ -18301,7 +18377,7 @@ msgstr ""
 
 msgctxt "Barrier"
 msgid "Ditch"
-msgstr ""
+msgstr "Grøft"
 
 msgid "Kerb"
 msgstr ""
@@ -18382,7 +18458,7 @@ msgstr ""
 
 msgctxt "main group"
 msgid "Water"
-msgstr ""
+msgstr "Vann"
 
 msgctxt "sub group"
 msgid "Water"
@@ -18432,15 +18508,33 @@ msgstr ""
 msgid "Basin"
 msgstr "Basseng"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Drikkevannskilde"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Tildekt drikkevannskilde"
 
 msgctxt "natural"
 msgid "Water"
-msgstr ""
+msgstr "Vann"
 
 msgid "A body of standing water, such as a lake or pond."
 msgstr ""
@@ -18469,6 +18563,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19378,11 +19478,11 @@ msgstr "Hangar"
 
 msgctxt "building"
 msgid "hangar"
-msgstr ""
+msgstr "hangar"
 
 msgctxt "building"
 msgid "yes"
-msgstr ""
+msgstr "ja"
 
 msgid "Beacon"
 msgstr "Fyrlykt"
@@ -19395,7 +19495,7 @@ msgstr "Terminal"
 
 msgctxt "airport"
 msgid "Gate"
-msgstr ""
+msgstr "Gate"
 
 msgid "Facilities"
 msgstr ""
@@ -19674,6 +19774,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Badepark"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -19706,7 +19809,7 @@ msgstr ""
 
 msgctxt "grill"
 msgid "Fuel"
-msgstr ""
+msgstr "Drivstoff"
 
 msgid "charcoal"
 msgstr ""
@@ -20189,15 +20292,15 @@ msgstr ""
 
 msgctxt "restroom"
 msgid "Female"
-msgstr ""
+msgstr "Kvinner"
 
 msgctxt "restroom"
 msgid "Male"
-msgstr ""
+msgstr "Menn"
 
 msgctxt "restroom"
 msgid "Unisex"
-msgstr ""
+msgstr "Unisex"
 
 msgid "flush"
 msgstr ""
@@ -20228,7 +20331,7 @@ msgstr ""
 
 msgctxt "toilets"
 msgid "Diaper"
-msgstr ""
+msgstr "Bleier"
 
 msgid "room"
 msgstr ""
@@ -20266,7 +20369,7 @@ msgstr "Mynter"
 
 msgctxt "payment"
 msgid "Notes"
-msgstr ""
+msgstr "Sedler"
 
 msgid "Telephone cards"
 msgstr "Telefonkort"
@@ -20508,11 +20611,11 @@ msgstr "Golfbane"
 
 msgctxt "golf"
 msgid "Tee"
-msgstr ""
+msgstr "Tee"
 
 msgctxt "golf"
 msgid "Hole"
-msgstr ""
+msgstr "Hull"
 
 msgid "Par"
 msgstr ""
@@ -20522,15 +20625,15 @@ msgstr ""
 
 msgctxt "golf"
 msgid "Pin"
-msgstr ""
+msgstr "Pin"
 
 msgctxt "golf"
 msgid "Bunker"
-msgstr ""
+msgstr "Bunker"
 
 msgctxt "golf"
 msgid "Natural"
-msgstr ""
+msgstr "Natur"
 
 msgctxt "golf"
 msgid "Frontal Water hazard"
@@ -20542,19 +20645,19 @@ msgstr ""
 
 msgctxt "golf"
 msgid "Green"
-msgstr ""
+msgstr "Green"
 
 msgctxt "golf"
 msgid "Fairway"
-msgstr ""
+msgstr "Fairway"
 
 msgctxt "golf"
 msgid "Rough"
-msgstr ""
+msgstr "Røff"
 
 msgctxt "golf"
 msgid "Driving range"
-msgstr ""
+msgstr "Treningsfelt"
 
 msgid "Miniature Golf"
 msgstr "Minigolf"
@@ -20855,31 +20958,31 @@ msgstr "Menneskeskapt"
 
 msgctxt "building"
 msgid "roof"
-msgstr ""
+msgstr "tak"
 
 msgctxt "building"
 msgid "garage"
-msgstr ""
+msgstr "garasje"
 
 msgctxt "building"
 msgid "garages"
-msgstr ""
+msgstr "garasjer"
 
 msgctxt "building"
 msgid "industrial"
-msgstr ""
+msgstr "industriell"
 
 msgctxt "building"
 msgid "school"
-msgstr ""
+msgstr "skole"
 
 msgctxt "building"
 msgid "commercial"
-msgstr ""
+msgstr "kommersiell"
 
 msgctxt "building"
 msgid "service"
-msgstr ""
+msgstr "tjeneste"
 
 msgctxt "building"
 msgid "train_station"
@@ -21059,7 +21162,7 @@ msgstr "Inngang"
 
 msgctxt "entrance"
 msgid "yes"
-msgstr ""
+msgstr "ja"
 
 msgctxt "entrance"
 msgid "main"
@@ -21498,7 +21601,7 @@ msgstr ""
 
 msgctxt "preset group"
 msgid "Military"
-msgstr ""
+msgstr "Militært"
 
 msgid "Airfield"
 msgstr ""
@@ -22017,7 +22120,7 @@ msgstr "Kraftmast"
 
 msgctxt "power"
 msgid "Tower type"
-msgstr ""
+msgstr "Tårntype"
 
 msgctxt "power"
 msgid "suspension"
@@ -22325,8 +22428,11 @@ msgstr "Sjømat"
 msgid "Deli (Fine Food)"
 msgstr "Delkatesser"
 
-msgid "Candy Store"
-msgstr "Godteri"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Te"
@@ -22577,8 +22683,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Automatprodukter"
 
-msgid "animal_food"
-msgstr "dyremat"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "sykkelslanger"
@@ -22592,6 +22701,9 @@ msgstr "kondomer"
 msgid "drinks"
 msgstr "drikke"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "hundeposer"
 
@@ -22607,6 +22719,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "parkeringsbillett"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotografier"
 
@@ -22625,18 +22743,12 @@ msgstr "frimerker"
 msgid "sweets"
 msgstr "godter"
 
-msgid "tampons"
-msgstr "tamponger"
-
 msgid "telephone_vouchers"
 msgstr "telefonkort"
 
 msgid "toys"
 msgstr "leker"
 
-msgid "vouchers"
-msgstr "kuponger"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -22741,47 +22853,47 @@ msgstr ""
 
 msgctxt "office"
 msgid "Accountant"
-msgstr ""
+msgstr "Regnskapsfører"
 
 msgctxt "office"
 msgid "Administrative"
-msgstr ""
+msgstr "Administrativt"
 
 msgctxt "office"
 msgid "Advertising agency"
-msgstr ""
+msgstr "Reklamebyrå"
 
 msgctxt "office"
 msgid "Architect"
-msgstr ""
+msgstr "Arkitekt"
 
 msgctxt "office"
 msgid "Association"
-msgstr ""
+msgstr "Assosiasjon"
 
 msgctxt "office"
 msgid "Private company"
-msgstr ""
+msgstr "Privat bedrift"
 
 msgctxt "office"
 msgid "Educational institution"
-msgstr ""
+msgstr "Utdanningsinstitusjon"
 
 msgctxt "office"
 msgid "Employment agency"
-msgstr ""
+msgstr "Bemanningsbyrå"
 
 msgctxt "office"
 msgid "Estate agent"
-msgstr ""
+msgstr "Eiendomsmegler"
 
 msgctxt "office"
 msgid "Foundation"
-msgstr ""
+msgstr "Stiftelse"
 
 msgctxt "office"
 msgid "Government"
-msgstr ""
+msgstr "Statlig"
 
 msgid "ministry"
 msgstr ""
@@ -22797,47 +22909,47 @@ msgstr ""
 
 msgctxt "office"
 msgid "Insurance"
-msgstr ""
+msgstr "Forsikning"
 
 msgctxt "office"
 msgid "It specialist"
-msgstr ""
+msgstr "IT-spesialist"
 
 msgctxt "office"
 msgid "Lawyer"
-msgstr ""
+msgstr "Advokat"
 
 msgctxt "office"
 msgid "Newspaper"
-msgstr ""
+msgstr "Avisbyrå"
 
 msgctxt "office"
 msgid "Non-governmental organisation (NGO)"
-msgstr ""
+msgstr "Frivillig organisasjon (NGO)"
 
 msgctxt "office"
 msgid "Notary"
-msgstr ""
+msgstr "Notar"
 
 msgctxt "office"
 msgid "Political party"
-msgstr ""
+msgstr "Politisk parti"
 
 msgctxt "office"
 msgid "Religion"
-msgstr ""
+msgstr "Religion"
 
 msgctxt "office"
 msgid "Research"
-msgstr ""
+msgstr "Forskning"
 
 msgctxt "office"
 msgid "Tax advisor"
-msgstr ""
+msgstr "Skatterådgiver"
 
 msgctxt "office"
 msgid "Telecommunication"
-msgstr ""
+msgstr "Telekommunikasjon"
 
 msgid "Craft"
 msgstr ""
@@ -23350,6 +23462,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Hageparseller"
 
@@ -23443,6 +23564,9 @@ msgstr "Offisielt navn"
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Husnummer"
 
@@ -23683,25 +23807,27 @@ msgstr ""
 
 msgctxt "description=*"
 msgid "A short text with additional information."
-msgstr ""
+msgstr "En kort tekst med tilleggsinformasjon."
 
 msgctxt "description=*"
 msgid ""
 "It might be viewable to the end user (perhaps using a search system or a map "
 "with pop-ups)."
 msgstr ""
+"Muligens synlig for sluttbrukere (ev. via et søkesystem eller et kart med "
+"sprettoppvinduer)."
 
 msgctxt "note=*, fixme=*, description=*"
 msgid "Similar but different tags:"
-msgstr ""
+msgstr "Lignende, men forskjellige egenskaper:"
 
 msgctxt "the tag note=*"
 msgid "Note"
-msgstr ""
+msgstr "Notat"
 
 msgctxt "note=*"
 msgid "An important hint for other mappers (not for the end user)."
-msgstr ""
+msgstr "Et viktig hint for andre kartleggere (ikke sluttbrukere)."
 
 msgid "Fixme"
 msgstr ""
@@ -23711,6 +23837,8 @@ msgid ""
 "A hint for other mappers (not for the end user), that an object needs an "
 "improvement."
 msgstr ""
+"Et hint for kartredigerer (ikke sluttbrukere), om at et objekt trenger en "
+"forbedring."
 
 msgid "outer segment"
 msgstr "ytre linjesegment"
@@ -24927,7 +25055,7 @@ msgstr ""
 
 msgctxt "address"
 msgid "City"
-msgstr ""
+msgstr "By"
 
 msgid "Postcode"
 msgstr ""
@@ -25654,6 +25782,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26555,9 +26698,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr "Del område"
 
@@ -27644,7 +27784,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28515,6 +28655,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28990,18 +29148,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29653,6 +29802,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29668,6 +29820,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29696,10 +29854,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29734,6 +29888,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29743,13 +29903,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30526,23 +30685,68 @@ msgid "Save SDS file"
 msgstr ""
 
 msgid "No object selected"
-msgstr ""
+msgstr "Ingen objekter valgt"
 
 msgid "SeaChart Editor"
-msgstr ""
+msgstr "SeaChart-redigerer"
 
 msgid "Seamark Inspector"
-msgstr ""
+msgstr "Sjømerkeinspiserer"
 
 msgid "Select only one object"
-msgstr ""
+msgstr "Velg kun ett objekt"
 
 msgid "Select a map object"
+msgstr "Velg et kartobjekt"
+
+msgid "Shape actions panel"
 msgstr ""
 
-msgid "Simplify Area"
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
 msgstr ""
 
+msgid "Simplify Area"
+msgstr "Forenkle område"
+
 msgid "Delete unnecessary nodes from an area."
 msgstr ""
 
@@ -30637,7 +30841,7 @@ msgid "Undelete node {0}"
 msgstr ""
 
 msgid "OSM Export"
-msgstr ""
+msgstr "OSM-eksport"
 
 msgid "Export traffic data to SUMO network file."
 msgstr ""
@@ -30646,7 +30850,7 @@ msgid "SUMO Export"
 msgstr ""
 
 msgid "Export"
-msgstr ""
+msgstr "Eksportér"
 
 msgid "AutoSave LiveData"
 msgstr "Lagre LiveData automatisk"
@@ -30669,7 +30873,7 @@ msgid "Surveyor..."
 msgstr "Surveyor …"
 
 msgid "Open surveyor tool."
-msgstr "Åpne verktøy i  surveyor."
+msgstr "Åpne verktøy i surveyor."
 
 msgid "Surveyor"
 msgstr "Surveyor"
@@ -31597,11 +31801,11 @@ msgstr ""
 
 msgctxt "turnrestrictions"
 msgid "From:"
-msgstr ""
+msgstr "Fra:"
 
 msgctxt "turnrestriction"
 msgid "To:"
-msgstr ""
+msgstr "Til:"
 
 msgid "no participating way with role ''from''"
 msgstr ""
@@ -32093,13 +32297,13 @@ msgid "Duplicate tags from the first"
 msgstr ""
 
 msgid "Set tags for multiple objects"
-msgstr ""
+msgstr "Definer egenskaper for flere objekter"
 
 msgid "Delete from history"
 msgstr ""
 
 msgid "Find primitives with these tags"
-msgstr ""
+msgstr "Find primitive med disse egenskapene"
 
 msgid "Multitag Background: highlight"
 msgstr ""
@@ -32337,7 +32541,7 @@ msgid "loops n sec around current position"
 msgstr ""
 
 msgid "Keep centered"
-msgstr ""
+msgstr "Hold sentrert"
 
 msgid "follows the video icon automatically"
 msgstr ""
@@ -32500,6 +32704,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32511,27 +32730,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/nds.po b/i18n/po/nds.po
index 53b062e..706a8ef 100644
--- a/i18n/po/nds.po
+++ b/i18n/po/nds.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2009-11-29 09:01+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: German, Low <nds at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:58+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:16+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3503,9 +3494,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3515,6 +3503,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4725,7 +4716,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5875,6 +5866,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5902,9 +5896,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7125,10 +7116,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9132,10 +9123,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9615,6 +9606,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9627,9 +9621,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11419,6 +11410,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12506,9 +12522,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13481,7 +13494,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13947,6 +13960,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14143,6 +14159,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14174,7 +14193,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14908,13 +14927,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15310,10 +15335,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15699,6 +15724,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15922,6 +15952,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16027,6 +16060,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18224,9 +18261,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18261,6 +18316,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19466,6 +19527,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22117,7 +22181,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22369,7 +22436,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22384,6 +22454,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22399,6 +22472,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22417,18 +22496,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23142,6 +23215,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23235,6 +23317,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25438,6 +25523,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26318,9 +26418,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27404,7 +27501,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28265,6 +28362,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28739,18 +28854,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29402,6 +29508,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29417,6 +29526,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29445,10 +29560,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29483,6 +29594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29492,13 +29609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30289,6 +30405,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32243,6 +32404,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32254,27 +32430,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/nl.po b/i18n/po/nl.po
index 2727b73..d0fa21f 100644
--- a/i18n/po/nl.po
+++ b/i18n/po/nl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-06-26 12:48+0000\n"
 "Last-Translator: DiGro <Unknown>\n"
 "Language-Team: Dutch\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:40+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:47+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: nl\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "Openen van koppeling niet ondersteund op het huidige platform (\"{0}\")"
 
-msgid "ERROR: {0}"
-msgstr "FOUT: {0}"
-
-msgid "WARNING: {0}"
-msgstr "WAARSCHUWING: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUGGEN: {0}"
-
-msgid "Cause: "
-msgstr "Oorzaak: "
-
 msgid "Executing platform startup hook"
 msgstr "Platform-opstarthook uitvoeren"
 
@@ -511,6 +496,12 @@ msgstr "Ophalen gegevens"
 msgid "Download notes in current view"
 msgstr "Opmerkingen in huidige weergave downloaden"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Object downloaden..."
 
@@ -2163,6 +2154,15 @@ msgstr ""
 "van ongebruikte knopen bij verwijderen van een weg. Ctrl: verwijzende "
 "objecten verwijderen."
 
+msgid "draw angle snap"
+msgstr "tekenhoek vastklikken"
+
+msgid "draw angle snap highlight"
+msgstr "tekenhoek vastklikken geaccentueerd"
+
+msgid "helper line"
+msgstr "hulplijn"
+
 msgid "Draw"
 msgstr "Tekenen"
 
@@ -2175,9 +2175,6 @@ msgstr "Modus: tekenen met vastklikken hoek"
 msgid "Backspace in Add mode"
 msgstr "Backspace in modus Toevoegen"
 
-msgid "helper line"
-msgstr "hulplijn"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Kan geen knoop buiten de wereld toevoegen."
 
@@ -2243,12 +2240,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "HERSTELLEN"
 
-msgid "draw angle snap"
-msgstr "tekenhoek vastklikken"
-
-msgid "draw angle snap highlight"
-msgstr "tekenhoek vastklikken geaccentueerd"
-
 msgid "Angle snapping"
 msgstr "Hoek vastklikken"
 
@@ -2351,15 +2342,15 @@ msgstr[1] "Voeg een nieuwe knoop aan {0} wegen toe"
 msgid "Cannot delete node that has tags"
 msgstr "Kan geen knoop verwijderen die tags heeft"
 
+msgid "make parallel helper line"
+msgstr "maak een parallelle hulplijn"
+
 msgid "Parallel"
 msgstr "Parallel"
 
 msgid "Make parallel copies of ways"
 msgstr "Maak parallelle kopieën van wegen"
 
-msgid "make parallel helper line"
-msgstr "maak een parallelle hulplijn"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3877,9 +3868,6 @@ msgstr "Integere waarde in bereik 1-60 verwacht voor parameter ''+zone=...''"
 msgid "No unit found for: {0}"
 msgstr "Geen eenheid gevonden voor: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameter moet beginnen met een ''+''-teken (gevonden ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Onbekende parameter: ''{0}''."
 
@@ -3889,6 +3877,9 @@ msgstr "Verwachtte waarde voor parameter ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Geen waarde verwacht voor parameter ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameter moet beginnen met een ''+''-teken (gevonden ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Onverwachte opmaak parameter (''{0}'')"
 
@@ -5166,8 +5157,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Zorg dat u wat gegevens inlaadt, als u --selection gebruikt."
 
-msgid "Printing debugging messages to console"
-msgstr "Berichten voor debuggen afdrukken op scherm"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Plug-in laden overgeslagen"
@@ -6453,6 +6444,9 @@ msgstr "Klik om het dialoogvenster te sluiten en door te gaan met bewerken"
 msgid "Conflicts detected"
 msgstr "Conflicten gedetecteerd"
 
+msgid "Resolve conflicts"
+msgstr "Conflicten oplossen"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Breek conflictoplossing af en sluit het dialoogvenster"
 
@@ -6486,9 +6480,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflictoplossing nog niet volledig afgehandeld"
 
-msgid "Resolve conflicts"
-msgstr "Conflicten oplossen"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Conflicten oplossen voor ''{0}''"
 
@@ -7839,12 +7830,12 @@ msgstr "Laag weergeven/verbergen"
 msgid "Discardable key: selection Foreground"
 msgstr "Te missen sleutel: selectie Voorgrond"
 
-msgid "Discardable key: selection Background"
-msgstr "Te missen sleutel: selectie Achtergrond"
-
 msgid "Discardable key: foreground"
 msgstr "Te missen sleutel: voorgrond"
 
+msgid "Discardable key: selection Background"
+msgstr "Te missen sleutel: selectie Achtergrond"
+
 msgid "Discardable key: background"
 msgstr "Te missen sleutel: achtergrond"
 
@@ -10117,12 +10108,12 @@ msgstr "Totaal aantal opmerkingen"
 msgid "Changes need uploading?"
 msgstr "Moeten de wijzigingen worden geüpload?"
 
-msgid "Data Layer {0}"
-msgstr "Gegevenslaag {0}"
-
 msgid "outside downloaded area"
 msgstr "buiten gedownload gebied"
 
+msgid "Data Layer {0}"
+msgstr "Gegevenslaag {0}"
+
 msgid "Merging layers"
 msgstr "Lagen samenvoegen"
 
@@ -10639,6 +10630,9 @@ msgstr "Er zijn geen lagen met afbeeldingen."
 msgid "No imagery layers"
 msgstr "Geen lagen met afbeeldingen"
 
+msgid "gps point"
+msgstr "GPS-punt"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10651,9 +10645,6 @@ msgstr "Richting"
 msgid "Velocity, {0}"
 msgstr "Snelheid, {0}"
 
-msgid "gps point"
-msgstr "GPS-punt"
-
 msgid "Import Audio"
 msgstr "Geluid importeren"
 
@@ -12722,6 +12713,31 @@ msgstr "Configureren van sites..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Instellen van de lijst met sites voor het downloaden van plug-ins"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Voeg URL toe voor de beschrijving van de JOSM plug-in"
 
@@ -13940,9 +13956,6 @@ msgstr "<html>Kon bestanden niet lezen.<br>Fout is:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON-bestanden"
 
-msgid "Projected GeoJSON Files"
-msgstr "Geprojecteerde GeoJSON-bestanden"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Laag ''{0}'' niet ondersteund"
 
@@ -15027,8 +15040,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "De plug-in zal niet worden geladen."
 msgstr[1] "De plug-ins zullen niet worden geladen."
 
-msgid "Determine plugins to load..."
-msgstr "Bepalen welke plug-ins moeten worden geladen..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Verwijderen van vervallen plug-ins..."
@@ -15647,6 +15660,9 @@ msgid ""
 msgstr ""
 "Toegang tot map ''{0}'' mislukt om beveiligingsredenen. Exceptie was: {1}"
 
+msgid "Cause: "
+msgstr "Oorzaak: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15880,6 +15896,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Fout melden"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Onderdruk verdere dialoogvensters voor fouten voor deze sessie."
 
@@ -15913,7 +15932,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16662,14 +16681,20 @@ msgstr "Berlijn luchtfoto''s 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlijn luchtfoto''s 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (luchtfoto''s)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen luchtfoto''s (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 luchtfoto''s (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr ""
@@ -17065,11 +17090,11 @@ msgstr "Stad Zürich Overzichtskaart (Straten, gebouwen, huisnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stad Zürich Luchtfoto 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarood (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Kanton Génève 5cm (SITG 2011)"
@@ -17468,6 +17493,11 @@ msgstr ""
 "van een weg als polygoon. Gebouwd om het in kaart brengen vanuit "
 "achtergrondlagen te vereenvoudigen. Geoptimaliseerd voor basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Programma''s voor het tekenen van gebouwen."
 
@@ -17775,6 +17805,9 @@ msgstr ""
 "Voorkomt dat JOSM ooit nog gebruikt wordt (WAARSCHUWING: deze plugin zorgt "
 "ervoor dat JOSM niet meer opstart, en het is moeilijk om er vanaf te komen)."
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Converteer gegevens vanuit portalen van Open Data naar OSM-laag"
 
@@ -17910,6 +17943,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Objecten bewerken voor zeekaarten"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20174,9 +20211,27 @@ msgstr "Doorlaat"
 msgid "Basin"
 msgstr "Waterbekken"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservoir"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Ondergronds reservoir"
 
@@ -20211,6 +20266,12 @@ msgstr "reservoir"
 msgid "river"
 msgstr "rivier"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Zout water"
 
@@ -21423,6 +21484,9 @@ msgstr "Amusements-/Themapark"
 msgid "Water Park"
 msgstr "Zwembad"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Zwembad"
 
@@ -24076,8 +24140,11 @@ msgstr "Viswinkel"
 msgid "Deli (Fine Food)"
 msgstr "Delicatessen (fijne kost)"
 
-msgid "Candy Store"
-msgstr "Snoepwinkel"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Thee"
@@ -24328,8 +24395,11 @@ msgstr "Verkoopautomaten"
 msgid "Vending products"
 msgstr "Producten"
 
-msgid "animal_food"
-msgstr "diervoeder"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "fietsbanden"
@@ -24343,6 +24413,9 @@ msgstr "condooms"
 msgid "drinks"
 msgstr "frisdranken"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "hondenpoepzakjes"
 
@@ -24358,6 +24431,12 @@ msgstr "kranten"
 msgid "parking_tickets"
 msgstr "parkeerkaartjes"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "foto''s"
 
@@ -24376,18 +24455,12 @@ msgstr "postzegels"
 msgid "sweets"
 msgstr "snoepgoed"
 
-msgid "tampons"
-msgstr "tampons"
-
 msgid "telephone_vouchers"
 msgstr "prepaid-kaarten"
 
 msgid "toys"
 msgstr "speelgoed"
 
-msgid "vouchers"
-msgstr "tegoedbonnen"
-
 msgid "Payment Methods"
 msgstr "Betaalwijzen"
 
@@ -25112,6 +25185,15 @@ msgstr "Glastuinbouw"
 msgid "Plant Nursery"
 msgstr "Plantenkwekerij"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Volkstuinen"
 
@@ -25205,6 +25287,9 @@ msgstr "Officiële naam"
 msgid "Common name abbreviation"
 msgstr "Afkorting algemene naam"
 
+msgid "Address"
+msgstr "Adres"
+
 msgid "House number"
 msgstr "Huisnummer"
 
@@ -27624,6 +27709,21 @@ msgstr "Foutopsporing"
 msgid "Debugging mode will write images for each processing step."
 msgstr "Modus Foutopsporing zal afbeeldingen schrijven voor elke processtap"
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Straatnaam:"
 
@@ -28590,9 +28690,6 @@ msgstr ""
 "deze optie is geselecteerd is er geen indicatie dat er iets wordt gedaan, en "
 "geen manier om het downloaden te annuleren."
 
-msgid "Address"
-msgstr "Adres"
-
 msgid "Split area"
 msgstr "Gebied splitsen"
 
@@ -29764,8 +29861,8 @@ msgstr "maak de grafiek van verkeersstromen"
 msgid "Check "
 msgstr "Controleer "
 
-msgid "check the subust for junction properties"
-msgstr "controleer de onderverzameling op eigenschappen van kruisingen"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Zoeken "
@@ -30660,6 +30757,24 @@ msgstr ""
 "(Om betreurenswaardig toch door te gaan met mappen, haal no_more_mapping\n"
 "uit {0}.)"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Ongeldige wijzigingenset-ID: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Ongeldige tijdstempel: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "OSM-gegevens inlezen..."
+
 msgid "Split by municipality"
 msgstr "Splits op gemeente"
 
@@ -31196,18 +31311,9 @@ msgstr "OSM-serverbestanden (PBF-gecomprimeerd)"
 msgid "Download PBF"
 msgstr "Downloaden van PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Ongeldige wijzigingenset-ID: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Ongeldige tijdstempel: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Ongeldige DenseNodes-sleutel/waarde-tabel"
 
-msgid "Reading OSM data..."
-msgstr "OSM-gegevens inlezen..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Transformeer fout: Min X moet kleiner zijn dan max"
 
@@ -31877,6 +31983,9 @@ msgstr "Afdrukken is mislukt."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31895,6 +32004,12 @@ msgstr ""
 "Zij moeten worden gedownload om door te kunnen gaan met valideren.\n"
 "Wilt u ze downloaden?"
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr "Plug-in PT_Assistant vindt dat deze relatie (id={0}) fouten heeft:"
 
@@ -31923,10 +32038,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31962,6 +32073,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31971,13 +32088,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32801,6 +32917,51 @@ msgstr "Slechts één object selecteren"
 msgid "Select a map object"
 msgstr "Een kaartobject selecteren"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Gebied vereenvoudigen"
 
@@ -35018,17 +35179,6 @@ msgstr[1] "Ophalen {0} Wikigegevens-ID''s voor taal ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Wikigegevens toevoegen voor taal ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Overschrijf ''{0}'' tag {1} van {2} met nieuwe waarde ''{3}''?"
-msgstr[1] "Overschrijf ''{0}'' tags {1} van {2} met nieuwe waarde ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Voeg namen vanaf Wikipedia toe"
 
@@ -35038,12 +35188,6 @@ msgstr ""
 "Haalt interwiki-koppelingen op vanaf Wikipedia om diverse tags voor namen "
 "toe te voegen"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -35054,6 +35198,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Kopieer sjabloon {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Overschrijf ''{0}'' tag {1} van {2} met nieuwe waarde ''{3}''?"
+msgstr[1] "Overschrijf ''{0}'' tags {1} van {2} met nieuwe waarde ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Haal artikelen van Wikipedia op met coördinaten"
 
diff --git a/i18n/po/nn.po b/i18n/po/nn.po
index 8acdb4a..5dd9452 100644
--- a/i18n/po/nn.po
+++ b/i18n/po/nn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2009-07-15 12:49+0000\n"
 "Last-Translator: Skippern <Unknown>\n"
 "Language-Team: Norwegian Nynorsk <nn at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:59+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:17+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: nn\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/oc.po b/i18n/po/oc.po
index 2b215d1..54bfee4 100644
--- a/i18n/po/oc.po
+++ b/i18n/po/oc.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2012-10-03 22:14+0000\n"
 "Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary at yahoo.fr>\n"
 "Language-Team: Occitan (post 1500) <oc at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:00+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:18+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Tèrmes d''utilizacion en rèire plan"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -489,6 +474,12 @@ msgstr "Telecargar las donadas."
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Telecargar un objècte..."
 
@@ -1968,6 +1959,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Dessenhar"
 
@@ -1980,9 +1980,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2048,12 +2045,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2144,13 +2135,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3511,9 +3502,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3523,6 +3511,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4733,7 +4724,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5883,6 +5874,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5910,9 +5904,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7133,10 +7124,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9140,10 +9131,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9625,6 +9616,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "punt GPS"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9637,9 +9631,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "punt GPS"
-
 msgid "Import Audio"
 msgstr "Importar Àudio"
 
@@ -11429,6 +11420,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12516,9 +12532,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13491,7 +13504,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13957,6 +13970,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14153,6 +14169,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14184,7 +14203,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14918,13 +14937,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15320,10 +15345,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15709,6 +15734,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15932,6 +15962,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16037,6 +16070,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18234,9 +18271,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18271,6 +18326,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19476,6 +19537,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22127,7 +22191,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22379,7 +22446,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22394,6 +22464,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22409,6 +22482,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22427,18 +22506,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23152,6 +23225,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23245,6 +23327,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25448,6 +25533,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26328,9 +26428,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27414,7 +27511,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28275,6 +28372,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28749,18 +28864,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29412,6 +29518,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29427,6 +29536,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29455,10 +29570,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29493,6 +29604,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29502,13 +29619,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30299,6 +30415,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32253,6 +32414,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32264,27 +32440,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/pa.po b/i18n/po/pa.po
index adbcc9a..6c84cb4 100644
--- a/i18n/po/pa.po
+++ b/i18n/po/pa.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-05-06 15:52+0000\n"
 "Last-Translator: A S Alam <aalam at users.sf.net>\n"
 "Language-Team: Punjabi <pa at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:00+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:19+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: pa\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/pl.po b/i18n/po/pl.po
index c38c20f..66b79e6 100644
--- a/i18n/po/pl.po
+++ b/i18n/po/pl.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-11 06:36+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-25 07:06+0000\n"
 "Last-Translator: Piotr Sokół <Unknown>\n"
 "Language-Team: polski <>\n"
 "MIME-Version: 1.0\n"
@@ -17,8 +17,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:01+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:21+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: pl\n"
 "X-Poedit-Bookmarks: 1098,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
 "X-Poedit-Basepath: /home/mfloryan/dev/josm/i18n\n"
@@ -65,21 +65,6 @@ msgstr "Warunki korzystania z podkładu"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Otwarcie łącza nie jest obsługiwane na tej platformie („{0}”)"
 
-msgid "ERROR: {0}"
-msgstr "BŁĄD: {0}"
-
-msgid "WARNING: {0}"
-msgstr "OSTRZEŻENIE: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Przyczyna: "
-
 msgid "Executing platform startup hook"
 msgstr "Zakotwiczanie platformy startowej"
 
@@ -517,6 +502,12 @@ msgstr "Pobiera dane"
 msgid "Download notes in current view"
 msgstr "Pobierz uwagi w bieżącym widoku"
 
+msgid "Download in current view"
+msgstr "Pobierz w aktualnym widoku"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Pobiera dane mapy z serwera OSM w aktualnym widoku"
+
 msgid "Download object..."
 msgstr "Pobierz obiekt…"
 
@@ -1161,19 +1152,19 @@ msgid "Paste"
 msgstr "Wklej"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Wklej zawartość schowka."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Wklej do położenia źródłowego"
 
 msgid "Paste contents of clipboard at the position they were copied from."
-msgstr ""
+msgstr "Wkleja zawartość schowka do położenia, z którego została skopiowana."
 
 msgid "Paste Tags"
 msgstr "Wklej znaczniki"
 
 msgid "Apply tags of contents of paste buffer to all selected items."
-msgstr "Przypisz znaczniki ze schowka do zaznaczonych elementów."
+msgstr "Przypisuje znaczniki ze schowka do zaznaczonych obiektów"
 
 msgid "Preferences..."
 msgstr "Ustawienia..."
@@ -1273,7 +1264,7 @@ msgid "Save"
 msgstr "Zapisz"
 
 msgid "Save the current data."
-msgstr "Zapisuje bieżące dane."
+msgstr "Zapisuje aktualne dane"
 
 msgid "File {0} exists. Overwrite?"
 msgstr "Plik {0} już istnieje. Zastąpić go?"
@@ -1288,16 +1279,16 @@ msgid "Save As..."
 msgstr "Zapisz jako..."
 
 msgid "Save the current data to a new file."
-msgstr "Zapisuje bieżące dane do nowego pliku."
+msgstr "Zapisuje aktualne dane do nowego pliku"
 
 msgid "Search Notes..."
 msgstr "Wyszukaj uwagi..."
 
 msgid "Download notes from the note search API"
-msgstr "Pobiera uwagi z API wyszukiwania uwag"
+msgstr "Pobiera uwagi za pomocą API wyszukiwania uwag"
 
 msgid "Search the OSM API for notes containing words:"
-msgstr "Poszukaj w OSM API uwag zawierających słowa:"
+msgstr "Wyszukanie uwag w API OSM zawierających słowa:"
 
 msgid "Search for notes"
 msgstr "Wyszukaj uwagi"
@@ -1520,7 +1511,7 @@ msgid "Toggles the global setting ''{0}''."
 msgstr "Przełącza ustawienie globalne „{0}”."
 
 msgid "Encourage/discourage upload"
-msgstr "Popieraj/zniechęcaj wysyłanie"
+msgstr "Zachęcaj/odradzaj wysyłanie"
 
 msgid "UnGlue Ways"
 msgstr "Rozdziel linie"
@@ -1859,10 +1850,10 @@ msgstr "Wstecz"
 
 msgctxt "audio"
 msgid "Jump back."
-msgstr "Wraca do wcześniej odtwarzanego fragmentu."
+msgstr "Przechodzi wstecz"
 
 msgid "Audio: {0}"
-msgstr "Audio: {0}"
+msgstr "Dźwięk: {0}"
 
 msgctxt "audio"
 msgid "Faster"
@@ -1874,11 +1865,11 @@ msgstr "Zwiększa prędkość odtwarzania."
 
 msgctxt "audio"
 msgid "Forward"
-msgstr "Do przodu"
+msgstr "Naprzód"
 
 msgctxt "audio"
 msgid "Jump forward"
-msgstr "Przeskakuje do następnego fragmentu."
+msgstr "Przechodzi naprzód"
 
 msgctxt "audio"
 msgid "Next Marker"
@@ -1936,7 +1927,7 @@ msgid "Errors during download"
 msgstr "Błędy w czasie pobierania"
 
 msgid "Download Geo URL"
-msgstr ""
+msgstr "pobierz geolokalizacyjny adres URL"
 
 msgid "Download GPS"
 msgstr "Pobiera GPS"
@@ -2151,6 +2142,15 @@ msgstr ""
 "Kliknij aby usunąć. Shift: usuwa segment. Alt: nie usuwa węzłów przy "
 "usuwaniu linii. Ctrl: usuwa powiązane obiekty."
 
+msgid "draw angle snap"
+msgstr "przystawka rysowania kąta"
+
+msgid "draw angle snap highlight"
+msgstr "rysuj podświetlenie przyciągania kąta"
+
+msgid "helper line"
+msgstr "linia pomocnicza"
+
 msgid "Draw"
 msgstr "Rysowanie"
 
@@ -2163,9 +2163,6 @@ msgstr "Tryb: przyciąganie do kątów"
 msgid "Backspace in Add mode"
 msgstr "Backspace w trybie dodawania"
 
-msgid "helper line"
-msgstr "linia pomocnicza"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Nie można dodać węzła poza granicami świata."
 
@@ -2232,12 +2229,6 @@ msgstr "0, 30, 45, 60, 90..."
 msgid "FIX"
 msgstr "Napraw"
 
-msgid "draw angle snap"
-msgstr "przystawka rysowania kąta"
-
-msgid "draw angle snap highlight"
-msgstr "rysuj podświetlenie przyciągania kąta"
-
 msgid "Angle snapping"
 msgstr "Przyciąganie do kątów"
 
@@ -2339,15 +2330,15 @@ msgstr[2] "Dodaj nowy węzeł do {0} linii"
 msgid "Cannot delete node that has tags"
 msgstr "Nie można usunąć węzła zawierającego znaczniki"
 
+msgid "make parallel helper line"
+msgstr "tworzy równoległą linię pomocniczą"
+
 msgid "Parallel"
 msgstr "Rysowanie równoległe"
 
 msgid "Make parallel copies of ways"
 msgstr "Tworzy równoległe kopie linii"
 
-msgid "make parallel helper line"
-msgstr "tworzy równoległą linię pomocniczą"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -2366,12 +2357,15 @@ msgstr ""
 "Wybrane linie muszą tworzyć pojedynczą ścieżkę bez rozgałęzień"
 
 msgid "Drag play head"
-msgstr ""
+msgstr "przeciągnij głowicę odtwarzającą"
 
 msgid ""
 "Drag play head and release near track to play audio from there; "
 "SHIFT+release to synchronize audio at that point."
 msgstr ""
+"Przeciągnij głowicę odtwarzającą i puść ją niedaleko ścieżki, by odtwarzać "
+"dźwięk stamtąd. Naciśnij klawisz \"Shift\" i zwolnij głowicę odtwarzającą, "
+"aby zsynchronizować dźwięk w tym punkcie."
 
 msgid "Select, move, scale and rotate objects"
 msgstr "Zaznacza, przesuwa, skaluje i obrac obiekty"
@@ -2646,13 +2640,13 @@ msgid "Filter"
 msgstr "Filtr"
 
 msgid "Search"
-msgstr "Szukaj"
+msgstr "Wyszukiwanie"
 
 msgid "Submit filter"
-msgstr "Stwórz filtr"
+msgstr "Utwórz filtr"
 
 msgid "Start Search"
-msgstr "Rozpocznij szukanie"
+msgstr "Wyszukaj"
 
 msgid ""
 "Search expression is not valid: \n"
@@ -2854,13 +2848,13 @@ msgid "Found {0} matches"
 msgstr "Znaleziono {0} pasujących."
 
 msgid "Searching"
-msgstr "Szukanie"
+msgstr "Wyszukiwanie"
 
 msgid "Searching in {0} object"
 msgid_plural "Searching in {0} objects"
-msgstr[0] "Szukanie w {0} obiekcie"
-msgstr[1] "Szukanie w {0} obiektach"
-msgstr[2] "Szukanie w {0} obiektach"
+msgstr[0] "Wyszukiwanie w {0} obiekcie"
+msgstr[1] "Wyszukiwanie w {0} obiektach"
+msgstr[2] "Wyszukiwanie w {0} obiektach"
 
 msgctxt "search"
 msgid "CS"
@@ -2999,10 +2993,10 @@ msgid "Uploading modified notes"
 msgstr "Wysyłanie zmodyfikowanych uwag"
 
 msgid "Note {0} failed: {1}"
-msgstr "Wysyłanie uwagi {0} nie powiodło się: {1}"
+msgstr "Nie udało się wysłać uwagi {0}: {1}"
 
 msgid "Notes failed to upload"
-msgstr "Wysyłanie uwag nie powiodło się"
+msgstr "Nie udało się wysłać uwag"
 
 msgid ""
 "The following are results of automatic validation. Try fixing these, but be "
@@ -3010,10 +3004,10 @@ msgid ""
 "cancel this dialog, you can find the entries in the validator side panel to "
 "inspect them."
 msgstr ""
-"Rezultaty automatycznej kontroli poprawności podano poniżej. Spróbuj "
-"poprawić błędy, ale bądź ostrożny (nie zniszcz prawidłowych danych). Jeśli "
-"nie jesteś pewien, nie zmieniaj.<br>Jeśli zamkniesz to okno dialogowe, "
-"informacje o poprawności możesz obejrzeć w panelu kontroli poprawności."
+"Poniżej zamieszczono wyniki automatycznego sprawdzania poprawności. Proszę "
+"spróbować poprawić błędy zachowując ostrożność (nie niszczyć prawidłowych "
+"danych). W przypadku wątpliwości należy je zignorować.<br>Po zamknięciu tego "
+"okna listę błędów można odnaleźć w panelu bocznym."
 
 msgid "Errors"
 msgstr "Błędy"
@@ -3034,7 +3028,7 @@ msgid "Informational warnings, expect many false entries."
 msgstr "Informacje uzupełniające, możliwe wiele fałszywych błędów."
 
 msgid "Suspicious data found. Upload anyway?"
-msgstr "Znaleziono podejrzane dane. Czy przesłać pomimo tego?"
+msgstr "Odnaleziono podejrzane dane. Kontynuować przesyłanie?"
 
 msgid "Continue upload"
 msgstr "Kontynuuj"
@@ -3067,7 +3061,7 @@ msgid "Change relation {0}"
 msgstr "Zmień relację {0}"
 
 msgid "Change nodes of {0}"
-msgstr ""
+msgstr "Zmień węzły {0}"
 
 msgid "Remove \"{0}\" for node ''{1}''"
 msgstr "Usunięto  „{0}” w węźle „{1}”"
@@ -3868,9 +3862,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "Żadna jednostka nie została znaleziona dla: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parametr musi zaczynać się znakiem „+” (znaleziono „{0}”)"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Nieznany parameter: „{0}”."
 
@@ -3880,6 +3871,9 @@ msgstr "Przewidywana wartość dla paramteru „{0}”."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Brak przewidzianej wartości dla parametru „{0}”."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parametr musi zaczynać się znakiem „+” (znaleziono „{0}”)"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Nieoczekiwany format parametru („{0}”)"
 
@@ -4023,7 +4017,7 @@ msgid "E-mail address contains an invalid domain: {0}"
 msgstr "Adres e-mail zawiera nieprawidłową domenę: {0}"
 
 msgid "Email validator"
-msgstr ""
+msgstr "kontroler adresu poczty elektronicznej"
 
 msgid "URL is invalid"
 msgstr "URL jest nieprawidłowy"
@@ -4044,7 +4038,7 @@ msgid "URL contains an invalid fragment: {0}"
 msgstr "Adres URL zawiera nieprawidłowy fragment: {0}"
 
 msgid "URL validator"
-msgstr ""
+msgstr "kontroler adresu URL"
 
 msgid "Addresses"
 msgstr "Adresy"
@@ -4710,7 +4704,7 @@ msgid "No \"to\" way found"
 msgstr "Nie znaleziono linii z rolą „to\""
 
 msgid "\"from\" way equals \"to\" way"
-msgstr ""
+msgstr "Droga \"from\" jest identyczna jak \"to\""
 
 msgid "No \"via\" node or way found"
 msgstr "Nie znaleziono linii lub węzła z rolą „via\""
@@ -5139,8 +5133,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Upewnij się że ładujesz jakieś dane jeśli używasz --selection"
 
-msgid "Printing debugging messages to console"
-msgstr "Wypisywanie komunikatów debugowania na konsoli"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Pominiięto wczytywanie wtyczki"
@@ -6364,16 +6358,16 @@ msgid "Open a merge dialog of all selected items in the list above."
 msgstr ""
 
 msgid "Resolve to my versions"
-msgstr ""
+msgstr "Rozwiąż stosując moją wersję"
 
 msgid "Resolves all unresolved conflicts to ''my'' version"
-msgstr ""
+msgstr "Rozwiąż nierozwiązane konflikty stosując \"moją\" wersję"
 
 msgid "Resolve to their versions"
-msgstr ""
+msgstr "Rozwiąż stosując ich wersję"
 
 msgid "Resolves all unresolved conflicts to ''their'' version"
-msgstr ""
+msgstr "Rozwiąż nierozwiązane konflikty stosując \"ich\" wersję"
 
 msgid "There was {0} conflict detected."
 msgid_plural "There were {0} conflicts detected."
@@ -6387,6 +6381,9 @@ msgstr "Kliknij aby zamknąć okno i kontynuować edycję"
 msgid "Conflicts detected"
 msgstr "Wykryto konflikty"
 
+msgid "Resolve conflicts"
+msgstr "Rozwiąż konflikty"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Anuluj rozwiązywanie konfliktów i zamknij okno"
 
@@ -6414,21 +6411,20 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Konflikt nie został całkowicie rozwiązany"
 
-msgid "Resolve conflicts"
-msgstr "Rozwiąż konflikty"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Rozwiąż konflikty dla „{0}”"
 
 msgid "Please confirm to remove <strong>{0} object</strong>."
 msgid_plural "Please confirm to remove <strong>{0} objects</strong>."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Proszę potwierdzić usunięcie <strong>{0} obiektu</strong>."
+msgstr[1] "Proszę potwierdzić usunięcie <strong>{0} obiektów</strong>."
+msgstr[2] "Proszę potwierdzić usunięcie <strong>{0} obiektów</strong>."
 
 msgid "{0} relation is affected."
 msgid_plural "{0} relations are affected."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Ma to wpływ na {0} relację."
+msgstr[1] "Ma to wpływ na {0} relację."
+msgstr[2] "Ma to wpływ na {0} relacji."
 
 msgid "Deleting {0} object"
 msgid_plural "Deleting {0} objects"
@@ -6446,10 +6442,10 @@ msgid "From Relation"
 msgstr "Z relacji"
 
 msgid "Click to close the dialog and remove the object from the relations"
-msgstr "Kliknij aby zamknąć i usunąć obiekty z relacji"
+msgstr "Usuwa obiekty z relacji"
 
 msgid "Click to close the dialog and to abort deleting the objects"
-msgstr "Kliknij aby zamknąć i anulować usuwanie obiektów"
+msgstr "Anuluje usuwanie obiektów i zamyka okno dialogowe"
 
 msgid "Filter objects and hide/disable them."
 msgstr "Filtruj obiekty i ukrywaj/blokuj je."
@@ -6661,6 +6657,9 @@ msgid ""
 "\n"
 "> applying {0} style \"{1}\"\n"
 msgstr ""
+"\n"
+"\n"
+"> akceptowanie {0} stylu \"{1}\"\n"
 
 msgid ""
 "\n"
@@ -6774,7 +6773,7 @@ msgid "East/North"
 msgstr "Północny-wschód"
 
 msgid "Please enter a GPS coordinates"
-msgstr "Podaj współrzędne GPS"
+msgstr "Proszę wprowadzić współrzędne GPS"
 
 msgid "Please enter a Easting and Northing"
 msgstr ""
@@ -6786,16 +6785,16 @@ msgid "Open a list of all loaded layers."
 msgstr "Otwiera listę wszystkich wczytanych warstw."
 
 msgid "layer is currently visible (click to hide layer)"
-msgstr "warstwa jest teraz widoczna (kliknij aby ją ukryć)"
+msgstr "Warstwa jest widoczna (kliknięcie ukrywa)"
 
 msgid "layer is currently hidden (click to show layer)"
-msgstr "warstwa jest teraz ukryta (kliknij aby ją pokazać)"
+msgstr "Warstwa jest ukryta (kliknięcie wyświetla)"
 
 msgid "this layer is the active layer"
-msgstr "ta warstwa jest warstwą aktywną"
+msgstr "Ta warstwa jest aktywna"
 
 msgid "this layer is not currently active (click to activate)"
-msgstr "ta warstwa nie jest aktywna (kliknij aby była)"
+msgstr "Ta warstwa jest nieaktywna (kliknięcie uaktywnia)"
 
 msgid "scale follows native resolution of this layer"
 msgstr ""
@@ -6805,7 +6804,7 @@ msgid ""
 msgstr ""
 
 msgid "this layer has no native resolution"
-msgstr ""
+msgstr "Ta warstwa nie ma natywnej rozdzielczości"
 
 msgid "Information about layer"
 msgstr "Informacje o warstwie"
@@ -7092,16 +7091,16 @@ msgid "# Objects"
 msgstr "Liczba obiektów"
 
 msgid "Validation Results"
-msgstr "Wyniki sprawdzania"
+msgstr "Wyniki sprawdzania poprawności"
 
 msgid "Open the validation window."
 msgstr "Otwiera okno z informacją o rezultatach sprawdzania poprawności"
 
 msgid "Validation results"
-msgstr "Sprawdzanie poprawności"
+msgstr "Wyniki sprawdzania poprawności"
 
 msgid "Lookup"
-msgstr "Znajdź"
+msgstr "Wyszukaj"
 
 msgid "Looks up the selected primitives in the error list."
 msgstr ""
@@ -7110,10 +7109,10 @@ msgid "Fix"
 msgstr "Napraw"
 
 msgid "Fix the selected issue."
-msgstr "Popraw wybrany problem."
+msgstr "Naprawia wybrany problem"
 
 msgid "Ignore the selected issue next time."
-msgstr "Zignoruj wybrany problem następnym razem."
+msgstr "Ignoruje wybrany problem następnym razem"
 
 msgid "Whole group"
 msgstr "Całą grupę"
@@ -7146,7 +7145,7 @@ msgid "Display the basic properties of the changeset"
 msgstr "Wyświetla podstawowe właściwości zestawu zmian"
 
 msgid "Display the tags of the changeset"
-msgstr "Wyświetla tagi zestawu zmian"
+msgstr "Wyświetla znaczniki zestawu zmian"
 
 msgid "Content"
 msgstr "Zawartość"
@@ -7617,10 +7616,10 @@ msgid "Query and download changesets"
 msgstr "Kolejkuj i pobierz zestawy zmian"
 
 msgid "Please enter a valid changeset query URL first."
-msgstr ""
+msgstr "Proszę, najpierw wprowadź poprawne zapytanie URL zestawu zmian."
 
 msgid "Illegal changeset query URL"
-msgstr ""
+msgstr "Nieprawidłowe zapytanie URL zestawu zmian."
 
 msgid "Close the dialog and abort querying of changesets"
 msgstr "Zamyka okno i przerywa odpytywanie o zestawy zmian."
@@ -7714,10 +7713,10 @@ msgstr "Wyświetl/ukryj warstwę"
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -7917,13 +7916,13 @@ msgid "Refresh recent tags list after applying tag"
 msgstr ""
 
 msgid "No refresh"
-msgstr ""
+msgstr "Nie odświeżaj."
 
 msgid "Refresh tag status only (enabled / disabled)"
-msgstr ""
+msgstr "Odśwież tylko stan znacznika (włączone/wyłączone)."
 
 msgid "Refresh tag status and list of recently added tags"
-msgstr ""
+msgstr "Odśwież stan znacznika oraz listę ostatnio dodanych znaczników."
 
 msgid "to apply first suggestion"
 msgstr "- zastosuj pierwszą podpowiedź"
@@ -8917,19 +8916,19 @@ msgid "Check \"Save\" to save the layer to the file specified on the left."
 msgstr ""
 
 msgid "Provide a brief comment for the changes you are uploading:"
-msgstr "Dołącz opis zmian, które wysyłasz do serwera:"
+msgstr "Opis zmian wysyłanych do serwera:"
 
 msgid "Enter an upload comment"
-msgstr "Wprowadź komentarz przesyłania"
+msgstr "Wprowadza komentarz przesyłania"
 
 msgid "Specify the data source for the changes"
-msgstr "Podaj źródło danych dla zmian"
+msgstr "Zasoby danych dla zmian"
 
 msgid "obtain from current layers"
 msgstr "pobierz z bieżących warstw"
 
 msgid "Enter a source"
-msgstr "Wprowadź źródło"
+msgstr "Wprowadza zasoby danych"
 
 msgid "Changeset id:"
 msgstr "Numer zestawu zmian:"
@@ -8947,38 +8946,38 @@ msgid ""
 "Please decide what changeset the data is uploaded to and whether to close "
 "the changeset after the next upload."
 msgstr ""
-"Wybierz, do którego zestawu zmian zostaną wysłane dane i czy zestaw ma "
-"zostać zamknięty po następnym wysłaniu danych."
+"Proszę określić do którego zestawu zmian dane zostaną wysłane i czy zestaw "
+"ma zostać zamknięty po następnym przesłaniu danych."
 
 msgid "Upload to a new changeset"
-msgstr "Wyślij do nowego zestawu zmian"
+msgstr "Wysłanie do nowego zestawu zmian"
 
 msgid "Open a new changeset and use it in the next upload"
-msgstr "Otwórz nowy zestaw zmian i użyj go przy następnej wysyłce."
+msgstr "Otwiera nowy zestaw zmian i używa go przy następnym wysyłaniu"
 
 msgid "Upload to an existing changeset"
-msgstr "Wyślij do istniejącego zestawu zmian"
+msgstr "Wysłanie do istniejącego zestawu zmian"
 
 msgid "Upload data to an already existing and open changeset"
-msgstr "Wyślij dane do już istniejącego i otwartego zestawu zmian"
+msgstr "Wysyła dane do już istniejącego i otwartego zestawu zmian"
 
 msgid "Select an open changeset"
-msgstr "Wybież otwarty zestaw zmian"
+msgstr "Wybiera otwarty zestaw zmian"
 
 msgid "Close changeset after upload"
-msgstr "Zamknij zestaw zmian po wysłaniu"
+msgstr "Zamknięcie zestawu zmian po przesłaniu"
 
 msgid "Select to close the changeset after the next upload"
-msgstr "Wybierz by zamknąć zestaw zmian po wysyłce"
+msgstr "Zamyka zestaw zmian po zakończeniu wysyłania"
 
 msgid "Load the list of your open changesets from the server"
-msgstr "Wczytaj listę swoich otwartych zestawów zmian z serwera"
+msgstr "Wczytuje listę otwartych zestawów zmian użytkownika z serwera"
 
 msgid "Close the currently selected open changeset"
-msgstr "Zamknij obecnie wybrany otwarty zestaw zmian"
+msgstr "Zamyka wybrany otwarty zestaw zmian"
 
 msgid "<html>Please select the changesets you want to close</html>"
-msgstr "<html>Proszę wybrać zestawy zmian które chcesz zamknąć</html>"
+msgstr "<html>Proszę wybrać zestawy zmian do zamknięcia</html>"
 
 msgid "Open changesets"
 msgstr "Otwarte zestawy zmian"
@@ -8996,7 +8995,7 @@ msgid "Closing changeset"
 msgstr "Zamykanie zestawu zmian"
 
 msgid "Closing changeset {0}"
-msgstr "Zamykam zestaw zmian {0}"
+msgstr "Zamykanie zestawu zmian {0}"
 
 msgid ""
 "Failed to put Credential Dialog always on top. Caught security exception."
@@ -9018,10 +9017,10 @@ msgid "Warning: The password is transferred unencrypted."
 msgstr "Uwaga: Hasło nie jest szyfrowane podczas transmisji."
 
 msgid "Please enter the user name of your OSM account"
-msgstr "Proszę wprowadź nazwę użytkownika swojego konta OSM"
+msgstr "Proszę wprowadzić nazwę użytkownika konta OSM"
 
 msgid "Please enter the password of your OSM account"
-msgstr "Wprowadź hasło do konta OSM"
+msgstr "Proszę wprowadzić hasło do konta OSM"
 
 msgid ""
 "Authenticating at the OSM API ''{0}'' failed. Please enter a valid username "
@@ -9031,10 +9030,10 @@ msgstr ""
 "wprowadź poprawną nazwę użytkownika i poprawne hasło."
 
 msgid "Please enter the user name of your account"
-msgstr "Podaj nazwę użytkownika"
+msgstr "Proszę wprowadzić nazwę użytkownika konta"
 
 msgid "Please enter the password of your account"
-msgstr "Podaj hasło"
+msgstr "Proszę wprowadzić hasło do konta"
 
 msgid ""
 "Authenticating at the host ''{0}'' failed. Please enter a valid username and "
@@ -9346,21 +9345,21 @@ msgid "Settings"
 msgstr "Ustawienia"
 
 msgid "Decide how to upload the data and which changeset to use"
-msgstr "Zdecyduj jak wysłać dane i który zestaw zmian użyć"
+msgstr "Określa jak wysłać dane i który zestaw zmian użyć"
 
 msgid "Tags of new changeset"
 msgstr "Znaczniki nowego zestawu zmian"
 
 msgid "Apply tags to the changeset data is uploaded to"
-msgstr "Przypisz znaczniki do zestawu zmian"
+msgstr "Przypisuje znaczniki do wysyłanego zestawu zmian"
 
 msgid "Manage open changesets and select a changeset to upload to"
 msgstr ""
-"Zarządzaj otartymi zestawami zmian oraz wybierz zestaw zmian, do którego "
-"wysłać dane"
+"Zarządza otwartymi zestawami zmian i wybiera zestaw zmian, do którego wysłać "
+"dane"
 
 msgid "Configure advanced settings"
-msgstr "Ustawienia zaawansowane"
+msgstr "Konfiguruje ustawienia zaawansowane"
 
 msgid "Upload to ''{0}''"
 msgstr "Wysyłanie do „{0}”"
@@ -9369,10 +9368,10 @@ msgid "Upload Changes"
 msgstr "Wyślij zmiany"
 
 msgid "Upload the changed primitives"
-msgstr "Wyślij zmienione elementy"
+msgstr "Wysyła zmienione obiekty"
 
 msgid "Please revise upload comment"
-msgstr "Popraw opis zmian"
+msgstr "Proszę poprawić opis zmian"
 
 msgid ""
 "Your upload comment is <i>empty</i>, or <i>very short</i>.<br /><br />This "
@@ -9389,7 +9388,7 @@ msgstr ""
 "/>wielu innych użytkowników znacznie prostszym."
 
 msgid "Please specify a changeset source"
-msgstr "Podaj źródło zestawu zmian"
+msgstr "Proszę określić zasoby danych zestawu zmian"
 
 msgid ""
 "You did not specify a source for your changes.<br />It is technically "
@@ -9397,6 +9396,9 @@ msgid ""
 "origins of the data.<br /><br />If you spend a minute now to explain your "
 "change, you will make life<br />easier for many other mappers."
 msgstr ""
+"Nie określono zasobu danych wprowadzonych zmian.<br />Jest to dopuszczalne, "
+"ale utrudni to zrozumienie <br />pochodzenia danych innym użytkownikom.<br "
+"/><br />Krótkie wyjaśnienie wprowadzonych zmian ułatwi życie innym maperom."
 
 msgid "Revise"
 msgstr "Popraw"
@@ -9439,7 +9441,7 @@ msgid "Empty metadata"
 msgstr "Pusta metadata"
 
 msgid "Cancel the upload and resume editing"
-msgstr "Anuluj przesyłanie i kontynuuj edytowanie"
+msgstr "Anuluje przesyłanie i pozwala kontynuować edytowanie"
 
 msgid "Tags of changeset {0}"
 msgstr "Znaczniki zestawu zmian {0}"
@@ -9452,16 +9454,16 @@ msgstr ""
 "obiektu i ponowienie próby wysyłania."
 
 msgid "Preparing objects to upload ..."
-msgstr "Przygotowuję obiekty do wysyłki..."
+msgstr "Przygotowywanie obiektów do wysyłania..."
 
 msgid "Objects are uploaded to a <strong>new changeset</strong>."
-msgstr "Obiekty są przesyłane do <strong>nowego zestawu zmian</strong>."
+msgstr "Obiekty zostaną wysłane do <strong>nowego zestawu zmian</strong>."
 
 msgid ""
 "Objects are uploaded to the <strong>open changeset</strong> {0} with upload "
 "comment ''{1}''."
 msgstr ""
-"Obiekty są przesyłane do <strong>otwartego zestawu zmian</strong> {0} z "
+"Obiekty zostaną wysłane do <strong>otwartego zestawu zmian</strong> {0} z "
 "komentarzem „{1}”."
 
 msgid ""
@@ -9478,11 +9480,14 @@ msgid "Uploading <strong>{0} object</strong> to <strong>1 changeset</strong>"
 msgid_plural ""
 "Uploading <strong>{0} objects</strong> to <strong>1 changeset</strong>"
 msgstr[0] ""
-"Przesyłanie <strong>{0} obiektu</strong> do <strong>1 zestawu zmian</strong>"
+"Zostanie wysłany <strong>{0} obiekt</strong> do <strong>1 zestawu "
+"zmian</strong>"
 msgstr[1] ""
-"Przesyłanie <strong>{0} obiektów</strong> do <strong>1 zestawu zmian</strong>"
+"Zostaną wysłane <strong>{0} obiekty</strong> do <strong>1 zestawu "
+"zmian</strong>"
 msgstr[2] ""
-"Przesyłanie <strong>{0} obiektów</strong> do <strong>1 zestawu zmian</strong>"
+"Zostanie wysłanych <strong>{0} obiektów</strong> do <strong>1 zestawu "
+"zmian</strong>"
 
 msgid ""
 "Uploading <strong>{0} object</strong> to <strong>1 changeset</strong> using "
@@ -9491,20 +9496,20 @@ msgid_plural ""
 "Uploading <strong>{0} objects</strong> to <strong>1 changeset</strong> using "
 "<strong>1 request</strong>"
 msgstr[0] ""
-"Przesyłanie <strong>{0} obiektu</strong> do <strong>1 zestawu zmian</strong> "
-"używając <strong>1 zapytania</strong>"
+"Zostanie wysłany <strong>{0} obiekt</strong> do <strong>1 zestawu "
+"zmian</strong> używając <strong>1 zapytania</strong>"
 msgstr[1] ""
-"Przesyłanie <strong>{0} obiektów</strong> do <strong>1 zestawu "
+"Zostaną wysłane <strong>{0} obiekty</strong> do <strong>1 zestawu "
 "zmian</strong> używając <strong>1 zapytania</strong>"
 msgstr[2] ""
-"Przesyłanie <strong>{0} obiektów</strong> do <strong>1 zestawu "
+"Zostanie wysłanych <strong>{0} obiektów</strong> do <strong>1 zestawu "
 "zmian</strong> używając <strong>1 zapytania</strong>"
 
 msgid ""
 "Uploading <strong>{0} objects</strong> to <strong>1 changeset</strong> using "
 "<strong>{1} requests</strong>"
 msgstr ""
-"Przesyłanie <strong>{0} obiektów</strong> do <strong>1 zestawu "
+"Zostanie wysłanych <strong>{0} obiektów</strong> do <strong>1 zestawu "
 "zmian</strong> używając <strong>{1} zapytań</strong>"
 
 msgid "advanced configuration"
@@ -9516,18 +9521,18 @@ msgid ""
 "proceed with <strong>multiple changesets</strong>"
 msgstr ""
 "{0} obiektów przekracza maksymalną dozwoloną ilość {1} obiektów w jednym "
-"zestawie zmian na serwerze „{2}''. <a href=\"urn:advanced-"
+"zestawie zmian na serwerze „{2}”. <a href=\"urn:advanced-"
 "configuration\">Skonfiguruj</a> usługę <strong>wielu zestawów zmian</strong>"
 
 msgid ""
 "Uploading <strong>{0} objects</strong> to <strong>multiple "
 "changesets</strong> using <strong>{1} requests</strong>"
 msgstr ""
-"Przesyłanie <strong>{0} obiektów</strong> do <strong>wielu zestawów "
+"Zostanie wysłanych <strong>{0} obiektów</strong> do <strong>wielu zestawów "
 "zmian</strong> używając <strong>{1} zapytań</strong>"
 
 msgid "Uploading data for layer ''{0}''"
-msgstr "Przesyłanie danych z warstwy „{0}”"
+msgstr "Wysyłanie danych z warstwy „{0}”"
 
 msgid "Continue uploading"
 msgstr "Kontynuowanie przesyłania"
@@ -9591,9 +9596,9 @@ msgstr ""
 
 msgid "Uploading {0} object..."
 msgid_plural "Uploading {0} objects..."
-msgstr[0] "Przesyłanie {0} obieku..."
-msgstr[1] "Przesyłanie {0} obiektów..."
-msgstr[2] "Przesyłanie {0} obiektów..."
+msgstr[0] "Wysyłanie {0} obiektu..."
+msgstr[1] "Wysyłanie {0} obiektów..."
+msgstr[2] "Wysyłanie {0} obiektów..."
 
 msgid ""
 "Ignoring caught exception because upload is canceled. Exception is: {0}"
@@ -9602,7 +9607,7 @@ msgstr ""
 "to: {0}"
 
 msgid "Upload successful!"
-msgstr "Wysyłanie zakończone sukcesem"
+msgstr "Przesłano zmiany"
 
 msgid ""
 "<html>Mark modified objects <strong>from the current selection</strong> to "
@@ -9619,7 +9624,7 @@ msgstr ""
 "skasowane też na serwerze.</html>"
 
 msgid "Select objects to upload"
-msgstr "Wybierz obiekty do wysyłki"
+msgstr "Wybierz obiekty do wysłania"
 
 msgid "Cancel uploading"
 msgstr "Anuluj przesyłanie"
@@ -9635,41 +9640,40 @@ msgstr ""
 "Otwórz i użyj tak wielu nowych zestawów zmian jak to tylko konieczne."
 
 msgid "Please select the upload strategy:"
-msgstr "Wybierz metodę przesyłania:"
+msgstr "Proszę wybrać metodę wysyłania:"
 
 msgid "Upload data in one request"
-msgstr "Przesyłanie danych jednym zapytaniem"
+msgstr "Wysłanie danych w jednym zapytaniu"
 
 msgid "Upload data in chunks of objects. Chunk size: "
-msgstr "Przesyłanie danych w paczkach. Rozmiar paczki: "
+msgstr "Wysłanie danych w pakietach o rozmiarze: "
 
 msgid "Upload each object individually"
-msgstr "Przesyłanie każdego obiektu osobno"
+msgstr "Wysłanie każdego obiektu osobno"
 
 msgid ""
 "<html>There are <strong>multiple changesets</strong> necessary in order to "
 "upload {0} objects. Which strategy do you want to use?</html>"
 msgstr ""
-"<html>Potrzeba <strong>wielu zestawów zmian</strong> by wysłać {0} obiektów. "
-"Którą strategię chcesz użyć?</html>"
+"<html>Potrzeba <strong>wielu zestawów zmian</strong>, aby wysłać {0} "
+"obiektów. Której metody użyć?</html>"
 
 msgid "Upload in one request not possible (too many objects to upload)"
-msgstr ""
-"Wysłanie danych w jednym zapytaniem (zbyt wiele obiektów do wysłania)"
+msgstr "Wysłanie danych w jednym zapytaniu (zbyt wiele obiektów do wysłania)"
 
 msgid ""
 "<html>Cannot upload {0} objects in one request because the<br>max. changeset "
 "size {1} on server ''{2}'' is exceeded.</html>"
 msgstr ""
-"<html>Nie można wysłać {0} obiektów w jednym zapytaniem "
-"ponieważ<br>maksymalny rozmiar zestawu zmian {1} na serwerze „{2}'' został "
-"przekroczony.</html>"
+"<html>Nie można wysłać {0} obiektów w jednym zapytaniu, "
+"ponieważ<br>przekroczono maksymalny rozmiar zestawu zmian {1} na serwerze "
+"„{2}”.</html>"
 
 msgid "(1 request)"
 msgstr "(1 zapytanie)"
 
 msgid "(# requests unknown)"
-msgstr "(liczba zapytań nieznana)"
+msgstr "(nieznana liczba zapytań)"
 
 msgid "({0} request)"
 msgid_plural "({0} requests)"
@@ -9678,24 +9682,28 @@ msgstr[1] "({0} zapytania)"
 msgstr[2] "({0} zapytań)"
 
 msgid "Illegal chunk size <= 0. Please enter an integer > 1"
-msgstr "Błędny rozmiar paczki. Podaj liczbę całkowitą większą od 1"
+msgstr ""
+"Nieprawidłowy rozmiar pakietu. Proszę wprowadzić liczbę całkowitą większą od "
+"1."
 
 msgid "Chunk size {0} exceeds max. changeset size {1} for server ''{2}''"
 msgstr ""
-"Rozmiar paczki {0} przekracza maksymalny rozmiar zestawu ({1}) zmian na "
-"serwerze „{2}''"
+"Rozmiar pakietu {0} przekracza maksymalny rozmiar zestawu ({1}) zmian na "
+"serwerze „{2}”"
 
 msgid "Please enter an integer > 1"
-msgstr "Podaj liczbę całkowitą większą od 1"
+msgstr "Proszę wprowadzić liczbę całkowitą większą od 1"
 
 msgid "Value ''{0}'' is not a number. Please enter an integer > 1"
-msgstr "Wartość „{0}” nie jest liczbą. Podaj liczbę całkowitą większą od 1"
+msgstr ""
+"Wartość „{0}” nie jest liczbą. Proszę wprowadzić liczbę całkowitą większą od "
+"1."
 
 msgid "Objects to add:"
 msgstr "Obiekty do dodania:"
 
 msgid "Objects to modify:"
-msgstr "Obiekty do zmiany:"
+msgstr "Obiekty do zmodyfikowania:"
 
 msgid "Objects to delete:"
 msgstr "Obiekty do usunięcia:"
@@ -9719,7 +9727,7 @@ msgstr[1] "{0} obiekty do usunięcia:"
 msgstr[2] "{0} obiektów do usunięcia:"
 
 msgid "Show tile info"
-msgstr "Pokaż informację o kafelku"
+msgstr "Wyświetl informację o kafelku"
 
 msgid "Tile Info"
 msgstr "Informacja o kafelkach"
@@ -9761,7 +9769,7 @@ msgid "Flush tile cache"
 msgstr "Usuń pamięć podręczną kafelka"
 
 msgid "Failed to create tile source"
-msgstr "Nie udało się stworzyć źródła kafelków"
+msgstr "Nie udało się utworzyć źródła kafelków"
 
 msgid "zoom in to load any tiles"
 msgstr "przybliż by wczytać kafelki"
@@ -9913,8 +9921,9 @@ msgstr "Zapisz warstwę"
 
 msgid "{0} note"
 msgid_plural "{0} notes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "{0} uwaga"
+msgstr[1] "{0} uwagi"
+msgstr[2] "{0} uwag"
 
 msgid "Notes layer"
 msgstr "Warstwa uwag"
@@ -9925,12 +9934,12 @@ msgstr "Łączna liczba uwag:"
 msgid "Changes need uploading?"
 msgstr "Zmiany wymagają wysłania?"
 
-msgid "Data Layer {0}"
-msgstr "Warstwa danych {0}"
-
 msgid "outside downloaded area"
 msgstr "poza pobranym obszarem"
 
+msgid "Data Layer {0}"
+msgstr "Warstwa danych {0}"
+
 msgid "Merging layers"
 msgstr "Łączenie warstw"
 
@@ -9950,22 +9959,22 @@ msgid "API version: {0}"
 msgstr "Wersja API: {0}"
 
 msgid "Upload is discouraged"
-msgstr "Odradzamy wysyłanie"
+msgstr "Wysyłanie odradzane"
 
 msgid "Convert to GPX layer"
-msgstr "Konwertuj na warstwę GPX"
+msgstr "Skonwertuj na warstwę GPX"
 
 msgid "Converted from: {0}"
-msgstr "Przekonwertowany z: {0}"
+msgstr "Skonwertowany z: {0}"
 
 msgid "Dataset consistency test"
-msgstr "Test zgodności zestawu danych"
+msgstr "Przetestuj zgodność zestawu danych"
 
 msgid "No problems found"
-msgstr "Nie znaleziono żadnych problemów"
+msgstr "Nie odnaleziono żadnych problemów"
 
 msgid "Following problems found:"
-msgstr "Znaleziono następujące problemy:"
+msgstr "Odnaleziono następujące problemy:"
 
 msgid "Empty document"
 msgstr "Pusty dokument"
@@ -10452,6 +10461,9 @@ msgstr "Brak dostępnych podkładów mapy."
 msgid "No imagery layers"
 msgstr "Brak podkładów mapy"
 
+msgid "gps point"
+msgstr "punkt GPS"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10464,9 +10476,6 @@ msgstr "Kierunek"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "punkt GPS"
-
 msgid "Import Audio"
 msgstr "Importuj dźwięk"
 
@@ -11490,7 +11499,7 @@ msgid "Choose"
 msgstr "Wybierz"
 
 msgid "Choose a color for {0}"
-msgstr "Wybierz kolor dla {0}"
+msgstr "Wybieranie koloru dla {0}"
 
 msgid "Set to default"
 msgstr "Ustaw na domyślne"
@@ -11534,13 +11543,13 @@ msgid "Draw inactive layers in other color"
 msgstr "Nieaktywne warstwy w innym kolorze"
 
 msgid "Display discardable keys"
-msgstr "Pokaż przestarzałe tagi"
+msgstr "Przestarzałe klucze znaczników"
 
 msgid "Highlight target ways and nodes"
-msgstr "Podświetl docelowe linie i węzły"
+msgstr "Podświetlanie docelowych linii i węzłów"
 
 msgid "Draw rubber-band helper line"
-msgstr "Pokazuj linię pomocniczą za kursorem"
+msgstr "Wyświetlanie linii pomocniczej za kursorem"
 
 msgid "Smooth map graphics (antialiasing)"
 msgstr "Wygładzanie grafiki mapy (antyaliasing)"
@@ -11576,7 +11585,7 @@ msgstr "Zaznacza nieaktywne warstwy danych innym kolorem."
 
 msgid ""
 "Apply antialiasing to the map view resulting in a smoother appearance."
-msgstr "Stosuje antialiasing dla widoku mapy dając gładszy wygląd."
+msgstr "Stosuje antyaliasing dla widoku mapy dając gładszy wygląd."
 
 msgid ""
 "Apply antialiasing to the map view in wireframe mode resulting in a smoother "
@@ -11639,19 +11648,19 @@ msgid "Use global settings"
 msgstr "Użyj globalnych ustawień"
 
 msgid "All"
-msgstr "wszystkie"
+msgstr "Wszystkie"
 
 msgid "Local files"
-msgstr "pliki lokalne"
+msgstr "Pliki lokalne"
 
 msgid "Force lines if no segments imported"
-msgstr "Wymuś linie jeśli nie zaimportowano segmentów"
+msgstr "Wymuszenie linii bez zaimportowanych segmentów"
 
 msgid "Draw large GPS points"
 msgstr "Duże punkty GPS"
 
 msgid "Draw a circle from HDOP value"
-msgstr "Rysuj okręgi na podstawie wartości HDOP"
+msgstr "Rysowanie okręgów na podstawie wartości HDOP"
 
 msgid "Velocity (red = slow, green = fast)"
 msgstr "Prędkość (czerwony = wolno, zielony = szybko)"
@@ -11663,10 +11672,10 @@ msgstr ""
 
 msgid "Dilution of Position (red = high, green = low, if available)"
 msgstr ""
-"Dokładność pozycji (czerwony = duża, zielony = niska, jeśli dostępne)"
+"Dokładność położenia (czerwony = duża, zielony = niska, jeśli dostępne)"
 
 msgid "Track date"
-msgstr "Data ścieżki"
+msgstr "Data śladu"
 
 msgid "Single Color (can be customized for named layers)"
 msgstr "Jeden kolor (moze być zmieniony dla nazwanej warstwy)"
@@ -11690,7 +11699,7 @@ msgid "Dynamic color range based on data limits"
 msgstr "Dynamiczny zestaw kolorów w zależności od ograniczeń danych"
 
 msgid "Smooth GPX graphics (antialiasing)"
-msgstr "Wygładzaj linie GPX (antyaliasing)"
+msgstr "Wygładzanie linii GPX (antyaliasing)"
 
 msgid ""
 "Automatically make a marker layer from any waypoints when opening a GPX "
@@ -11770,30 +11779,30 @@ msgstr ""
 "zmodyfikować w Zarządcy Warstw."
 
 msgid "Colors points and track segments by velocity."
-msgstr "Koloruj punkty i segmenty ścieżek według prędkości"
+msgstr "Koloruje punkty i segmenty śladu według prędkości"
 
 msgid "Colors points and track segments by direction."
-msgstr "Koloruj punkty i segmenty ścieżek według kierunku"
+msgstr "Koloruje punkty i segmenty śladu według kierunku"
 
 msgid ""
 "Colors points and track segments by dilution of position (HDOP). Your "
 "capture device needs to log that information."
 msgstr ""
-"Koloruj punkty i segmenty ścieżek według dokładności pozycji (HDOP). Twoje "
-"urządzenie GPS musi zapisywać tę informację."
+"Koloruje punkty i segmenty śladu według dokładności pozycji (HDOP). Wymaga "
+"przechwytywania tej informacji przez urządzenie GPS."
 
 msgid "Colors points and track segments by its timestamp."
-msgstr "Koloruj punkty i segmenty ścieżek według ich znaczników czasu."
+msgstr "Koloruje punkty i segmenty śladu według ich znaczników czasu."
 
 msgid "Allows to tune the track coloring for different average speeds."
 msgstr ""
 "Pozwana na dostrojenie kolorowania ścieżek dla różnych prędkości średnich."
 
 msgid "Track and Point Coloring"
-msgstr "Kolorowanie ścieżek i punktów"
+msgstr "Kolorowanie śladów i punktów"
 
 msgid "Colors points and track segments by data limits."
-msgstr ""
+msgstr "Koloruje punkty i segmenty ślady według ograniczeń danych"
 
 msgid "Waypoint labelling"
 msgstr "Etykietowanie punktów"
@@ -12348,7 +12357,7 @@ msgid " (requires: {0})"
 msgstr " (wymaga: {0})"
 
 msgid "Configure available plugins."
-msgstr "Konfiguracja dostępnych wtyczek."
+msgstr "Konfiguruje dostępne wtyczki"
 
 msgid ""
 "The following plugin has been downloaded <strong>successfully</strong>:"
@@ -12398,14 +12407,14 @@ msgid "Download the list of available plugins"
 msgstr "Pobiera listę dostępnych wtyczek"
 
 msgid "Update the selected plugins"
-msgstr "Aktualizuje wybrane wtyczki"
+msgstr "Uaktualnia wybrane wtyczki"
 
 msgid ""
 "All installed plugins are up to date. JOSM does not have to download newer "
 "versions."
 msgstr ""
-"Wszystkie zainstalowane wtyczki są aktualne. JOSM nie musi pobierać nowszych "
-"wersji."
+"Wszystkie zainstalowane wtyczki są aktualne. Nie ma potrzeby pobierać "
+"nowszych wersji."
 
 msgid "Plugins up to date"
 msgstr "Wtyczki są aktualne"
@@ -12416,6 +12425,33 @@ msgstr "Konfiguruj strony..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Konfiguruje listę stron z których pobierane są wtyczki"
 
+msgid "Load from list..."
+msgstr "Wczytaj z listy..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Wczytuje wtyczki z listy wtyczek"
+
+msgid "Disable all other plugins"
+msgstr "Wyłączenie wszystkich innych wtyczek"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Proszę wprowadzić listę wtyczek do pobrania."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Nazwy wtyczek należy wprowadzać w osobnych wierszach. Numery wersji zostaną "
+"zignorowane."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "W poniższe pole można wkleić raport stanu."
+
+msgid "Load plugins from list"
+msgstr "Wczytywanie wtyczek z listy"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "Nie odnaleziono następujących wtyczek. Kontynuować mimo to?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Dodaj adres URL listy wtyczek dla JOSM."
 
@@ -12432,28 +12468,27 @@ msgid "JOSM Plugin description URL"
 msgstr "Adres URL listy wtyczek dla JOSM"
 
 msgid "Update interval (in days):"
-msgstr "Czas pomiędzy aktualizacjami (w dniach):"
+msgstr "Liczba dni pomiędzy uaktualnieniami:"
 
 msgid "Ask before updating"
-msgstr "Pytaj przed aktualizacją"
+msgstr "Pytanie przed uaktualnieniem"
 
 msgid "Always update without asking"
-msgstr "Aktualizuj bez pytania"
+msgstr "Uaktualnianie bez pytania"
 
 msgid "Never update"
-msgstr "Nigdy nie aktualizuj"
+msgstr "Nie uaktualnianie"
 
 msgid ""
 "Please decide whether JOSM shall automatically update active plugins at "
 "startup after an update of JOSM itself."
 msgstr ""
-"Zdecyduj, czy JOSM może automatycznie aktualizować wtyczki po własnej "
-"aktualizacji"
+"Proszę określić, czy wtyczki będą uaktualniane po aktualizacji programu."
 
 msgid ""
 "Please decide whether JOSM shall automatically update active plugins after a "
 "certain period of time."
-msgstr "Zdecyduj, czy JOSM może okresowo aktualizować wtyczki"
+msgstr "Proszę określić, czy wtyczki będą uaktualniane okresowo"
 
 msgid "By Code (EPSG)"
 msgstr "Po kodzie (EPSG)"
@@ -12580,7 +12615,7 @@ msgstr "Odwzorowanie kartograficzne"
 
 msgid "The projection {0} could not be activated. Using Mercator"
 msgstr ""
-"Odwzorowanie {0} nie może zostać aktywowane. Używam odwzorowania Mercatora."
+"Nie można uaktywnić odwzorowania {0}. Używanie odwzorowania Mercatora."
 
 msgid "PUWG 1992 (Poland)"
 msgstr "PUWG 1992 (Polska)"
@@ -12754,19 +12789,18 @@ msgstr ""
 "Konfiguruj tożsamość użytkownika i sposób jej potwierdzania w serwerze OSM"
 
 msgid "Use Basic Authentication"
-msgstr "Używaj prostego uwierzytelniania"
+msgstr "Używanie prostego uwierzytelniania"
 
 msgid ""
 "Select to use HTTP basic authentication with your OSM username and password"
 msgstr ""
-"Wybierz aby używać prostego uwierzytelniania HTTP z twoją nazwą użytkownika "
-"i hasłem OSM"
+"Używa prostego uwierzytelniania HTTP z nazwą użytkownika i hasłem OSM"
 
 msgid "Use OAuth"
-msgstr "Używaj OAuth"
+msgstr "Używanie OAuth"
 
 msgid "Select to use OAuth as authentication mechanism"
-msgstr "Wybierz aby używać mechanizmu uwierzytelniania OAuth"
+msgstr "Używa mechanizmu uwierzytelniania OAuth"
 
 msgid ""
 "Unsupported value in preference ''{0}'', got ''{1}''. Using authentication "
@@ -12835,20 +12869,24 @@ msgid "Click test access to the OSM server with the current access token"
 msgstr ""
 
 msgid "<html>Use the default OSM server URL (<strong>{0}</strong>)</html>"
-msgstr "<html>Używaj domyślnego URL serwera (<strong>{0}</strong>)</html>"
+msgstr ""
+"<html>Używanie domyślnego adresu URL serwera (<strong>{0}</strong>)</html>"
 
 msgid "Test the API URL"
-msgstr "Sprawdza URL API"
+msgstr "Sprawdza URL interfejsu API"
 
 msgid "The API URL is valid."
-msgstr "URL API działa poprawnie."
+msgstr "Adres URL interfejsu API jest prawidłowy."
 
 msgid "Validation failed. The API URL seems to be invalid."
-msgstr "Sprawdzanie nie udało się. Wydaje się, że URL do API jest błędny."
+msgstr ""
+"Nieudane weryfikowanie. Wydaje się, że adres URL interfejsu API jest "
+"nieprawidłowy."
 
 msgid "OSM API URL must not be empty. Please enter the OSM API URL."
 msgstr ""
-"Adres URL API OSM nie może być pusty. Proszę wprowadzić adres URL API OSM"
+"Adres URL interfejsu API OSM nie może być pusty. Proszę wprowadzić adres URL "
+"interfejsu API OSM"
 
 msgid "The current value is not a valid URL"
 msgstr "Aktualna wartość nie jest prawidłowym adresem URL"
@@ -12866,10 +12904,10 @@ msgid "Overpass server"
 msgstr "Serwer Overpass"
 
 msgid "Proxy settings"
-msgstr "Ustawienia proxy"
+msgstr "Proxy"
 
 msgid "Configure whether to use a proxy server"
-msgstr "Konfiguruj czy używać serwera proxy"
+msgstr "Konfiguruje używanie serwera proxy"
 
 msgid "Host:"
 msgstr "Host:"
@@ -12915,10 +12953,10 @@ msgstr ""
 "„Bez serwera proxy\""
 
 msgid "Connection Settings"
-msgstr "Ustawienia połączenia"
+msgstr "Połączenia"
 
 msgid "Connection Settings for the OSM server."
-msgstr "Ustawienia połączenia z serwerem OSM."
+msgstr "Konfiguruje połączenia z serwerem OSM"
 
 msgid "Please enter your OSM user name"
 msgstr "Proszę wprowadć swoją nazwę użytkownika OSM."
@@ -12928,7 +12966,7 @@ msgstr ""
 "Nazwa użytkownika nie może być pusta. Proszę wprowadzić nazwę użytkownika OSM"
 
 msgid "Action"
-msgstr "Akcja"
+msgstr "Czynność"
 
 msgid "Shortcut"
 msgstr "Skrót"
@@ -13107,13 +13145,13 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Delete the selection in the tag table"
-msgstr "Usuwa zaaznaczenie w tabeli tagów"
+msgstr "Usuwa zaznaczone znaczniki"
 
 msgid "Add a new tag"
 msgstr "Dodaje nowy znacznik"
 
 msgid "Paste tags from buffer"
-msgstr "Wklej znaczniki ze schowka"
+msgstr "Wkleja znaczniki ze schowka"
 
 msgid "Use preset ''{0}'' of group ''{1}''"
 msgstr "Używa szablon „{0}” z grupy „{1}”"
@@ -13125,7 +13163,7 @@ msgid "Elements of type {0} are supported."
 msgstr "Elementy typu {0} nie są wspierane."
 
 msgid "This preset also sets: {0}"
-msgstr ""
+msgstr "Ten szablon ustala także: {0}"
 
 msgid "Edit also …"
 msgstr "Edytuj też..."
@@ -13546,9 +13584,6 @@ msgstr "<html>Nie można odczytać plików.<br>Błąd w:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Pliki GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Warstwa „{0}'' nie jest obsługiwana"
 
@@ -14466,8 +14501,8 @@ msgid ""
 "You updated your JOSM software.<br>To prevent problems the plugins should be "
 "updated as well.<br><br>Update plugins now?"
 msgstr ""
-"JOSM został zaktualizowany.<br>Aby zapobiec błędom powinny być "
-"zaktualizowane także wtyczki.<br><br>Zaktualizować wtyczki?"
+"Uaktualniono program JOSM.<br><br>Aby zapobiec błędom wtyczki również "
+"powinny zostać uaktualnione.<br><br>Uaktualnić wtyczki?"
 
 msgid "Last plugin update more than {0} days ago."
 msgstr "Ostatnia aktualizacja wtyczek odbyła się przed {0} dniami."
@@ -14501,13 +14536,13 @@ msgid ""
 msgstr ""
 
 msgid "Click to update the activated plugins"
-msgstr "Kliknij aby aktualizować aktywowane wtyczki"
+msgstr "Uaktualnia aktywne wtyczki"
 
 msgid "Skip update"
 msgstr "Pomiń aktualizację"
 
 msgid "Click to skip updating the activated plugins"
-msgstr "Kliknij aby pominąć aktualizację aktywnych wtyczek"
+msgstr "Pomija uaktualnianie aktywnych wtyczek"
 
 msgid ""
 "Plugin {0} requires a plugin which was not found. The missing plugin is:"
@@ -14515,14 +14550,14 @@ msgid_plural ""
 "Plugin {0} requires {1} plugins which were not found. The missing plugins "
 "are:"
 msgstr[0] ""
-"Wtyczka {0} wymaga wtyczki która nie została znaleziona. Brakująca wtyczka "
-"to:"
+"Wtyczka {0} wymaga do działania wtyczki, której nie odnaleziono. Brakująca "
+"wtyczka to:"
 msgstr[1] ""
-"Wtyczka {0} wymaga {1} wtyczek które nie zostały znalezione. Brakujące "
-"wtyczki to:"
+"Wtyczka {0} wymaga do działania {1} wtyczek, których nie odnaleziono. "
+"Brakujące wtyczki to:"
 msgstr[2] ""
-"Wtyczka {0} wymaga {1} wtyczek które nie zostały znalezione. Brakujące "
-"wtyczki to:"
+"Wtyczka {0} wymaga do działania {1} wtyczek, których nie odnaleziono. "
+"Brakujące wtyczki to:"
 
 msgid "Download and restart"
 msgstr "Pobierz i uruchom ponownie"
@@ -14581,8 +14616,8 @@ msgstr[0] "Wtyczka nie zostanie wczytana"
 msgstr[1] "Wtyczki nie zostaną wczytane"
 msgstr[2] "Wtyczki nie zostaną wczytane"
 
-msgid "Determine plugins to load..."
-msgstr "Ustalanie wtyczek do wczytania..."
+msgid "Determining plugins to load..."
+msgstr "Określanie wtyczek do wczytania..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Usuwanie przestarzałych wtyczek..."
@@ -14592,9 +14627,9 @@ msgstr "Usuwanie nieutrzymywanych wtyczek..."
 
 msgid "Updating the following plugin has failed:"
 msgid_plural "Updating the following plugins has failed:"
-msgstr[0] "Aktualizacja następującej wtyczki zakończyła się niepowodzeniem:"
-msgstr[1] "Aktualizacja następujących wtyczek zakończyła się niepowodzeniem:"
-msgstr[2] "Aktualizacja następujących wtyczek zakończyła się niepowodzeniem:"
+msgstr[0] "Nie udało się uaktualnić następującej wtyczki:"
+msgstr[1] "Nie udało się uaktualnić następujących wtyczek:"
+msgstr[2] "Nie udało się uaktualnić następujących wtyczek:"
 
 msgid ""
 "Please open the Preference Dialog after JOSM has started and try to update "
@@ -14603,14 +14638,14 @@ msgid_plural ""
 "Please open the Preference Dialog after JOSM has started and try to update "
 "them manually."
 msgstr[0] ""
-"Proszę otworzyć okno Ustawienia po starcie JOSM i spróbować zaktualizować je "
-"ponownie."
+"Proszę otworzyć okno ustawień po uruchomieniu programu i ponownie spróbować "
+"ją uaktualnić."
 msgstr[1] ""
-"Proszę otworzyć okno Ustawienia po starcie JOSM i spróbować zaktualizować je "
-"ponownie."
+"Proszę otworzyć okno ustawień po uruchomieniu programu i ponownie spróbować "
+"je uaktualnić."
 msgstr[2] ""
-"Proszę otworzyć okno Ustawienia po starcie JOSM i spróbować zaktualizować je "
-"ponownie."
+"Proszę otworzyć okno ustawień po uruchomieniu programu i ponownie spróbować "
+"je uaktualnić."
 
 msgid "Plugin update failed"
 msgstr "Nieudane uaktualnianie wtyczek"
@@ -15097,6 +15132,9 @@ msgstr ""
 "Nie udało uzyskać dostępu do katalogu „{0}” ze względów bezpieczeństwa. "
 "Wyjątek: {1}"
 
+msgid "Cause: "
+msgstr "Przyczyna: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15137,6 +15175,7 @@ msgid ""
 "This version is no longer supported by {0} since {1} and is not recommended "
 "for use."
 msgstr ""
+"Ta wersja nie jest obsługiwana przez {0} od {1} i odradza się jej używanie."
 
 msgid ""
 "JOSM will soon stop working with this version; we highly recommend you to "
@@ -15307,6 +15346,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Zgłoś błąd"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Nie pokazuj więcej raportów z błędami dla tej sesji."
 
@@ -15340,7 +15382,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16076,13 +16118,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16478,10 +16526,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -16867,6 +16915,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Narzedzie do rysowania budynków."
 
@@ -17102,6 +17155,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -17216,6 +17272,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19419,9 +19479,27 @@ msgstr "Przepust"
 msgid "Basin"
 msgstr "Zbiornik wód deszczowych"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Sztuczne jezioro"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Zakryty sztuczny zbiornik wody"
 
@@ -19456,6 +19534,12 @@ msgstr "zbiornik"
 msgid "river"
 msgstr "rzeka"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Słona woda"
 
@@ -20661,6 +20745,9 @@ msgstr "Park rozrywki/tematyczny"
 msgid "Water Park"
 msgstr "Park wodny"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Basen"
 
@@ -23314,8 +23401,11 @@ msgstr "Sklep rybny"
 msgid "Deli (Fine Food)"
 msgstr "Delikatesy"
 
-msgid "Candy Store"
-msgstr "Cukiernia"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Wyroby herbaciane"
@@ -23566,8 +23656,11 @@ msgstr "Automat sprzedający"
 msgid "Vending products"
 msgstr "Sprzedawane produkty"
 
-msgid "animal_food"
-msgstr "jedzenie dla zwierząt"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "dętki do roweru"
@@ -23581,6 +23674,9 @@ msgstr "prezerwatywy"
 msgid "drinks"
 msgstr "napoje"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "torby na odchody"
 
@@ -23596,6 +23692,12 @@ msgstr "gazety"
 msgid "parking_tickets"
 msgstr "bilety parkingowe"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "zdjęcia"
 
@@ -23614,18 +23716,12 @@ msgstr "znaczki"
 msgid "sweets"
 msgstr "słodycze"
 
-msgid "tampons"
-msgstr "tampony"
-
 msgid "telephone_vouchers"
 msgstr "doładowanie do telefonu"
 
 msgid "toys"
 msgstr "zabawki"
 
-msgid "vouchers"
-msgstr "vouchery/bony"
-
 msgid "Payment Methods"
 msgstr "Metody płatności"
 
@@ -24340,6 +24436,15 @@ msgstr "Szklarnia ogrodnicza"
 msgid "Plant Nursery"
 msgstr "Szkółka roślin"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Ogródki działkowe"
 
@@ -24433,6 +24538,9 @@ msgstr "Oficjalna nazwa"
 msgid "Common name abbreviation"
 msgstr "Najpopularniejsze odmiany nazwy"
 
+msgid "Address"
+msgstr "Adres"
+
 msgid "House number"
 msgstr "Numer domu"
 
@@ -25591,7 +25699,7 @@ msgid "Download Track ..."
 msgstr "Pobierz ślad..."
 
 msgid "Download GPX track from openstreetmap.org"
-msgstr "Pobierz ślad GPX z openstreetmap.org"
+msgstr "Pobiera ślad GPX z openstreetmap.org"
 
 msgid "Download Track"
 msgstr "Pobierz ślad"
@@ -25603,15 +25711,17 @@ msgid ""
 "Error occurred while parsing gpx file {0}. Only a part of the file will be "
 "available."
 msgstr ""
+"Wystąpił błąd podczas przetwarzania pliku gpx {0}. Dostępny będzie tylko "
+"fragment pliku."
 
 msgid "Error fetching URL {0}"
-msgstr ""
+msgstr "Błąd pobierania adresu URL {0}"
 
 msgid "Error parsing data from URL {0}"
-msgstr ""
+msgstr "Błąd przetwarzania danych z adresu URL {0}"
 
 msgid "Invalid URL {0}"
-msgstr "Nieprawidłowy URL {0}"
+msgstr "Nieprawidłowy adres URL {0}"
 
 msgid "Private (only shared as anonymous, unordered points)"
 msgstr ""
@@ -25631,7 +25741,7 @@ msgid "Upload Trace"
 msgstr "Wyślij ślad"
 
 msgid "Upload Traces"
-msgstr "Wyślij ślad GPS"
+msgstr "Wyślij ślady"
 
 msgid "Defines the visibility of your trace for other OSM users."
 msgstr "Definiuje widoczność twojego śladu dla innych użytkowników OSM"
@@ -25649,7 +25759,7 @@ msgid "Tags (comma delimited)"
 msgstr "Znaczniki (rozdzielone przecinkami)"
 
 msgid "Please enter tags about your trace."
-msgstr "Proszę wprowadzić tagi śladu."
+msgstr "Proszę wprowadzić znaczniki śladu."
 
 msgid "Selected track: {0}"
 msgstr "Wybrany ślad: {0}"
@@ -25661,22 +25771,22 @@ msgid "Uploading trace ..."
 msgstr "Wysyłanie śladu..."
 
 msgid "Upload canceled"
-msgstr "Wysyłanie zostało anulowane"
+msgstr "Anulowano wysyłanie"
 
 msgid "Error while uploading"
 msgstr "Błąd podczas wysyłania"
 
 msgid "GPX upload was successful"
-msgstr "Wysyłanie GPX zakończone sukcesem"
+msgstr "Wysłano ślad GPX"
 
 msgid "Upload failed. Server returned the following message: "
-msgstr "Wysyłanie nie powiodło się. Serwer zwrócić następujący komunikat: "
+msgstr "Nieudane wysyłanie. Serwer zwrócić następujący komunikat: "
 
 msgid "Uploading GPX track: {0}% ({1} of {2})"
-msgstr "Wysyłam ślad GPX: {0}% ({1} z {2})"
+msgstr "Wysyłanie śladu GPX: {0}% ({1} z {2})"
 
 msgid "No description provided. Please provide some description."
-msgstr "Nie podano opisu. Proszę podać jakiś opis."
+msgstr "Nie wprowadzono opisu. Proszę wprowadzić jakiś opis."
 
 msgid "Uploading GPX Track"
 msgstr "Wysyłanie śladu GPX"
@@ -26649,6 +26759,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nazwa ulicy:"
 
@@ -27533,9 +27658,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Adres"
-
 msgid "Split area"
 msgstr "Podział obszaru"
 
@@ -28624,7 +28746,7 @@ msgstr ""
 msgid "Check "
 msgstr "Sprawdź "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -29491,6 +29613,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Czytanie danych OSM ..."
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29977,18 +30117,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr "Pobnierz PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr "Czytanie danych OSM ..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -30640,6 +30771,9 @@ msgstr "Drukowanie nie powiodło się."
 msgid "Add stop position"
 msgstr "Dodaj miejsce zatrzymywania"
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30655,6 +30789,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30683,10 +30823,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30721,6 +30857,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -30730,13 +30872,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -31530,6 +31671,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Uprość obszar"
 
@@ -32395,7 +32581,7 @@ msgid "Errors/Warnings"
 msgstr "Błędy/Uwagi"
 
 msgid "Show errors and warnings related to this turn restriction"
-msgstr "Pokazuje błędy i uwagi zwiazane z tym ograniczeniem skrętu"
+msgstr "Pokazuje błędy i uwagi związane z tym ograniczeniem skrętu"
 
 msgid "Create a new turn restriction in layer ''{0}''"
 msgstr "Tworzenie nowego ograniczenia skrętu na warstwie „{0}”"
@@ -33586,6 +33772,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr "Dodaj nazwy z Wikipedii"
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr "Pobiera z Wikipedii linki interwiki w celu dodanie kilku tagów"
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr "Kopiuj {0} szablon"
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -33597,27 +33798,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr "Dodaj nazwy z Wikipedii"
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr "Pobiera z Wikipedii linki interwiki w celu dodanie kilku tagów"
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr "Kopiuj {0} szablon"
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Połącz artykuły z Wikipedi ze współrzędnymi"
 
@@ -33636,10 +33822,10 @@ msgid "Not linked yet"
 msgstr "Jeszcze nie połączone"
 
 msgid "{0}: {1}"
-msgstr ""
+msgstr "{0}: {1}"
 
 msgid "Wikidata"
-msgstr ""
+msgstr "Wikidata"
 
 msgid "Fetches all coordinates from Wikidata in the current view"
 msgstr ""
diff --git a/i18n/po/pt.po b/i18n/po/pt.po
index 1f30b72..b0b4bd7 100644
--- a/i18n/po/pt.po
+++ b/i18n/po/pt.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-05-24 18:43+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-13 14:55+0000\n"
 "Last-Translator: Rui <xande6ruz at yandex.com>\n"
 "Language-Team: Portuguese <pt at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:02+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:22+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: pt\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Condições de Utilização da Imagem de Fundo"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "A abertura do link não é suportada pela plataforma atual (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERRO: {0}"
-
-msgid "WARNING: {0}"
-msgstr "AVISO: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Causa: "
-
 msgid "Executing platform startup hook"
 msgstr "A executar arranque da plataforma"
 
@@ -513,6 +498,12 @@ msgstr "Descarregar dados"
 msgid "Download notes in current view"
 msgstr "Descarregar erros reportados na vista atual"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Descarregar objeto..."
 
@@ -2166,6 +2157,15 @@ msgstr ""
 "Clique para eliminar. SHIFT: eliminar segmento da linha. ALT: não eliminar "
 "nós não utilizados ao eliminar uma linha. CTRL: eliminar objetos referentes."
 
+msgid "draw angle snap"
+msgstr "desenhar em ângulo com íman"
+
+msgid "draw angle snap highlight"
+msgstr "destaque de desenho em ângulos com íman"
+
+msgid "helper line"
+msgstr "linha de ajuda"
+
 msgid "Draw"
 msgstr "Desenhar"
 
@@ -2178,9 +2178,6 @@ msgstr "Modo: Desenho de ângulos com íman"
 msgid "Backspace in Add mode"
 msgstr "Tecla de apagar (<--- backspace) no Modo Adicionar"
 
-msgid "helper line"
-msgstr "linha de ajuda"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Não é possível adicionar um nó fora do mundo."
 
@@ -2246,12 +2243,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIXAR"
 
-msgid "draw angle snap"
-msgstr "desenhar em ângulo com íman"
-
-msgid "draw angle snap highlight"
-msgstr "destaque de desenho em ângulos com íman"
-
 msgid "Angle snapping"
 msgstr "Ângulos com íman"
 
@@ -2356,15 +2347,15 @@ msgstr[1] "Adicionar um novo nó a {0} linhas"
 msgid "Cannot delete node that has tags"
 msgstr "Não é possível eliminar um nó que tenha etiquetas"
 
+msgid "make parallel helper line"
+msgstr "Criar linha de ajuda paralela"
+
 msgid "Parallel"
 msgstr "Paralela"
 
 msgid "Make parallel copies of ways"
 msgstr "Faz cópias paralelas de linhas"
 
-msgid "make parallel helper line"
-msgstr "Criar linha de ajuda paralela"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3881,10 +3872,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "Nenhuma unidade encontrada para: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-"O parâmetro tem de começar com o caractere a ''+'' (foi encontrado ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Parâmetro desconhecido: ''{0}''."
 
@@ -3894,6 +3881,10 @@ msgstr "Valor esperado para o parâmetro ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Nenhum valor esperado para o parâmetro  ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+"O parâmetro tem de começar com o caractere a ''+'' (foi encontrado ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Formato de parâmetro inesperado (''{0}'')"
 
@@ -5200,8 +5191,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Tenha a certeza que carrega alguns dados se usar --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "A colocar mensagens na consola de comandos"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Carregamento de plug-ins ignorado"
@@ -6467,6 +6458,9 @@ msgstr "Clique para fechar esta janela e continuar a editar o mapa"
 msgid "Conflicts detected"
 msgstr "Surgiram conflitos"
 
+msgid "Resolve conflicts"
+msgstr "Resolver conflitos"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Calcelar resolução de conflitos e fechar a janela"
 
@@ -6499,9 +6493,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflito não resolvido por completo"
 
-msgid "Resolve conflicts"
-msgstr "Resolver conflitos"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resolver conflitos de ''{0}''"
 
@@ -7847,12 +7838,12 @@ msgstr "Mostrar/esconder camada"
 msgid "Discardable key: selection Foreground"
 msgstr "Chave descartável: seleção no primeiro plano"
 
-msgid "Discardable key: selection Background"
-msgstr "Chave descartável: seleção no segundo plano"
-
 msgid "Discardable key: foreground"
 msgstr "Chave descartável: primeiro plano"
 
+msgid "Discardable key: selection Background"
+msgstr "Chave descartável: seleção no segundo plano"
+
 msgid "Discardable key: background"
 msgstr "Chave descartável: segundo plano"
 
@@ -10110,12 +10101,12 @@ msgstr "Total de erros reportados:"
 msgid "Changes need uploading?"
 msgstr "As alterações necessitam de ser enviadas?"
 
-msgid "Data Layer {0}"
-msgstr "Camada de Dados {0}"
-
 msgid "outside downloaded area"
 msgstr "fora da área descarregada"
 
+msgid "Data Layer {0}"
+msgstr "Camada de Dados {0}"
+
 msgid "Merging layers"
 msgstr "A fundir camadas"
 
@@ -10635,6 +10626,9 @@ msgstr "Não existe nenhuma cada de imagem de fundo."
 msgid "No imagery layers"
 msgstr "Nenhuma camada de imagens de fundo"
 
+msgid "gps point"
+msgstr "ponto gps"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10647,9 +10641,6 @@ msgstr "Sentido do trânsito"
 msgid "Velocity, {0}"
 msgstr "Velocidade, {0}"
 
-msgid "gps point"
-msgstr "ponto gps"
-
 msgid "Import Audio"
 msgstr "Importar Áudio"
 
@@ -12716,6 +12707,31 @@ msgstr "Configurar sites..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configurar a lista de sites de onde os módulos são descarregados"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Adicionar URL da descrição do módulo"
 
@@ -13947,9 +13963,6 @@ msgstr "<html>Não foi possível ler os ficheiros.<br>O erro é:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Ficheiros GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Ficheiros GeoJSON Projetados"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Camada ''{0}'' não suportada"
 
@@ -15039,8 +15052,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "O módulo não será carregado."
 msgstr[1] "Os módulos não serão carregados."
 
-msgid "Determine plugins to load..."
-msgstr "A determinar módulos a carregar..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "A remover módulos depreciados"
@@ -15656,6 +15669,9 @@ msgstr ""
 "Não foi possível aceder ao diretório ''{0}'' por razões de segurança. "
 "Detalhes: {1}"
 
+msgid "Cause: "
+msgstr "Causa: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15896,6 +15912,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Comunicar um Erro"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Não mostrar mais avisos de erros nesta sessão."
 
@@ -15927,15 +15946,17 @@ msgid "An error occured while checking if your JOSM instance is up to date."
 msgstr ""
 
 msgid "JOSM is up to date."
-msgstr ""
+msgstr "O JOSM está atualizado."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
 "version of JOSM here:"
 msgstr ""
+"Antes de submeter um relatório de erro certifique-se que tem a última versão "
+"do JOSM disponível em:"
 
 msgid "Update JOSM"
 msgstr "Atualizar o JOSM"
@@ -16381,10 +16402,10 @@ msgid "OSM Inspector: Boundaries (EU)"
 msgstr "OSM Inspector: Fronteiras (EU)"
 
 msgid "IGN Argentina (WMTS)"
-msgstr ""
+msgstr "IGN Argentina (WMTS)"
 
 msgid "IGN Argentina (WMS)"
-msgstr ""
+msgstr "IGN Argentina (WMS)"
 
 msgid "AGRI black-and-white 2.5m"
 msgstr "AGRI preto e branco 2.5m"
@@ -16462,7 +16483,7 @@ msgid "AGIV (Vlaanderen / Flanders) most recent aerial imagery (winter)"
 msgstr ""
 
 msgid "AGIV aerial imagery 10cm 2013-15"
-msgstr ""
+msgstr "AGIV imagens aéreas 10cm 2013-15"
 
 msgid "URBISfr numerical imagery (2013)"
 msgstr "URBISfr imagens numéricas (2013)"
@@ -16579,7 +16600,7 @@ msgid "BD Carthage"
 msgstr "BD Carthage"
 
 msgid "BDOrtho IGN"
-msgstr ""
+msgstr "BDOrtho IGN"
 
 msgid "Bordeaux - 2012"
 msgstr "Bordéus - 2012"
@@ -16678,14 +16699,20 @@ msgstr "Berlim aerial photograph 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlim aerial photograph 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Estugarda (imagens aéreas)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen imagens aéreas (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 imagens aéreas (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr ""
@@ -17083,11 +17110,11 @@ msgstr "Zurique - Stadt Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Zurique - Stadt Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Cantão de Solothurn - Ortofoto RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Cantão de Solothurn -  Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Cantão de Genebra 5cm (SITG 2011)"
@@ -17481,6 +17508,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Ferramenta que facilita a criação de edifícios retangulares"
 
@@ -17773,6 +17805,9 @@ msgstr ""
 "Impede que se utilize o JOSM para sempre (AVISO: este módulo não permite "
 "iniciar o JOSM e é muito difícil desativá-lo)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 "Permite importar dados de certos sites com dados abertos (open data, sob uma "
@@ -17914,6 +17949,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Editar elementos para Cartas Marítimas"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20191,9 +20230,27 @@ msgstr "Tubo de drenagem"
 msgid "Basin"
 msgstr "Bacia hidrográfica"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservatório artificial (tanque, albufeira de barragem...)"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Reservatório Coberto"
 
@@ -20228,6 +20285,12 @@ msgstr "reservatório"
 msgid "river"
 msgstr "rio"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Água Salgada"
 
@@ -21439,6 +21502,9 @@ msgstr "Parque de Diversões"
 msgid "Water Park"
 msgstr "Parque Aquático"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Piscina"
 
@@ -24094,8 +24160,11 @@ msgstr "Peixaria"
 msgid "Deli (Fine Food)"
 msgstr "Loja de Gourmet"
 
-msgid "Candy Store"
-msgstr "Loja de Guloseimas"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Chá"
@@ -24346,8 +24415,11 @@ msgstr "Máquida de Venda Automática"
 msgid "Vending products"
 msgstr "Produtos à venda"
 
-msgid "animal_food"
-msgstr "comida para animais"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "pneus de bicicleta"
@@ -24361,6 +24433,9 @@ msgstr "preservativos"
 msgid "drinks"
 msgstr "bebidas"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "sacos para excrementos"
 
@@ -24376,6 +24451,12 @@ msgstr "Jornais"
 msgid "parking_tickets"
 msgstr "bilhetes de estacionamento"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotografias"
 
@@ -24394,18 +24475,12 @@ msgstr "selos de correio"
 msgid "sweets"
 msgstr "doces"
 
-msgid "tampons"
-msgstr "tampões"
-
 msgid "telephone_vouchers"
 msgstr "cartões telefónicos"
 
 msgid "toys"
 msgstr "brinquedos"
 
-msgid "vouchers"
-msgstr "vales"
-
 msgid "Payment Methods"
 msgstr "Meios de Pagamento"
 
@@ -25133,6 +25208,15 @@ msgstr "Estufa Hortícola"
 msgid "Plant Nursery"
 msgstr "Viveiro de Plantas"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Horta Urbana / Comunitária"
 
@@ -25226,6 +25310,9 @@ msgstr "Nome oficial"
 msgid "Common name abbreviation"
 msgstr "Abreviatura comum do nome"
 
+msgid "Address"
+msgstr "Endereço"
+
 msgid "House number"
 msgstr "Número de porta"
 
@@ -27613,6 +27700,21 @@ msgstr "Depuração (debug)"
 msgid "Debugging mode will write images for each processing step."
 msgstr "O modo de depuração grava imagens para cada passo do processamento"
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nome da Rua:"
 
@@ -28572,9 +28674,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Endereço"
-
 msgid "Split area"
 msgstr "Dividir área"
 
@@ -29736,7 +29835,7 @@ msgstr ""
 msgid "Check "
 msgstr "Verificar "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -30636,6 +30735,24 @@ msgstr ""
 "(Para continuar a mapear miseravelmente, editar no_more_mapping\n"
 "em {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "Identificador de conjunto de alterações inválido: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Marca de tempo inválida: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "A ler dados do OpenStreetMap..."
+
 msgid "Split by municipality"
 msgstr "Dividir por município"
 
@@ -31178,18 +31295,9 @@ msgstr "Ficheiros de Servidor OSM comprimidos em pbf"
 msgid "Download PBF"
 msgstr "Descarregar PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Identificador de conjunto de alterações inválido: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Marca de tempo inválida: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr "A ler dados do OpenStreetMap..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Erro de transformação: min X tem de ser menor que máx"
 
@@ -31854,6 +31962,9 @@ msgstr "A impressão falhou."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31869,6 +31980,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31897,10 +32014,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31935,6 +32048,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31944,13 +32063,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32782,6 +32900,51 @@ msgstr "Selecione apenas 1 objeto"
 msgid "Select a map object"
 msgstr "Selecionar um objeto do mapa"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Simplificar Área"
 
@@ -35007,17 +35170,6 @@ msgstr[1] "A obter {0} IDs Wikidata para o idioma ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Adicionar Wikidata para o idioma ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Adicionar nomes da Wikipédia"
 
@@ -35027,12 +35179,6 @@ msgstr ""
 "Obtém ligações interwikis da Wikipédia por forma a adicionar várias "
 "etiquetas de nomes"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -35042,6 +35188,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copiar predefinição {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Procurar artigos da Wikipédia com coordenadas"
 
diff --git a/i18n/po/pt_BR.po b/i18n/po/pt_BR.po
index 4edf5dd..985b83e 100644
--- a/i18n/po/pt_BR.po
+++ b/i18n/po/pt_BR.po
@@ -8,16 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-08 19:42+0000\n"
-"Last-Translator: Nelson A. de Oliveira <naoliv at debian.org>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-03 00:39+0000\n"
+"Last-Translator: Don-vip <Unknown>\n"
 "Language-Team: Português Brasileiro <gnome-pt_br-list at gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:13+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:44+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: pt_BR\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr "Termos de Uso do Plano de Fundo"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Sem suporte para abertura de link na plataforma atual (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ERRO: {0}"
-
-msgid "WARNING: {0}"
-msgstr "AVISO: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Causa: "
-
 msgid "Executing platform startup hook"
 msgstr "Executando o gancho de inicialização da plataforma"
 
@@ -506,6 +491,13 @@ msgstr "Dados baixados"
 msgid "Download notes in current view"
 msgstr "Baixar notas na vista atual"
 
+msgid "Download in current view"
+msgstr "Download na visualização atual"
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+"Download dos dados de mapas a partir do servidor OSM na visualização atual"
+
 msgid "Download object..."
 msgstr "Baixar objeto..."
 
@@ -1155,13 +1147,15 @@ msgid "Paste"
 msgstr "Colar"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Colar conteúdo da área de transferência"
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Colar na posição original"
 
 msgid "Paste contents of clipboard at the position they were copied from."
 msgstr ""
+"Colar o conteúdo da área de transferência na posição em que foram copiados "
+"originalmente."
 
 msgid "Paste Tags"
 msgstr "Colar Tags"
@@ -1927,7 +1921,7 @@ msgid "Errors during download"
 msgstr "Erros durante a obtenção de dados"
 
 msgid "Download Geo URL"
-msgstr ""
+msgstr "Baixar Geo URL"
 
 msgid "Download GPS"
 msgstr "Baixar GPS"
@@ -2131,6 +2125,15 @@ msgstr ""
 "Clique para apagar. Shift: apaga segmento de caminho. Alt: não apaga nós não "
 "usados ao apagar um caminho. Ctrl: apaga objetos referentes."
 
+msgid "draw angle snap"
+msgstr "desenhar encaixe do ângulo"
+
+msgid "draw angle snap highlight"
+msgstr "desenhar destaque do encaixe do ângulo"
+
+msgid "helper line"
+msgstr "linha de ajuda"
+
 msgid "Draw"
 msgstr "Desenhar"
 
@@ -2143,9 +2146,6 @@ msgstr "Modo: Encaixar Ângulos"
 msgid "Backspace in Add mode"
 msgstr "Backspace no modo de Adição"
 
-msgid "helper line"
-msgstr "linha de ajuda"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Não é possível adicionar nó fora do planeta."
 
@@ -2211,12 +2211,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "CORREÇÃO"
 
-msgid "draw angle snap"
-msgstr "desenhar encaixe do ângulo"
-
-msgid "draw angle snap highlight"
-msgstr "desenhar destaque do encaixe do ângulo"
-
 msgid "Angle snapping"
 msgstr "Encaixar ângulos"
 
@@ -2313,20 +2307,20 @@ msgstr ""
 
 msgid "Add a new node to way"
 msgid_plural "Add a new node to {0} ways"
-msgstr[0] "Adicionar um novo nó a via"
+msgstr[0] "Adicionar um novo nó no caminho"
 msgstr[1] "Adicionar um novo nó a {0} vias"
 
 msgid "Cannot delete node that has tags"
 msgstr "Não é possível remover um nó que possui etiquetas"
 
+msgid "make parallel helper line"
+msgstr "crie uma linha paralela de ajuda"
+
 msgid "Parallel"
 msgstr "Paralelo"
 
 msgid "Make parallel copies of ways"
-msgstr "Fazer cópias paralelas de vias"
-
-msgid "make parallel helper line"
-msgstr "crie uma linha paralela de ajuda"
+msgstr "Faz cópias paralelas dos caminhos"
 
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
@@ -2445,6 +2439,8 @@ msgid ""
 "{0}Add selection to relation{1}: Verify every single relation to avoid "
 "damage!"
 msgstr ""
+"{0}Adicionar seleção a relação{1}: Verifique individualmente toda a relação "
+"para evitar danos!"
 
 msgid "Add selection to {0} relation"
 msgid_plural "Add selection to {0} relations"
@@ -3039,7 +3035,7 @@ msgid "Change relation {0}"
 msgstr "Alterar relação {0}"
 
 msgid "Change nodes of {0}"
-msgstr ""
+msgstr "Alterar os nós de {0}"
 
 msgid "Remove \"{0}\" for node ''{1}''"
 msgstr "Remover \"{0}\" para o nó ''{1}''"
@@ -3592,6 +3588,8 @@ msgstr "Nenhuma camada selecionada"
 msgid ""
 "WMTS Parser error - start element {0} has different name than end element {2}"
 msgstr ""
+"Erro na análise WMTS - o elemento inicial {0} tem um nome diferente do "
+"elemento final {2}"
 
 msgid ""
 "Only square tiles are supported. {0}x{1} returned by server for TileMatrix "
@@ -3833,9 +3831,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "Nenhuma unidade encontrada para: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "O parâmetro deve começar com um ''+'' (encontrado ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Parâmetro desconhecido: ''{0}''."
 
@@ -3845,6 +3840,9 @@ msgstr "Valor esperado para o parâmetro ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Nenhum valor esperado para o parâmetro ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "O parâmetro deve começar com um ''+'' (encontrado ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Formato de parâmetro inesperado (''{0}'')"
 
@@ -3994,7 +3992,7 @@ msgid "E-mail address contains an invalid domain: {0}"
 msgstr "O endereço de e-mail contém um domínio inválido: {0}"
 
 msgid "Email validator"
-msgstr ""
+msgstr "Validador de Email"
 
 msgid "URL is invalid"
 msgstr "A URL é inválida"
@@ -4015,7 +4013,7 @@ msgid "URL contains an invalid fragment: {0}"
 msgstr "AURL contém um fragmento inválido: {0}"
 
 msgid "URL validator"
-msgstr ""
+msgstr "Validador da URL"
 
 msgid "Addresses"
 msgstr "Endereços"
@@ -4294,7 +4292,7 @@ msgid "Area style way is not closed"
 msgstr "O estilo de caminho da área não está fechado"
 
 msgid "No outer way for multipolygon"
-msgstr "Sem caminho externo para múltipolígono"
+msgstr "Sem caminho externo para o multipolígono"
 
 msgid "Role for ''{0}'' should be ''{1}''"
 msgstr "Função para ''{0}'' deve ser ''{1}''"
@@ -4307,11 +4305,11 @@ msgid ""
 msgid_plural ""
 "Multipolygon relation should be tagged with area tags and not the outer ways"
 msgstr[0] ""
-"Relação multipolígono deve ser marcada com as tag da área e não de outro "
-"caminho"
+"A relação do multipolígono deve ser marcada com as etiquetas da área e não "
+"com etiquetas de outro caminho"
 msgstr[1] ""
-"Relação multipolígono deve ser marcada com as tag da área e não de outros "
-"caminhos"
+"A relação do multipolígono deve ser marcada com as etiquetas da área e não "
+"com etiquetas de outros caminhos"
 
 msgid ""
 "With the currently used mappaint style the style for inner way equals the "
@@ -4327,15 +4325,17 @@ msgid ""
 "With the currently used mappaint style(s) the style for outer way mismatches "
 "the area style"
 msgstr ""
+"Com o(s) estilo(s) de pintura do mapa usado(s) atualmente, o estilo do "
+"caminho esterno é incompatível com o estilo da área"
 
 msgid "Area style on outer way"
 msgstr "Estilo da área em outra via"
 
 msgid "Multipolygon is not closed"
-msgstr "Multipolígono não está fechado"
+msgstr "O multipolígono não está fechado"
 
 msgid "Multipolygon inner way is outside"
-msgstr "Multipolígono da via interna está fora"
+msgstr "A linha interna do multipolígono está do lado de fora"
 
 msgid "Intersection between multipolygon ways"
 msgstr "Interseção entre vias multipolígonais"
@@ -4344,10 +4344,10 @@ msgid "No useful role for multipolygon member"
 msgstr "Nenhuma regra últil para membro multipoligonal"
 
 msgid "Non-Way in multipolygon"
-msgstr "Não-via em multipolígono"
+msgstr "Elementos que não são caminhos estão no multipolígono"
 
 msgid "Missing name:* translation"
-msgstr "Faltando nome: * tradução"
+msgstr "Faltando nome:* tradução"
 
 msgid ""
 "This test finds multilingual objects whose ''name'' attribute is not equal "
@@ -4444,13 +4444,13 @@ msgid "Public Transport Route"
 msgstr "Rota de Transporte Público"
 
 msgid "Route relation contains a ''{0}'' role"
-msgstr ""
+msgstr "A relação de rota contém a função ''{0}''"
 
 msgid "Route relation contains a gap"
-msgstr ""
+msgstr "A relação de rota contém uma brecha"
 
 msgid "Stop position not part of route"
-msgstr ""
+msgstr "A posição de parada não faz parte da rota"
 
 msgid "Role verification problem"
 msgstr "Problema de verificação de função"
@@ -5115,8 +5115,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Tenha certeza de que irá carregar algum dado, caso use --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Imprimindo mensagens de depuração no console"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Pulou-se o carregamento dos plugins"
@@ -6386,6 +6386,9 @@ msgstr "Clique para fechar essa janela e continuar editando"
 msgid "Conflicts detected"
 msgstr "Conflitos detectados"
 
+msgid "Resolve conflicts"
+msgstr "Resolver conflitos"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Cancelar a resolução de conflitos e fechar a janela"
 
@@ -6419,9 +6422,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Conflito não resolvido completamente"
 
-msgid "Resolve conflicts"
-msgstr "Resolver conflitos"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Resolver conflitos para ''{0}''"
 
@@ -6809,14 +6809,16 @@ msgid "this layer is not currently active (click to activate)"
 msgstr "esta camada não é a camada atualmente ativa (clique para ativar)"
 
 msgid "scale follows native resolution of this layer"
-msgstr ""
+msgstr "escalar de acordo com a resolução nativa desta camada"
 
 msgid ""
 "scale follows native resolution of another layer (click to set this layer)"
 msgstr ""
+"escalar de acordo com a resolução nativa de outra camada (clique para "
+"definir a camada)"
 
 msgid "this layer has no native resolution"
-msgstr ""
+msgstr "esta camada não tem uma resolução nativa"
 
 msgid "Information about layer"
 msgstr "Informação sobre camada"
@@ -7751,12 +7753,12 @@ msgstr "Mostrar/Ocultar layer"
 msgid "Discardable key: selection Foreground"
 msgstr "Chave descartável: seleção primeiro plano"
 
-msgid "Discardable key: selection Background"
-msgstr "Chave descartável: seleção segundo plano"
-
 msgid "Discardable key: foreground"
 msgstr "Chave descartável: seleção primeiro plano"
 
+msgid "Discardable key: selection Background"
+msgstr "Chave descartável: seleção segundo plano"
+
 msgid "Discardable key: background"
 msgstr "Chave descartável: seleção segundo plano"
 
@@ -7938,7 +7940,7 @@ msgid "Remember last used tags after a restart"
 msgstr "Lembrar das últimas tags usadas após reiniciar"
 
 msgid "Recent tags with existing key"
-msgstr ""
+msgstr "Etiquetas recentes com chaves existentes"
 
 msgid "Enable"
 msgstr "Ativado"
@@ -7947,16 +7949,17 @@ msgid "Hide"
 msgstr "Oculto"
 
 msgid "Refresh recent tags list after applying tag"
-msgstr ""
+msgstr "Atualizar a lista de etiquetas recentes após aplicar a etiqueta"
 
 msgid "No refresh"
-msgstr ""
+msgstr "Não atualizar"
 
 msgid "Refresh tag status only (enabled / disabled)"
-msgstr ""
+msgstr "Atualizar apenas o status da etiqueta (ativado / desativado)"
 
 msgid "Refresh tag status and list of recently added tags"
 msgstr ""
+"Atualizar o status da etiqueta e listar as etiquetas adicionadas recentemente"
 
 msgid "to apply first suggestion"
 msgstr "para aplicar a primeira sugestão"
@@ -7990,13 +7993,13 @@ msgid "The key ''{0}'' is already used"
 msgstr "A chave ''{0}'' já está em uso"
 
 msgid "Ignore key ''{0}''"
-msgstr ""
+msgstr "Ignorar a chave ''{0}''"
 
 msgid "Ignore tag ''{0}''"
-msgstr ""
+msgstr "Ignorar a etiqueta ''{0}''"
 
 msgid "Edit ignore list"
-msgstr ""
+msgstr "Editar a lista ignorada"
 
 msgid "You changed the value of ''{0}'' from ''{1}'' to ''{2}''."
 msgstr "Você mudou o valor de ''{0}'' de ''{1}'' para ''{2}''."
@@ -9992,12 +9995,12 @@ msgstr "Total de notas:"
 msgid "Changes need uploading?"
 msgstr "As mudanças precisam de atualização?"
 
-msgid "Data Layer {0}"
-msgstr "Camada de dados {0}"
-
 msgid "outside downloaded area"
 msgstr "fora da área baixada"
 
+msgid "Data Layer {0}"
+msgstr "Camada de dados {0}"
+
 msgid "Merging layers"
 msgstr "Unir camadas"
 
@@ -10515,6 +10518,9 @@ msgstr "Não há camada de imagens."
 msgid "No imagery layers"
 msgstr "Nenhuma camada de imagens"
 
+msgid "gps point"
+msgstr "ponto GPS"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10527,9 +10533,6 @@ msgstr "Direção"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "ponto GPS"
-
 msgid "Import Audio"
 msgstr "Importar Áudio"
 
@@ -12554,6 +12557,31 @@ msgstr "Configurar sites..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configurar a lista de sites de onde os plugins são transferidos"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Adicione a URL descritiva do Plugin do JOSM."
 
@@ -13521,13 +13549,13 @@ msgid "false: the property is explicitly switched off"
 msgstr "false: a propriedade é explicitamente desabilitada"
 
 msgid "false: the property ''{0}'' is explicitly switched off"
-msgstr "falso: a propriedade ''{0}'' está explicitamente desligada"
+msgstr "desmarcado: a propriedade ''{0}'' está explicitamente desativada"
 
 msgid "true: the property is explicitly switched on"
 msgstr "true: a propriedade é explicitamente habilitada"
 
 msgid "true: the property ''{0}'' is explicitly switched on"
-msgstr "verdade: a propriedade ''{0}'' está explicitamente ligado"
+msgstr "marcado: a propriedade ''{0}'' está explicitamente ativa"
 
 msgid ""
 "partial: different selected objects have different values, do not change"
@@ -13543,10 +13571,11 @@ msgstr ""
 "''{0}'', não mudar"
 
 msgid "unset: do not set this property on the selected objects"
-msgstr "não-definido: não defina esta propriedade nos objetos selecionados"
+msgstr "não definido: não defina esta propriedade nos objetos selecionados"
 
 msgid "unset: do not set the property ''{0}'' on the selected objects"
-msgstr "unset: não define a propriedade ''{0}'' nos objetos selecionados"
+msgstr ""
+"não definido: não define a propriedade ''{0}'' nos objetos selecionados"
 
 msgid "Cut"
 msgstr "Recortar"
@@ -13758,9 +13787,6 @@ msgstr "<html>Não foi possível ler o arquivo. <br> O erro é:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "Arquivos GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Projected GeoJSON Files"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Camada ''{0}'' não é suportada"
 
@@ -14838,8 +14864,8 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "O plugin não vai ser carregado."
 msgstr[1] "Os plugins não vão ser carregados."
 
-msgid "Determine plugins to load..."
-msgstr "Determinar os plugins para serem carregados..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Removendo plugins obsoletos..."
@@ -15450,6 +15476,9 @@ msgstr ""
 "Falha ao acessar o diretório ''{0}'' por razões de segurança. A exceção foi: "
 "{1}"
 
+msgid "Cause: "
+msgstr "Causa: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15685,6 +15714,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Relatar um Erro"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Suprimir novos diálogos de erro para esta sessão."
 
@@ -15716,9 +15748,8 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr "O JOSM está atualizado"
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
-"O JOSM está desatualizado. A versão atual é {0}. Tente atualizar o JOSM."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16465,14 +16496,20 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (aerial imagery)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen imagens aéreas (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 imagens aéreas (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr ""
@@ -16868,11 +16905,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -17269,6 +17306,11 @@ msgstr ""
 "com polígono. Construído para facilitar o mapeamento de construção de "
 "camadas de fundo. Otimizado para basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Ferramenta para desenhar prédios."
 
@@ -17553,6 +17595,9 @@ msgstr ""
 "Proibe o uso do JOSM para sempre (ATENÇÃO: este plugin impede o JOSM de "
 "carregar e é difícil de remover)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Converter dados dos portais Open Data para a camada do OSM"
 
@@ -17683,6 +17728,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Editar recursos para cartas marítimas"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -17830,10 +17879,10 @@ msgid "concrete"
 msgstr "concreto"
 
 msgid "concrete:plates"
-msgstr ""
+msgstr "placa de concreto"
 
 msgid "concrete:lanes"
-msgstr ""
+msgstr "faixa de concreto"
 
 msgid "paving_stones"
 msgstr "piso intertravado"
@@ -17851,7 +17900,7 @@ msgid "compacted"
 msgstr "compactado"
 
 msgid "fine_gravel"
-msgstr "fine_gravel"
+msgstr "cascalho fino"
 
 msgid "gravel"
 msgstr "cascalho"
@@ -17884,49 +17933,51 @@ msgid "excellent"
 msgstr "excelente"
 
 msgid "Thin Rollers: rollerblade, skateboard"
-msgstr "Thin Rollers: rollerblade, skateboard"
+msgstr "Patins e skates, por exemplo"
 
 msgid "good"
 msgstr "boa"
 
 msgid "Thin Wheels: racing bike"
-msgstr "Thin Wheels: racing bike"
+msgstr "Bicicleta de corrida, por exemplo"
 
 msgid "intermediate"
 msgstr "intemediária"
 
 msgid "Wheels: city bike, wheelchair, scooter"
-msgstr "Wheels: city bike, wheelchair, scooter"
+msgstr "Bicicletas urbanas, cadeira de rodas e scooters, por exemplo"
 
 msgid "bad"
 msgstr "ruim"
 
 msgid "Robust Wheels: trekking bike, car, rickshaw"
-msgstr "Robust Wheels: trekking bike, car, rickshaw"
+msgstr "Bicicletas trekking, carros e riquixás, por exemplo"
 
 msgid "very_bad"
 msgstr "muito ruim"
 
 msgid "High Clearance: light duty off-road vehicle"
-msgstr "High Clearance: light duty off-road vehicle"
+msgstr "Veículos off-road leves, por exemplo"
 
 msgid "horrible"
 msgstr "horrível"
 
 msgid "Off-Road: heavy duty off-road vehicle"
-msgstr "Off-Road: heavy duty off-road vehicle"
+msgstr "Veículos off-road pesados, por exemplo"
 
 msgid "very_horrible"
-msgstr "muito_horrível"
+msgstr "extremamente horrível"
 
 msgid "Specialized off-road: tractor, ATV"
-msgstr "Specialized off-road: tractor, ATV"
+msgstr ""
+"Tratores, veículos com esteira, quadriciclos, motos trial, bicicletas de "
+"montanha e outros veículos fora de estrada, por exemplo"
 
 msgid "impassable"
 msgstr "intransponível"
 
 msgid "No wheeled vehicle"
-msgstr "Sem veículo de rodas"
+msgstr "Impossível para veículos de rodas"
 
 msgctxt "riding"
 msgid "pitch"
@@ -17981,7 +18032,7 @@ msgid "Embankment"
 msgstr "Aterro"
 
 msgid "Incline"
-msgstr "Aclive"
+msgstr "Inclinação"
 
 msgid "10%"
 msgstr "10%"
@@ -18009,7 +18060,7 @@ msgstr "Calçada"
 
 msgctxt "sidewalk"
 msgid "both"
-msgstr "ambos"
+msgstr "ambos os lados"
 
 msgctxt "sidewalk"
 msgid "left"
@@ -18916,7 +18967,7 @@ msgid "Destination"
 msgstr "Destino"
 
 msgid "Destination reference"
-msgstr ""
+msgstr "Referência de destino"
 
 msgid "Placement"
 msgstr "Placement"
@@ -19356,7 +19407,7 @@ msgstr ""
 "exposto e exigente, pedras irregulares, poucas geleiras perigosas e neve"
 
 msgid "T6 - hazardous alpine trail with climbing"
-msgstr "T6 - trilha alpina perigosos com escalada"
+msgstr "T6 - trilha alpina perigosa com escalada"
 
 msgid ""
 "climbing up to second grade. Often very exposed, precarious jagged rocks, "
@@ -19938,9 +19989,27 @@ msgstr "Bueiro"
 msgid "Basin"
 msgstr "Bacia"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservatório"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Reservatório coberto"
 
@@ -19975,6 +20044,12 @@ msgstr "reservatório"
 msgid "river"
 msgstr "rio"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Água salgada"
 
@@ -20019,13 +20094,13 @@ msgid "mangrove"
 msgstr "mangue"
 
 msgid "wet_meadow"
-msgstr ""
+msgstr "campo alagável"
 
 msgid "string_bog"
 msgstr ""
 
 msgid "saltern"
-msgstr ""
+msgstr "salina"
 
 msgid "Mud"
 msgstr "Lama"
@@ -21187,6 +21262,9 @@ msgstr "Parques de diversões/Parque Temático"
 msgid "Water Park"
 msgstr "Parque Aquático"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "Piscina"
 
@@ -21731,7 +21809,7 @@ msgid "seated"
 msgstr "sentado"
 
 msgid "seated;urinal"
-msgstr "sentado;mictório"
+msgstr "assento e mictório"
 
 msgid "squat"
 msgstr "agachamento"
@@ -21744,7 +21822,7 @@ msgid "Diaper"
 msgstr "Fraldário"
 
 msgid "room"
-msgstr "room"
+msgstr "sala"
 
 msgid "Post Box"
 msgstr "Caixa de Correio"
@@ -23840,8 +23918,11 @@ msgstr "Peixaria / Frutos do Mar"
 msgid "Deli (Fine Food)"
 msgstr "Deli (comida requintada)"
 
-msgid "Candy Store"
-msgstr "Loja de doces"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Chá"
@@ -24092,8 +24173,11 @@ msgstr "Máquina de vendas"
 msgid "Vending products"
 msgstr "Produtos à venda"
 
-msgid "animal_food"
-msgstr "ração animal"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "câmaras de ar (bicicletas)"
@@ -24107,6 +24191,9 @@ msgstr "preservativos"
 msgid "drinks"
 msgstr "bebidas"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "sacos para fezes"
 
@@ -24122,6 +24209,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "bilhete de estacionamento"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotos"
 
@@ -24140,18 +24233,12 @@ msgstr "selos"
 msgid "sweets"
 msgstr "doces"
 
-msgid "tampons"
-msgstr "absorventes"
-
 msgid "telephone_vouchers"
 msgstr "cartões telefônicos"
 
 msgid "toys"
 msgstr "brinquedos"
 
-msgid "vouchers"
-msgstr "vales"
-
 msgid "Payment Methods"
 msgstr "Formas de pagamento"
 
@@ -24883,6 +24970,15 @@ msgstr "Estufa de horticultura"
 msgid "Plant Nursery"
 msgstr "Viveiro de plantas"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Hortas comunitárias"
 
@@ -24976,6 +25072,9 @@ msgstr "Nome oficial"
 msgid "Common name abbreviation"
 msgstr "Abreviatura comum do nome"
 
+msgid "Address"
+msgstr "Endereço"
+
 msgid "House number"
 msgstr "Número da casa"
 
@@ -25287,7 +25386,7 @@ msgid "Administration centre"
 msgstr "Centro administrativo"
 
 msgid "Label point"
-msgstr "Ponto da etiqueta"
+msgstr "Ponto de renderização do nome"
 
 msgid "Site"
 msgstr "Local"
@@ -25296,7 +25395,7 @@ msgid "Site name"
 msgstr "Nome do local"
 
 msgid "where to place the label"
-msgstr "onde colocar a etiqueta"
+msgstr "ponto para renderização do nome"
 
 msgid "perimeter of the site"
 msgstr "perímetro do local"
@@ -25308,7 +25407,7 @@ msgid "members of site"
 msgstr "membros do conjunto"
 
 msgid "Turn Restriction"
-msgstr "Restrição de sentido"
+msgstr "Restrição de Sentido"
 
 msgid "Restriction"
 msgstr "Restrição"
@@ -25335,13 +25434,13 @@ msgid "only_straight_on"
 msgstr "somente em frente"
 
 msgid "from way"
-msgstr "do caminho"
+msgstr "a partir do caminho"
 
 msgid "via node or ways"
-msgstr "nós de vias ou estradas"
+msgstr "passando por nós ou caminhos"
 
 msgid "to way"
-msgstr "para caminho"
+msgstr "para o caminho"
 
 msgid "Enforcement"
 msgstr "Fiscalização"
@@ -25383,7 +25482,7 @@ msgid "where enforcement ends"
 msgstr "onde termina a fiscalização"
 
 msgid "traffic light or barrier that stops you"
-msgstr "semáforo ou barreira que para você"
+msgstr "semáforo ou barreira onde se é parado"
 
 msgid "Routes"
 msgstr "Rotas"
@@ -25428,31 +25527,31 @@ msgid "natural"
 msgstr "natureza"
 
 msgid "Walking Route"
-msgstr ""
+msgstr "Rota de Caminhada"
 
 msgid "Riding Route"
-msgstr ""
+msgstr "Rota de Equitação"
 
 msgid "ihn"
-msgstr ""
+msgstr "internacional (ihn)"
 
 msgid "nhn"
-msgstr ""
+msgstr "nacional (nhn)"
 
 msgid "rhn"
-msgstr ""
+msgstr "regional (rhn)"
 
 msgid "lhn"
-msgstr ""
+msgstr "local (lhn)"
 
 msgid "Piste Route"
-msgstr "Rota da pista"
+msgstr "Rota de Pista de Esqui"
 
 msgid "link segment"
-msgstr "segmento de linha"
+msgstr "segmento de conexão"
 
 msgid "shortcut segment"
-msgstr "Segmento do atalho"
+msgstr "segmento de atalho"
 
 msgid "variant segment"
 msgstr "segmento variante"
@@ -25461,25 +25560,25 @@ msgid "entry points"
 msgstr "pontos de entrada"
 
 msgid "Ski Route"
-msgstr "Ski Route"
+msgstr "Rota de Esqui"
 
 msgid "alpine"
-msgstr "alpino"
+msgstr "alpina"
 
 msgid "Detour Route"
-msgstr "Desvio da rota"
+msgstr "Rota de Desvio"
 
 msgid "Ref of the way this is a detour to"
-msgstr "Ref da via como esta é um desvio para"
+msgstr "Referência da via para qual serve o desvio"
 
 msgid "fork node for alternative routes"
-msgstr "bifurcação de nó para rotas alternativas"
+msgstr "nó de bifurcação para as rotas alternativas"
 
 msgid "Power Route"
-msgstr "Rota de energia"
+msgstr "Rota de Distribuição de Energia"
 
 msgid "Railway Route"
-msgstr "Itinerário ferroviário"
+msgstr "Rota Ferroviária"
 
 msgid "Road Route"
 msgstr "Rota de Estrada"
@@ -25491,16 +25590,16 @@ msgid "member"
 msgstr "membro"
 
 msgid "Associated Street"
-msgstr "Rua associada"
+msgstr "Endereçamento por Rua"
 
 msgid "house"
-msgstr "casa"
+msgstr "edificação"
 
 msgid "Street"
 msgstr "Rua"
 
 msgid "ways being part of street"
-msgstr "via fazer parte de rua"
+msgstr "caminhos que fazem parte da rua"
 
 msgid "addresses belonging to the street"
 msgstr "endereços pertencentes à rua"
@@ -25515,13 +25614,13 @@ msgid "Destination Sign"
 msgstr "Sinal de Destino"
 
 msgid "Destination written on sign (w/o distance)"
-msgstr "Destino escrito em placa (w/o distância)"
+msgstr "Destino indicado na placa (sem a distância)"
 
 msgid "Time (hh:mm, for trekking)"
-msgstr "Tempo (hh:mm, for trekking)"
+msgstr "Tempo (hh:mm, para trekking)"
 
 msgid "Colour of background"
-msgstr "Cor do plano do background"
+msgstr "Cor da placa"
 
 msgid "Colour of text"
 msgstr "Cor do texto"
@@ -25530,22 +25629,22 @@ msgid "Colour of border/arrow"
 msgstr "Cor da margem/seta"
 
 msgid "last way before junction"
-msgstr "Última via antes da junção"
+msgstr "último caminho antes da junção"
 
 msgid "node of the intersection"
-msgstr "nó da interseção"
+msgstr "nó de interseção"
 
 msgid "first way after junction"
-msgstr "primeiro nó após a junção"
+msgstr "primeiro caminho após a junção"
 
 msgid "position of sign"
-msgstr "posição de sinal"
+msgstr "posição da placa"
 
 msgid "Waterway"
 msgstr "Curso de água"
 
 msgid "Subtype of waterway (largest one of members)"
-msgstr "Subtipo de hidrovia (um dos membros maior)"
+msgstr "Subtipo do curso d''água (o membro mais importante)"
 
 msgid "stream"
 msgstr "córrego"
@@ -25557,7 +25656,7 @@ msgid "ditch"
 msgstr "canal artificial"
 
 msgid "Name of river/lake/sea/ocean it runs into"
-msgstr "Nome do rio/lago/mar/oceano onde é executado"
+msgstr "Nome do rio/lago/mar/oceano para onde o curso deságua"
 
 msgid "Reference Sandre (FR)"
 msgstr "Referência Sandre (FR)"
@@ -25575,37 +25674,37 @@ msgid "Reference GNBC (CA)"
 msgstr "Referência GNBC (CA)"
 
 msgid "waterways (no riverbank)"
-msgstr "cursos de água (sem margem)"
+msgstr "cursos d''água (exceto as margens)"
 
 msgid "branch waterways (no riverbank)"
-msgstr "hidrovias sucursais (não ribeirinhas)"
+msgstr "braços do rio (exceto as margens)"
 
 msgid "spring of waterway"
-msgstr "spring of waterway"
+msgstr "nascente do curso d''água"
 
 msgid "Length (meters)"
 msgstr "Comprimento (metros)"
 
 msgid "ways supported by (on top of) the bridge"
-msgstr "vias suportadoa por (no topo de) uma ponte"
+msgstr "caminhos sobre a ponte"
 
 msgid "ways passing under the bridge"
-msgstr "vias passando por de baxia da ponte"
+msgstr "caminhos que passam sob a ponte"
 
 msgid "way forming the outline footprint"
-msgstr "via formatando o contorn de footprint"
+msgstr "linha que contorna a forma da construção"
 
 msgid "edge ways parallel to ''across''"
-msgstr "beira de estradas paralela a ''através''"
+msgstr "linhas de borda paralelas à estrada sobre a ponte (across)"
 
 msgid "ways passing through the tunnel"
-msgstr "vias passando por de baxia da ponte"
+msgstr "caminhos que passam pelo tunel"
 
 msgid "edge ways parallel to ''through''"
-msgstr "beira de estradas paralela a ''a''"
+msgstr "linhas de borda paralelas à estrada sob o túnel (through)"
 
 msgid "Tunnel Start"
-msgstr "Início de túnel"
+msgstr "Início do Túnel"
 
 msgid "Village/City"
 msgstr "Vilarejo/Cidade"
@@ -27362,6 +27461,21 @@ msgid "Debugging mode will write images for each processing step."
 msgstr ""
 "Modo de depuração vai escrever imagens para cada etapa de processamento."
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Nome da Rua:"
 
@@ -28327,9 +28441,6 @@ msgstr ""
 "opção for selecionada não há nenhuma indicação de que algo está sendo feito, "
 "e não há maneira de cancelar o download."
 
-msgid "Address"
-msgstr "Endereço"
-
 msgid "Split area"
 msgstr "Dividir área"
 
@@ -29487,8 +29598,8 @@ msgstr "criar o canal digraph"
 msgid "Check "
 msgstr "Verifique "
 
-msgid "check the subust for junction properties"
-msgstr "verifica o subust para propriedades de junção"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Procurar "
@@ -30382,6 +30493,24 @@ msgstr ""
 "(Para miseravelmente continuar mapeamento, editar no_more_mapping\n"
 " de {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "ID do changeset: {0} inválido"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Timestamp inválido: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Lendo dados OSM..."
+
 msgid "Split by municipality"
 msgstr "Dividir por município"
 
@@ -30917,18 +31046,9 @@ msgstr "Arquivos do Servidor OSM compactados com pbf"
 msgid "Download PBF"
 msgstr "Baixar PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "ID do changeset: {0} inválido"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Timestamp inválido: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Inválidos DenseNodes chave/valor da tabela"
 
-msgid "Reading OSM data..."
-msgstr "Lendo dados OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Erro de transformação: Min X deve ser menor que max"
 
@@ -31593,6 +31713,9 @@ msgstr "Impressão falhou."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31608,6 +31731,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31636,10 +31765,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31674,6 +31799,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31683,13 +31814,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32508,6 +32638,51 @@ msgstr "Selecione apenas um objeto"
 msgid "Select a map object"
 msgstr "Selecione um objeto de mapa"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Área simplificada"
 
@@ -34702,17 +34877,6 @@ msgstr[1] "Buscando {0} Wikidata IDs para o idioma ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Adicionar Wikidata para a língua ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Adicionar nomes da Wikipédia"
 
@@ -34721,12 +34885,6 @@ msgid ""
 msgstr ""
 "Obtém links interwik de Wikipédia, a fim de adicionar várias tags de nome"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34737,6 +34895,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copiar template {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Buscar artigos da Wikipédia com coordenadas"
 
diff --git a/i18n/po/rm.po b/i18n/po/rm.po
index d42e080..a2da482 100644
--- a/i18n/po/rm.po
+++ b/i18n/po/rm.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2009-06-21 19:14+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Raeto-Romance <rm at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n !=1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:02+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:23+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ro.po b/i18n/po/ro.po
index d049923..52717e8 100644
--- a/i18n/po/ro.po
+++ b/i18n/po/ro.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: JOSM\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-02-24 11:34+0000\n"
 "Last-Translator: Ciprian <c1pr1an_43v3r at yahoo.com>\n"
 "Language-Team: Romanian <gnomero-list at lists.sourceforge.net>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
 "== 0) && (n != 0))) ? 2: 1));\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:03+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:24+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "X-Poedit-Country: ROMANIA\n"
 "Language: ro\n"
 "X-Poedit-Language: Romanian\n"
@@ -61,21 +61,6 @@ msgstr "Termeni de utilizare ai fundalului"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Deschiderea link-ului nu e suportată pe platforma curentă (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "EROARE: {0}"
-
-msgid "WARNING: {0}"
-msgstr "AVERTIZARE: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr "Cauza: "
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -511,6 +496,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Descarcă obiect..."
 
@@ -2011,6 +2002,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -2023,9 +2023,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2091,12 +2088,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2187,13 +2178,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3558,9 +3549,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3570,6 +3558,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4780,7 +4771,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5932,6 +5923,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5959,9 +5953,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7182,10 +7173,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9189,10 +9180,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9674,6 +9665,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "punct gps"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9686,9 +9680,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "punct gps"
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11482,6 +11473,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12570,9 +12586,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13545,7 +13558,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14011,6 +14024,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Cauza: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14207,6 +14223,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Raportează eroarea"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14238,7 +14257,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14972,13 +14991,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15374,10 +15399,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15763,6 +15788,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15986,6 +16016,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16091,6 +16124,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18288,9 +18325,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18325,6 +18380,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19530,6 +19591,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22181,7 +22245,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22433,7 +22500,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22448,6 +22518,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22463,6 +22536,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22481,18 +22560,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23206,6 +23279,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23299,6 +23381,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25502,6 +25587,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26382,9 +26482,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27468,7 +27565,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28329,6 +28426,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28803,18 +28918,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29466,6 +29572,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29481,6 +29590,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29509,10 +29624,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29547,6 +29658,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29556,13 +29673,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30353,6 +30469,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32307,6 +32468,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32318,27 +32494,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ru.po b/i18n/po/ru.po
index 09421c1..281abc9 100644
--- a/i18n/po/ru.po
+++ b/i18n/po/ru.po
@@ -7,17 +7,17 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-03 09:56+0000\n"
-"Last-Translator: Aleksey Kabanov <Unknown>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-31 12:38+0000\n"
+"Last-Translator: Nkolay Parukhin <parukhin at gmail.com>\n"
 "Language-Team: Koptev Oleg <koptev.oleg at gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:04+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:25+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ru_RU\n"
 
 msgid "Use OAuth"
@@ -65,21 +65,6 @@ msgstr "Условия использования подложки"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Переход по ссылке не поддерживается на данной платформе (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ОШИБКА: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ПРЕДУПРЕЖДЕНИЕ: {0}"
-
-msgid "INFO: {0}"
-msgstr "ИНФОРМАЦИЯ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "ОТЛАДКА: {0}"
-
-msgid "Cause: "
-msgstr "Причина: "
-
 msgid "Executing platform startup hook"
 msgstr "Исполнение стартовых процедур"
 
@@ -519,6 +504,14 @@ msgstr "Скачать данные"
 msgid "Download notes in current view"
 msgstr "Скачать заметки в текущей просматриваемой области"
 
+msgid "Download in current view"
+msgstr "Скачать в текущей просматриваемой области"
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+"Скачать картографические данные с сервера OSM в текущей просматриваемой "
+"области"
+
 msgid "Download object..."
 msgstr "Скачать объект..."
 
@@ -1173,13 +1166,14 @@ msgid "Paste"
 msgstr "Вставить"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Вставить содержимое буфера обмена."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Вставить в исходную позицию"
 
 msgid "Paste contents of clipboard at the position they were copied from."
 msgstr ""
+"Вставить содержимое буфера обмена в позицию, с которой оно было скопировано."
 
 msgid "Paste Tags"
 msgstr "Вставить теги"
@@ -2157,6 +2151,15 @@ msgstr ""
 "Щёлкните для удаления. Shift: удалить сегмент. Alt: не удалять "
 "неиспользуемые точки при удалении линии. Ctrl: удалить ссылающиеся объекты."
 
+msgid "draw angle snap"
+msgstr "Привязка к углам"
+
+msgid "draw angle snap highlight"
+msgstr "Привязка к углам: подсветка"
+
+msgid "helper line"
+msgstr "вспомогательная линия"
+
 msgid "Draw"
 msgstr "Рисовать"
 
@@ -2169,9 +2172,6 @@ msgstr "Режим: Рисование с привязкой к углам"
 msgid "Backspace in Add mode"
 msgstr "Backspace в режиме добавления"
 
-msgid "helper line"
-msgstr "вспомогательная линия"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Точка не может быть добавлена за пределами мира."
 
@@ -2238,12 +2238,6 @@ msgstr "0,30,45,60,90,…"
 msgid "FIX"
 msgstr "Фикс."
 
-msgid "draw angle snap"
-msgstr "Привязка к углам"
-
-msgid "draw angle snap highlight"
-msgstr "Привязка к углам: подсветка"
-
 msgid "Angle snapping"
 msgstr "Привязка к углам"
 
@@ -2347,15 +2341,15 @@ msgstr[2] "Добавить новую точку к {0} линиям"
 msgid "Cannot delete node that has tags"
 msgstr "Нельзя удалить точку, имеющую теги"
 
+msgid "make parallel helper line"
+msgstr "вспомогательная линия создания параллельных линий"
+
 msgid "Parallel"
 msgstr "Параллельно"
 
 msgid "Make parallel copies of ways"
 msgstr "Создавать параллельные копии линий"
 
-msgid "make parallel helper line"
-msgstr "вспомогательная линия создания параллельных линий"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3891,9 +3885,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "Не найдена единица измерения для: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Параметр должен начинаться с символа «+» (найден: «{0}»)"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Неизвестный параметр: ''{0}''."
 
@@ -3903,6 +3894,9 @@ msgstr "Ожидалось значение для параметра «{0}»."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Не ожидалось значение для параметра «{0}»."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Параметр должен начинаться с символа «+» (найден: «{0}»)"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Непредвиденный формат параметра («{0}»)"
 
@@ -5173,8 +5167,8 @@ msgstr ""
 "Убедитесь, что вы загрузили хоть какие-то данные, если вы используете --"
 "selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Вывод отладочных сообщений в консоль"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Скачивание модулей пропущено"
@@ -6457,6 +6451,9 @@ msgstr "Нажмите, чтобы закрыть этот диалог и пр
 msgid "Conflicts detected"
 msgstr "Обнаружены конфликты"
 
+msgid "Resolve conflicts"
+msgstr "Уладить конфликты"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Отменить улаживание конфликтов и закрыть диалог"
 
@@ -6490,9 +6487,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Конфликт улажен не полностью"
 
-msgid "Resolve conflicts"
-msgstr "Уладить конфликты"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Уладить конфликты для ''{0}''"
 
@@ -7815,12 +7809,12 @@ msgstr "Показать/скрыть слой"
 msgid "Discardable key: selection Foreground"
 msgstr "Удаляемый ключ: передний план выделения"
 
-msgid "Discardable key: selection Background"
-msgstr "Удаляемый ключ: фон выделения"
-
 msgid "Discardable key: foreground"
 msgstr "Удаляемый ключ: foreground"
 
+msgid "Discardable key: selection Background"
+msgstr "Удаляемый ключ: фон выделения"
+
 msgid "Discardable key: background"
 msgstr "Удаляемый ключ: background"
 
@@ -10126,12 +10120,12 @@ msgstr "Всего заметок:"
 msgid "Changes need uploading?"
 msgstr "Нужно передать изменения на сервер?"
 
-msgid "Data Layer {0}"
-msgstr "Слой данных {0}"
-
 msgid "outside downloaded area"
 msgstr "вне скачанной области"
 
+msgid "Data Layer {0}"
+msgstr "Слой данных {0}"
+
 msgid "Merging layers"
 msgstr "Объединение слоёв"
 
@@ -10655,6 +10649,9 @@ msgstr "Здесь нет слоёв снимков."
 msgid "No imagery layers"
 msgstr "Нет слоёв снимков"
 
+msgid "gps point"
+msgstr "точка GPS"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10667,9 +10664,6 @@ msgstr "Направление"
 msgid "Velocity, {0}"
 msgstr "Скорость, {0}"
 
-msgid "gps point"
-msgstr "точка GPS"
-
 msgid "Import Audio"
 msgstr "Импортировать аудиофайлы"
 
@@ -12693,6 +12687,33 @@ msgstr "Источники модулей..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Конфигурировать список серверов, с которых можно загрузить модули"
 
+msgid "Load from list..."
+msgstr "Скачать из списка..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Скачать модули из списка модулей"
+
+msgid "Disable all other plugins"
+msgstr "Отключить все другие модули"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Введите список модулей для скачивания."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Добавляйте по одному идентификатору модуля в строке, информация о версии "
+"игнорируется."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "Можно скопировать и вставить сюда список из очёта о состоянии."
+
+msgid "Load plugins from list"
+msgstr "Скачать модули из списка"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "Следующие модули не найдены. Всё равно продолжить?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Добавить ссылку на описание модуля JOSM."
 
@@ -13886,9 +13907,6 @@ msgstr "<html>Невозможно прочитать файлы.<br>Ошибк
 msgid "GeoJSON Files"
 msgstr "Файлы GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Файлы Projected GeoJSON"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Слой «{0}» не поддерживается"
 
@@ -14975,8 +14993,8 @@ msgstr[0] "Модуль не загружается с сервера."
 msgstr[1] "Модули не загружаются с сервера."
 msgstr[2] "Модули не загружаются с сервера."
 
-msgid "Determine plugins to load..."
-msgstr "Определение модулей для загрузки с сервера..."
+msgid "Determining plugins to load..."
+msgstr "Определение модулей для скачивания..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Удаление нежелательных модулей..."
@@ -15619,6 +15637,9 @@ msgid ""
 msgstr ""
 "Нет доступа к каталогу ''{0}'' по соображениям безопасности. Ошибка: {1}"
 
+msgid "Cause: "
+msgstr "Причина: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15859,6 +15880,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Сообщить об ошибке"
 
+msgid "Suppress this error for this session."
+msgstr "Не показывать больше данную ошибку в этом сеансе"
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Больше не показывать ошибки в этой сессии"
 
@@ -15893,8 +15917,8 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr "У вас самая новая версия JOSM."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
-msgstr "Ваш JOSM устарел. Текущая версия — {0}. Рекомендуем обновить JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
+msgstr "JOSM устарел. Текущая версия — {0}. Попробуйте обновить JOSM."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16643,14 +16667,20 @@ msgstr "Берлин - аэрофотосъёмка 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Берлин - аэрофотосъёмка 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Берлин - аэрофотосъёмка 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Штутгарт (аэрофотосъёмка)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Эрланген - аэрофотосъёмка (2016 5.0 cm)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Эрланген - аэрофотосъёмка (2013 6.25 см)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Эрланген 2011 аэрофотосъёмка (5.0 см)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Эрланген - аэрофотосъёмка (2011 5.0 cm)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Старая карта Цвенкау - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -17045,11 +17075,12 @@ msgstr "Цюрих: обзорный план города (улицы, здан
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Город Цюрих: аэрофотосъёмка 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Кантон Золотурн: ортофото RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Аэрофотосъёмка кантона Золотурн RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Кантон Золотурн: ортофото в ИК-диапазоне (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
+"Аэрофотосъёмка кантона Золотурн в ИК-диапазоне (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Кантон Женева 5см (SITG 2011)"
@@ -17446,6 +17477,13 @@ msgstr ""
 "полигоны. Упрощает обводку зданий по слою подложки. Оптимизирован для "
 "basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Позволяет пользователю исправлять углы зданий на 90° и выравнивает все "
+"загруженные здания по ближайшей дороге."
+
 msgid "Tools for drawing buildings."
 msgstr "Инструменты для прорисовки зданий."
 
@@ -17736,6 +17774,9 @@ msgstr ""
 "Запрещает использовать JOSM навсегда (ПРЕДУПРЕЖДЕНИЕ: этот модуль "
 "предотвращает загрузку JOSM и от него трудно избавиться)"
 
+msgid "Import OSM data in o5m format"
+msgstr "Импорт данных OSM в формате o5m"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Преобразование данных с порталов Open Data в слой OSM"
 
@@ -17866,6 +17907,12 @@ msgid "Edit features for Sea Charts"
 msgstr "Редактирование объектов морских карт"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+"Предоставляет дополнительные инструменты, упрощающие выравнивание и поворот "
+"зданий."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20124,9 +20171,27 @@ msgstr "Водопропускная труба"
 msgid "Basin"
 msgstr "Сточный бассейн"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr "инфильтрационный"
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Резервуар"
 
+msgid "evaporator"
+msgstr "испаритель"
+
+msgid "tailings"
+msgstr "для шлама"
+
+msgid "water_storage"
+msgstr "для хранения воды"
+
 msgid "Covered Reservoir"
 msgstr "Крытый резервуар"
 
@@ -20161,6 +20226,12 @@ msgstr "водохранилище"
 msgid "river"
 msgstr "река"
 
+msgid "lock"
+msgstr "шлюз"
+
+msgid "wastewater"
+msgstr "отстойник сточных вод"
+
 msgid "Salt Water"
 msgstr "Солёная вода"
 
@@ -21372,6 +21443,9 @@ msgstr "Парк развлечений/Тематический парк"
 msgid "Water Park"
 msgstr "Аквапарк"
 
+msgid "Beach Resort"
+msgstr "Обслуживаемый пляж"
+
 msgid "Swimming Pool"
 msgstr "Плавательный бассейн"
 
@@ -24025,8 +24099,11 @@ msgstr "Морепродукты"
 msgid "Deli (Fine Food)"
 msgstr "Деликатесы"
 
-msgid "Candy Store"
-msgstr "Кондитерская"
+msgid "Pastry"
+msgstr "Выпечка"
+
+msgid "Confectionery"
+msgstr "Кондитерские изделия"
 
 msgid "Tea"
 msgstr "Чай"
@@ -24277,8 +24354,11 @@ msgstr "Торговый автомат"
 msgid "Vending products"
 msgstr "Реализуемая продукция"
 
-msgid "animal_food"
-msgstr "еда для животных"
+msgid "admission_tickets"
+msgstr "входные билеты"
+
+msgid "animal_feed"
+msgstr "корм для животных"
 
 msgid "bicycle_tube"
 msgstr "велосипедная шина"
@@ -24292,6 +24372,9 @@ msgstr "презервативы"
 msgid "drinks"
 msgstr "напитки"
 
+msgid "elongated_coin"
+msgstr "удлинённые монеты"
+
 msgid "excrement_bags"
 msgstr "пакеты для экскрементов"
 
@@ -24307,6 +24390,12 @@ msgstr "газеты"
 msgid "parking_tickets"
 msgstr "талоны на парковку"
 
+msgid "parcel_pickup"
+msgstr "выдача посылок"
+
+msgid "parcel_mail_in"
+msgstr "отправка посылок"
+
 msgid "photos"
 msgstr "фотографии"
 
@@ -24325,18 +24414,12 @@ msgstr "марки"
 msgid "sweets"
 msgstr "сладости"
 
-msgid "tampons"
-msgstr "тампоны"
-
 msgid "telephone_vouchers"
 msgstr "телефонные карты"
 
 msgid "toys"
 msgstr "игрушки"
 
-msgid "vouchers"
-msgstr "ваучеры"
-
 msgid "Payment Methods"
 msgstr "Способы оплаты"
 
@@ -25067,6 +25150,15 @@ msgstr "Парниковое садоводство"
 msgid "Plant Nursery"
 msgstr "Питомник растений"
 
+msgid "Aquaculture"
+msgstr "Аквакультура"
+
+msgid "shrimp"
+msgstr "ракообразные"
+
+msgid "mussels"
+msgstr "моллюски"
+
 msgid "Allotments"
 msgstr "Огородные участки"
 
@@ -25160,6 +25252,9 @@ msgstr "Официальное название"
 msgid "Common name abbreviation"
 msgstr "Аббревиатура"
 
+msgid "Address"
+msgstr "Адрес"
+
 msgid "House number"
 msgstr "Номер дома"
 
@@ -27558,6 +27653,24 @@ msgstr ""
 "В отладочном режиме изображения будут записываться для каждого шага "
 "обработки."
 
+msgid "Building Generalization"
+msgstr "Генерализация зданий"
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+"Новички часто рисуют контуры очень неточно. Такие здания должны быть "
+"преобразованы в прямоугольные. Углы между 84-96 градусов преобразуются в 90 "
+"градусов."
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr "Предупреждение"
+
 msgid "Street Name:"
 msgstr "Улица:"
 
@@ -28520,9 +28633,6 @@ msgstr ""
 "будет никакой индикации о том, что выполняются какие-либо действия, и "
 "никакого способа отменить скачивание."
 
-msgid "Address"
-msgstr "Адрес"
-
 msgid "Split area"
 msgstr "Разрезать область"
 
@@ -29675,8 +29785,8 @@ msgstr "создать канал орграфа"
 msgid "Check "
 msgstr "Проверить "
 
-msgid "check the subust for junction properties"
-msgstr "проверить набор на свойства соединения"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Найти "
@@ -30579,6 +30689,24 @@ msgstr ""
 "(Если вы готовы сдаться  и продолжить рисовать карты,\n"
 "уберите no_more_mapping из {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr "Сжатые файлы сервера OSM в формате o5m"
+
+msgid "Invalid changeset id: {0}"
+msgstr "Неверный id пакета правок: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Неверный штамп времени: {0}"
+
+msgid "wrong header byte "
+msgstr "неверный байт заголовка "
+
+msgid "unsupported header"
+msgstr "неподдерживаемый заголовок"
+
+msgid "Reading OSM data..."
+msgstr "Чтение данных OSM..."
+
 msgid "Split by municipality"
 msgstr "Разбить по муниципалитетам"
 
@@ -31106,18 +31234,9 @@ msgstr "Сжатые pbf файлы OSM сервера"
 msgid "Download PBF"
 msgstr "Скачать PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Неверный id пакета правок: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Неверный штамп времени: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Неверная DenseNodes таблица ключ/значение"
 
-msgid "Reading OSM data..."
-msgstr "Чтение данных OSM..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 "Ошибка преобразования: Минимальное значение X должно быть меньше "
@@ -31785,6 +31904,9 @@ msgstr "Сбой печати."
 msgid "Add stop position"
 msgstr "Добавить позицию остановки"
 
+msgid "Repeat last fix"
+msgstr "Повторить последнее исправление"
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31803,6 +31925,12 @@ msgstr ""
 "Они должны быть загружены, чтобы продолжить проверку.\n"
 "Вы хотите загрузить их?"
 
+msgid "Download incomplete route relation members"
+msgstr "Скачать недостающих участников отношения маршрута"
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 "Модуль PT_Assistant обнаружил, что в этом отношении (id={0}) есть ошибки:"
@@ -31833,10 +31961,7 @@ msgstr "ОТ: Platform не должна принадлежать линии м
 
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
-
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
+"ОТ: Место остановки или платформа не  включены в отношение зоны остановки"
 
 msgid "PT_Assistant Message"
 msgstr "Сообщение PT_Assistant"
@@ -31874,22 +31999,31 @@ msgstr "ОТ: Проблема в сегменте маршрута"
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "ОТ: Проблема в сегменте маршрута без автоматического исправления"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "ОТ: Проблема в сегменте маршрута с одним автоматическим исправлением"
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
+"Предупреждение: показанные варианты исправления основаны на менее строгих "
+"критериях"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
 msgstr ""
+"Введите букву, чтобы выбрать вариант исправления или нажмите Escape, чтобы "
+"пропустить"
 
 msgid "PT: Stop area relation has no stop position"
-msgstr ""
-
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
+msgstr "ОТ: Отношение зоны остановки не включает место остановки"
 
 msgid "PT: Stop area relation has no platform"
-msgstr ""
+msgstr "ОТ: Отношение зоны остановки не включает платформу"
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32706,6 +32840,51 @@ msgstr "Выделите только один объект"
 msgid "Select a map object"
 msgstr "Выделите объект карты"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr "Режим вращения:"
+
+msgid "Clockwise"
+msgstr "По часовой стрелке"
+
+msgid "Counter Clockwise"
+msgstr "Против часовой стрелки"
+
+msgid "Input angle here"
+msgstr "Введите здесь угол"
+
+msgid "Rotate"
+msgstr "Повернуть"
+
+msgid "Align building "
+msgstr "Выравнивание здания "
+
+msgid "Select building"
+msgstr "Выберите здание"
+
+msgid "Select road"
+msgstr "Выберите дорогу"
+
+msgid "Select none"
+msgstr "Снять выделение"
+
+msgid "Min Distance:"
+msgstr "Мин. расстояние:"
+
+msgid "Input min distance"
+msgstr "Введите минимальное расстояние"
+
+msgid "Align all buildings"
+msgstr "Выровнять все здания"
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Упростить полигон"
 
@@ -34903,18 +35082,6 @@ msgstr[2] "Получение {0} идентификаторов Викидан
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Добавить Викиданные для языка ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Перезаписать тег ''{0}''  {1} из {2} новым значением ''{3}''?"
-msgstr[1] "Перезаписать теги ''{0}''  {1} из {2} новым значением ''{3}''?"
-msgstr[2] "Перезаписать теги ''{0}''  {1} из {2} новым значением ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr "Поиск элементов Викиданных"
-
-msgid "Target key: "
-msgstr "Целевой ключ: "
-
 msgid "Add names from Wikipedia"
 msgstr "Добавить названия из Википедии"
 
@@ -34923,12 +35090,6 @@ msgid ""
 msgstr ""
 "Получить интервики-ссылки из Википедии для добавления нескольких тегов name"
 
-msgid "Search Wikipedia category"
-msgstr "Поиск категории Википедии"
-
-msgid "Load category"
-msgstr "Загрузка категории"
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34939,6 +35100,24 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Копировать шаблон {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Перезаписать тег ''{0}''  {1} из {2} новым значением ''{3}''?"
+msgstr[1] "Перезаписать теги ''{0}''  {1} из {2} новым значением ''{3}''?"
+msgstr[2] "Перезаписать теги ''{0}''  {1} из {2} новым значением ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr "Поиск элементов Викиданных"
+
+msgid "Target key: "
+msgstr "Целевой ключ: "
+
+msgid "Search Wikipedia category"
+msgstr "Поиск категории Википедии"
+
+msgid "Load category"
+msgstr "Загрузка категории"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Получить статьи Википедии с координатами"
 
diff --git a/i18n/po/sk.po b/i18n/po/sk.po
index 82d42e1..cf6056d 100644
--- a/i18n/po/sk.po
+++ b/i18n/po/sk.po
@@ -9,16 +9,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-04 18:50+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-04 21:08+0000\n"
 "Last-Translator: aceman444 <Unknown>\n"
 "Language-Team: Slovak <>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:05+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:28+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: sk\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -57,21 +57,6 @@ msgstr "Podmienky použitia pozadia"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Otvorenie odkazu nie je aktuálnou platformou podporované (\"{0}\")"
 
-msgid "ERROR: {0}"
-msgstr "CHYBA: {0}"
-
-msgid "WARNING: {0}"
-msgstr "VAROVANIE: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "LADENIE: {0}"
-
-msgid "Cause: "
-msgstr "Príčina: "
-
 msgid "Executing platform startup hook"
 msgstr "Spúšťam platformu"
 
@@ -513,6 +498,12 @@ msgstr "Stiahnuť dáta"
 msgid "Download notes in current view"
 msgstr "Stiahnuť poznámky v terajšom pohľade"
 
+msgid "Download in current view"
+msgstr "Stiahnuť v aktuálnom pohľade"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Stiahnuť mapové údaje zo servera OSM v aktuálnom pohľade"
+
 msgid "Download object..."
 msgstr "Stiahnuť objekt..."
 
@@ -1149,19 +1140,19 @@ msgid "Overpass query: "
 msgstr "Overpass požiadavka: "
 
 msgid "Paste"
-msgstr "Vložiť"
+msgstr "Prilepiť"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Prilepiť obsah schránky."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Prilepiť na pozíciu zdroja"
 
 msgid "Paste contents of clipboard at the position they were copied from."
-msgstr ""
+msgstr "Prilepiť obsah schránky na pozíciu odkiaľ bol skopírovaný."
 
 msgid "Paste Tags"
-msgstr "Vložiť vlastnosti"
+msgstr "Prilepiť značky"
 
 msgid "Apply tags of contents of paste buffer to all selected items."
 msgstr "Použiť značky objektov v schránke na všetky zvolené objekty."
@@ -2135,6 +2126,15 @@ msgstr ""
 "Kliknite pre zmazanie. Shift: zmaže segment cesty. Alt: zmaže cestu, ale "
 "nemaže body. CTRL: zmaže referenčné objekty."
 
+msgid "draw angle snap"
+msgstr "kresliť uhol prichytenia"
+
+msgid "draw angle snap highlight"
+msgstr "zvýraznenie prichytenia kresleného uhla"
+
+msgid "helper line"
+msgstr "pomocná čiara"
+
 msgid "Draw"
 msgstr "Kresliť"
 
@@ -2147,9 +2147,6 @@ msgstr "Režim: Prichytenie kresleného uhla"
 msgid "Backspace in Add mode"
 msgstr "Backspace v pridávacom režime"
 
-msgid "helper line"
-msgstr "pomocná čiara"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Nemôžem pridať body ležiace mimo svet."
 
@@ -2216,12 +2213,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "kresliť uhol prichytenia"
-
-msgid "draw angle snap highlight"
-msgstr "zvýraznenie prichytenia kresleného uhla"
-
 msgid "Angle snapping"
 msgstr "Zameriavanie uhlov"
 
@@ -2323,15 +2314,15 @@ msgstr[2] "Pridať nový bod do {0} ciest"
 msgid "Cannot delete node that has tags"
 msgstr "Nedá sa zmazať bod, ktorý obsahuje značky"
 
+msgid "make parallel helper line"
+msgstr "vytvoriť paralelnú pomocnú čiaru"
+
 msgid "Parallel"
 msgstr "Rovnobežne"
 
 msgid "Make parallel copies of ways"
 msgstr "Vytvoriť paralelné kópie ciest"
 
-msgid "make parallel helper line"
-msgstr "vytvoriť paralelnú pomocnú čiaru"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3858,9 +3849,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr "Nenašla sa jednotka pre: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameter musí začínať znakom \"+\" (nájdené ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Neznámy parameter: \"{0}\"."
 
@@ -3870,6 +3858,9 @@ msgstr "Očakávaná hodnota pre parameter ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Žiadna hodnota nebola očakávaná pre parameter ''{0}''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameter musí začínať znakom \"+\" (nájdené ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Neočakávaný formát parametra (''{0}'')"
 
@@ -5136,8 +5127,8 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Uistite sa, že ste načítali nejaké dáta ak ste použili --výber."
 
-msgid "Printing debugging messages to console"
-msgstr "Tlačenie ladiacich správ do konzoly"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr "Úroveň zaznamenávania je {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Načítanie pluginov preskočené"
@@ -6408,6 +6399,9 @@ msgstr "Kliknutím zavriete tento dialóg a pokračujete v editovaní"
 msgid "Conflicts detected"
 msgstr "Objavené konflikty"
 
+msgid "Resolve conflicts"
+msgstr "Rozhodnutie konfliktov"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Zrušiť rozhodnutie konfliktu a zavrieť dialóg"
 
@@ -6441,9 +6435,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Konflikt nie je úplne vyriešený"
 
-msgid "Resolve conflicts"
-msgstr "Rozhodnutie konfliktov"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Rozhodnúť konflikt pre ''{0}''"
 
@@ -7771,12 +7762,12 @@ msgstr "Zobraziť/skryť vrstvu"
 msgid "Discardable key: selection Foreground"
 msgstr "Zbytočný kľúč: popredie výberu"
 
-msgid "Discardable key: selection Background"
-msgstr "Zbytočný kľúč: pozadie výberu"
-
 msgid "Discardable key: foreground"
 msgstr "Zbytočný kľúč: popredie"
 
+msgid "Discardable key: selection Background"
+msgstr "Zbytočný kľúč: pozadie výberu"
+
 msgid "Discardable key: background"
 msgstr "Zbytočný kľúč: pozadie"
 
@@ -7862,10 +7853,10 @@ msgid "Launch browser with Taginfo statistics for selected object"
 msgstr "Spustiť prehliadač so štatistikami Taginfo pre zvolený objekt"
 
 msgid "Paste Value"
-msgstr "Vložiť hodnotu"
+msgstr "Prilepiť hodnotu"
 
 msgid "Paste the value of the selected tag from clipboard"
-msgstr "Vložiť hodnotu zo schránky do vybranej značky"
+msgstr "Prilepiť hodnotu zo schránky do vybranej značky"
 
 msgid "Copy Value"
 msgstr "Kopírovať hodnotu"
@@ -8508,7 +8499,7 @@ msgid ""
 "URL from www.openstreetmap.org (you can paste an URL here to download the "
 "area)"
 msgstr ""
-"URL z www.openstreetmap.org (môžete sem vložiť nejakú URL k stiahnutiu "
+"URL z www.openstreetmap.org (môžete sem vložiť adresu URL pre stiahnutie "
 "oblasti)"
 
 msgid "Bounding Box"
@@ -10034,12 +10025,12 @@ msgstr "Počet poznámok:"
 msgid "Changes need uploading?"
 msgstr "Vyžadujú zmeny odoslanie?"
 
-msgid "Data Layer {0}"
-msgstr "Údajová vrstva {0}"
-
 msgid "outside downloaded area"
 msgstr "mimo ukladanej oblasti"
 
+msgid "Data Layer {0}"
+msgstr "Údajová vrstva {0}"
+
 msgid "Merging layers"
 msgstr "Zlučujú sa vrstvy"
 
@@ -10562,6 +10553,9 @@ msgstr "Nie sú žiadne vrstvy s mapovými podkladmi."
 msgid "No imagery layers"
 msgstr "Žiadne vrstvy s mapovými podkladmi"
 
+msgid "gps point"
+msgstr "gps poloha bodu"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10574,9 +10568,6 @@ msgstr "Smer"
 msgid "Velocity, {0}"
 msgstr "Rýchlosť, {0}"
 
-msgid "gps point"
-msgstr "gps poloha bodu"
-
 msgid "Import Audio"
 msgstr "Importovať zvuk"
 
@@ -12593,6 +12584,33 @@ msgstr "Konfigurovať stránky..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Konfigurovať zoznam s umiestnením, kde je možné stiahnuť pluginy"
 
+msgid "Load from list..."
+msgstr "Načítať zo zoznamu..."
+
+msgid "Load plugins from a list of plugins"
+msgstr "Načítať pluginy zo zoznamu pluginov"
+
+msgid "Disable all other plugins"
+msgstr "Vypnúť všetky ostatné pluginy"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Zadajte zoznam pluginov, ktoré chcete stiahnuť."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Na každý riadok by ste mali zadať jeden identifikátor pluginu, číslo verzie "
+"je ignorované."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "Môžete sem prilepiť zoznam skopírovaný zo správy o stave programu."
+
+msgid "Load plugins from list"
+msgstr "Načítať pluginy zo zoznamu"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "Nasledujúce pluginy sa nenašli. Chcete pokračovať aj tak?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Pridajte URL s popismi pre JOSM pluginy."
 
@@ -13322,7 +13340,7 @@ msgid "Add a new tag"
 msgstr "Pridať novú značku"
 
 msgid "Paste tags from buffer"
-msgstr "Vložiť značky zo zásobníka"
+msgstr "Prilepiť značky zo zásobníka"
 
 msgid "Use preset ''{0}'' of group ''{1}''"
 msgstr "Použiť prednastavenie \"{0}\" zo skupiny \"{1}\""
@@ -13804,9 +13822,6 @@ msgstr "<html>Nemôžem čítať.<br>Chyba je:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON súbory"
 
-msgid "Projected GeoJSON Files"
-msgstr "Súbory GeoJSON s projekciou"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Vrstva ''{0}'' nie je podporovaná"
 
@@ -14883,7 +14898,7 @@ msgid "Checking plugin preconditions..."
 msgstr "Kontrolujem predpoklady pluginov ..."
 
 msgid "Loading plugin ''{0}''..."
-msgstr "Nahrávam pluginy ''{0}''..."
+msgstr "Nahrávam plugin ''{0}''..."
 
 msgid "JOSM could not find information about the following plugin:"
 msgid_plural "JOSM could not find information about the following plugins:"
@@ -14897,8 +14912,8 @@ msgstr[0] "Pluginy nebudú nahraté."
 msgstr[1] "Plugin nebude nahratý."
 msgstr[2] "Pluginy nebudú nahraté."
 
-msgid "Determine plugins to load..."
-msgstr "Zisťujem pluginy pre nahratie ..."
+msgid "Determining plugins to load..."
+msgstr "Zisťujú sa pluginy na načítanie..."
 
 msgid "Removing deprecated plugins..."
 msgstr "Odstraňujem odmietané pluginy ..."
@@ -15546,6 +15561,9 @@ msgstr ""
 "Nepodarilo sa pristúpiť k adresáru \"{0}\" z bezpečnostných dôvodov. Výnimka "
 "bola: {1}"
 
+msgid "Cause: "
+msgstr "Príčina: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15671,7 +15689,7 @@ msgid "Value is too long (max {0} characters):"
 msgstr "Hodnota je príliš dlhá (maximum {0} znakov):"
 
 msgid "Do you want to paste these tags?"
-msgstr "Chcete vložiť tieto značky?"
+msgstr "Chcete prilepiť tieto značky?"
 
 msgid "Clear buffer"
 msgstr "Vymazať zásobník"
@@ -15783,6 +15801,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Nahlásiť chybu"
 
+msgid "Suppress this error for this session."
+msgstr "Potlačiť túto chybu pre toto sedenia."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Potlačiť ďalšie chybové hlášky počas tohto sedenia."
 
@@ -15815,9 +15836,8 @@ msgstr "Pri kontrole aktuálnosti JOSM nastala chyba."
 msgid "JOSM is up to date."
 msgstr "JOSM je aktuálny."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
-msgstr ""
-"JOSM je zastaralý. Najnovšia verzia je {0}. Skúste aktualizovať JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
+msgstr "JOSM je zastaralý. Aktuálna verzia je {0}. Skúste JOSM aktualizovať."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16566,14 +16586,20 @@ msgstr "Berlín letecké fotografie 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Berlín letecké fotografie 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Berlín letecké fotografie 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Stuttgart (letecké snímky)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Erlangen letecké snímky (2016 5.0 cm)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Erlangen letecké snímky (2013 6.25 cm)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Erlangen 2011 letecké snímky (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Erlangen letecké snímky (2011 5.0 cm)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Stará mapa Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16968,11 +16994,11 @@ msgstr "Mesto Zürich prehľadová mapa (Ulice, Budovy, Čísla domov)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Letecká snímka mesta Zürich 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Ortofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Letecké snímky kantonu Solothurn RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Ortofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr "Letecké snímky kantonu Solothurn Infračervené (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Génève 5cm (SITG 2011)"
@@ -17368,6 +17394,13 @@ msgstr ""
 "Zjednodušuje mapovanie budov z podkladových vrstiev. Optimalizované pre "
 "basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Umožňuje používateľovi opraviť uhol budov na 90 stupňov a zarovnať budovy k "
+"najbližšej ceste."
+
 msgid "Tools for drawing buildings."
 msgstr "Nástroje na kreslenie budov."
 
@@ -17645,6 +17678,9 @@ msgstr ""
 "Navždy znemožní používať JOSM (VAROVANIE: tento plugin znemožní spustenie "
 "JOSM a je ťažké sa ho zbaviť)"
 
+msgid "Import OSM data in o5m format"
+msgstr "Importuje OSM údaje vo formáte o5m"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Konvertuje údaje z portálov Open Data do vrstvy OSM"
 
@@ -17773,6 +17809,11 @@ msgid "Edit features for Sea Charts"
 msgstr "Upravuje objekty pre námorné mapy Sea Charts"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+"Poskytuje používateľovi viac nástrojov na zarovnanie a otáčanie budov."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20027,9 +20068,27 @@ msgstr "Priepust"
 msgid "Basin"
 msgstr "Nádrž na dažďovú vodu"
 
+msgid "retention"
+msgstr "zadržiavacia"
+
+msgid "infiltration"
+msgstr "vsakovacia"
+
+msgid "detention"
+msgstr "polder"
+
 msgid "Reservoir"
 msgstr "Nádrž"
 
+msgid "evaporator"
+msgstr "odparovacia nádrž"
+
+msgid "tailings"
+msgstr "odkalisko"
+
+msgid "water_storage"
+msgstr "zásobáreň vody"
+
 msgid "Covered Reservoir"
 msgstr "Krytá nádrž"
 
@@ -20064,6 +20123,12 @@ msgstr "nádrž"
 msgid "river"
 msgstr "rieka"
 
+msgid "lock"
+msgstr "plavebná komora"
+
+msgid "wastewater"
+msgstr "odpadová voda"
+
 msgid "Salt Water"
 msgstr "Slaná voda"
 
@@ -20309,7 +20374,7 @@ msgid "Floating"
 msgstr "Plávajúce"
 
 msgid "Lock Gate"
-msgstr "Plavebná komora"
+msgstr "Brána plavebnej komory"
 
 msgid "Turning Point"
 msgstr "Obratisko lodí"
@@ -21271,6 +21336,9 @@ msgstr "Zábavný park"
 msgid "Water Park"
 msgstr "Vodný zábavný park"
 
+msgid "Beach Resort"
+msgstr "Plážové letovisko"
+
 msgid "Swimming Pool"
 msgstr "Bazén"
 
@@ -23924,7 +23992,10 @@ msgstr "Morské špeciality"
 msgid "Deli (Fine Food)"
 msgstr "Špeciality"
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr "Zákusky"
+
+msgid "Confectionery"
 msgstr "Sladkosti"
 
 msgid "Tea"
@@ -24176,7 +24247,10 @@ msgstr "Predajný automat"
 msgid "Vending products"
 msgstr "Predávané výrobky"
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr "vstupenky"
+
+msgid "animal_feed"
 msgstr "krmivo pre zvieratá"
 
 msgid "bicycle_tube"
@@ -24191,6 +24265,9 @@ msgstr "kondómy"
 msgid "drinks"
 msgstr "pitie"
 
+msgid "elongated_coin"
+msgstr "razené mince"
+
 msgid "excrement_bags"
 msgstr "sáčky na výkaly"
 
@@ -24206,6 +24283,12 @@ msgstr "noviny"
 msgid "parking_tickets"
 msgstr "parkovacie lístky"
 
+msgid "parcel_pickup"
+msgstr "vyzdvihnutie balíkov"
+
+msgid "parcel_mail_in"
+msgstr "podanie balíkov"
+
 msgid "photos"
 msgstr "fotky"
 
@@ -24224,18 +24307,12 @@ msgstr "známky"
 msgid "sweets"
 msgstr "sladkosti"
 
-msgid "tampons"
-msgstr "tampóny"
-
 msgid "telephone_vouchers"
 msgstr "telefónne kupóny (poukážky)"
 
 msgid "toys"
 msgstr "hračky"
 
-msgid "vouchers"
-msgstr "kupóny (poukážky)"
-
 msgid "Payment Methods"
 msgstr "Spôsoby platby"
 
@@ -24963,6 +25040,15 @@ msgstr "Skleníková zóna"
 msgid "Plant Nursery"
 msgstr "Škôlka pre rastliny"
 
+msgid "Aquaculture"
+msgstr "Akvakultúra"
+
+msgid "shrimp"
+msgstr "krevety"
+
+msgid "mussels"
+msgstr "mušle"
+
 msgid "Allotments"
 msgstr "Záhradkárska oblasť"
 
@@ -25056,6 +25142,9 @@ msgstr "Oficiálny názov"
 msgid "Common name abbreviation"
 msgstr "Bežná skratka názvu"
 
+msgid "Address"
+msgstr "Adresa"
+
 msgid "House number"
 msgstr "Číslo domu"
 
@@ -27325,6 +27414,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Názov ulice:"
 
@@ -28258,9 +28362,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Adresa"
-
 msgid "Split area"
 msgstr "Rozdeliť oblasť"
 
@@ -29370,7 +29471,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -29769,13 +29870,13 @@ msgid "Edit on website"
 msgstr "Upraviť na webstránke"
 
 msgid "Current Mapillary changeset"
-msgstr ""
+msgstr "Aktuálna sada zmien Mapillary"
 
 msgid "Open Mapillary changeset dialog"
-msgstr ""
+msgstr "Otvoriť okno pre sady zmien Mapillary"
 
 msgid "Mapillary changeset"
-msgstr ""
+msgstr "Sada zmien Mapillary"
 
 msgid "Submit"
 msgstr ""
@@ -29940,7 +30041,7 @@ msgid "You are currently not logged in."
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
-msgstr ""
+msgstr "Pred odosielaním choďte do nastavení a prihláste sa do Mapillary."
 
 msgid "Upload selected sequence"
 msgstr "Odoslať vybranú postupnosť"
@@ -29994,7 +30095,7 @@ msgid "areas with downloaded OSM-data"
 msgstr ""
 
 msgid "only when manually requested"
-msgstr ""
+msgstr "len keď je požadované"
 
 msgid ""
 "The downloaded OSM area is too big. Download mode has been changed to "
@@ -30010,7 +30111,7 @@ msgid "Select mode"
 msgstr "Vyberte režim"
 
 msgid "Mapillary login"
-msgstr ""
+msgstr "Prihlásenie do Mapillary"
 
 msgid "Login successful, return to JOSM."
 msgstr ""
@@ -30025,7 +30126,7 @@ msgid "Total Mapillary images: {0}"
 msgstr "Spolu obrázkov Mapillary: {0}"
 
 msgid "Submitting Mapillary Changeset"
-msgstr ""
+msgstr "Odosiela sa sada zmien Mapillary"
 
 msgid "No images found"
 msgstr "Nenašli sa žiadne obrázky"
@@ -30034,10 +30135,10 @@ msgid "Finished upload"
 msgstr "Odoslanie ukončené"
 
 msgid "You are not logged in, please log in to Mapillary in the preferences"
-msgstr ""
+msgstr "Nie ste prihlásený, prosím prihláste sa do Mapillary v nastaveniach"
 
 msgid "Not Logged in to Mapillary"
-msgstr ""
+msgstr "Neprihlásený do Mapillary"
 
 msgid "Uploading: {0}"
 msgstr "Odosiela sa: {0}"
@@ -30255,6 +30356,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -30730,18 +30849,9 @@ msgstr "Súbory OSM servera skomprimované v pbf"
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -31394,6 +31504,9 @@ msgstr "Tlač zlyhala."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31412,6 +31525,12 @@ msgstr ""
 "Musia byť stiahnuté, aby sa dalo pokračovať v kontrole.\n"
 "Chcete ich teraz stiahnuť?"
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr "PT_Assistant plugin zistil, že táto relácia (id={0}) má chyby:"
 
@@ -31440,10 +31559,6 @@ msgstr "PT: Nástupište by nemalo byť súčasťou cesty"
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31479,6 +31594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31488,13 +31609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -32295,6 +32415,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Zjednodušiť oblasť"
 
@@ -33296,7 +33461,7 @@ msgid "Accept the currently selected way"
 msgstr "Prijať aktuálne vybratú cestu"
 
 msgid "Paste from the clipboard"
-msgstr "Vložiť zo schránky"
+msgstr "Prilepiť zo schránky"
 
 msgid "Create new turn restriction"
 msgstr "Vytvoriť nový zákaz odbočenia"
@@ -33736,7 +33901,7 @@ msgid "Internal error: number of nodes is {0}."
 msgstr "Interná chyba: počet bodov je {0}."
 
 msgid "Copy all tags of selected objects to paste buffer."
-msgstr ""
+msgstr "Kopírovať všetky značky vybraných objektov do schránky."
 
 msgid "Extract node"
 msgstr "Extrahovať bod"
@@ -33759,7 +33924,8 @@ msgstr "Prilepiť relácie"
 
 msgid ""
 "Paste relation membership from objects in the buffer onto selected object(s)"
-msgstr "Vložiť členstvo relácie z objektov v zásobníku ma vybraný objekt(y)"
+msgstr ""
+"Prilepiť členstvo v relácii z objektov v zásobníku na vybraný objekt(y)"
 
 msgid "Split Object"
 msgstr "Rozdeliť objekt"
@@ -33814,7 +33980,7 @@ msgid "Copy tags from previous selection"
 msgstr "Skopírovať značky z predošlého výberu"
 
 msgid "Pastes tags of previously selected object(s)"
-msgstr "Vložiť značky z naposledy vybraného objektu(ov)"
+msgstr "Prilepiť značky z naposledy vybraného objektu(ov)"
 
 msgid "Add Source Tag"
 msgstr "Pridať značku \"zdroj\""
@@ -34403,17 +34569,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Pridať názvy z Wikipedie"
 
@@ -34421,12 +34576,6 @@ msgid ""
 "Fetches interwiki links from Wikipedia in order to add several name tags"
 msgstr "Stiahne linky interwiki z Wikipedie na pridanie viacerých názvov"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34437,6 +34586,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Kopírovať šablónu {0}"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Získať články Wikipedie so súradnicami"
 
@@ -34477,7 +34643,7 @@ msgid "Clipboard"
 msgstr "Schránka"
 
 msgid "Pastes Wikipedia articles from the system clipboard"
-msgstr "Vloží články Wikipedie zo systémovej schránky"
+msgstr "Prilepí články Wikipedie zo systémovej schránky"
 
 msgid "clipboard"
 msgstr "schránka"
diff --git a/i18n/po/sl.po b/i18n/po/sl.po
index 6de8970..5377ed5 100644
--- a/i18n/po/sl.po
+++ b/i18n/po/sl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-11-07 17:38+0000\n"
 "Last-Translator: Joško Horvat <Unknown>\n"
 "Language-Team: Slovenian <sl at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
 "n%100==4 ? 3 : 0);\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:06+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:29+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: sl\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -487,6 +472,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1973,6 +1964,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Nariši"
 
@@ -1985,9 +1985,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Ni mogoče dodati vozlišča izven tega sveta."
 
@@ -2055,12 +2052,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2151,13 +2142,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3526,9 +3517,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3538,6 +3526,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4756,7 +4747,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5906,6 +5897,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5933,9 +5927,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7156,10 +7147,10 @@ msgstr "Pokaži/skrij plast"
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9179,12 +9170,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr ""
-
 msgid "outside downloaded area"
 msgstr "izven sprejetega področja"
 
+msgid "Data Layer {0}"
+msgstr ""
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9666,6 +9657,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "točka GPS"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9678,9 +9672,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "točka GPS"
-
 msgid "Import Audio"
 msgstr "Uvozi zvok"
 
@@ -11472,6 +11463,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12561,9 +12577,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13542,7 +13555,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14012,6 +14025,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14208,6 +14224,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Prijavi napako"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14239,7 +14258,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14973,13 +14992,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15375,10 +15400,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15764,6 +15789,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15987,6 +16017,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16092,6 +16125,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18289,9 +18326,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18326,6 +18381,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19531,6 +19592,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Vodni park"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22182,7 +22246,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22434,7 +22501,10 @@ msgstr ""
 msgid "Vending products"
 msgstr "Prodajani izdelki"
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22449,6 +22519,9 @@ msgstr ""
 msgid "drinks"
 msgstr "pijača"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22464,6 +22537,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22482,18 +22561,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23207,6 +23280,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23300,6 +23382,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25503,6 +25588,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26383,9 +26483,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27469,7 +27566,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28332,6 +28429,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28806,18 +28921,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29469,6 +29575,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29484,6 +29593,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29512,10 +29627,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29550,6 +29661,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29559,13 +29676,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30356,6 +30472,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32312,6 +32473,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr "Kopiraj {0} predlogo"
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32323,27 +32499,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr "Kopiraj {0} predlogo"
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Poišči članke wikipedije s koordinatami"
 
diff --git a/i18n/po/sq.po b/i18n/po/sq.po
index f7db33e..526f0c5 100644
--- a/i18n/po/sq.po
+++ b/i18n/po/sq.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-11-04 19:43+0000\n"
 "Last-Translator: StefanPrifti <Unknown>\n"
 "Language-Team: FLOSS Kosova\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 04:31+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 04:32+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/sr.po b/i18n/po/sr.po
index 7e08e0e..b7e93b8 100644
--- a/i18n/po/sr.po
+++ b/i18n/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-02-01 15:30+0000\n"
 "Last-Translator: Slobodan Simić <Unknown>\n"
 "Language-Team: Serbian <sr at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:04+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:26+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: sr\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -56,21 +56,6 @@ msgstr "Услови коришћења позадине"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -483,6 +468,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1962,6 +1953,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1974,9 +1974,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2042,12 +2039,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2138,13 +2129,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3505,9 +3496,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3517,6 +3505,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4727,7 +4718,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5877,6 +5868,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr "Откривени сукоби"
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5904,9 +5898,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7127,10 +7118,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9135,10 +9126,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9618,6 +9609,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9630,9 +9624,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11422,6 +11413,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12509,9 +12525,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13484,7 +13497,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13950,6 +13963,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14146,6 +14162,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14177,7 +14196,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14911,13 +14930,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15313,10 +15338,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15702,6 +15727,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15925,6 +15955,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16030,6 +16063,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18227,9 +18264,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18264,6 +18319,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19469,6 +19530,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22120,7 +22184,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22372,7 +22439,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22387,6 +22457,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22402,6 +22475,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22420,18 +22499,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23145,6 +23218,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23238,6 +23320,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25441,6 +25526,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26321,9 +26421,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27407,7 +27504,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28268,6 +28365,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28742,18 +28857,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29405,6 +29511,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29420,6 +29529,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29448,10 +29563,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29486,6 +29597,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29495,13 +29612,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30292,6 +30408,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32246,6 +32407,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32257,27 +32433,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/sv.po b/i18n/po/sv.po
index 99cce74..09f7246 100644
--- a/i18n/po/sv.po
+++ b/i18n/po/sv.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-07-17 11:00+0000\n"
-"Last-Translator: Anders Jonsson <Unknown>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-05 09:33+0000\n"
+"Last-Translator: Tomas Marklund <tomasmarklund75 at gmail.com>\n"
 "Language-Team: Swedish <sv at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:07+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:31+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: sv\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Villkor för användning av bakgrund"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Öppnande av länk stöds inte på aktuell platform (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "FEL: {0}"
-
-msgid "WARNING: {0}"
-msgstr "VARNING: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Anledning: "
-
 msgid "Executing platform startup hook"
 msgstr "Kör plattformens uppstarts-hook"
 
@@ -501,6 +486,12 @@ msgstr "Hämta data"
 msgid "Download notes in current view"
 msgstr "Ladda ner kartanteckningar i nuvarande vy."
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Ladda ner objekt..."
 
@@ -2104,6 +2095,15 @@ msgstr ""
 "Klicka för att ta bort. Skift: ta bort delsträcka. Alt: lämna kvar oanvända "
 "noder vid borttagning av sträcka. Ctrl: ta bort objekt som refererar hit"
 
+msgid "draw angle snap"
+msgstr "Rita vinkellåst"
+
+msgid "draw angle snap highlight"
+msgstr "mall för att snappa vinklar"
+
+msgid "helper line"
+msgstr "hjälplinje"
+
 msgid "Draw"
 msgstr "Rita"
 
@@ -2116,9 +2116,6 @@ msgstr "Läge: Rita vinkellänkning"
 msgid "Backspace in Add mode"
 msgstr "Bakåtsteg i redigerarläge"
 
-msgid "helper line"
-msgstr "hjälplinje"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Det går inte att lägga till en nod utanför världen."
 
@@ -2184,12 +2181,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "FIXA"
 
-msgid "draw angle snap"
-msgstr "Rita vinkellåst"
-
-msgid "draw angle snap highlight"
-msgstr "mall för att snappa vinklar"
-
 msgid "Angle snapping"
 msgstr "Vinkellåsning"
 
@@ -2289,15 +2280,15 @@ msgstr[1] "Lägg till en ny nod till {0} sträckor"
 msgid "Cannot delete node that has tags"
 msgstr "Kan inte radera nod som har taggar"
 
+msgid "make parallel helper line"
+msgstr "skapa parallell hjälplinje"
+
 msgid "Parallel"
 msgstr "Parallell"
 
 msgid "Make parallel copies of ways"
 msgstr "Skapa parallella kopior av vägar"
 
-msgid "make parallel helper line"
-msgstr "skapa parallell hjälplinje"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -2980,7 +2971,7 @@ msgid "Informational warnings, expect many false entries."
 msgstr "Varningsinformation, förvänta dig många felaktiga inmatningar."
 
 msgid "Suspicious data found. Upload anyway?"
-msgstr "Skum data funnen. Ladda upp ändå?"
+msgstr "Misstänkt felaktig data funnen. Ladda upp ändå?"
 
 msgid "Continue upload"
 msgstr "Fortsätt uppladdning"
@@ -3773,9 +3764,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Okänd parameter: ''{0}''."
 
@@ -3785,6 +3773,9 @@ msgstr "Ett värde förväntas för parametern ''{0}''."
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Oväntat parameterformat (''{0}'')"
 
@@ -5034,7 +5025,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr "Var säker på att du laddar lite data genom att använda --selection"
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -6204,6 +6195,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr "Lös konflikter"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -6236,9 +6230,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr "Lös konflikter"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7473,10 +7464,10 @@ msgstr "Visa/dölj lager"
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9548,12 +9539,12 @@ msgstr "Totalt antal anteckningar:"
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "Datalager {0}"
-
 msgid "outside downloaded area"
 msgstr "utanför hämtat område"
 
+msgid "Data Layer {0}"
+msgstr "Datalager {0}"
+
 msgid "Merging layers"
 msgstr ""
 
@@ -10051,6 +10042,9 @@ msgstr "Det finns inga bildlager."
 msgid "No imagery layers"
 msgstr "Inga bildlager"
 
+msgid "gps point"
+msgstr "gps-punkt"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10063,9 +10057,6 @@ msgstr "Riktning"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps-punkt"
-
 msgid "Import Audio"
 msgstr "Importera ljud"
 
@@ -11911,6 +11902,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Konfigurera listan över platser där insticksmoduler kan hämtas"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -13015,9 +13031,6 @@ msgstr "<html>Kunde inte läsa filer.<br>Felet är:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON-filer"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -14022,7 +14035,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "Insticksmodulen kommer inte att läsas in."
 msgstr[1] "Insticksmodulerna kommer inte att läsas in."
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14550,6 +14563,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "Anledning: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14752,6 +14768,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Rapportera en bugg"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14783,7 +14802,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15521,13 +15540,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15923,10 +15948,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -16314,6 +16339,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Verktyg för att rita byggnader"
 
@@ -16540,6 +16570,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16649,6 +16682,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18861,9 +18898,27 @@ msgstr ""
 msgid "Basin"
 msgstr "Hamnbassäng"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservoar"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Täckt reservoar"
 
@@ -18898,6 +18953,12 @@ msgstr ""
 msgid "river"
 msgstr "flod"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -20105,6 +20166,9 @@ msgstr "Nöjesfält"
 msgid "Water Park"
 msgstr "Badanläggning"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22756,8 +22820,11 @@ msgstr "Skaldjur"
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
-msgstr "Godisaffär"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr ""
@@ -23008,8 +23075,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Varor till försäljning"
 
-msgid "animal_food"
-msgstr "djurmat"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "cykelslang"
@@ -23023,6 +23093,9 @@ msgstr "kondomer"
 msgid "drinks"
 msgstr "dryck"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "hundpåsar"
 
@@ -23038,6 +23111,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "parkeringsbiljetter"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "foton"
 
@@ -23056,18 +23135,12 @@ msgstr "frimärken"
 msgid "sweets"
 msgstr "godis"
 
-msgid "tampons"
-msgstr "tamponger"
-
 msgid "telephone_vouchers"
 msgstr "telefonkort"
 
 msgid "toys"
 msgstr "leksaker"
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23667,7 +23740,7 @@ msgid "Large area covered with sand."
 msgstr "Större område täkt med sand."
 
 msgid "Bare Rock"
-msgstr "Bar sten"
+msgstr "Bar sten (berghäll)"
 
 msgid ""
 "For areas of solid visible rock that is sparsely vegetated or not vegetated "
@@ -23689,7 +23762,7 @@ msgid "Tourism attraction"
 msgstr "Turistattratkion"
 
 msgid "Stone"
-msgstr "Sten"
+msgstr "Sten (friliggande)"
 
 msgid ""
 "A single notable free-standing rock, which may differ from the composition "
@@ -23790,6 +23863,15 @@ msgstr "Växthusodling"
 msgid "Plant Nursery"
 msgstr "Plantskola"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Kolonilotter"
 
@@ -23883,6 +23965,9 @@ msgstr "Officiellt namn"
 msgid "Common name abbreviation"
 msgstr "Vanlig namnförkortning"
 
+msgid "Address"
+msgstr "Adress"
+
 msgid "House number"
 msgstr "Husnummer"
 
@@ -26088,6 +26173,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Gatunamn:"
 
@@ -26977,9 +27077,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Adress"
-
 msgid "Split area"
 msgstr ""
 
@@ -28072,7 +28169,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28949,6 +29046,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -29429,18 +29544,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -30092,6 +30198,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -30107,6 +30216,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -30135,10 +30250,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -30173,6 +30284,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -30182,13 +30299,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30979,6 +31095,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Förenkla yta"
 
@@ -32944,6 +33105,22 @@ msgstr[1] "Hämtar {0} Wikidata-ID:n för språket ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Lägg till Wikidata för språket \"{0}\""
 
+msgid "Add names from Wikipedia"
+msgstr "Lägg till namn från Wikipedia"
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+"Hämtar interwiki-länkar från Wikipedia för att lägga till flera namntaggar"
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr "Kopiera {0} mall"
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] "Skriv över''{0}'' tagg {1} från {2} med nya värdet ''{3}''?"
@@ -32955,28 +33132,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr "Lägg till namn från Wikipedia"
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-"Hämtar interwiki-länkar från Wikipedia för att lägga till flera namntaggar"
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr "Kopiera {0} mall"
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Hämta Wikipediaartiklar med koordinaterna"
 
diff --git a/i18n/po/ta.po b/i18n/po/ta.po
index 677a745..43e2226 100644
--- a/i18n/po/ta.po
+++ b/i18n/po/ta.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-10-28 15:55+0000\n"
 "Last-Translator: நவலடி <navaladi at gmail.com>\n"
 "Language-Team: Tamil <ta at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:08+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:32+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "X-Poedit-Country: INDIA\n"
 "Language: ta\n"
 "X-Poedit-Language: Tamil\n"
@@ -57,21 +57,6 @@ msgstr "பயன்பாட்டு பின்னணி விதிமு
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "இணைப்பை திறக்க  தற்போதைய இயங்குதளத்தில் ஆதரவு இல்லை (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "பிழை: {0}"
-
-msgid "WARNING: {0}"
-msgstr "எச்சரிக்கை: {0}"
-
-msgid "INFO: {0}"
-msgstr "தகவல்: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "பிழைத்திருத்தம்: {0}"
-
-msgid "Cause: "
-msgstr "காரணம்: "
-
 msgid "Executing platform startup hook"
 msgstr "மேடை தொடக்க கொக்கி  செயல்படுகிறது"
 
@@ -490,6 +475,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1997,6 +1988,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -2009,9 +2009,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2077,12 +2074,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2173,13 +2164,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3540,9 +3531,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3552,6 +3540,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4762,7 +4753,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5912,6 +5903,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5939,9 +5933,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7163,10 +7154,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9170,10 +9161,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9655,6 +9646,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9667,9 +9661,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11459,6 +11450,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12546,9 +12562,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13521,7 +13534,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13987,6 +14000,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "காரணம்: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14183,6 +14199,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14214,7 +14233,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14948,13 +14967,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15350,10 +15375,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15739,6 +15764,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15962,6 +15992,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16067,6 +16100,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18264,9 +18301,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18301,6 +18356,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19506,6 +19567,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22157,7 +22221,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22409,8 +22476,11 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
-msgstr "விலங்கு_உணவு"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22424,6 +22494,9 @@ msgstr ""
 msgid "drinks"
 msgstr "பானம்"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22439,6 +22512,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "புகைப்படங்கள்"
 
@@ -22457,18 +22536,12 @@ msgstr "தபால்த்தலைகள்"
 msgid "sweets"
 msgstr "இனிப்புகள்"
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr "பொம்மைகள்"
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23182,6 +23255,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23275,6 +23357,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25478,6 +25563,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26358,9 +26458,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27444,7 +27541,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28311,6 +28408,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28785,18 +28900,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29448,6 +29554,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29463,6 +29572,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29491,10 +29606,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29529,6 +29640,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29538,13 +29655,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30335,6 +30451,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32289,6 +32450,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32300,27 +32476,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/te.po b/i18n/po/te.po
index d676064..ecd35c3 100644
--- a/i18n/po/te.po
+++ b/i18n/po/te.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2011-05-13 08:50+0000\n"
 "Last-Translator: Praveen Illa <mail2ipn at gmail.com>\n"
 "Language-Team: Telugu <te at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:08+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:33+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: te\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/th.po b/i18n/po/th.po
index 37c9be4..328c8db 100644
--- a/i18n/po/th.po
+++ b/i18n/po/th.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2009-03-23 02:34+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Thai <th at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:09+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:34+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: th\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/tr.po b/i18n/po/tr.po
index 5f6eebf..2c8ad20 100644
--- a/i18n/po/tr.po
+++ b/i18n/po/tr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-11-16 12:04+0000\n"
 "Last-Translator: Erkin Alp Güney <Unknown>\n"
 "Language-Team: Türkçe <>\n"
@@ -17,8 +17,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:09+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:36+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -57,21 +57,6 @@ msgstr "Arkaplanın Kullanım Şartları"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "Link açma işlemi bu platformda desteklenmiyor  (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "HATA: {0}"
-
-msgid "WARNING: {0}"
-msgstr "UYARI: {0}"
-
-msgid "INFO: {0}"
-msgstr "BİLGİ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "HATA AYIKLAMA: {0}"
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr "Platform başlangıç kancası yürütülüyor."
 
@@ -494,6 +479,12 @@ msgstr "Veriyi indir"
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Nesneyi indir..."
 
@@ -2005,6 +1996,15 @@ msgstr ""
 "Silmek için tıklayınız. Shift: yol segmentini siler. Alt: kullnılmayan "
 "kavşakları silmebir yol silerken. Ctrl:referans objelerini sil"
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "Çiz"
 
@@ -2017,9 +2017,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "Dünya dışına bir kavşak ekleyemezsiniz."
 
@@ -2085,12 +2082,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2182,15 +2173,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
+msgid "make parallel helper line"
+msgstr ""
+
 msgid "Parallel"
 msgstr "Paralel"
 
 msgid "Make parallel copies of ways"
 msgstr "Yolunun paralel yolu oluşturuluyor"
 
-msgid "make parallel helper line"
-msgstr ""
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3557,9 +3548,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3569,6 +3557,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4791,7 +4782,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5940,6 +5931,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5967,9 +5961,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7190,10 +7181,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9199,12 +9190,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr ""
-
 msgid "outside downloaded area"
 msgstr "indirilen alanın dışında"
 
+msgid "Data Layer {0}"
+msgstr ""
+
 msgid "Merging layers"
 msgstr ""
 
@@ -9693,6 +9684,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr "gps noktası"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9705,9 +9699,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps noktası"
-
 msgid "Import Audio"
 msgstr "Sesi içeri al"
 
@@ -11511,6 +11502,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12599,9 +12615,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13580,7 +13593,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -14049,6 +14062,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14245,6 +14261,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "hatayı Bildir"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14276,7 +14295,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15014,13 +15033,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15416,10 +15441,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15805,6 +15830,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -16028,6 +16058,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16133,6 +16166,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18330,9 +18367,27 @@ msgstr ""
 msgid "Basin"
 msgstr "havza"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Havuz"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Kapalı Sarnıç"
 
@@ -18367,6 +18422,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19572,6 +19633,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "Su Parkı"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22223,7 +22287,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22475,8 +22542,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "Ücretli Ürünler"
 
-msgid "animal_food"
-msgstr "hayvan_besini"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22490,6 +22560,9 @@ msgstr "kondom"
 msgid "drinks"
 msgstr "içecek"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "dışkı_poşeti"
 
@@ -22505,6 +22578,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "Park_bileti"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "fotoğraf"
 
@@ -22523,18 +22602,12 @@ msgstr "pullar"
 msgid "sweets"
 msgstr "tatlı"
 
-msgid "tampons"
-msgstr "tampon"
-
 msgid "telephone_vouchers"
 msgstr "telefon_kartı"
 
 msgid "toys"
 msgstr "oyuncuklar"
 
-msgid "vouchers"
-msgstr "bilet"
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23248,6 +23321,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "Kiralık Tarım Alanı"
 
@@ -23341,6 +23423,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "Ev no:"
 
@@ -25544,6 +25629,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26424,9 +26524,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27512,7 +27609,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28383,6 +28480,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28859,18 +28974,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29522,6 +29628,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29537,6 +29646,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29565,10 +29680,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29603,6 +29714,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29612,13 +29729,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30409,6 +30525,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Alanı sadeleştir"
 
@@ -32361,6 +32522,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32372,27 +32548,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/ug.po b/i18n/po/ug.po
index 376f80a..4c8fd17 100644
--- a/i18n/po/ug.po
+++ b/i18n/po/ug.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2012-07-14 16:22+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Uyghur <ug at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:10+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:38+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/uk.po b/i18n/po/uk.po
index 816c54a..2ee4228 100644
--- a/i18n/po/uk.po
+++ b/i18n/po/uk.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-08-08 12:54+0000\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-09-05 18:39+0000\n"
 "Last-Translator: andygol <Unknown>\n"
 "Language-Team: Ukrainian <uk at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:10+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:39+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: uk\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -57,21 +57,6 @@ msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 "Відкриття посилання, що не підтримується поточною платформою (''{0}'')"
 
-msgid "ERROR: {0}"
-msgstr "ПОМИЛКА: {0}"
-
-msgid "WARNING: {0}"
-msgstr "ПОПЕРЕДЖЕННЯ: {0}"
-
-msgid "INFO: {0}"
-msgstr "ІНФОРМАЦІЯ: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "ВІДЛАГОДЖЕННЯ: {0}"
-
-msgid "Cause: "
-msgstr "Причина: "
-
 msgid "Executing platform startup hook"
 msgstr "Виконання стартових процедур"
 
@@ -514,6 +499,12 @@ msgstr "Отримати дані"
 msgid "Download notes in current view"
 msgstr "Завантажити нотатки для поточного виду"
 
+msgid "Download in current view"
+msgstr "Завантажити до поточного місця"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "Завантажити дані з сервера OSM для поточного виду"
+
 msgid "Download object..."
 msgstr "Завантажити об’єкт…"
 
@@ -2155,6 +2146,15 @@ msgstr ""
 "що не використовуються, під час вилучення лінії. Ctrl: вилучити об’єкти, що "
 "посилаються на елементи, що вилучаються."
 
+msgid "draw angle snap"
+msgstr "Креслити з прив’язкою до кута"
+
+msgid "draw angle snap highlight"
+msgstr "підсвічувати кут прив’язки"
+
+msgid "helper line"
+msgstr "Допоміжна лінія"
+
 msgid "Draw"
 msgstr "Креслити"
 
@@ -2167,9 +2167,6 @@ msgstr "Режим: прив’язка до кутів"
 msgid "Backspace in Add mode"
 msgstr "Backspace в режимі додавання"
 
-msgid "helper line"
-msgstr "Допоміжна лінія"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Неможливо додати точку поза світом."
 
@@ -2236,12 +2233,6 @@ msgstr "0,30,45,60,90,…"
 msgid "FIX"
 msgstr "Фікс."
 
-msgid "draw angle snap"
-msgstr "Креслити з прив’язкою до кута"
-
-msgid "draw angle snap highlight"
-msgstr "підсвічувати кут прив’язки"
-
 msgid "Angle snapping"
 msgstr "Прив’язка до кутів"
 
@@ -2345,15 +2336,15 @@ msgstr[2] "Додати нову точку до {0} ліній"
 msgid "Cannot delete node that has tags"
 msgstr "Неможливо вилучити точку, що має теґи"
 
+msgid "make parallel helper line"
+msgstr "допоміжна лінія інструменту паралельних ліній"
+
 msgid "Parallel"
 msgstr "Паралельні лінії"
 
 msgid "Make parallel copies of ways"
 msgstr "Створити паралельну копію лінії"
 
-msgid "make parallel helper line"
-msgstr "допоміжна лінія інструменту паралельних ліній"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3884,9 +3875,6 @@ msgstr "Очікувалось ціле число в діапазоні 1-60 д
 msgid "No unit found for: {0}"
 msgstr "Не знайдено одиниці виміру для: {0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Параметр повинен починатись із знака ''+'' (зараз ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "Невідомий параметр: ''{0}''."
 
@@ -3896,6 +3884,9 @@ msgstr "Очікується значення для параметру ''{0}''.
 msgid "No value expected for parameter ''{0}''."
 msgstr "Для параметра ''{0}'' значення не очікується."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Параметр повинен починатись із знака ''+'' (зараз ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "Несподіваний формат параметра (''{0}'')"
 
@@ -5172,8 +5163,8 @@ msgstr ""
 "Переконайтеся, що ви завантажили хоч якісь дані, якщо ви використовуєте --"
 "selection."
 
-msgid "Printing debugging messages to console"
-msgstr "Виводити інформацію для відлагодження в консолі"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr "Докладність ведення журналу {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Заватаження втулків пропущено"
@@ -6452,6 +6443,9 @@ msgstr "Натисніть, щоб закрити цей діалог і про
 msgid "Conflicts detected"
 msgstr "Виявлено конфлікт"
 
+msgid "Resolve conflicts"
+msgstr "Розв’язати конфлікти"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Скасувати розв’язання конфліктів і закрити діалог"
 
@@ -6485,9 +6479,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "Конфлікт розв’язано не до кінця"
 
-msgid "Resolve conflicts"
-msgstr "Розв’язати конфлікти"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Розв’язати кнофлікти для ''{0}''"
 
@@ -7810,12 +7801,12 @@ msgstr "Показати/сховати шар"
 msgid "Discardable key: selection Foreground"
 msgstr "Застарілий теґ: виділення Foreground"
 
-msgid "Discardable key: selection Background"
-msgstr "Застарілий теґ: виділення Background"
-
 msgid "Discardable key: foreground"
 msgstr "Застарілий теґ: foreground"
 
+msgid "Discardable key: selection Background"
+msgstr "Застарілий теґ: виділення Background"
+
 msgid "Discardable key: background"
 msgstr "Застарілий теґ: background"
 
@@ -10091,12 +10082,12 @@ msgstr "Всього нотаток:"
 msgid "Changes need uploading?"
 msgstr "Надіслати зміни?"
 
-msgid "Data Layer {0}"
-msgstr "Дані {0}"
-
 msgid "outside downloaded area"
 msgstr "поза межами завантаженої ділянки"
 
+msgid "Data Layer {0}"
+msgstr "Дані {0}"
+
 msgid "Merging layers"
 msgstr "Злиття шарів"
 
@@ -10618,6 +10609,9 @@ msgstr "Шари з фоновим зображенням відсутні."
 msgid "No imagery layers"
 msgstr "Немає шарів з фоновим зображенням"
 
+msgid "gps point"
+msgstr "точка GPS"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -10630,9 +10624,6 @@ msgstr "Напрямок"
 msgid "Velocity, {0}"
 msgstr "Швидкість, {0}"
 
-msgid "gps point"
-msgstr "точка GPS"
-
 msgid "Import Audio"
 msgstr "Імпортувати аудіо"
 
@@ -12647,6 +12638,34 @@ msgstr "Налаштувати сайти…"
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Налаштувати список серверів, з яких можна завантажити втулки"
 
+msgid "Load from list..."
+msgstr "Завантажити зі списку…"
+
+msgid "Load plugins from a list of plugins"
+msgstr "Завантажити втулки зі списку"
+
+msgid "Disable all other plugins"
+msgstr "Вимкнути всі інші втулки"
+
+msgid "Enter a list of plugins you want to download."
+msgstr "Вкажіть список втулків для завантаження."
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+"Вам потрібно зазначити ідентифікатор втулка, по одному на рядок, інформація "
+"про версію ігнорується."
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+"Ви можете скопіювати та вставити сюди перелік втулків зі звіту про стан."
+
+msgid "Load plugins from list"
+msgstr "Завантажити втулки зі списку"
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr "Наступні втулки відсутні. Все одно продовжувати?"
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Додати посилання на опис втулка JOSM."
 
@@ -13844,9 +13863,6 @@ msgstr "<html>Неможливо прочитати файли.<br>Помилк
 msgid "GeoJSON Files"
 msgstr "Файли GeoJSON"
 
-msgid "Projected GeoJSON Files"
-msgstr "Файли GeoJSON"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Шар ''{0}'' не підтримується"
 
@@ -14939,8 +14955,8 @@ msgstr[0] "Втулок не буде завантажений."
 msgstr[1] "Втулки не будуть завантажені."
 msgstr[2] "Втулки не будуть завантажені."
 
-msgid "Determine plugins to load..."
-msgstr "Визначити втулки для завантаження…"
+msgid "Determining plugins to load..."
+msgstr "Визначення втулків для завантаження…"
 
 msgid "Removing deprecated plugins..."
 msgstr "Видалення застарілих втулків…"
@@ -15584,6 +15600,9 @@ msgid ""
 msgstr ""
 "Не вдалось отримати доступ до теки ''{0}'' з причин безпеки. Виключення: {1}"
 
+msgid "Cause: "
+msgstr "Причина: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15822,6 +15841,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Повідомити про помилку"
 
+msgid "Suppress this error for this session."
+msgstr "Не показувати повідомлення про цю помилку для цього сеансу."
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Не показувати наступні повідомлення про помилки для цього сеансу."
 
@@ -15855,9 +15877,8 @@ msgstr "Під час перевірки актуальності поточно
 msgid "JOSM is up to date."
 msgstr "Ваша версія JOSM є найновішою."
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
-msgstr ""
-"Ваша версія JOSM застаріла. Поточна версія  – {0}. Спробуйте оновити JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
+msgstr "JOSM застарів. Поточна версія – {0}. Спробуйте оновити JOSM."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16607,14 +16628,20 @@ msgstr "Берлін - аерофото 2014"
 msgid "Berlin aerial photograph 2015"
 msgstr "Берлін - аерофото 2015"
 
+msgid "Berlin aerial photograph 2016"
+msgstr "Берлін - аерофото 2016"
+
 msgid "Stuttgart (aerial imagery)"
 msgstr "Штутгарт (аерофото)"
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr "Ерланген - аерофото (2016 5.0 см)"
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr "Ерланген - аерофото (2013 6.25 см)"
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
-msgstr "Ерланген - аерофото (5.0 см)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
+msgstr "Ерланген - аерофото (2011 5.0 см)"
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
 msgstr "Стара мапа Цвенкау - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -17010,11 +17037,12 @@ msgstr "Цюрих: оглядовий план міста (вулиці, буд
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Місто Цюрих Вид з повітря 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Кантон Золотурн: ортофото RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr "Аерофотозйомка кантону Золотурн RGB (SOGIS 2013/2014/2015)"
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Кантон Золотурн: ортофото в ІЧ-діапазоні (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
+"Аерофотозйомка кантону Золотурн в ІЧ-діапазоні (SOGIS 2013/2014/2015)"
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Кантон Женева 5 см (SITG 2011)"
@@ -17412,6 +17440,13 @@ msgstr ""
 "Дозволяє виділяти ділянки шару та автоматично створювати полігони. Створений "
 "для полегшення мапінгу будівель з фонового шару. Оптимізовано для basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+"Дозволяє користувачу зробити кути будівель 90º та вирівняти їх вздовж "
+"найближчої дороги"
+
 msgid "Tools for drawing buildings."
 msgstr "Інструменти для креслення будівель."
 
@@ -17705,6 +17740,9 @@ msgstr ""
 "Забороняє використання JOSM назавжди (УВАГА: цей втулок запобігає запуску "
 "JOSM і його дуже важко позбутись)"
 
+msgid "Import OSM data in o5m format"
+msgstr "Імпорт даних OSM в форматі o5m"
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Перетворює дані порталу Open Data у шар OSM"
 
@@ -17835,6 +17873,12 @@ msgid "Edit features for Sea Charts"
 msgstr "Редагування об’єктів для Морських мап"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+"Надає додаткові інструменти, що спрощують вирівнювання та обертання  "
+"будівель."
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -20088,9 +20132,27 @@ msgstr "Кульверт"
 msgid "Basin"
 msgstr "Водойма"
 
+msgid "retention"
+msgstr "накопичувальний \"вологий\""
+
+msgid "infiltration"
+msgstr "інфільтраційний"
+
+msgid "detention"
+msgstr "накопичувальний \"сухий\""
+
 msgid "Reservoir"
 msgstr "Водосховище"
 
+msgid "evaporator"
+msgstr "випаровувач"
+
+msgid "tailings"
+msgstr "для шламу"
+
+msgid "water_storage"
+msgstr "для зберігання води"
+
 msgid "Covered Reservoir"
 msgstr "Критий резервуар"
 
@@ -20125,6 +20187,12 @@ msgstr "водосховище"
 msgid "river"
 msgstr "ріка"
 
+msgid "lock"
+msgstr "шлюз"
+
+msgid "wastewater"
+msgstr "відстійник стічної води"
+
 msgid "Salt Water"
 msgstr "Солона вода"
 
@@ -21334,6 +21402,9 @@ msgstr "Парк розваг"
 msgid "Water Park"
 msgstr "Аквапарк"
 
+msgid "Beach Resort"
+msgstr "Пляжний курорт"
+
 msgid "Swimming Pool"
 msgstr "Басейн"
 
@@ -23987,8 +24058,11 @@ msgstr "Морепродукти"
 msgid "Deli (Fine Food)"
 msgstr "Делікатеси (Вишукана їжа)"
 
-msgid "Candy Store"
-msgstr "Солодощі"
+msgid "Pastry"
+msgstr "Випічка"
+
+msgid "Confectionery"
+msgstr "Кондитерські вироби"
 
 msgid "Tea"
 msgstr "Чай"
@@ -24239,8 +24313,11 @@ msgstr "Торговий автомат"
 msgid "Vending products"
 msgstr "Товар"
 
-msgid "animal_food"
-msgstr "їжа для тварин"
+msgid "admission_tickets"
+msgstr "квитки"
+
+msgid "animal_feed"
+msgstr "корм для тварин"
 
 msgid "bicycle_tube"
 msgstr "вело шини"
@@ -24254,6 +24331,9 @@ msgstr "презервативи"
 msgid "drinks"
 msgstr "напої"
 
+msgid "elongated_coin"
+msgstr "подовжені монети"
+
 msgid "excrement_bags"
 msgstr "пакети для екскрементів"
 
@@ -24269,6 +24349,12 @@ msgstr "газети"
 msgid "parking_tickets"
 msgstr "талони на паркування"
 
+msgid "parcel_pickup"
+msgstr "поштомат (видача)"
+
+msgid "parcel_mail_in"
+msgstr "поштомат (відправка)"
+
 msgid "photos"
 msgstr "фотографії"
 
@@ -24287,18 +24373,12 @@ msgstr "марки"
 msgid "sweets"
 msgstr "солодощі"
 
-msgid "tampons"
-msgstr "тампони"
-
 msgid "telephone_vouchers"
 msgstr "телефонні картки"
 
 msgid "toys"
 msgstr "іграшки"
 
-msgid "vouchers"
-msgstr "ваучери"
-
 msgid "Payment Methods"
 msgstr "Спосіб оплати"
 
@@ -25033,6 +25113,15 @@ msgstr "Теплиця"
 msgid "Plant Nursery"
 msgstr "Розплідник рослин"
 
+msgid "Aquaculture"
+msgstr "Аква-ферма"
+
+msgid "shrimp"
+msgstr "креветки"
+
+msgid "mussels"
+msgstr "моллюски"
+
 msgid "Allotments"
 msgstr "Горо́ди/Дачі"
 
@@ -25126,6 +25215,9 @@ msgstr "Офіційна назва"
 msgid "Common name abbreviation"
 msgstr "Загальна скорочена назва"
 
+msgid "Address"
+msgstr "Адреса"
+
 msgid "House number"
 msgstr "Номер будинку"
 
@@ -27529,6 +27621,24 @@ msgid "Debugging mode will write images for each processing step."
 msgstr ""
 "В режимі відлагодження будут створені зображення для кожного кроку оробки."
 
+msgid "Building Generalization"
+msgstr "Узагальнення будівель"
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+"Початківці доволі часто креслять будівлі не точною Такі будівлі потрібно "
+"перетворити на прямокутні. Кути між 84-96 градусів перетворюються на кути 90 "
+"градусів."
+
+msgid "There is no frame loaded !"
+msgstr "Нічого не завантажено!"
+
+msgid "Alert Message"
+msgstr "Попередження"
+
 msgid "Street Name:"
 msgstr "Вулиця:"
 
@@ -28492,9 +28602,6 @@ msgstr ""
 "діалог з інформацією про стан завантаження даних не буде показуватись, отже "
 "у вас не буде можливості скасувати завантаження даних."
 
-msgid "Address"
-msgstr "Адреса"
-
 msgid "Split area"
 msgstr "Розділити полігон"
 
@@ -29640,8 +29747,8 @@ msgstr "створити канал орграфа"
 msgid "Check "
 msgstr "Перевірити "
 
-msgid "check the subust for junction properties"
-msgstr "перевірити підмножину на відповідність параметрам розв’язки"
+msgid "check the subset for junction properties"
+msgstr "перевіряти набір властивостей перехрестя"
 
 msgid "Search "
 msgstr "Пошук "
@@ -30545,6 +30652,24 @@ msgstr ""
 "(Для можливості відновити можливість картографувати треба\n"
 "вилучити параметр no_more_mapping з {0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr "Файли сервера OSM стиснені o5m"
+
+msgid "Invalid changeset id: {0}"
+msgstr "Неприпустимий id набору змін: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "Неприпустимий час: {0}"
+
+msgid "wrong header byte "
+msgstr "неправильний байт заголовка "
+
+msgid "unsupported header"
+msgstr "непідтримуваний заголовок"
+
+msgid "Reading OSM data..."
+msgstr "Читання даних OSM…"
+
 msgid "Split by municipality"
 msgstr "Поділ за муніципалітетами"
 
@@ -31074,18 +31199,9 @@ msgstr "Файли сервера OSM стиснені pbf"
 msgid "Download PBF"
 msgstr "Завантажити PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "Неприпустимий id набору змін: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "Неприпустимий час: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "Неприпустимі значення ключ/значення таблиці DenseNodes"
 
-msgid "Reading OSM data..."
-msgstr "Читання даних OSM…"
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 "Помилка перетворення: Мінімальне значення X повинно бути менше за максимальне"
@@ -31751,6 +31867,9 @@ msgstr "Збій друку."
 msgid "Add stop position"
 msgstr "Додати місце зупинки"
 
+msgid "Repeat last fix"
+msgstr "Повторити останні виправлення"
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr "Бажаєте завантажити обʼєкти, що посилаються на платформи та зупинки?"
 
@@ -31769,6 +31888,12 @@ msgstr ""
 "Їх треба завантажити, для того щоб виконати перевірку.\n"
 "Завантажити їх?"
 
+msgid "Download incomplete route relation members"
+msgstr "Завантажити відсутніх членів звʼязку маршруту"
+
+msgid "Include stop_area tests"
+msgstr "Включаючи перевірку stop_area"
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 "ГТ_Помічник втулок визначив, що цей звʼязок (id={0}) містить помилки:"
@@ -31798,11 +31923,7 @@ msgid "PT: Platform should not be part of a way"
 msgstr "ГТ: платформа не повинна бути частиною дороги"
 
 msgid "PT: Stop position or platform is not part of a stop area relation"
-msgstr ""
-
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
+msgstr "ГТ: Місце зупинки або платформа не входять до складу звʼязка зупинки"
 
 msgid "PT_Assistant Message"
 msgstr "ГТ_Помічник Повідомлення"
@@ -31840,23 +31961,33 @@ msgstr "ГТ: Проблема на відрізку маршруту"
 msgid "PT: Stop not served"
 msgstr "ГТ: Зупинка не обслуговується"
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr "ГТ: Проблема з відрізком маршруту, без автовиправлення"
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr "ГТ: Проблема з відрізком маршруту з одним автоматичним виправленням"
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
+"Попередження: показані варіанти виправлення засновані на менш жорстких "
+"критеріях"
 
 msgid "Type letter to select the fix variant or press Escape for no fix"
 msgstr ""
+"Натисніть літеру, щоб вибрати варіант виправлення або натисніть Esc, що "
+"оминути його"
 
 msgid "PT: Stop area relation has no stop position"
-msgstr ""
-
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
+msgstr "ГТ: Звʼязок зупинки не містить місця зупинки"
 
 msgid "PT: Stop area relation has no platform"
-msgstr ""
+msgstr "ГТ: Звʼязок зупинки не містить платформу"
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
+"ГТ: члени звʼязків маршрутів місць зупинок та платформ  відрізняються"
 
 msgid "PT: Route type does not match the type of the road it passes on"
 msgstr "ГТ: Тип маршруту не відповідає типу дороги, по якій він проходить"
@@ -32670,6 +32801,51 @@ msgstr "Виділіть тільки один об’єкт"
 msgid "Select a map object"
 msgstr "Виділіть об’єкт на мапі"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr "Режим обертання:"
+
+msgid "Clockwise"
+msgstr "За годинниковою стрілкою"
+
+msgid "Counter Clockwise"
+msgstr "Проти годинникової стрілки"
+
+msgid "Input angle here"
+msgstr "Введіть кут"
+
+msgid "Rotate"
+msgstr "Повернути"
+
+msgid "Align building "
+msgstr "Вирівняти будівлі "
+
+msgid "Select building"
+msgstr "Виділіть будівлі"
+
+msgid "Select road"
+msgstr "Виділіть дорогу"
+
+msgid "Select none"
+msgstr "Зняти  виділення"
+
+msgid "Min Distance:"
+msgstr "Мін. відстань:"
+
+msgid "Input min distance"
+msgstr "Введіть мінімальну відстань"
+
+msgid "Align all buildings"
+msgstr "Вирівняти всі будівлі"
+
+msgid "Delete overlay"
+msgstr "Вилучити шар"
+
 msgid "Simplify Area"
 msgstr "Спростити полігон"
 
@@ -34861,18 +35037,6 @@ msgstr[2] "Отримання {0} id Вікіданих для мови ''{1}''"
 msgid "Add Wikidata for language ''{0}''"
 msgstr "Додати Вікідані для мови ''{0}''"
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] "Перезаписати ''{0}'' теґ {1} з {2} новим значенням ''{3}''?"
-msgstr[1] "Перезаписати ''{0}'' теґи {1} з {2} новим значенням ''{3}''?"
-msgstr[2] "Перезаписати ''{0}'' теґів {1} з {2} новим значенням ''{3}''?"
-
-msgid "Search Wikidata items"
-msgstr "Пошук у Вікіданих"
-
-msgid "Target key: "
-msgstr "Цільовий ключ: "
-
 msgid "Add names from Wikipedia"
 msgstr "Додати назву з Вікіпедії"
 
@@ -34881,12 +35045,6 @@ msgid ""
 msgstr ""
 "Отримати інтервікі-посилання з Вікіпедії для того, щоб додати деякі теґи name"
 
-msgid "Search Wikipedia category"
-msgstr "Пошук категорії Вікіпедії"
-
-msgid "Load category"
-msgstr "Завантаження категорії"
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34897,6 +35055,24 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Копіювати {0} шаблон(и)"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] "Перезаписати ''{0}'' теґ {1} з {2} новим значенням ''{3}''?"
+msgstr[1] "Перезаписати ''{0}'' теґи {1} з {2} новим значенням ''{3}''?"
+msgstr[2] "Перезаписати ''{0}'' теґів {1} з {2} новим значенням ''{3}''?"
+
+msgid "Search Wikidata items"
+msgstr "Пошук у Вікіданих"
+
+msgid "Target key: "
+msgstr "Цільовий ключ: "
+
+msgid "Search Wikipedia category"
+msgstr "Пошук категорії Вікіпедії"
+
+msgid "Load category"
+msgstr "Завантаження категорії"
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Отримати статті Вікіпедії з координатами"
 
diff --git a/i18n/po/ur.po b/i18n/po/ur.po
index 8f6ff22..99bd2f4 100644
--- a/i18n/po/ur.po
+++ b/i18n/po/ur.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2010-05-13 04:15+0000\n"
 "Last-Translator: Shoaib Mirza <Unknown>\n"
 "Language-Team: Urdu <ur at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:11+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:40+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: ur\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -482,6 +467,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1961,6 +1952,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1973,9 +1973,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2041,12 +2038,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2137,13 +2128,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3504,9 +3495,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3516,6 +3504,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4726,7 +4717,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5876,6 +5867,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5903,9 +5897,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7126,10 +7117,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9133,10 +9124,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9616,6 +9607,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9628,9 +9622,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11420,6 +11411,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12507,9 +12523,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13482,7 +13495,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13948,6 +13961,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14144,6 +14160,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14175,7 +14194,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14909,13 +14928,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15311,10 +15336,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15700,6 +15725,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15923,6 +15953,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16028,6 +16061,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18225,9 +18262,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18262,6 +18317,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19467,6 +19528,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22118,7 +22182,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22370,7 +22437,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22385,6 +22455,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22400,6 +22473,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22418,18 +22497,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23143,6 +23216,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23236,6 +23318,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25439,6 +25524,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26319,9 +26419,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27405,7 +27502,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28266,6 +28363,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28740,18 +28855,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29403,6 +29509,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29418,6 +29527,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29446,10 +29561,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29484,6 +29595,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29493,13 +29610,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30290,6 +30406,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32244,6 +32405,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32255,27 +32431,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/vi.po b/i18n/po/vi.po
index d87a015..c6afe60 100644
--- a/i18n/po/vi.po
+++ b/i18n/po/vi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2015-05-14 20:17+0000\n"
 "Last-Translator: Mạnh <laituanmanh32 at gmail.com>\n"
 "Language-Team: Vietnamese <vi at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:11+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:42+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: vi\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "Background Điều khoản sử dụng"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "liên kết mạc không được hỗ trợ trên nền tảng hiện tại ('' {0} '')"
 
-msgid "ERROR: {0}"
-msgstr "LỖI: {0}"
-
-msgid "WARNING: {0}"
-msgstr "CẢNH BÁO: {0}"
-
-msgid "INFO: {0}"
-msgstr "INFO: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "DEBUG: {0}"
-
-msgid "Cause: "
-msgstr "Nguyên nhân: "
-
 msgid "Executing platform startup hook"
 msgstr "nền tảng Thi startup móc"
 
@@ -506,6 +491,12 @@ msgstr "Tải dữ liệu"
 msgid "Download notes in current view"
 msgstr "Tải về ghi chú trong quan điểm hiện tại"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "Tải về đối tượng ..."
 
@@ -2092,6 +2083,15 @@ msgstr ""
 "Nhấn vào đây để xóa Shift:. Xóa phân khúc cách Alt:. Không xóa các nút không "
 "sử dụngKhi xóa một cách Ctrl:. Xóa đề cập đối tượng."
 
+msgid "draw angle snap"
+msgstr "vẽ góc chụp"
+
+msgid "draw angle snap highlight"
+msgstr "vẽ Góc đính nổi bật"
+
+msgid "helper line"
+msgstr "helper dòng"
+
 msgid "Draw"
 msgstr "Vẽ"
 
@@ -2104,9 +2104,6 @@ msgstr "Mode: Vẽ góc chụp"
 msgid "Backspace in Add mode"
 msgstr "Backspace trong Add mode"
 
-msgid "helper line"
-msgstr "helper dòng"
-
 msgid "Cannot add a node outside of the world."
 msgstr "Không thể thêm một nút bên ngoài của thế giới."
 
@@ -2171,12 +2168,6 @@ msgstr "0,30,45,60,90, ..."
 msgid "FIX"
 msgstr "FIX"
 
-msgid "draw angle snap"
-msgstr "vẽ góc chụp"
-
-msgid "draw angle snap highlight"
-msgstr "vẽ Góc đính nổi bật"
-
 msgid "Angle snapping"
 msgstr "góc chụp"
 
@@ -2276,15 +2267,15 @@ msgstr[0] "Thêm một nút mới vào cách"
 msgid "Cannot delete node that has tags"
 msgstr "Không thể xóa nút đó có thẻ"
 
+msgid "make parallel helper line"
+msgstr "làm cho dòng helper song song"
+
 msgid "Parallel"
 msgstr "song song"
 
 msgid "Make parallel copies of ways"
 msgstr "Tạo bản sao song song cách"
 
-msgid "make parallel helper line"
-msgstr "làm cho dòng helper song song"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3734,9 +3725,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "Parameter must begin with a ''+'' character (found ''{0}'')"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "tham số chưa biết:. '' {0} ''"
 
@@ -3746,6 +3734,9 @@ msgstr "Giá trị dự kiến ​​cho tham số '' {0} ''."
 msgid "No value expected for parameter ''{0}''."
 msgstr "Không có giá trị dự kiến ​​cho tham số '' {0} ''."
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "Parameter must begin with a ''+'' character (found ''{0}'')"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "định dạng tham số không mong đợi ('' {0} '')"
 
@@ -5006,8 +4997,8 @@ msgid "Make sure you load some data if you use --selection."
 msgstr ""
 "Hãy chắc chắn rằng bạn tải một số dữ liệu nếu bạn sử dụng --selection."
 
-msgid "Printing debugging messages to console"
-msgstr "thông điệp In ấn gỡ lỗi để an ủi"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "Plugin tải bỏ qua"
@@ -6226,6 +6217,9 @@ msgstr "Nhấn vào đây để đóng hộp thoại này và tiếp tục chỉ
 msgid "Conflicts detected"
 msgstr "Mâu thuẫn phát hiện"
 
+msgid "Resolve conflicts"
+msgstr "Giải quyết xung đột"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "Hủy giải quyết xung đột và đóng hộp thoại"
 
@@ -6258,9 +6252,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "xung đột không được giải quyết hoàn toàn"
 
-msgid "Resolve conflicts"
-msgstr "Giải quyết xung đột"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "Giải quyết xung đột cho '' {0} ''"
 
@@ -7551,12 +7542,12 @@ msgstr "Hiện / ẩn lớp"
 msgid "Discardable key: selection Foreground"
 msgstr "key discardable: lựa chọn Foreground"
 
-msgid "Discardable key: selection Background"
-msgstr "discardable chính: lựa chọn Background"
-
 msgid "Discardable key: foreground"
 msgstr "key discardable: foreground"
 
+msgid "Discardable key: selection Background"
+msgstr "discardable chính: lựa chọn Background"
+
 msgid "Discardable key: background"
 msgstr "key discardable: background"
 
@@ -9729,12 +9720,12 @@ msgstr "Tổng số ghi chú:"
 msgid "Changes need uploading?"
 msgstr "Những thay đổi cần tải lên?"
 
-msgid "Data Layer {0}"
-msgstr "Dữ liệu lớp {0}"
-
 msgid "outside downloaded area"
 msgstr "khu vực bên ngoài tải về"
 
+msgid "Data Layer {0}"
+msgstr "Dữ liệu lớp {0}"
+
 msgid "Merging layers"
 msgstr "Kết hợp các lớp"
 
@@ -10241,6 +10232,9 @@ msgstr "Không có các lớp hình ảnh."
 msgid "No imagery layers"
 msgstr "Không có các lớp hình ảnh"
 
+msgid "gps point"
+msgstr "gps điểm"
+
 msgid "HDOP"
 msgstr ""
 
@@ -10253,9 +10247,6 @@ msgstr "Direction"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps điểm"
-
 msgid "Import Audio"
 msgstr "Import Audio"
 
@@ -12229,6 +12220,31 @@ msgstr "Cấu hình các trang web ..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Cấu hình danh sách các trang web nơi plugins được tải về từ"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "Thêm JOSM Plugin mô tả URL."
 
@@ -13417,9 +13433,6 @@ msgstr "<html> Không thể đọc các tập tin <br> Lỗi là:. <br> {0} </ h
 msgid "GeoJSON Files"
 msgstr "GeoJSON còn Files"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr "Layer '' {0} '' không được hỗ trợ"
 
@@ -14481,8 +14494,8 @@ msgid "The plugin is not going to be loaded."
 msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "Các plugin sẽ không được nạp."
 
-msgid "Determine plugins to load..."
-msgstr "Xác định các plugin để tải ..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "Loại bỏ các plugin bị phản đối ..."
@@ -15043,6 +15056,9 @@ msgid ""
 msgstr ""
 "Không thể truy cập vào thư mục '' {0} '' vì lý do an ninh ngoại lệ là:. {1}"
 
+msgid "Cause: "
+msgstr "Nguyên nhân: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -15266,6 +15282,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "Báo cáo Bug"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "Ngăn chặn các hộp thoại báo lỗi hơn nữa cho phiên này."
 
@@ -15297,7 +15316,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -16045,13 +16064,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -16447,11 +16472,11 @@ msgstr "Stadt Zürich Übersichtsplan (Strassen, Gebäude, Hausnummer)"
 msgid "Stadt Zürich Luftbild 2011"
 msgstr "Stadt Zürich Luftbild 2011"
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
+msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
-msgstr "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
+msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
 msgstr "Canton de Geneve 5cm (SITG 2011)"
@@ -16843,6 +16868,11 @@ msgstr ""
 "giác. Được thiết kế để dễ dàng lập bản đồ xây dựng từ lớp nền. Tối ưu hóaCho "
 "basemap.at."
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "Công cụ cho các tòa nhà vẽ."
 
@@ -17123,6 +17153,9 @@ msgstr ""
 "Không cho phép sử dụng JOSM mãi mãi (WARNING: plugin này ngăn cản từ JOSM "
 "tảiVà rất khó để thoát khỏi)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "Chuyển đổi dữ liệu từ dữ liệu mở cổng thông tin để lớp OSM"
 
@@ -17251,6 +17284,10 @@ msgid "Edit features for Sea Charts"
 msgstr "Chỉnh sửa các tính năng cho Sea Charts"
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -19493,9 +19530,27 @@ msgstr "cống"
 msgid "Basin"
 msgstr "lưu vực"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "Reservoir"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "Bao Reservoir"
 
@@ -19530,6 +19585,12 @@ msgstr "hồ chứa"
 msgid "river"
 msgstr "sông"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "Salt Water"
 
@@ -20741,6 +20802,9 @@ msgstr "Amusement / Theme Park"
 msgid "Water Park"
 msgstr "Công viên nước"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -23394,8 +23458,11 @@ msgstr "Seafood"
 msgid "Deli (Fine Food)"
 msgstr "Deli (Fine Food)"
 
-msgid "Candy Store"
-msgstr "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "Tea"
@@ -23646,8 +23713,11 @@ msgstr "Vending Machine"
 msgid "Vending products"
 msgstr "bán hàng tự động sản phẩm"
 
-msgid "animal_food"
-msgstr "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "bicycle_tube"
@@ -23661,6 +23731,9 @@ msgstr "bao cao su"
 msgid "drinks"
 msgstr "đồ uống"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "excrement_bags"
 
@@ -23676,6 +23749,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "parking_tickets"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "hình ảnh"
 
@@ -23694,18 +23773,12 @@ msgstr "tem"
 msgid "sweets"
 msgstr "kẹo"
 
-msgid "tampons"
-msgstr "băng vệ sinh"
-
 msgid "telephone_vouchers"
 msgstr "telephone_vouchers"
 
 msgid "toys"
 msgstr "đồ chơi"
 
-msgid "vouchers"
-msgstr "chứng từ"
-
 msgid "Payment Methods"
 msgstr "Phương thức thanh toán"
 
@@ -24437,6 +24510,15 @@ msgstr "Greenhouse Horticulture"
 msgid "Plant Nursery"
 msgstr "Plant Nursery"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "lô đất"
 
@@ -24530,6 +24612,9 @@ msgstr "Tên gọi chính thức"
 msgid "Common name abbreviation"
 msgstr "Common tên viết tắt"
 
+msgid "Address"
+msgstr "Địa chỉ"
+
 msgid "House number"
 msgstr "Nhà số"
 
@@ -26889,6 +26974,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "Đường:"
 
@@ -27832,9 +27932,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "Địa chỉ"
-
 msgid "Split area"
 msgstr "Split khu vực"
 
@@ -28984,8 +29081,8 @@ msgstr "tạo digraph kênh"
 msgid "Check "
 msgstr "Kiểm tra "
 
-msgid "check the subust for junction properties"
-msgstr "kiểm tra subust cho tính ngã ba"
+msgid "check the subset for junction properties"
+msgstr ""
 
 msgid "Search "
 msgstr "Tìm kiếm "
@@ -29870,6 +29967,24 @@ msgstr ""
 "(Để thảm hại tiếp tục lập bản đồ, chỉnh sửa ra no_more_mapping \n"
 "{0})"
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "id changeset không hợp lệ: {0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "dấu thời gian không hợp lệ: {0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "Đọc dữ liệu OSM ..."
+
 msgid "Split by municipality"
 msgstr "Chia theo đô thị"
 
@@ -30385,18 +30500,9 @@ msgstr "OSM máy chủ tập tin PBF nén"
 msgid "Download PBF"
 msgstr "Tải PBF"
 
-msgid "Invalid changeset id: {0}"
-msgstr "id changeset không hợp lệ: {0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "dấu thời gian không hợp lệ: {0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr "DenseNodes Invalid key bảng / giá trị"
 
-msgid "Reading OSM data..."
-msgstr "Đọc dữ liệu OSM ..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "Biến đổi lỗi: Min X phải nhỏ hơn max"
 
@@ -31060,6 +31166,9 @@ msgstr "In ấn đã thất bại."
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -31075,6 +31184,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -31103,10 +31218,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -31141,6 +31252,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -31150,13 +31267,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -31972,6 +32088,51 @@ msgstr "Chỉ chọn một đối tượng"
 msgid "Select a map object"
 msgstr "Chọn một đối tượng bản đồ"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "Đơn giản hóa Area"
 
@@ -34118,17 +34279,6 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
-msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
-msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Search Wikidata items"
-msgstr ""
-
-msgid "Target key: "
-msgstr ""
-
 msgid "Add names from Wikipedia"
 msgstr "Thêm tên từ Wikipedia"
 
@@ -34136,12 +34286,6 @@ msgid ""
 "Fetches interwiki links from Wikipedia in order to add several name tags"
 msgstr "Nạp liên kết wiki từ Wikipedia để thêm nhiều thẻ tên"
 
-msgid "Search Wikipedia category"
-msgstr ""
-
-msgid "Load category"
-msgstr ""
-
 msgid ""
 "Copies the {0} template to the system clipboard instantiated with the "
 "coordinates of the first selected node"
@@ -34152,6 +34296,23 @@ msgstr ""
 msgid "Copy {0} template"
 msgstr "Copy {0} mẫu"
 
+msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
+msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search Wikidata items"
+msgstr ""
+
+msgid "Target key: "
+msgstr ""
+
+msgid "Search Wikipedia category"
+msgstr ""
+
+msgid "Load category"
+msgstr ""
+
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "Lấy bài viết Wikipedia với tọa độ"
 
diff --git a/i18n/po/wae.po b/i18n/po/wae.po
index c5b7a41..709ddfc 100644
--- a/i18n/po/wae.po
+++ b/i18n/po/wae.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-03-09 22:17+0000\n"
 "Last-Translator: Simon Legner <Unknown>\n"
 "Language-Team: Walser <wae at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:17+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:53+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -54,21 +54,6 @@ msgstr ""
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr ""
 
-msgid "ERROR: {0}"
-msgstr ""
-
-msgid "WARNING: {0}"
-msgstr ""
-
-msgid "INFO: {0}"
-msgstr ""
-
-msgid "DEBUG: {0}"
-msgstr ""
-
-msgid "Cause: "
-msgstr ""
-
 msgid "Executing platform startup hook"
 msgstr ""
 
@@ -481,6 +466,12 @@ msgstr ""
 msgid "Download notes in current view"
 msgstr ""
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr ""
 
@@ -1960,6 +1951,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr ""
 
+msgid "draw angle snap"
+msgstr ""
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr ""
 
@@ -1972,9 +1972,6 @@ msgstr ""
 msgid "Backspace in Add mode"
 msgstr ""
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr ""
 
@@ -2040,12 +2037,6 @@ msgstr ""
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr ""
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr ""
 
@@ -2136,13 +2127,13 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr ""
 
-msgid "Parallel"
+msgid "make parallel helper line"
 msgstr ""
 
-msgid "Make parallel copies of ways"
+msgid "Parallel"
 msgstr ""
 
-msgid "make parallel helper line"
+msgid "Make parallel copies of ways"
 msgstr ""
 
 msgid ""
@@ -3503,9 +3494,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3515,6 +3503,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr ""
 
@@ -4725,7 +4716,7 @@ msgstr ""
 msgid "Make sure you load some data if you use --selection."
 msgstr ""
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5875,6 +5866,9 @@ msgstr ""
 msgid "Conflicts detected"
 msgstr ""
 
+msgid "Resolve conflicts"
+msgstr ""
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr ""
 
@@ -5902,9 +5896,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr ""
 
-msgid "Resolve conflicts"
-msgstr ""
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr ""
 
@@ -7125,10 +7116,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -9132,10 +9123,10 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
+msgid "outside downloaded area"
 msgstr ""
 
-msgid "outside downloaded area"
+msgid "Data Layer {0}"
 msgstr ""
 
 msgid "Merging layers"
@@ -9615,6 +9606,9 @@ msgstr ""
 msgid "No imagery layers"
 msgstr ""
 
+msgid "gps point"
+msgstr ""
+
 msgid "HDOP"
 msgstr ""
 
@@ -9627,9 +9621,6 @@ msgstr ""
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr ""
-
 msgid "Import Audio"
 msgstr ""
 
@@ -11419,6 +11410,31 @@ msgstr ""
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr ""
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr ""
 
@@ -12506,9 +12522,6 @@ msgstr ""
 msgid "GeoJSON Files"
 msgstr ""
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13481,7 +13494,7 @@ msgid_plural "The plugins are not going to be loaded."
 msgstr[0] ""
 msgstr[1] ""
 
-msgid "Determine plugins to load..."
+msgid "Determining plugins to load..."
 msgstr ""
 
 msgid "Removing deprecated plugins..."
@@ -13947,6 +13960,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr ""
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14143,6 +14159,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr ""
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14174,7 +14193,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14908,13 +14927,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15310,10 +15335,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15699,6 +15724,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr ""
 
@@ -15922,6 +15952,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16027,6 +16060,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr ""
@@ -18224,9 +18261,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr ""
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr ""
 
@@ -18261,6 +18316,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19466,6 +19527,9 @@ msgstr ""
 msgid "Water Park"
 msgstr ""
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22117,7 +22181,10 @@ msgstr ""
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22369,7 +22436,10 @@ msgstr ""
 msgid "Vending products"
 msgstr ""
 
-msgid "animal_food"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
 msgstr ""
 
 msgid "bicycle_tube"
@@ -22384,6 +22454,9 @@ msgstr ""
 msgid "drinks"
 msgstr ""
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22399,6 +22472,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr ""
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr ""
 
@@ -22417,18 +22496,12 @@ msgstr ""
 msgid "sweets"
 msgstr ""
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr ""
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -23142,6 +23215,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23235,6 +23317,9 @@ msgstr ""
 msgid "Common name abbreviation"
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr ""
 
@@ -25438,6 +25523,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr ""
 
@@ -26318,9 +26418,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr ""
 
@@ -27404,7 +27501,7 @@ msgstr ""
 msgid "Check "
 msgstr ""
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28265,6 +28362,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28739,18 +28854,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr ""
 
@@ -29402,6 +29508,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29417,6 +29526,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29445,10 +29560,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29483,6 +29594,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29492,13 +29609,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30289,6 +30405,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr ""
 
@@ -32243,6 +32404,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr ""
 
+msgid "Add names from Wikipedia"
+msgstr ""
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr ""
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr ""
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32254,27 +32430,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr ""
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr ""
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr ""
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr ""
 
diff --git a/i18n/po/zh_CN.po b/i18n/po/zh_CN.po
index a1546f9..309a8e2 100644
--- a/i18n/po/zh_CN.po
+++ b/i18n/po/zh_CN.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
 "PO-Revision-Date: 2016-06-15 19:24+0000\n"
 "Last-Translator: mmyfl <Unknown>\n"
 "Language-Team: 汉语 <>\n"
@@ -18,8 +18,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:15+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:48+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: zh_CN\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -58,21 +58,6 @@ msgstr "背景使用条款"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "当前平台不支持打开链接(“{0}”)"
 
-msgid "ERROR: {0}"
-msgstr "错误: {0}"
-
-msgid "WARNING: {0}"
-msgstr "警告: {0}"
-
-msgid "INFO: {0}"
-msgstr "信息: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "调试: {0}"
-
-msgid "Cause: "
-msgstr "原因: "
-
 msgid "Executing platform startup hook"
 msgstr "执行平台启动挂钩中"
 
@@ -485,6 +470,12 @@ msgstr "下载数据"
 msgid "Download notes in current view"
 msgstr "在当前视图中下载笔记"
 
+msgid "Download in current view"
+msgstr ""
+
+msgid "Download map data from the OSM server in current view"
+msgstr ""
+
 msgid "Download object..."
 msgstr "下载对象..."
 
@@ -1960,6 +1951,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr "点击可进行删除。Shift:删除路径区段。Alt:删除路径时不要删除未使用的节点。Ctrl:删除参照的对象。"
 
+msgid "draw angle snap"
+msgstr "绘制角度对齐"
+
+msgid "draw angle snap highlight"
+msgstr "绘制角度对齐高亮"
+
+msgid "helper line"
+msgstr "辅助线"
+
 msgid "Draw"
 msgstr "绘制"
 
@@ -1972,9 +1972,6 @@ msgstr "模式:绘制角度对齐"
 msgid "Backspace in Add mode"
 msgstr "添加模式中的退格"
 
-msgid "helper line"
-msgstr "辅助线"
-
 msgid "Cannot add a node outside of the world."
 msgstr "不能在世界之外添加节点。"
 
@@ -2039,12 +2036,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr "修正"
 
-msgid "draw angle snap"
-msgstr "绘制角度对齐"
-
-msgid "draw angle snap highlight"
-msgstr "绘制角度对齐高亮"
-
 msgid "Angle snapping"
 msgstr "角度对齐"
 
@@ -2135,15 +2126,15 @@ msgstr[0] "添加一个新节点到 {0} 条路径"
 msgid "Cannot delete node that has tags"
 msgstr "无法删除有标签的节点"
 
+msgid "make parallel helper line"
+msgstr "制作平行辅助线"
+
 msgid "Parallel"
 msgstr "平行"
 
 msgid "Make parallel copies of ways"
 msgstr "制作平行的路径副本"
 
-msgid "make parallel helper line"
-msgstr "制作平行辅助线"
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3495,9 +3486,6 @@ msgstr "“+zone=...”参数的预期整数值介于 1-60 之间。"
 msgid "No unit found for: {0}"
 msgstr "未找到单位:{0}"
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr "参数必须开始于一个“+”字符(发现“{0}”)"
-
 msgid "Unknown parameter: ''{0}''."
 msgstr "未知参数:“{0}”。"
 
@@ -3507,6 +3495,9 @@ msgstr "参数“{0}”预期值。"
 msgid "No value expected for parameter ''{0}''."
 msgstr "参数“{0}”没有预期值。"
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr "参数必须开始于一个“+”字符(发现“{0}”)"
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "意外的参数格式(“{0}”)"
 
@@ -4721,8 +4712,8 @@ msgstr "参数 --download, --downloadgps 和 --selection 会以这个顺序处
 msgid "Make sure you load some data if you use --selection."
 msgstr "如果您使用 --selection,请确定已加载了一些数据。"
 
-msgid "Printing debugging messages to console"
-msgstr "打印调试信息至控制台"
+msgid "Log level is at {0} ({1}, {2})"
+msgstr ""
 
 msgid "Plugin loading skipped"
 msgstr "已跳过插件加载"
@@ -5869,6 +5860,9 @@ msgstr "点击以关闭这个对话框,并继续编辑"
 msgid "Conflicts detected"
 msgstr "选定的冲突"
 
+msgid "Resolve conflicts"
+msgstr "解决冲突"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "取消冲突决议,并关闭此对话框"
 
@@ -5899,9 +5893,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "冲突尚未完全调解"
 
-msgid "Resolve conflicts"
-msgstr "解决冲突"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "调解“{0}”的冲突"
 
@@ -7136,12 +7127,12 @@ msgstr "显示/隐藏图层"
 msgid "Discardable key: selection Foreground"
 msgstr "可丢弃键:选择前景"
 
-msgid "Discardable key: selection Background"
-msgstr "可丢弃键:选择背景"
-
 msgid "Discardable key: foreground"
 msgstr "可丢弃键:前景"
 
+msgid "Discardable key: selection Background"
+msgstr "可丢弃键:选择背景"
+
 msgid "Discardable key: background"
 msgstr "可丢弃键:背景"
 
@@ -9154,12 +9145,12 @@ msgstr "总笔记:"
 msgid "Changes need uploading?"
 msgstr "需要上传修改吗?"
 
-msgid "Data Layer {0}"
-msgstr "数据图层 {0}"
-
 msgid "outside downloaded area"
 msgstr "超出下载的区域"
 
+msgid "Data Layer {0}"
+msgstr "数据图层 {0}"
+
 msgid "Merging layers"
 msgstr "合并图层"
 
@@ -9650,6 +9641,9 @@ msgstr "没有图像图层。"
 msgid "No imagery layers"
 msgstr "没有图像图层"
 
+msgid "gps point"
+msgstr "gps 点"
+
 msgid "HDOP"
 msgstr "HDOP"
 
@@ -9662,9 +9656,6 @@ msgstr "方向"
 msgid "Velocity, {0}"
 msgstr "速度,{0}"
 
-msgid "gps point"
-msgstr "gps 点"
-
 msgid "Import Audio"
 msgstr "导入音频"
 
@@ -11500,6 +11491,31 @@ msgstr "设定网站..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "设定用来下载插件的网站列表"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr ""
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "添加 JOSM 插件描述 URL。"
 
@@ -12592,9 +12608,6 @@ msgstr "<html>无法读取文件。<br>错误为:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON 文件"
 
-msgid "Projected GeoJSON Files"
-msgstr "已投运GeoJSON文件"
-
 msgid "Layer ''{0}'' not supported"
 msgstr "不支持图层“{0}”"
 
@@ -13566,8 +13579,8 @@ msgid "The plugin is not going to be loaded."
 msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "这个插件将不会被加载。"
 
-msgid "Determine plugins to load..."
-msgstr "决定要加载的插件..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "正在删除废弃的插件..."
@@ -14047,6 +14060,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr "由于安全原因,无法访问目录“{0}”。异常为:{1}"
 
+msgid "Cause: "
+msgstr "原因: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14250,6 +14266,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "报告程序缺陷"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr "阻止此会话再显示该错误对话框。"
 
@@ -14281,7 +14300,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -15015,13 +15034,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15417,10 +15442,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15806,6 +15831,11 @@ msgid ""
 "for basemap.at."
 msgstr "允许选择图层中的一块区域并自动生成多边形路径。用于方便地从底图中勾绘建筑物。"
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "绘制建筑物的工具。"
 
@@ -16031,6 +16061,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr "永久禁止使用 JOSM(警告:此插件会阻止 JOSM 加载,难以卸载)"
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr "将开放数据网站的数据转换为 OSM 图层"
 
@@ -16136,6 +16169,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr "由移除属于很钝的钝角的节点来简化区域。这可以使用最大移除区域大小来限制。同时也会平均化附近的节点。"
@@ -18333,9 +18370,27 @@ msgstr "暗渠"
 msgid "Basin"
 msgstr "水池"
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "贮水处"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "有覆盖的贮水处"
 
@@ -18370,6 +18425,12 @@ msgstr "水库"
 msgid "river"
 msgstr "河"
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr "咸水"
 
@@ -19575,6 +19636,9 @@ msgstr "主题公园"
 msgid "Water Park"
 msgstr "水上乐园"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr "游泳池"
 
@@ -22226,8 +22290,11 @@ msgstr "海鲜"
 msgid "Deli (Fine Food)"
 msgstr "熟食店(美食)"
 
-msgid "Candy Store"
-msgstr "糖果店"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
+msgstr ""
 
 msgid "Tea"
 msgstr "茶"
@@ -22478,8 +22545,11 @@ msgstr "自动售货机"
 msgid "Vending products"
 msgstr "贩卖产品"
 
-msgid "animal_food"
-msgstr "饲料"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr "自行车内胎"
@@ -22493,6 +22563,9 @@ msgstr "保险套"
 msgid "drinks"
 msgstr "饮料"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr "粪袋"
 
@@ -22508,6 +22581,12 @@ msgstr "报纸"
 msgid "parking_tickets"
 msgstr "停车票"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "相片"
 
@@ -22526,18 +22605,12 @@ msgstr "邮票"
 msgid "sweets"
 msgstr "甜点"
 
-msgid "tampons"
-msgstr "棉球"
-
 msgid "telephone_vouchers"
 msgstr "电话券"
 
 msgid "toys"
 msgstr "玩具"
 
-msgid "vouchers"
-msgstr "券"
-
 msgid "Payment Methods"
 msgstr "支付方式"
 
@@ -23251,6 +23324,15 @@ msgstr "温室园艺"
 msgid "Plant Nursery"
 msgstr "苗圃"
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr "市民农场"
 
@@ -23344,6 +23426,9 @@ msgstr "官方名"
 msgid "Common name abbreviation"
 msgstr "通用名称缩写"
 
+msgid "Address"
+msgstr "地址"
+
 msgid "House number"
 msgstr "门牌号码"
 
@@ -25628,6 +25713,21 @@ msgstr "调试"
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "街道名称:"
 
@@ -26537,9 +26637,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr "地址"
-
 msgid "Split area"
 msgstr "分离区域"
 
@@ -27639,7 +27736,7 @@ msgstr ""
 msgid "Check "
 msgstr "检查 "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28498,6 +28595,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr "无效的修改集合 ID:{0}"
+
+msgid "Invalid timestamp: {0}"
+msgstr "无效的时间戳:{0}"
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr "正在读取 OSM 数据..."
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28967,18 +29082,9 @@ msgstr "压缩的 OSM 服务器文件 pbf"
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr "无效的修改集合 ID:{0}"
-
-msgid "Invalid timestamp: {0}"
-msgstr "无效的时间戳:{0}"
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr "正在读取 OSM 数据..."
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "变形错误:最小 X 必须小于最大值"
 
@@ -29630,6 +29736,9 @@ msgstr "打印已失败。"
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29645,6 +29754,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29673,10 +29788,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29711,6 +29822,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29720,13 +29837,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30521,6 +30637,51 @@ msgstr "只选择一个对象"
 msgid "Select a map object"
 msgstr "选择一个地图对象"
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "简化区域"
 
@@ -32519,6 +32680,21 @@ msgstr[1] ""
 msgid "Add Wikidata for language ''{0}''"
 msgstr "添加语言“{0}”的 Wikidata"
 
+msgid "Add names from Wikipedia"
+msgstr "添加维基百科的名称"
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr "从维基百科获取跨维基链接,以添加多个名称标签"
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr "复制 {0} 的模板到系统剪贴板,并以第一个选择节点的坐标填充"
+
+msgid "Copy {0} template"
+msgstr "复制 {0} 个模板"
+
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
 msgstr[0] ""
@@ -32530,27 +32706,12 @@ msgstr ""
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr "添加维基百科的名称"
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr "从维基百科获取跨维基链接,以添加多个名称标签"
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr "复制 {0} 的模板到系统剪贴板,并以第一个选择节点的坐标填充"
-
-msgid "Copy {0} template"
-msgstr "复制 {0} 个模板"
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "获取带坐标的维基百科文章"
 
diff --git a/i18n/po/zh_TW.po b/i18n/po/zh_TW.po
index 8c18434..173ef05 100644
--- a/i18n/po/zh_TW.po
+++ b/i18n/po/zh_TW.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 03:40+0200\n"
-"PO-Revision-Date: 2016-06-06 03:51+0000\n"
-"Last-Translator: Rex Tsai <rex.tsai at canonical.com>\n"
+"POT-Creation-Date: 2016-09-06 00:30+0200\n"
+"PO-Revision-Date: 2016-08-23 18:17+0000\n"
+"Last-Translator: Supaplex <Unknown>\n"
 "Language-Team: Traditional Chinese\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2016-08-12 05:14+0000\n"
-"X-Generator: Launchpad (build 18169)\n"
+"X-Launchpad-Export-Date: 2016-09-06 05:47+0000\n"
+"X-Generator: Launchpad (build 18179)\n"
 "Language: zh_TW\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -55,21 +55,6 @@ msgstr "背景使用條款"
 msgid "Opening link not supported on current platform (''{0}'')"
 msgstr "目前的平臺不支援開啟連結(「{0}」)"
 
-msgid "ERROR: {0}"
-msgstr "錯誤: {0}"
-
-msgid "WARNING: {0}"
-msgstr "警告: {0}"
-
-msgid "INFO: {0}"
-msgstr "資訊: {0}"
-
-msgid "DEBUG: {0}"
-msgstr "偵錯: {0}"
-
-msgid "Cause: "
-msgstr "原因: "
-
 msgid "Executing platform startup hook"
 msgstr "執行平臺啟動掛鉤"
 
@@ -482,6 +467,12 @@ msgstr "下載資料"
 msgid "Download notes in current view"
 msgstr "在目前檢視下載筆記"
 
+msgid "Download in current view"
+msgstr "下載當前檢視"
+
+msgid "Download map data from the OSM server in current view"
+msgstr "從OSM伺服器下載當前檢視的地圖資料"
+
 msgid "Download object..."
 msgstr "下載物件..."
 
@@ -498,7 +489,7 @@ msgid "Duplicate"
 msgstr "重製"
 
 msgid "Duplicate selection."
-msgstr ""
+msgstr "重覆選取"
 
 msgid "Exit"
 msgstr "離開"
@@ -805,6 +796,9 @@ msgid ""
 "one by one, by using ''<i>Merge selection</i>''.<br /><br />Are you sure you "
 "want to continue?"
 msgstr ""
+"你即將合併圖層 ''{0}'' 和 ''{1}'' 的資料,<br /><br />這些圖層具有不同的上傳準則,不應該合併。<br "
+"/>合併這些圖層將導致對 ''{1}'' 採用較嚴格(不鼓勵上傳)的準則。<br /><br /><b>這不是建議的合併這些資料的方法</b>。<br "
+"/>你應該使用 ''<i>Merge selection</i>'' 一個一個對比和合併個別物件。<br /><br />你確定要繼續嗎?"
 
 msgid "Ignore this hint and merge anyway"
 msgstr "無視建議直接合併"
@@ -1065,13 +1059,13 @@ msgid "Paste"
 msgstr "貼上"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "貼上剪貼簿內容"
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "貼上來源位置"
 
 msgid "Paste contents of clipboard at the position they were copied from."
-msgstr ""
+msgstr "貼上剪貼簿內容的來源位置"
 
 msgid "Paste Tags"
 msgstr "貼上標籤"
@@ -1954,6 +1948,15 @@ msgid ""
 "when deleting a way. Ctrl: delete referring objects."
 msgstr "點選可進行刪除。Shift:刪除路徑區段。Alt:刪除路徑時不要刪除未使用的節點。Ctrl:刪除參考的物件。"
 
+msgid "draw angle snap"
+msgstr "繪製角度貼齊"
+
+msgid "draw angle snap highlight"
+msgstr ""
+
+msgid "helper line"
+msgstr ""
+
 msgid "Draw"
 msgstr "繪製"
 
@@ -1966,9 +1969,6 @@ msgstr "模式:繪製角度貼齊"
 msgid "Backspace in Add mode"
 msgstr "加入模式中的 Backspace"
 
-msgid "helper line"
-msgstr ""
-
 msgid "Cannot add a node outside of the world."
 msgstr "不能在這個世界以外的地方加入節點。"
 
@@ -2033,12 +2033,6 @@ msgstr "0,30,45,60,90,..."
 msgid "FIX"
 msgstr ""
 
-msgid "draw angle snap"
-msgstr "繪製角度貼齊"
-
-msgid "draw angle snap highlight"
-msgstr ""
-
 msgid "Angle snapping"
 msgstr "角度貼齊"
 
@@ -2129,15 +2123,15 @@ msgstr[1] ""
 msgid "Cannot delete node that has tags"
 msgstr "不能刪除有標籤的節點"
 
+msgid "make parallel helper line"
+msgstr ""
+
 msgid "Parallel"
 msgstr "平行線"
 
 msgid "Make parallel copies of ways"
 msgstr "製作路徑的平行複本"
 
-msgid "make parallel helper line"
-msgstr ""
-
 msgid ""
 "Select ways as in Select mode. Drag selected ways or a single way to create "
 "a parallel copy (Alt toggles tag preservation)"
@@ -3492,9 +3486,6 @@ msgstr ""
 msgid "No unit found for: {0}"
 msgstr ""
 
-msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
-msgstr ""
-
 msgid "Unknown parameter: ''{0}''."
 msgstr ""
 
@@ -3504,6 +3495,9 @@ msgstr ""
 msgid "No value expected for parameter ''{0}''."
 msgstr ""
 
+msgid "Parameter must begin with a ''+'' character (found ''{0}'')"
+msgstr ""
+
 msgid "Unexpected parameter format (''{0}'')"
 msgstr "未預期的參數格式(「{0}」)"
 
@@ -4717,7 +4711,7 @@ msgstr "參數 --download、 --downloadgps  和 --selection 會以這個順序
 msgid "Make sure you load some data if you use --selection."
 msgstr "如果您使用 --selection 請確定已載入某些資料。"
 
-msgid "Printing debugging messages to console"
+msgid "Log level is at {0} ({1}, {2})"
 msgstr ""
 
 msgid "Plugin loading skipped"
@@ -5855,6 +5849,9 @@ msgstr "按這裡關閉這個對話盒並繼續編輯"
 msgid "Conflicts detected"
 msgstr "選取的衝突"
 
+msgid "Resolve conflicts"
+msgstr "解決衝突"
+
 msgid "Cancel conflict resolution and close the dialog"
 msgstr "取消衝突決議並關閉此對話盒"
 
@@ -5885,9 +5882,6 @@ msgstr ""
 msgid "Conflict not resolved completely"
 msgstr "衝突尚未完全調解"
 
-msgid "Resolve conflicts"
-msgstr "解決衝突"
-
 msgid "Resolve conflicts for ''{0}''"
 msgstr "調解「{0}」的衝突"
 
@@ -7110,10 +7104,10 @@ msgstr ""
 msgid "Discardable key: selection Foreground"
 msgstr ""
 
-msgid "Discardable key: selection Background"
+msgid "Discardable key: foreground"
 msgstr ""
 
-msgid "Discardable key: foreground"
+msgid "Discardable key: selection Background"
 msgstr ""
 
 msgid "Discardable key: background"
@@ -7199,10 +7193,10 @@ msgid "Launch browser with Taginfo statistics for selected object"
 msgstr ""
 
 msgid "Paste Value"
-msgstr ""
+msgstr "貼上值"
 
 msgid "Paste the value of the selected tag from clipboard"
-msgstr ""
+msgstr "從剪貼簿貼上選取標籤的值"
 
 msgid "Copy Value"
 msgstr "複製數值"
@@ -9124,12 +9118,12 @@ msgstr ""
 msgid "Changes need uploading?"
 msgstr ""
 
-msgid "Data Layer {0}"
-msgstr "資料圖層 {0}"
-
 msgid "outside downloaded area"
 msgstr "超出下載的區域"
 
+msgid "Data Layer {0}"
+msgstr "資料圖層 {0}"
+
 msgid "Merging layers"
 msgstr "合併圖層"
 
@@ -9613,6 +9607,9 @@ msgstr "沒有圖磚圖層。"
 msgid "No imagery layers"
 msgstr "沒有圖片圖層"
 
+msgid "gps point"
+msgstr "gps 點"
+
 msgid "HDOP"
 msgstr ""
 
@@ -9625,9 +9622,6 @@ msgstr "方向"
 msgid "Velocity, {0}"
 msgstr ""
 
-msgid "gps point"
-msgstr "gps 點"
-
 msgid "Import Audio"
 msgstr "匯入音效"
 
@@ -11454,6 +11448,31 @@ msgstr "設定網站..."
 msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "設定用來下載外掛程式的網站清單"
 
+msgid "Load from list..."
+msgstr ""
+
+msgid "Load plugins from a list of plugins"
+msgstr ""
+
+msgid "Disable all other plugins"
+msgstr ""
+
+msgid "Enter a list of plugins you want to download."
+msgstr ""
+
+msgid ""
+"You should add one plugin id per line, version information is ignored."
+msgstr ""
+
+msgid "You can copy+paste the list of a status report here."
+msgstr "你可以複製+貼上這裡的狀態報告清單"
+
+msgid "Load plugins from list"
+msgstr ""
+
+msgid "The following plugins were not found. Continue anyway?"
+msgstr ""
+
 msgid "Add JOSM Plugin description URL."
 msgstr "加入 JOSM 外掛程式描述 URL。"
 
@@ -12127,7 +12146,7 @@ msgid "Add a new tag"
 msgstr "加入新標籤"
 
 msgid "Paste tags from buffer"
-msgstr ""
+msgstr "從緩衝區貼上標籤"
 
 msgid "Use preset ''{0}'' of group ''{1}''"
 msgstr "使用群組「{1}」的預設組合「{0}」"
@@ -12546,9 +12565,6 @@ msgstr "<html>無法讀取檔案。<br>錯誤為:<br>{0}</html>"
 msgid "GeoJSON Files"
 msgstr "GeoJSON 檔案"
 
-msgid "Projected GeoJSON Files"
-msgstr ""
-
 msgid "Layer ''{0}'' not supported"
 msgstr ""
 
@@ -13523,8 +13539,8 @@ msgid "The plugin is not going to be loaded."
 msgid_plural "The plugins are not going to be loaded."
 msgstr[0] "這個外掛程式將不會被載入。"
 
-msgid "Determine plugins to load..."
-msgstr "決定要載入的外掛程式..."
+msgid "Determining plugins to load..."
+msgstr ""
 
 msgid "Removing deprecated plugins..."
 msgstr "正在移除廢棄的外掛程式..."
@@ -14000,6 +14016,9 @@ msgid ""
 "Failed to access directory ''{0}'' for security reasons. Exception was: {1}"
 msgstr ""
 
+msgid "Cause: "
+msgstr "原因: "
+
 msgid ""
 "To add another layer you need to allocate at least {0,number,#}MB memory to "
 "JOSM using -Xmx{0,number,#}M option (see "
@@ -14102,7 +14121,7 @@ msgid "Value is too long (max {0} characters):"
 msgstr ""
 
 msgid "Do you want to paste these tags?"
-msgstr ""
+msgstr "你要貼上這些標籤?"
 
 msgid "Clear buffer"
 msgstr ""
@@ -14113,7 +14132,7 @@ msgstr ""
 msgid ""
 "<html><p> Sorry, it is impossible to paste tags from buffer. It does not "
 "contain any JOSM object or suitable text. </p></html>"
-msgstr ""
+msgstr "<html><p> 抱歉,無法從緩衝區貼上標籤,裡面沒有任何JOSM物件或是適當的文字。</p></html>"
 
 msgid "Unable to delete file {0}"
 msgstr ""
@@ -14196,6 +14215,9 @@ msgstr ""
 msgid "Report Bug"
 msgstr "回報程式錯誤"
 
+msgid "Suppress this error for this session."
+msgstr ""
+
 msgid "Suppress further error dialogs for this session."
 msgstr ""
 
@@ -14227,7 +14249,7 @@ msgstr ""
 msgid "JOSM is up to date."
 msgstr ""
 
-msgid "JOSM is out of date. The current version is {0}. Try updateing JOSM."
+msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
 
 msgid ""
@@ -14961,13 +14983,19 @@ msgstr ""
 msgid "Berlin aerial photograph 2015"
 msgstr ""
 
+msgid "Berlin aerial photograph 2016"
+msgstr ""
+
 msgid "Stuttgart (aerial imagery)"
 msgstr ""
 
+msgid "Erlangen aerial imagery (2016 5.0 cm)"
+msgstr ""
+
 msgid "Erlangen aerial imagery (2013 6.25 cm)"
 msgstr ""
 
-msgid "Erlangen 2011 aerial imagery (5.0 cm)"
+msgid "Erlangen aerial imagery (2011 5.0 cm)"
 msgstr ""
 
 msgid "Old map of Zwenkau - TK25 Messtischblatt (4739; 1906; PROJ.4-rect)"
@@ -15363,10 +15391,10 @@ msgstr ""
 msgid "Stadt Zürich Luftbild 2011"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn RGB (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn RGB (SOGIS 2013/2014/2015)"
 msgstr ""
 
-msgid "Orthofoto Kanton Solothurn Infrarot (SOGIS 2011/2012/2013)"
+msgid "Aerial imagery canton Solothurn Infrared (SOGIS 2013/2014/2015)"
 msgstr ""
 
 msgid "Canton de Génève 5cm (SITG 2011)"
@@ -15752,6 +15780,11 @@ msgid ""
 "for basemap.at."
 msgstr ""
 
+msgid ""
+"Allows the user to correct angle of buildings to 90 degrees, and aligns all "
+"loaded buildings to nearest road."
+msgstr ""
+
 msgid "Tools for drawing buildings."
 msgstr "繪製建築物的工具。"
 
@@ -15977,6 +16010,9 @@ msgid ""
 "and is hard to rid of)"
 msgstr ""
 
+msgid "Import OSM data in o5m format"
+msgstr ""
+
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
 
@@ -16082,6 +16118,10 @@ msgid "Edit features for Sea Charts"
 msgstr ""
 
 msgid ""
+"Gives user more tools that facilitate aligning and rotation of buildings."
+msgstr ""
+
+msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
 "constrained by maximum removed area size. Also average nearby nodes."
 msgstr "藉由移除屬於很鈍的鈍角的節點來簡化區域。這可以使用最大移除區域大小來限制。同時也會平均化附近的節點。"
@@ -16174,7 +16214,7 @@ msgstr "啟用搜尋從 gpx 檔案匯入的航點。"
 
 msgid ""
 "Simplifies linking OSM objects to Wikipedia articles and Wikidata items"
-msgstr ""
+msgstr "簡化連結OSM物件到維基百科條目和維基數據項目"
 
 msgid ""
 "Drive a race car from point A to point B over aerial imagery, leave cacti "
@@ -18279,9 +18319,27 @@ msgstr ""
 msgid "Basin"
 msgstr ""
 
+msgid "retention"
+msgstr ""
+
+msgid "infiltration"
+msgstr ""
+
+msgid "detention"
+msgstr ""
+
 msgid "Reservoir"
 msgstr "水庫"
 
+msgid "evaporator"
+msgstr ""
+
+msgid "tailings"
+msgstr ""
+
+msgid "water_storage"
+msgstr ""
+
 msgid "Covered Reservoir"
 msgstr "有覆蓋的水庫"
 
@@ -18316,6 +18374,12 @@ msgstr ""
 msgid "river"
 msgstr ""
 
+msgid "lock"
+msgstr ""
+
+msgid "wastewater"
+msgstr ""
+
 msgid "Salt Water"
 msgstr ""
 
@@ -19521,6 +19585,9 @@ msgstr ""
 msgid "Water Park"
 msgstr "水上樂園"
 
+msgid "Beach Resort"
+msgstr ""
+
 msgid "Swimming Pool"
 msgstr ""
 
@@ -22172,7 +22239,10 @@ msgstr "海產"
 msgid "Deli (Fine Food)"
 msgstr ""
 
-msgid "Candy Store"
+msgid "Pastry"
+msgstr ""
+
+msgid "Confectionery"
 msgstr ""
 
 msgid "Tea"
@@ -22424,8 +22494,11 @@ msgstr ""
 msgid "Vending products"
 msgstr "販賣產品"
 
-msgid "animal_food"
-msgstr "飼料"
+msgid "admission_tickets"
+msgstr ""
+
+msgid "animal_feed"
+msgstr ""
 
 msgid "bicycle_tube"
 msgstr ""
@@ -22439,6 +22512,9 @@ msgstr "保險套"
 msgid "drinks"
 msgstr "飲料"
 
+msgid "elongated_coin"
+msgstr ""
+
 msgid "excrement_bags"
 msgstr ""
 
@@ -22454,6 +22530,12 @@ msgstr ""
 msgid "parking_tickets"
 msgstr "停車繳費"
 
+msgid "parcel_pickup"
+msgstr ""
+
+msgid "parcel_mail_in"
+msgstr ""
+
 msgid "photos"
 msgstr "相片"
 
@@ -22472,18 +22554,12 @@ msgstr "郵票"
 msgid "sweets"
 msgstr "甜點"
 
-msgid "tampons"
-msgstr ""
-
 msgid "telephone_vouchers"
 msgstr ""
 
 msgid "toys"
 msgstr "玩具"
 
-msgid "vouchers"
-msgstr ""
-
 msgid "Payment Methods"
 msgstr ""
 
@@ -22584,31 +22660,31 @@ msgid "Litecoin"
 msgstr ""
 
 msgid "Offices"
-msgstr ""
+msgstr "辦公室"
 
 msgctxt "office"
 msgid "Accountant"
-msgstr ""
+msgstr "會計師"
 
 msgctxt "office"
 msgid "Administrative"
-msgstr ""
+msgstr "行政辦公室"
 
 msgctxt "office"
 msgid "Advertising agency"
-msgstr ""
+msgstr "廣告公司"
 
 msgctxt "office"
 msgid "Architect"
-msgstr ""
+msgstr "建築師事務所"
 
 msgctxt "office"
 msgid "Association"
-msgstr ""
+msgstr "協會辦公室"
 
 msgctxt "office"
 msgid "Private company"
-msgstr ""
+msgstr "私人企業"
 
 msgctxt "office"
 msgid "Educational institution"
@@ -22616,117 +22692,117 @@ msgstr ""
 
 msgctxt "office"
 msgid "Employment agency"
-msgstr ""
+msgstr "就業服務站"
 
 msgctxt "office"
 msgid "Estate agent"
-msgstr ""
+msgstr "房地產仲介"
 
 msgctxt "office"
 msgid "Foundation"
-msgstr ""
+msgstr "基金會"
 
 msgctxt "office"
 msgid "Government"
-msgstr ""
+msgstr "政府機關"
 
 msgid "ministry"
-msgstr ""
+msgstr "部隊辦公室"
 
 msgid "prosecutor"
-msgstr ""
+msgstr "檢察官辦公室"
 
 msgid "tax"
-msgstr ""
+msgstr "稅務辦公室"
 
 msgid "register_office"
-msgstr ""
+msgstr "戶政事務所"
 
 msgctxt "office"
 msgid "Insurance"
-msgstr ""
+msgstr "保險公司"
 
 msgctxt "office"
 msgid "It specialist"
-msgstr ""
+msgstr "資訊公司"
 
 msgctxt "office"
 msgid "Lawyer"
-msgstr ""
+msgstr "律師事務所"
 
 msgctxt "office"
 msgid "Newspaper"
-msgstr ""
+msgstr "報社"
 
 msgctxt "office"
 msgid "Non-governmental organisation (NGO)"
-msgstr ""
+msgstr "非政府組織(NGO)"
 
 msgctxt "office"
 msgid "Notary"
-msgstr ""
+msgstr "公證人事務所"
 
 msgctxt "office"
 msgid "Political party"
-msgstr ""
+msgstr "政黨辦公室"
 
 msgctxt "office"
 msgid "Religion"
-msgstr ""
+msgstr "宗教機構"
 
 msgctxt "office"
 msgid "Research"
-msgstr ""
+msgstr "研究機構"
 
 msgctxt "office"
 msgid "Tax advisor"
-msgstr ""
+msgstr "稅務顧問"
 
 msgctxt "office"
 msgid "Telecommunication"
-msgstr ""
+msgstr "電信門市"
 
 msgid "Craft"
-msgstr ""
+msgstr "工匠"
 
 msgid "Carpenter"
-msgstr ""
+msgstr "木匠"
 
 msgid "Shoemaker"
-msgstr ""
+msgstr "製鞋師"
 
 msgid "Photographer"
-msgstr ""
+msgstr "攝影師"
 
 msgid "Metal construction"
-msgstr ""
+msgstr "金屬加工"
 
 msgid "Electrician"
-msgstr ""
+msgstr "電氣工"
 
 msgid "Brewery"
-msgstr ""
+msgstr "釀造所"
 
 msgid "Plumber"
-msgstr ""
+msgstr "水管工"
 
 msgid "Sawmill"
-msgstr ""
+msgstr "伐木工"
 
 msgid "Gardener"
-msgstr ""
+msgstr "園藝家"
 
 msgid "Winery"
-msgstr ""
+msgstr "酒廠"
 
 msgid "Hvac"
-msgstr ""
+msgstr "暖通空調"
 
 msgid "Painter"
-msgstr ""
+msgstr "畫幅"
 
 msgid "Stonemason"
-msgstr ""
+msgstr "石匠"
 
 msgid "Handicraft"
 msgstr ""
@@ -23197,6 +23273,15 @@ msgstr ""
 msgid "Plant Nursery"
 msgstr ""
 
+msgid "Aquaculture"
+msgstr ""
+
+msgid "shrimp"
+msgstr ""
+
+msgid "mussels"
+msgstr ""
+
 msgid "Allotments"
 msgstr ""
 
@@ -23290,6 +23375,9 @@ msgstr "官方名稱"
 msgid "Common name abbreviation"
 msgstr "常見名稱縮寫"
 
+msgid "Address"
+msgstr ""
+
 msgid "House number"
 msgstr "門牌號碼"
 
@@ -25526,6 +25614,21 @@ msgstr ""
 msgid "Debugging mode will write images for each processing step."
 msgstr ""
 
+msgid "Building Generalization"
+msgstr ""
+
+msgid ""
+"Beginners draw outlines often very inaccurate. Such buildings shall be "
+"converted to rectangular ones. Angles between 84-96 degrees are converted to "
+"90 degrees."
+msgstr ""
+
+msgid "There is no frame loaded !"
+msgstr ""
+
+msgid "Alert Message"
+msgstr ""
+
 msgid "Street Name:"
 msgstr "街道名稱:"
 
@@ -26435,9 +26538,6 @@ msgid ""
 "to cancel the download."
 msgstr ""
 
-msgid "Address"
-msgstr ""
-
 msgid "Split area"
 msgstr "分離區域"
 
@@ -27532,7 +27632,7 @@ msgstr ""
 msgid "Check "
 msgstr "檢查 "
 
-msgid "check the subust for junction properties"
+msgid "check the subset for junction properties"
 msgstr ""
 
 msgid "Search "
@@ -28394,6 +28494,24 @@ msgid ""
 "from {0})"
 msgstr ""
 
+msgid "OSM Server Files o5m compressed"
+msgstr ""
+
+msgid "Invalid changeset id: {0}"
+msgstr ""
+
+msgid "Invalid timestamp: {0}"
+msgstr ""
+
+msgid "wrong header byte "
+msgstr ""
+
+msgid "unsupported header"
+msgstr ""
+
+msgid "Reading OSM data..."
+msgstr ""
+
 msgid "Split by municipality"
 msgstr ""
 
@@ -28868,18 +28986,9 @@ msgstr ""
 msgid "Download PBF"
 msgstr ""
 
-msgid "Invalid changeset id: {0}"
-msgstr ""
-
-msgid "Invalid timestamp: {0}"
-msgstr ""
-
 msgid "Invalid DenseNodes key/values table"
 msgstr ""
 
-msgid "Reading OSM data..."
-msgstr ""
-
 msgid "Transform error: Min X must be smaller than max"
 msgstr "變形錯誤:最小 X 必須小於最大值"
 
@@ -29531,6 +29640,9 @@ msgstr ""
 msgid "Add stop position"
 msgstr ""
 
+msgid "Repeat last fix"
+msgstr ""
+
 msgid "Do you want to download referrers of platforms and stop positions?"
 msgstr ""
 
@@ -29546,6 +29658,12 @@ msgid ""
 "Do you want to download them?"
 msgstr ""
 
+msgid "Download incomplete route relation members"
+msgstr ""
+
+msgid "Include stop_area tests"
+msgstr ""
+
 msgid "PT_Assistant plugin found that this relation (id={0}) has errors:"
 msgstr ""
 
@@ -29574,10 +29692,6 @@ msgstr ""
 msgid "PT: Stop position or platform is not part of a stop area relation"
 msgstr ""
 
-msgid ""
-"PT: Stop position and its related platform(s) have different route relations"
-msgstr ""
-
 msgid "PT_Assistant Message"
 msgstr ""
 
@@ -29612,6 +29726,12 @@ msgstr ""
 msgid "PT: Stop not served"
 msgstr ""
 
+msgid "PT: Problem in the route segment with no automatic fix"
+msgstr ""
+
+msgid "PT: Problem in the route segment with one automatic fix"
+msgstr ""
+
 msgid "Warning: the diplayed fix variants are based on less strict criteria"
 msgstr ""
 
@@ -29621,13 +29741,12 @@ msgstr ""
 msgid "PT: Stop area relation has no stop position"
 msgstr ""
 
-msgid "PT: Stop area relation has several stop positions"
-msgstr ""
-
 msgid "PT: Stop area relation has no platform"
 msgstr ""
 
-msgid "PT: Stop area relation has several platforms"
+msgid ""
+"PT: Route relations of stop position(s) and platform(s) of stop area members "
+"diverge"
 msgstr ""
 
 msgid "PT: Route type does not match the type of the road it passes on"
@@ -30418,6 +30537,51 @@ msgstr ""
 msgid "Select a map object"
 msgstr ""
 
+msgid "Shape actions panel"
+msgstr ""
+
+msgid "Shape mode control panel"
+msgstr ""
+
+msgid "Rotate Mode:"
+msgstr ""
+
+msgid "Clockwise"
+msgstr ""
+
+msgid "Counter Clockwise"
+msgstr ""
+
+msgid "Input angle here"
+msgstr ""
+
+msgid "Rotate"
+msgstr ""
+
+msgid "Align building "
+msgstr ""
+
+msgid "Select building"
+msgstr ""
+
+msgid "Select road"
+msgstr ""
+
+msgid "Select none"
+msgstr ""
+
+msgid "Min Distance:"
+msgstr ""
+
+msgid "Input min distance"
+msgstr ""
+
+msgid "Align all buildings"
+msgstr ""
+
+msgid "Delete overlay"
+msgstr ""
+
 msgid "Simplify Area"
 msgstr "簡化區域"
 
@@ -31780,7 +31944,7 @@ msgid "Internal error: number of nodes is {0}."
 msgstr ""
 
 msgid "Copy all tags of selected objects to paste buffer."
-msgstr ""
+msgstr "複製所有選擇物件標籤到剪貼緩衝區。"
 
 msgid "Extract node"
 msgstr ""
@@ -31797,11 +31961,11 @@ msgid "Extract node from line"
 msgstr ""
 
 msgid "Paste Relations"
-msgstr ""
+msgstr "貼上關係"
 
 msgid ""
 "Paste relation membership from objects in the buffer onto selected object(s)"
-msgstr ""
+msgstr "從緩衝區物件貼上關係成員到選取的物件"
 
 msgid "Split Object"
 msgstr "分割物件"
@@ -31850,7 +32014,7 @@ msgid "Copy tags from previous selection"
 msgstr ""
 
 msgid "Pastes tags of previously selected object(s)"
-msgstr ""
+msgstr "從先前選取物件貼上標籤"
 
 msgid "Add Source Tag"
 msgstr ""
@@ -32365,27 +32529,41 @@ msgid "Search after waypoint. Click and move the map view to the waypoint."
 msgstr "搜尋航點。點選並將地圖檢視移動到航點。"
 
 msgid "Fetch Wikidata IDs"
-msgstr ""
+msgstr "取得維基數據ID"
 
 msgid "Fetch Wikidata IDs using the ''wikipedia'' tag"
-msgstr ""
+msgstr "使用維基百科標籤取得維基數據ID"
 
 msgid "Fetching Wikidata IDs"
-msgstr ""
+msgstr "取得維基數據ID"
 
 msgid "Add Wikidata"
-msgstr ""
+msgstr "添加維基數據"
 
 msgid "No Wikidata ID found for: {0}"
-msgstr ""
+msgstr "找不到: {0} 的維基數據ID"
 
 msgid "Fetching {0} Wikidata ID for language ''{1}''"
 msgid_plural "Fetching {0} Wikidata IDs for language ''{1}''"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "取得 {0} 語言 ''{1}''  的維基數據ID"
 
 msgid "Add Wikidata for language ''{0}''"
-msgstr "添加 {0} 的維基數據(Wikidata)"
+msgstr "為語言添加 {0} 的維基數據"
+
+msgid "Add names from Wikipedia"
+msgstr "從維基百科加入名稱"
+
+msgid ""
+"Fetches interwiki links from Wikipedia in order to add several name tags"
+msgstr "從維基百科內部連結增加名稱標籤"
+
+msgid ""
+"Copies the {0} template to the system clipboard instantiated with the "
+"coordinates of the first selected node"
+msgstr ""
+
+msgid "Copy {0} template"
+msgstr "複製 {0} 模板"
 
 msgid "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?"
 msgid_plural "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?"
@@ -32393,32 +32571,17 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Search Wikidata items"
-msgstr ""
+msgstr "搜尋維基數據項目"
 
 msgid "Target key: "
 msgstr ""
 
-msgid "Add names from Wikipedia"
-msgstr "從維基百科加入名稱"
-
-msgid ""
-"Fetches interwiki links from Wikipedia in order to add several name tags"
-msgstr "從維基百科內部連結增加名稱標籤"
-
 msgid "Search Wikipedia category"
 msgstr ""
 
 msgid "Load category"
 msgstr ""
 
-msgid ""
-"Copies the {0} template to the system clipboard instantiated with the "
-"coordinates of the first selected node"
-msgstr ""
-
-msgid "Copy {0} template"
-msgstr "複製 {0} 模板"
-
 msgid "Fetch Wikipedia articles with coordinates"
 msgstr "獲取含有地理坐標的維基百科條目"
 
@@ -32440,10 +32603,10 @@ msgid "{0}: {1}"
 msgstr ""
 
 msgid "Wikidata"
-msgstr ""
+msgstr "維基數據"
 
 msgid "Fetches all coordinates from Wikidata in the current view"
-msgstr ""
+msgstr "從維基數據取得所有目前檢視裡的所有座標"
 
 msgid "Fetches all coordinates from Wikipedia in the current view"
 msgstr "自維基百科取得目前檢視區域之坐標"
diff --git a/images/download_in_view.png b/images/download_in_view.png
new file mode 100644
index 0000000..3fed71b
Binary files /dev/null and b/images/download_in_view.png differ
diff --git a/images/presets/accommodation/alpine_hut.svg b/images/presets/accommodation/alpine_hut.svg
new file mode 100644
index 0000000..216dd45
--- /dev/null
+++ b/images/presets/accommodation/alpine_hut.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="alpine_hut.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/rudolf/Downloads/mapicons2/Alpine_hut_blue_pic_p32.png"
+   inkscape:export-xdpi="44.986801"
+   inkscape:export-ydpi="44.986801">
+  <title
+     id="title3319">Map icon for baisc_hut</title>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title>Map icon for baisc_hut</dc:title>
+        <dc:date>2012-04-05</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Rudolf</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:snap-global="true"
+     inkscape:zoom="22.627417"
+     inkscape:cx="7.481838"
+     inkscape:cy="3.6637309"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     width="16px">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true"
+       empspacing="2"
+       snapvisiblegridlinesonly="true"
+       originx="-8.0001414"
+       originy="-7.999979" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="10 : 6.6666667 : 1"
+       inkscape:vp_z="20 : 10 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 10 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2466"
+       inkscape:persp3d-origin="400 : 200 : 1"
+       inkscape:vp_z="800 : 300 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 300 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <path
+     style="fill:none;stroke:#0092da;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 7.9998586,0.99999965 0.99985861,8 2.9998586,7.999652 l 0,7.000348 10.0000004,0 0,-7 2,0 z"
+     id="rect3055"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccc" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path3501"
+     d="m 8.7046586,6.189 c 0.4562,0 0.825,-0.3711 0.825,-0.8281 0,-0.4562 -0.3688,-0.825 -0.825,-0.825 -0.4562,0 -0.8273,0.3688 -0.8273,0.825 0,0.457 0.3711,0.8281 0.8273,0.8281 z"
+     style="fill:#0092da;fill-opacity:1" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path3503"
+     d="m 7.3085586,6.3257 c 0.032,-0.1273 -0.0484,-0.2539 -0.1734,-0.2859 l -0.6883,-0.1656 c -0.1289,-0.0297 -0.2562,0.0461 -0.2852,0.1727 l -0.5788,2.3953 c -0.032,0.1273 0.0461,0.2539 0.1734,0.2859 l 0.6906,0.1656 c 0.125,0.032 0.2539,-0.0461 0.2836,-0.1734 l 0.5781,-2.3946 z"
+     style="fill:#0092da;fill-opacity:1" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path3507"
+     d="m 5.8734586,14.3507 c -0.0078,0.0391 -0.0102,0.0781 -0.0102,0.1172 0,0.3219 0.2594,0.5805 0.5812,0.5805 0.2641,0 0.4859,-0.1758 0.557,-0.4148 l 0.9984,-4.1336 0.9516,4.1094 c 0.0609,0.2539 0.2906,0.4391 0.5609,0.4391 0.3227,0 0.5812004,-0.2586 0.5812004,-0.5805 0,-0.0445 -0.0047,-0.0859 -0.0125,-0.1273 L 8.7757586,8.882 l 0.1094,-0.4812 0.0859,0.3781 c 0.0781,0.2469 0.3023,0.2711 0.3023,0.2711 l 1.3453004,0.3422 c 0.0266,0.0047 0.0539,0.007 0.0805,0.007 0.2195,0 0.3977,-0.1758 0. [...]
+     style="fill:#0092da;fill-opacity:1" />
+</svg>
diff --git a/images/presets/accommodation/alpine_hut_blue.png b/images/presets/accommodation/alpine_hut_blue.png
deleted file mode 100644
index 18af3c5..0000000
Binary files a/images/presets/accommodation/alpine_hut_blue.png and /dev/null differ
diff --git a/images/presets/accommodation/basic_hut.svg b/images/presets/accommodation/basic_hut.svg
new file mode 100644
index 0000000..64f3b92
--- /dev/null
+++ b/images/presets/accommodation/basic_hut.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="baisc_hut.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <title
+     id="title3319">Map icon for baisc_hut</title>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title>Map icon for baisc_hut</dc:title>
+        <dc:date>2012-04-05</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Rudolf</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:snap-global="true"
+     inkscape:zoom="26.715378"
+     inkscape:cx="4.8456749"
+     inkscape:cy="5.058468"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true"
+       empspacing="2"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="10 : 6.6666667 : 1"
+       inkscape:vp_z="20 : 10 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 10 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2466"
+       inkscape:persp3d-origin="400 : 200 : 1"
+       inkscape:vp_z="800 : 300 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 300 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <path
+     style="fill:none;stroke:#0092da;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 7.9998586,1 -6.99999999,7 1.99999999,-3.48e-4 0,7.000348 10.0000004,0 0,-7 2,0 z"
+     id="rect3055"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccc" />
+</svg>
diff --git a/images/presets/accommodation/basic_hut_blue.png b/images/presets/accommodation/basic_hut_blue.png
deleted file mode 100644
index b877e63..0000000
Binary files a/images/presets/accommodation/basic_hut_blue.png and /dev/null differ
diff --git a/images/presets/accommodation/shelter_picnic.svg b/images/presets/accommodation/shelter_picnic.svg
new file mode 100644
index 0000000..72e0802
--- /dev/null
+++ b/images/presets/accommodation/shelter_picnic.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="shelter_picnic_brown.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/rudolf/Downloads/mapicons2/Shelter_picnic_brown_p16.png"
+   inkscape:export-xdpi="44.985714"
+   inkscape:export-ydpi="44.985714">
+  <title
+     id="title3212">Map icon for shelter</title>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title>Map icon for shelter</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Rudolf</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:date>2012-04-05</dc:date>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:snap-global="true"
+     inkscape:zoom="23.909048"
+     inkscape:cx="4.1971674"
+     inkscape:cy="10.394389"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:snap-bbox="false"
+     inkscape:snap-grids="true"
+     inkscape:snap-page="false"
+     inkscape:snap-nodes="true"
+     inkscape:object-nodes="true"
+     inkscape:snap-to-guides="false"
+     inkscape:snap-center="true"
+     inkscape:snap-object-midpoints="true"
+     inkscape:snap-midpoints="true"
+     inkscape:snap-smooth-nodes="true"
+     inkscape:object-paths="true"
+     inkscape:snap-intersection-paths="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true"
+       empspacing="2"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="10 : 6.6666667 : 1"
+       inkscape:vp_z="20 : 10 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 10 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2466"
+       inkscape:persp3d-origin="400 : 200 : 1"
+       inkscape:vp_z="800 : 300 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 300 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <path
+     style="fill:none;stroke:#734a08;stroke-width:1.99729419;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 1.0094702,7.24263 8,1.250747 14.99053,7.24263"
+     id="path3967"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;stroke:#734a08;stroke-width:1.4979707;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 3.006764,12.735189 9.986472,0"
+     id="path3046"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;stroke:#734a08;stroke-width:1.4979707;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 5.004059,9.239924 5.991882,0"
+     id="path3048"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;stroke:#734a08;stroke-width:1.4979707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 4.504735,15.73113 7.001353,9.239924"
+     id="path3050"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;stroke:#734a08;stroke-width:1.4979707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 11.495265,15.73113 8.998647,9.239924"
+     id="path3052"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/accommodation/shelter_picnic_brown.png b/images/presets/accommodation/shelter_picnic_brown.png
deleted file mode 100644
index 51d57f1..0000000
Binary files a/images/presets/accommodation/shelter_picnic_brown.png and /dev/null differ
diff --git a/images/presets/accommodation/shelter_public_transport.svg b/images/presets/accommodation/shelter_public_transport.svg
new file mode 100644
index 0000000..98eb615
--- /dev/null
+++ b/images/presets/accommodation/shelter_public_transport.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="10"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="shelter_public_transport_brown2.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <title
+     id="title3212">Map icon for shelter</title>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title>Map icon for shelter</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Rudolf</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:date>2012-04-05</dc:date>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:snap-global="false"
+     inkscape:zoom="33.8125"
+     inkscape:cx="-0.26880984"
+     inkscape:cy="7.4666274"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:snap-bbox="false"
+     inkscape:snap-grids="true"
+     inkscape:snap-page="false"
+     inkscape:snap-nodes="true"
+     inkscape:object-nodes="true"
+     inkscape:snap-to-guides="false"
+     inkscape:snap-center="true"
+     inkscape:snap-object-midpoints="true"
+     inkscape:snap-midpoints="true"
+     inkscape:snap-smooth-nodes="true"
+     inkscape:object-paths="true"
+     inkscape:snap-intersection-paths="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true"
+       empspacing="2"
+       snapvisiblegridlinesonly="true"
+       originx="-11.0045"
+       originy="-7.9858603" />
+  </sodipodi:namedview>
+  <path
+     style="fill:none;stroke:#734a08;stroke-width:2.00000024;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1.0000001,15 0,-13.9999999 7.9999998,0"
+     id="path3967"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccc" />
+  <g
+     id="g5998"
+     transform="matrix(0.51952076,0,0,0.51952076,-2.2762576,-0.64351186)">
+    <g
+       id="g6002">
+      <g
+         id="g6006">
+        <path
+           inkscape:connector-curvature="0"
+           id="path3992"
+           d="m 15.995596,11.102306 c 0.552265,2e-5 1.029299,-0.200867 1.431102,-0.60266 0.401743,-0.401752 0.602629,-0.8787864 0.602661,-1.4311028 -3.2e-5,-0.5767852 -0.200918,-1.0597554 -0.602661,-1.4489128 -0.401803,-0.38911 -0.878837,-0.583677 -1.431102,-0.583701 -0.552324,2.4e-5 -1.029166,0.194591 -1.430529,0.583701 -0.401418,0.3891574 -0.602112,0.8721276 -0.602086,1.4489128 -2.6e-5,0.5523164 0.200668,1.0293508 0.602086,1.4311028 0.401363,0.401793 0.878205,0.60268 1.430529,0.60266 l 0,0 z"
+           style="fill:#734a08;fill-opacity:1;stroke:none" />
+        <path
+           inkscape:connector-curvature="0"
+           id="flowRoot3192"
+           d="m 18.669362,11.515954 -5.384301,0 c -0.727738,1.8e-5 -1.348973,0.257399 -1.863709,0.772139 -0.514784,0.514779 -0.772164,1.148654 -0.772141,1.901627 l 0,6.249512 c -2.3e-5,0.602862 0.276124,0.904288 0.828443,0.904278 0.526991,1e-5 0.7905,-0.301416 0.790525,-0.904278 l 0,-6.098991 0.978964,0 0,16.566552 c -2.7e-5,0.75299 0.376469,1.129485 1.129485,1.129486 0.752962,-10e-7 1.129457,-0.376496 1.129485,-1.129486 l 0,-9.601201 0.978965,0 0,9.601201 c -3e-5,0.75299 0.376465,1.1294 [...]
+           style="fill:#734a08;fill-opacity:1;stroke:none" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/accommodation/shelter_public_transport_brown.png b/images/presets/accommodation/shelter_public_transport_brown.png
deleted file mode 100644
index cc463d1..0000000
Binary files a/images/presets/accommodation/shelter_public_transport_brown.png and /dev/null differ
diff --git a/images/presets/accommodation/wilderness_hut.svg b/images/presets/accommodation/wilderness_hut.svg
new file mode 100644
index 0000000..4bc53af
--- /dev/null
+++ b/images/presets/accommodation/wilderness_hut.svg
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="15.999718"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="wilderness_hut2.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/rudolf/Pictures/Wilderness_hut_blue_stove_p16.png"
+   inkscape:export-xdpi="44.986801"
+   inkscape:export-ydpi="44.986801">
+  <title
+     id="title3319">Map icon for baisc_hut</title>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title>Map icon for baisc_hut</dc:title>
+        <dc:date>2012-04-05</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Rudolf</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:snap-global="true"
+     inkscape:zoom="11.737555"
+     inkscape:cx="-6.5263659"
+     inkscape:cy="6.1568004"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true"
+       empspacing="2"
+       snapvisiblegridlinesonly="true"
+       originx="-8.0001414"
+       originy="-8" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="10 : 6.6666667 : 1"
+       inkscape:vp_z="20 : 10 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 10 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2466"
+       inkscape:persp3d-origin="400 : 200 : 1"
+       inkscape:vp_z="800 : 300 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 300 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <rect
+     style="fill:#0092da;fill-opacity:1;stroke:#0092da;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="rect3162"
+     width="3"
+     height="2.5"
+     x="7.4998584"
+     y="9" />
+  <path
+     style="fill:none;stroke:#0092da;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 7.9998586,1 -6.99999999,7 1.99999999,-3.48e-4 0,7.000348 10.0000004,0 0,-7 2,0 z"
+     id="rect3055"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccc" />
+  <path
+     style="fill:none;stroke:#0092da;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 7.4998586,12 0,2"
+     id="path3164"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;stroke:#0092da;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 10.499859,12 0,2"
+     id="path3166"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;stroke:#0092da;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 10.499859,8.5 0,-8.5"
+     id="path3168"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cc" />
+</svg>
diff --git a/images/presets/accommodation/wilderness_hut_blue.png b/images/presets/accommodation/wilderness_hut_blue.png
deleted file mode 100644
index 50735f5..0000000
Binary files a/images/presets/accommodation/wilderness_hut_blue.png and /dev/null differ
diff --git a/images/presets/barrier/barrier.png b/images/presets/barrier/barrier.png
deleted file mode 100644
index 5fcd30d..0000000
Binary files a/images/presets/barrier/barrier.png and /dev/null differ
diff --git a/images/presets/barrier/cattle_grid.png b/images/presets/barrier/cattle_grid.png
deleted file mode 100644
index 1e42a98..0000000
Binary files a/images/presets/barrier/cattle_grid.png and /dev/null differ
diff --git a/images/presets/barrier/cattle_grid.svg b/images/presets/barrier/cattle_grid.svg
new file mode 100644
index 0000000..d343794
--- /dev/null
+++ b/images/presets/barrier/cattle_grid.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="11"
+   viewBox="0 0 16 11"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="cattle_grid6.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="8.677082"
+     inkscape:cy="8.8687904"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1041.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00ff00;fill-opacity:0.74901961;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4134"
+       width="16.000002"
+       height="10.999584"
+       x="0"
+       y="1041.3623" />
+    <path
+       style="fill:#905933;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0,1052.3622 5,-11 6,0 5,11 z"
+       id="path4151"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4153"
+       d="m 2.0089286,1052.3622 3.9910714,-11 4,0 3.924107,11 z"
+       style="fill:#cbab83;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       style="fill:#905933;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 7,1052.3622 0.5,-11 1,0 0.5,11 z"
+       id="path4163"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4157"
+       width="10.457726"
+       height="1"
+       x="2.7790291"
+       y="1047.3622"
+       ry="0.5" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4159"
+       width="11.964558"
+       height="1"
+       x="2.0288818"
+       y="1049.3622"
+       ry="0.5" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4161"
+       width="9.0468636"
+       height="1"
+       x="3.4877288"
+       y="1045.3622"
+       ry="0.5" />
+  </g>
+</svg>
diff --git a/images/presets/barrier/douane.png b/images/presets/barrier/douane.png
deleted file mode 100644
index 8f056f8..0000000
Binary files a/images/presets/barrier/douane.png and /dev/null differ
diff --git a/images/presets/barrier/douane.svg b/images/presets/barrier/douane.svg
new file mode 100644
index 0000000..4e5ac91
--- /dev/null
+++ b/images/presets/barrier/douane.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   stroke-width="1.6"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="AB-Maut-Grenze.svg">
+  <metadata
+     id="metadata12">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs10" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview8"
+     showgrid="true"
+     inkscape:zoom="20.85965"
+     inkscape:cx="-1.0641952"
+     inkscape:cy="7.1223226"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4140" />
+  </sodipodi:namedview>
+  <circle
+     cx="8"
+     cy="8"
+     r="6.8965516"
+     id="circle4"
+     style="fill:#ffffff;stroke:#ff0000;stroke-width:2.20689654" />
+  <path
+     d="M 4.5517241,8 11.448276,8"
+     id="path6"
+     inkscape:connector-curvature="0"
+     style="stroke:#000000;stroke-width:2.20689654;stroke-linecap:round" />
+</svg>
diff --git a/images/presets/barrier/gate.png b/images/presets/barrier/gate.png
deleted file mode 100644
index 74bc491..0000000
Binary files a/images/presets/barrier/gate.png and /dev/null differ
diff --git a/images/presets/barrier/gate.svg b/images/presets/barrier/gate.svg
new file mode 100644
index 0000000..364f6d5
--- /dev/null
+++ b/images/presets/barrier/gate.svg
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="gate6.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="5.3271347"
+     inkscape:cy="-1.2367396"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     showguides="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#717171;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4145"
+       width="16"
+       height="4.0000172"
+       x="0"
+       y="1048.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#8a9ced;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4147"
+       width="16"
+       height="8"
+       x="0"
+       y="1040.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4149"
+       width="2"
+       height="8.3000002"
+       x="1"
+       y="1041.0621"
+       ry="1.0374978" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4154"
+       width="13"
+       height="1.0000174"
+       x="2"
+       y="1043.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4156"
+       width="13"
+       height="1"
+       x="2"
+       y="1049.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4158"
+       width="0.99999571"
+       height="8.1493988"
+       x="14"
+       y="1042.2128"
+       ry="0.50934094" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4160"
+       width="1.0000018"
+       height="8.1498251"
+       x="11"
+       y="1042.2128"
+       ry="0.5093441" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4162"
+       width="1.0000011"
+       height="8.1499996"
+       x="5"
+       y="1042.2128"
+       ry="0.50934374" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1.8737309,1044.2573 12.5682101,5.1364"
+       id="path4164"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4162-5"
+       width="1.0000011"
+       height="8.1499996"
+       x="8"
+       y="1042.2128"
+       ry="0.50934374" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4183"
+       width="1.9999999"
+       height="3.9999406"
+       x="1"
+       y="1047.3622" />
+  </g>
+</svg>
diff --git a/images/presets/barrier/guard_rail.svg b/images/presets/barrier/guard_rail.svg
new file mode 100644
index 0000000..be9652f
--- /dev/null
+++ b/images/presets/barrier/guard_rail.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="11"
+   viewBox="0 0 16 11"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="guard_rail.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="5.1089108"
+     inkscape:cy="6.9384634"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1041.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4134"
+       width="16"
+       height="5.0000172"
+       x="0"
+       y="1043.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4138"
+       width="1"
+       height="11.000017"
+       x="1"
+       y="1042.3622"
+       ry="0.50000024" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4140"
+       width="1"
+       height="11.000017"
+       x="13"
+       y="1042.3622"
+       ry="0.49999624" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4142"
+       width="1"
+       height="11.000017"
+       x="7"
+       y="1042.3622"
+       ry="0.50000155" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4146"
+       width="16"
+       height="1.0000174"
+       x="0"
+       y="1044.3622" />
+    <rect
+       y="1046.3622"
+       x="0"
+       height="0.99984324"
+       width="16"
+       id="rect4148"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+  </g>
+</svg>
diff --git a/images/presets/barrier/jersey_barrier.svg b/images/presets/barrier/jersey_barrier.svg
new file mode 100644
index 0000000..2c4875e
--- /dev/null
+++ b/images/presets/barrier/jersey_barrier.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="14"
+   viewBox="0 0 16 14"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="jersey_barrier3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="11.081569"
+     inkscape:cy="11.149976"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1038.3622)">
+    <path
+       style="fill:#666666;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0,1052.3622 8,0 0,-1 -1,0 -2,-2 0,-9 -2,0 0,9 -2,2 -1,0 z"
+       id="path4140"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccc" />
+    <path
+       style="fill:#333333;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 3,1040.3622 8,-2 2,0 -8,2 z"
+       id="path4144"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#b3b3b3;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 5,1049.3622 8,-2 0,-9 -8,2 z"
+       id="path4146"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 7,1051.3622 8,-2 -2,-2 -8,2 z"
+       id="path4148"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#1a1a1a;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 7,1051.3622 8,-2 1,0 -8,2 z"
+       id="path4150"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#666666;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 8,1052.3622 8,-2 0,-1 -8,2 z"
+       id="path4152"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#1a1a1a;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 0,1051.3622 1.4084821,1050.976 1,1051.3622 Z"
+       id="path4154"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+  </g>
+</svg>
diff --git a/images/presets/barrier/toll_station.png b/images/presets/barrier/toll_station.png
deleted file mode 100644
index c84a28e..0000000
Binary files a/images/presets/barrier/toll_station.png and /dev/null differ
diff --git a/images/presets/barrier/toll_station.svg b/images/presets/barrier/toll_station.svg
new file mode 100644
index 0000000..59b2622
--- /dev/null
+++ b/images/presets/barrier/toll_station.svg
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="toll_station21.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="45.254834"
+     inkscape:cx="10.714313"
+     inkscape:cy="8.9095066"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4219"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00a700;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4167"
+       width="2"
+       height="2"
+       x="1"
+       y="1047.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4171"
+       width="0.60000002"
+       height="0.60000002"
+       x="1"
+       y="1049.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4171-2"
+       width="0.60000002"
+       height="0.60000002"
+       x="2.4000006"
+       y="1049.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4167-6"
+       width="2"
+       height="2"
+       x="7"
+       y="1043.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4171-4"
+       width="0.60000002"
+       height="0.60000002"
+       x="7"
+       y="1045.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4171-2-9"
+       width="0.60000002"
+       height="0.60000002"
+       x="8.3999996"
+       y="1045.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1582ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4167-5"
+       width="2"
+       height="2"
+       x="13"
+       y="1045.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4171-0"
+       width="0.60000002"
+       height="0.60000002"
+       x="13"
+       y="1047.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4171-2-0"
+       width="0.60000002"
+       height="0.60000002"
+       x="14.4"
+       y="1047.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4221"
+       width="16"
+       height="1.9999652"
+       x="0"
+       y="1040.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4225"
+       width="1"
+       height="2"
+       x="4"
+       y="1046.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4227"
+       width="1"
+       height="2.0000174"
+       x="4"
+       y="1050.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4225-5"
+       width="1"
+       height="2"
+       x="11"
+       y="1046.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4227-6"
+       width="1"
+       height="2.0000174"
+       x="11"
+       y="1050.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4250"
+       width="1"
+       height="2"
+       x="4"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4252"
+       width="1"
+       height="2"
+       x="11"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4254"
+       width="1.136502"
+       height="2.2730041"
+       x="670.80798"
+       y="791.02826"
+       transform="matrix(0.76604444,0.64278761,-0.64278761,0.76604444,0,0)" />
+    <rect
+       transform="matrix(-0.76604444,0.64278761,0.64278761,0.76604444,0,0)"
+       y="801.31299"
+       x="658.50287"
+       height="2.3017414"
+       width="1.1508707"
+       id="rect4258"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <rect
+       ry="0"
+       y="1048.3622"
+       x="7"
+       height="2"
+       width="2"
+       id="rect4260"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <rect
+       ry="0"
+       y="1050.3622"
+       x="7"
+       height="0.60000002"
+       width="0.60000002"
+       id="rect4262"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <rect
+       ry="0"
+       y="1050.3622"
+       x="8.3999996"
+       height="0.60000002"
+       width="0.60000002"
+       id="rect4264"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4250-2"
+       width="1"
+       height="2"
+       x="15"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4250-4"
+       width="1"
+       height="2"
+       x="0"
+       y="1042.3622" />
+  </g>
+</svg>
diff --git a/images/presets/craft/beekeeper.svg b/images/presets/craft/beekeeper.svg
new file mode 100644
index 0000000..b63a59a
--- /dev/null
+++ b/images/presets/craft/beekeeper.svg
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg4260"
+   sodipodi:modified="true"
+   sodipodi:docname="beekeeper.svg"
+   viewBox="0 0 245.05 243.85"
+   sodipodi:version="0.32"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:version="0.91 r13725">
+  <defs
+     id="defs27" />
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:zoom="1.4"
+     inkscape:window-x="-8"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="-121.68437"
+     inkscape:cy="197.21283"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     showgrid="false"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4155" />
+  </sodipodi:namedview>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-46.226 -53.076)">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 62.974818,221.03826 c -11.11578,-4.2753 -17.984762,30.49714 -11.11578,40.18782 25.153015,29.07204 81.729482,32.34977 81.729482,32.34977 l 62.37663,0.57004 c 0,0 64.84205,-0.99757 88.49871,-33.91738 5.41538,-6.69797 7.69554,-44.74814 -8.69311,-39.61778 -31.92224,24.65423 -51.87364,23.51415 -104.45983,24.65423 -52.58619,1.14008 -92.20397,-6.69797 -108.336102,-24.2267 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5505" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 60.979678,250.1103 c -9.932947,-3.70526 -13.068167,5.98542 -7.011492,11.54331 23.898927,26.22184 78.537264,31.06718 78.537264,31.06718 l 64.02974,0.14251 c 0,0 67.69225,-2.13765 87.07361,-33.91738 3.99028,-4.98785 3.27773,-14.39351 -5.55789,-10.83076 -24.36921,22.51658 -53.29874,31.06718 -107.31003,31.3522 -53.99704,0.28502 -94.697895,-12.54088 -109.761202,-29.35706 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5507" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 75.430192,186.26582 c -9.932947,-3.70526 -16.716423,28.92953 -10.574242,37.48013 24.397712,21.3765 74.47573,22.37407 74.47573,22.37407 l 55.20837,0.42753 c 0,0 50.16352,4.98785 82.51329,-25.6518 4.84534,-5.84291 2.56518,-40.18782 -12.11335,-35.6275 -28.502,21.3765 -45.46069,21.3765 -92.34648,22.37407 -47.0283,0.99757 -82.755557,-6.12793 -97.163318,-21.3765 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5509" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 85.106621,155.05613 c -8.849871,-3.27773 -13.552701,25.79431 -8.080317,33.34734 21.747026,19.09634 66.366906,19.9514 66.366906,19.9514 l 49.29421,0.42753 c 0,0 44.60563,4.41781 73.39265,-22.8016 4.2753,-5.27287 2.70769,-36.62507 -10.26072,-32.49228 -25.50929,19.09634 -41.47041,19.23885 -83.36835,19.9514 -41.81243,0.85506 -74.504228,-4.84534 -87.344379,-18.38379 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5511" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 95.951632,126.98166 c -8.009062,-3.13522 -14.621526,22.37407 -9.676429,29.07204 19.652127,17.24371 59.996707,18.09877 59.996707,18.09877 l 44.56288,0.28502 c 0,0 40.33033,3.99028 66.40966,-20.52144 3.84777,-4.84534 0.42753,-30.92467 -11.25829,-27.21941 -23.08662,17.24371 -35.6275,15.96112 -73.39265,16.81618 -37.90766,0.71255 -65.04156,-4.41781 -76.641878,-16.53116 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5513" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 104.97251,101.47237 c -7.025738,-2.70769 -12.597879,20.66395 -8.251324,26.50686 17.272214,14.96355 52.714444,15.6761 52.714444,15.6761 l 39.119,0.28502 c 0,0 35.48499,3.42024 58.28659,-17.81375 3.42024,-4.13279 2.13765,-26.79188 -8.12307,-23.65666 -20.23642,14.96355 -32.06475,13.82347 -65.26958,14.53602 -33.27608,0.71255 -58.27234,-4.98785 -68.47605,-15.53359 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5515" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 114.0789,85.79627 c -6.19918,-1.99514 -11.75707,14.53602 -7.92355,18.95383 15.22007,10.97327 49.35121,11.97084 49.35121,11.97084 l 31.62297,0.28502 c 0,0 31.20969,2.13765 51.3036,-13.82347 2.99271,-2.99271 0,-20.23642 -9.12064,-17.95626 -17.81375,11.11578 -26.64937,11.11578 -56.00643,11.68582 -29.28581,0.42753 -50.23478,-3.27773 -59.22716,-11.11578 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5517" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 121.16165,71.83029 c -5.32987,-1.4251 -8.92113,12.68339 -5.62914,15.96112 13.05391,8.26558 39.86004,8.69311 39.86004,8.69311 l 29.59933,0.14251 c 0,0 26.79188,1.85263 44.1781,-9.9757 2.56518,-2.28016 0.57004,-16.67367 -7.26801,-14.96355 -15.24857,8.26558 -23.51415,9.83319 -48.73842,10.26072 -25.13876,0.28502 -44.29211,-4.2753 -52.0019,-10.11821 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5519" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 126.60553,62.28212 c -4.68858,-1.28259 -7.42477,9.40566 -4.53182,12.11335 11.50056,6.98299 35.10022,7.41052 35.10022,7.41052 l 25.96532,0.14251 c 0,0 23.65666,1.56761 38.90523,-8.40809 2.28016,-1.99514 1.4251,-12.54088 -5.41538,-11.11578 -13.53845,7.1255 -21.23399,-6.69797 -43.32304,-6.41295 -22.14605,0.28502 -39.91705,11.11578 -46.70053,6.27044 z"
+       style="fill:#d59d07;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5521" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 145.20309,69.69264 c 4.83109,3.42024 43.06652,5.27287 50.33453,-0.42753"
+       style="fill:none;stroke:#000000;stroke-width:5.70039988"
+       sodipodi:nodetypes="cc"
+       id="path5523" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 145.16033,293.71836 c 0.45604,-27.64694 11.24404,-34.34491 22.58784,-34.48742 11.4008,-0.14251 23.37164,7.41052 22.94411,33.91738 l -45.53195,0.57004 z"
+       style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:5.70039988"
+       sodipodi:nodetypes="czcc"
+       id="path5525" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 73.078777,216.62045 c -8.992381,-2.56518 -11.82833,4.13279 -6.341695,7.83805 21.633018,17.95626 71.112488,21.23399 71.112488,21.23399 l 57.97307,0.14251 c 0,0 49.59348,2.42267 78.80803,-23.08662 3.56275,-3.42024 2.99271,-9.9757 -4.98785,-7.55303 -22.08905,15.39108 -48.31089,21.23399 -97.19182,21.51901 -48.88093,0.14251 -85.719765,-8.5506 -99.372223,-20.09391 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5527" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 87.272773,184.69821 c -7.724042,-1.99514 -10.175214,3.27773 -5.458133,6.27044 18.59755,13.96598 61.09404,16.53116 61.09404,16.53116 l 49.77874,0.14251 c 0,0 42.61049,1.85263 67.69225,-18.09877 3.13522,-2.70769 2.70769,-7.69554 -4.2753,-5.84291 -18.95383,11.97084 -41.47041,16.53116 -83.51086,16.67367 -41.95494,0.28502 -73.592164,-6.55546 -85.320737,-15.6761 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5529" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 94.341269,151.7784 c -7.068496,-1.85263 -9.305903,3.13522 -4.98785,5.98542 17.015691,13.39594 55.920921,15.96112 55.920921,15.96112 l 45.56045,0 c 0,0 39.04774,1.85263 61.99185,-17.38622 2.8502,-2.56518 2.42267,-7.41052 -3.99028,-5.55789 -17.24371,11.54331 -37.90766,15.96112 -76.38536,16.10363 -38.40644,0.14251 -67.37873,-6.41295 -78.109731,-15.10606 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5531" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 104.31697,123.98895 c -6.184935,-1.56761 -8.123071,2.70769 -4.360807,5.13036 14.849537,11.54331 48.809677,13.68096 48.809677,13.68096 l 39.78879,0 c 0,0 34.05989,1.56761 54.01129,-14.82104 2.56518,-2.28016 2.13765,-6.41295 -3.42024,-4.84534 -15.10606,9.83319 -33.06232,13.68096 -66.55217,13.82347 -33.63236,0.14251 -58.91363,-5.55789 -68.27654,-12.96841 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5533" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 111.91275,99.76225 c -5.55789,-1.56761 -7.32501,2.42267 -3.91902,4.56032 13.36743,10.40323 43.95008,12.25586 43.95008,12.25586 l 35.89827,0.14251 c 0,0 30.63965,1.4251 48.59591,-13.39594 2.28016,-1.99514 1.99514,-5.84291 -2.99271,-4.41781 -13.68096,8.97813 -29.78459,12.39837 -60.13922,12.39837 -30.18362,0.14251 -52.95672,-4.84534 -61.39331,-11.54331 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5535" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 120.30659,84.37117 c -4.78834,-0.99757 -5.32987,1.71012 -2.40842,3.27773 11.51481,7.41052 37.82216,7.69554 37.82216,7.69554 l 30.83916,0.14251 c 0,0 26.36435,0.85506 41.89794,-9.54817 1.99514,-1.4251 1.56761,-3.99028 -2.70769,-2.99271 -11.68582,6.27044 -25.6518,8.69311 -51.58862,8.69311 -26.03658,0.14251 -46.60077,-2.56518 -53.85453,-7.26801 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5537" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 125.99274,71.9728 c -4.20405,-0.85506 -4.67433,1.4251 -2.10915,2.70769 10.07546,5.84291 33.13358,6.27044 33.13358,6.27044 l 27.11965,0 c 0,0 23.08662,0.71255 36.62507,-7.69554 1.71012,-1.14008 1.4251,-3.27773 -2.28016,-2.56518 -10.26072,5.13036 -22.51658,7.1255 -45.31818,7.1255 -22.8016,0.14251 -40.81486,-1.99514 -47.17081,-5.84291 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5539" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 147.469,67.98252 c -2.02365,0.28502 -1.78138,1.14008 -0.51304,1.71012 4.90234,1.85263 16.08938,2.28016 16.08938,2.28016 l 13.53845,0 c 0,0 11.11578,1.14008 17.81375,-2.99271 0.85506,-0.57004 0.28502,-1.14008 -0.71255,-1.56761 -6.55546,-0.57004 -10.83076,-2.70769 -22.23156,-2.70769 -11.4008,0.14251 -20.89197,3.27773 -23.98443,3.27773 z"
+       style="fill:#af7c05;fill-rule:evenodd;fill-opacity:1"
+       sodipodi:nodetypes="cccccczc"
+       id="path5541" />
+  </g>
+  <metadata
+     id="metadata25">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2007-04-10T15:46:42</dc:date>
+        <dc:description>A simple apiary of the old classical design.</dc:description>
+        <dc:source>https://openclipart.org/detail/3866/apiary-by-doctormo</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>doctormo</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>apiary</rdf:li>
+            <rdf:li>bee</rdf:li>
+            <rdf:li>beehive</rdf:li>
+            <rdf:li>comb</rdf:li>
+            <rdf:li>hive</rdf:li>
+            <rdf:li>honey</rdf:li>
+            <rdf:li>remix problem</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/craft/painter.png b/images/presets/craft/painter.png
deleted file mode 100644
index 0114e87..0000000
Binary files a/images/presets/craft/painter.png and /dev/null differ
diff --git a/images/presets/craft/painter.svg b/images/presets/craft/painter.svg
new file mode 100644
index 0000000..15d1fa1
--- /dev/null
+++ b/images/presets/craft/painter.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns1="http://sozi.baierouge.fr" sodipod [...]
+  <sodipodi:namedview bordercolor="#666666" inkscape:pageshadow="2" inkscape:window-y="-4" fit-margin-left="0" pagecolor="#ffffff" inkscape:zoom="1.8552865" inkscape:window-maximized="1" inkscape:window-x="-4" showgrid="false" borderopacity="1.0" inkscape:current-layer="layer1" inkscape:cx="55.731088" inkscape:cy="61.76978" inkscape:pageopacity="0.0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-height="975" fit-margin-top="0" inkscape:window-width="1280" inkscape:document-u [...]
+  <defs>
+    <filter id="filter5851" width="1.2739" y="-0.97" x="-.13694" height="2.94" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="4.1776055" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter5889" inkscape:collect="always" color-interpolation-filters="sRGB">
+      <feGaussianBlur stdDeviation="3.2650212" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter18598" width="3.2246" y="-.077583" x="-1.1123" height="1.1552" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="4.1044441" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter18634" width="1.4681" y="-.010848" x="-.23407" height="1.0217" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="1.037628" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter18638" width="1.2582" y="-.010647" x="-.12909" height="1.0213" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="1.037628" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter18646" width="1.6075" y="-.032683" x="-.30377" height="1.0654" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="2.1645993" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter18650" width="1.7653" y="-.023490" x="-.38265" height="1.047" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="2.670959" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter18654" width="1.494" y="-.018502" x="-.24702" height="1.037" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="2.829191" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter18670" width="2.2071" y="-.12820" x="-.60354" height="1.2564" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="2.8678247" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter25984" width="1.1176" y="-.17903" x="-0.0588" height="1.3581" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="19.043014" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter26000" inkscape:collect="always" color-interpolation-filters="sRGB">
+      <feGaussianBlur stdDeviation="12.322873" inkscape:collect="always"/>
+    </filter>
+    <filter id="filter26008" width="1.7708" y="-.11910" x="-.38538" height="1.2382" color-interpolation-filters="sRGB" inkscape:collect="always">
+      <feGaussianBlur stdDeviation="23.090638" inkscape:collect="always"/>
+    </filter>
+    <linearGradient id="linearGradient48025" x1="-61.35" gradientUnits="userSpaceOnUse" y1="463.91" gradientTransform="matrix(.18935 0 0 .18935 97.271 861.77)" x2="82.448" y2="463.91" inkscape:collect="always">
+      <stop stop-color="#ffbd55" offset="0"/>
+      <stop stop-color="#cd7b44" offset=".3"/>
+      <stop stop-color="#d19829" offset=".54966"/>
+      <stop offset=".79931"/>
+      <stop stop-color="#ffc155" offset="1"/>
+    </linearGradient>
+    <linearGradient id="linearGradient50451" x1="-49.422" gradientUnits="userSpaceOnUse" y1="451.99" gradientTransform="matrix(.18935 0 0 .18935 97.271 861.77)" x2="69.258" y2="451.99" inkscape:collect="always">
+      <stop stop-color="#2c2f33" offset="0"/>
+      <stop stop-color="#959799" offset=".024"/>
+      <stop stop-color="#FFF" offset=".048"/>
+      <stop stop-color="#2d2d2d" offset=".11406"/>
+      <stop stop-color="#adadae" offset=".21069"/>
+      <stop stop-color="#898989" offset=".28078"/>
+      <stop stop-color="#FFF" offset=".40167"/>
+      <stop stop-color="#FFF" offset=".64231"/>
+      <stop offset=".86118"/>
+      <stop stop-color="#FFF" offset=".94329"/>
+      <stop offset="1"/>
+    </linearGradient>
+    <linearGradient id="linearGradient52877" x1="63.104" gradientUnits="userSpaceOnUse" y1="-276.88" gradientTransform="matrix(.18935 0 0 .18935 97.271 861.77)" x2="63.104" y2="-25.189" inkscape:collect="always">
+      <stop stop-color="#FFF" offset="0"/>
+      <stop stop-color="#f8f8d5" offset=".15"/>
+      <stop stop-color="#a29e89" offset=".57519"/>
+      <stop stop-color="#bfb69a" offset=".80602"/>
+      <stop stop-color="#eeeebe" offset=".91598"/>
+      <stop stop-color="#FFF" offset="1"/>
+    </linearGradient>
+  </defs>
+  <g inkscape:label="Layer 1" transform="translate(-19.691 -808.97)" inkscape:groupmode="layer">
+    <rect ry="93.403" style="color:#000000" rx="49.098" transform="matrix(.17242 0 0 .15824 23.609 822.04)" height="255.29" filter="url(#filter25984)" width="777.27" y="-7.7351" x="34.588" fill="#b3b3b3"/>
+    <path style="color:#000000" d="m426.17 456.7h119.33c19.45 154.41 14.645 302.88 0.2703 457.3-41.636 12.659-79.246 8.247-118.79 0.8111-13.975-154.41-18.601-303.69-0.81106-458.11z" sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" transform="matrix(.13716 0 0 .19922 36.799 809.84)" filter="url(#filter26008)" fill="#666"/>
+    <path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m99.764 134.92c-28.563 0-49.656 26.332-49.656 56.062v106.12c0 29.731 21.093 56.031 49.656 56.031h301.5c23.058 0 36.233 4.7943 43.5 11.5 7.2667 6.7058 10.969 16.889 10.969 34l0.062 61.625 27-0.031-0.062-61.594v-0.031c-0.01-21.347-5.3933-40.651-19.656-53.812-14.27-13.168-35.049-18.656-61.812-18.656h-301.5c-11.522 0-22.656-11.623-22.656-29.031v-106.12c0-17.408 11.135-29.062 22.656-29.062h423.16v-27h-42 [...]
+    <rect style="color:#000000" ry="3.8152" height="107.32" width="22.508" y="893.7" x="87.975" fill="url(#linearGradient50451)"/>
+    <path style="color:#000000" d="m45.652 180.66c0 2.8543-14.698-5.7295-34.916-5.7295-32.567 0-34.745 25.455-41.006 25.19-2.4241-0.10284-0.86439-38.25 40.837-35.137 20.207 1.5088 35.085 4.6491 35.085 15.677z" sodipodi:nodetypes="sssss" inkscape:connector-curvature="0" transform="matrix(.24837 0 0 .12241 97.021 875.06)" filter="url(#filter5851)" fill="#FFF"/>
+    <path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" inkscape:connector-curvature="0" d="m29.093 832.1c-5.4084 0-9.4024 4.9859-9.4024 10.615v20.095c0 5.6295 3.994 10.61 9.4024 10.61h57.089c4.3661 0 6.8608 0.90779 8.2367 2.1775s2.0769 3.198 2.0769 6.4379l0.01183 11.669 5.1124-0.006-0.0118-11.663v-0.006c-0.00094-4.0421-1.0212-7.6972-3.7219-10.189-2.702-2.4934-6.6365-3.5326-11.704-3.5326h-57.089c-2.1816 0-4.29-2.2008-4.29-5.4971v-20.095c0-3.2963 2.1084-5.50 [...]
+    <path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m781.7 97.401c-237.4 0.23749-474.84-0.16911-712.25 0.21875-23.369 2.2736-39.727 26.327-38.076 48.969-0.39642 37.585-0.51427 75.224 0.23226 112.78 2.4929 21.387 20.996 41.917 43.531 40.356 95.285 0.20258 190.59-0.58711 285.88 0.27198 18.99 0.3521 39.64-1.8231 56.375 9.0591 12.329 6.8164 17.719 20.963 18.872 34.336 1.1809 23.642 0.44642 54.32 1.0966 75.992l10.719 0.0489-0.79265-74.183c-0.0783-7.3321-1 [...]
+    <rect style="color:#000000" rx="9.2966" ry="17.686" height="48.339" width="147.18" y="809.15" x="22.512" fill="url(#linearGradient52877)"/>
+    <path style="color:#000000" inkscape:connector-curvature="0" fill="url(#linearGradient48025)" d="m87.85 905.56h22.595c3.6828 29.238 2.773 57.351 0.0512 86.589-7.8837 2.397-15.005 1.5616-22.493 0.15358-2.6462-29.238-3.5222-57.505-0.15357-86.742z" sodipodi:nodetypes="ccccc"/>
+    <path style="color:#000000" d="m439.17 487.01h7.1576c-8.4859 8.9501-6.5044 32.321-9.7148 53.689-1.3723-17.915-3.9847-36.366 2.5572-53.689z" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" transform="matrix(.18935 0 0 .18935 15.963 814.34)" filter="url(#filter18670)" fill="#FC0"/>
+    <path opacity=".81667" style="color:#000000" d="m393.6 482.68h12.108c-3.345 26.498-8.8476 95.689-16.433 158.95-1.9116-52.984 0.50524-105.97 4.3257-158.95z" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" transform="matrix(.18935 0 0 .18935 15.963 814.34)" filter="url(#filter18646)" fill="#c87137"/>
+    <path style="color:#000000" d="m434.22 946.74h12.108c-14.354-38.99-11.003-140.8-16.433-233.89-2.3214 78.047-6.7404 158.42 4.3257 233.89z" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" transform="matrix(.18935 0 0 .18935 15.963 814.34)" filter="url(#filter18638)" fill="#c87137"/>
+    <path opacity=".55833" style="color:#000000" d="m480.24 487.27h-12.108c15.983 38.861 24.555 220.56 15.352 366.98 19.755-137.83 13.012-286.47-3.2443-366.98z" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" transform="matrix(.18935 0 0 .18935 15.963 814.34)" filter="url(#filter18654)" fill="#c87137"/>
+    <path opacity=".52083" style="color:#000000" d="m439.65 946.74h6.6776c-7.9169-38.269-6.0683-138.2-9.0634-229.56-1.2803 76.603-3.7175 155.49 2.3857 229.56z" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" transform="matrix(.18935 0 0 .18935 15.963 814.34)" filter="url(#filter18634)" fill="#FC0"/>
+    <path style="color:#000000" d="m472.39 487.27h-5.3392c7.0482 29.242 17.317 162.72 13.258 272.9 8.7116-103.71-0.75019-212.32-7.9192-272.9z" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" transform="matrix(.18935 0 0 .18935 15.963 814.34)" filter="url(#filter18650)" fill="#FC0"/>
+    <path style="color:#000000" d="m42.898 176.9c0 2.8543-20.207-4.4749-40.425-4.4749-20.277 0-38.737 9.4161-44.608 5.1158-2.4241-1.7756 2.5119-14.411 44.227-12.136 19.995 1.0906 40.806 0.46705 40.806 11.495z" sodipodi:nodetypes="sssss" inkscape:connector-curvature="0" transform="matrix(-.24160 0 0 -.12241 99.635 926.96)" filter="url(#filter5851)"/>
+    <path style="color:#000000" d="m-37.824 392.25h7.1576c-8.4859 21.029-6.5044 75.939-9.7148 126.14-1.3723-42.093-3.9847-85.442 2.5572-126.14z" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" transform="matrix(.30296 .017635 .016139 -.33104 95.709 1099.5)" filter="url(#filter18598)" fill="#FC0"/>
+  </g>
+  <metadata>
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
+        <dc:publisher>
+          <cc:Agent rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title>Paint Rollers</dc:title>
+        <dc:date>2011-06-06T12:56:53</dc:date>
+        <dc:description/>
+        <dc:source>https://openclipart.org/detail/142777/paint-rollers-by-maxim2</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>maxim2</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>Paint Rollers</rdf:li>
+            <rdf:li>tool</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
\ No newline at end of file
diff --git a/images/presets/craft/plumber.png b/images/presets/craft/plumber.png
deleted file mode 100644
index d8faf63..0000000
Binary files a/images/presets/craft/plumber.png and /dev/null differ
diff --git a/images/presets/craft/plumber.svg b/images/presets/craft/plumber.svg
new file mode 100644
index 0000000..b6ed1f4
--- /dev/null
+++ b/images/presets/craft/plumber.svg
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg1901"
+   sodipodi:docname="pipe5.svg"
+   inkscape:export-filename="C:\Documents and Settings\HP_Omistaja\Työpöytä\pgoi.png"
+   viewBox="0 0 13 16"
+   sodipodi:version="0.32"
+   inkscape:export-xdpi="19.749216"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-ydpi="19.749216"
+   inkscape:version="0.91 r13725"
+   width="13"
+   height="16">
+  <defs
+     id="defs1903">
+    <linearGradient
+       id="linearGradient3152">
+      <stop
+         id="stop3154"
+         style="stop-color:#009a11"
+         offset="0" />
+      <stop
+         id="stop3156"
+         style="stop-color:#00cb17"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3158"
+       y2="139.50999"
+       xlink:href="#linearGradient3152"
+       gradientUnits="userSpaceOnUse"
+       x2="-286.42999"
+       y1="139.50999"
+       x1="-742.14001"
+       inkscape:collect="always"
+       gradientTransform="matrix(0.02853817,0,0,0.02749137,-720.96285,617.04918)" />
+    <linearGradient
+       id="linearGradient3166"
+       y2="139.50999"
+       xlink:href="#linearGradient3152"
+       gradientUnits="userSpaceOnUse"
+       x2="-286.42999"
+       gradientTransform="matrix(0.02256855,0,0,0.06968035,-723.96015,618.96697)"
+       y1="139.50999"
+       x1="-742.14001"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="29"
+     pagecolor="#ffffff"
+     gridtolerance="10000"
+     inkscape:window-height="938"
+     inkscape:zoom="179.2"
+     inkscape:window-x="0"
+     showgrid="true"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="2.7027335"
+     inkscape:cy="5.3951293"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1280"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4151"
+       originx="-0.00029001674"
+       originy="-0.0010790054" />
+  </sodipodi:namedview>
+  <g
+     id="layer1"
+     inkscape:label="Taso 1"
+     inkscape:groupmode="layer"
+     transform="translate(742.13968,-618.50493)">
+    <rect
+       id="rect3164"
+       style="fill:url(#linearGradient3166);stroke:#005e04;stroke-width:0.28397593;stroke-linejoin:round"
+       height="11.347969"
+       width="10.059224"
+       y="623.01385"
+       x="-740.59631" />
+    <rect
+       id="rect2380"
+       style="fill:url(#linearGradient3158);stroke:#005e04;stroke-width:0.2800988;stroke-linejoin:round"
+       height="4.4772449"
+       width="12.719748"
+       y="618.64575"
+       x="-741.99945" />
+    <rect
+       id="rect3160"
+       style="fill:#00d818"
+       height="4.1924343"
+       width="1.9576044"
+       y="618.78326"
+       x="-734.31494" />
+    <rect
+       id="rect3162"
+       style="fill:#00d818"
+       height="4.1924343"
+       width="0.77532506"
+       y="618.78326"
+       x="-731.84448" />
+    <rect
+       id="rect3168"
+       style="fill:#00d818"
+       height="10.906265"
+       width="2.0125492"
+       y="623.27881"
+       x="-734.91766" />
+    <rect
+       id="rect3170"
+       style="fill:#00d818"
+       height="10.906265"
+       width="0.7970863"
+       y="623.27881"
+       x="-732.37756" />
+    <rect
+       id="rect3172"
+       style="fill:#00820e"
+       height="4.1968331"
+       width="1.4676896"
+       y="618.78381"
+       x="-741.8468" />
+    <rect
+       id="rect3174"
+       style="fill:#00820e"
+       height="10.949693"
+       width="1.5088837"
+       y="623.26947"
+       x="-740.43939" />
+    <rect
+       id="rect3178"
+       style="fill:#005e04"
+       height="4.3043237"
+       width="0.46123394"
+       y="618.68164"
+       x="-742.06482" />
+    <rect
+       id="rect3180"
+       style="fill:#005e04"
+       height="11.07833"
+       width="0.70262998"
+       y="623.21698"
+       x="-740.72015" />
+    <rect
+       id="rect3182"
+       style="fill:#00820e"
+       height="4.1968331"
+       width="0.22807707"
+       y="618.78381"
+       x="-740.02032" />
+    <rect
+       id="rect3184"
+       style="fill:#00820e"
+       height="10.956841"
+       width="0.23447859"
+       y="623.26337"
+       x="-738.6109" />
+  </g>
+  <metadata
+     id="metadata23">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2010-01-05T16:49:58</dc:date>
+        <dc:description>A cartoonish pipe entrance.</dc:description>
+        <dc:source>https://openclipart.org/detail/28804/a-green-cartoon-pipe-by-purzen</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>purzen</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>bros</rdf:li>
+            <rdf:li>cartoon</rdf:li>
+            <rdf:li>colour</rdf:li>
+            <rdf:li>game</rdf:li>
+            <rdf:li>mario</rdf:li>
+            <rdf:li>outline</rdf:li>
+            <rdf:li>silhouette</rdf:li>
+            <rdf:li>super</rdf:li>
+            <rdf:li>unchecked</rdf:li>
+            <rdf:li>warp</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/craft/pottery.png b/images/presets/craft/pottery.png
deleted file mode 100644
index 07cde5f..0000000
Binary files a/images/presets/craft/pottery.png and /dev/null differ
diff --git a/images/presets/craft/pottery.svg b/images/presets/craft/pottery.svg
new file mode 100644
index 0000000..170d9d0
--- /dev/null
+++ b/images/presets/craft/pottery.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="pottery.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="8.3978093"
+     inkscape:cy="6.8385544"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="fill:#e57210;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 1,1037.3622 0,3 14,0 0,-3 z"
+       id="path4145"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#e57210;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 2,1040.3622 2,11 8,0 2,-11 z"
+       id="path4147"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+</svg>
diff --git a/images/presets/craft/tiler.png b/images/presets/craft/tiler.png
deleted file mode 100644
index 4b5e2f3..0000000
Binary files a/images/presets/craft/tiler.png and /dev/null differ
diff --git a/images/presets/craft/tiler.svg b/images/presets/craft/tiler.svg
new file mode 100644
index 0000000..8814c67
--- /dev/null
+++ b/images/presets/craft/tiler.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="tiler.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="opacity:1;fill:#e7a2a2;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4145"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="opacity:1;fill:#f30f0f;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4147"
+       width="8.0000029"
+       height="8.0002422"
+       x="8"
+       y="1044.3622" />
+    <rect
+       style="opacity:1;fill:#f30f0f;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4149"
+       width="8"
+       height="8.0000172"
+       x="0"
+       y="1036.3622" />
+  </g>
+</svg>
diff --git a/images/presets/craft/window_construction.png b/images/presets/craft/window_construction.png
deleted file mode 100644
index 8647bb9..0000000
Binary files a/images/presets/craft/window_construction.png and /dev/null differ
diff --git a/images/presets/craft/window_construction.svg b/images/presets/craft/window_construction.svg
new file mode 100644
index 0000000..b07a8fb
--- /dev/null
+++ b/images/presets/craft/window_construction.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="window_construction.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="3.5695217"
+     inkscape:cy="7.2167852"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="opacity:1;fill:#d1ad00;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4149"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="opacity:1;fill:#45ffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4153"
+       width="11.999998"
+       height="11.999791"
+       x="2"
+       y="1038.3622" />
+    <path
+       style="fill:#c5feff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 5,1051.3622 10,-11 0,-3 -6.9017857,0 -7.0535714,9.0357 L 1,1051.3622 Z"
+       id="path4155"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <rect
+       style="opacity:1;fill:#a08400;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4151"
+       width="1"
+       height="15.000017"
+       x="1"
+       y="1037.3622" />
+    <rect
+       style="opacity:1;fill:#a08400;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4157"
+       width="2.0000017"
+       height="14.999611"
+       x="14"
+       y="1037.3622" />
+    <rect
+       style="opacity:1;fill:#a08400;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4159"
+       width="12"
+       height="1.0000174"
+       x="2"
+       y="1037.3622" />
+    <rect
+       style="opacity:1;fill:#a08400;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4161"
+       width="12"
+       height="2.0000174"
+       x="2"
+       y="1050.3622" />
+    <rect
+       style="opacity:1;fill:#a08400;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4163"
+       width="12"
+       height="2.0000174"
+       x="2"
+       y="1043.3622" />
+    <rect
+       style="opacity:1;fill:#a08400;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4165"
+       width="2"
+       height="11.999931"
+       x="7"
+       y="1038.3622" />
+  </g>
+</svg>
diff --git a/images/presets/education/college.png b/images/presets/education/college.png
deleted file mode 100644
index c620e58..0000000
Binary files a/images/presets/education/college.png and /dev/null differ
diff --git a/images/presets/education/college.svg b/images/presets/education/college.svg
new file mode 100644
index 0000000..f56b0d4
--- /dev/null
+++ b/images/presets/education/college.svg
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="college2.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs20" />
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="26.715378"
+     inkscape:cx="0.78435316"
+     inkscape:cy="5.9758893"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4230" />
+  </sodipodi:namedview>
+  <g
+     id="g1327"
+     style="fill:#e5d76d;fill-opacity:1;stroke:#b68500;stroke-width:39.66518402;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     transform="matrix(0.02602963,0,0,0.02586494,0.45267931,0.48737964)">
+    <path
+       d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z"
+       style="fill:#e5d76d;fill-opacity:1;stroke:#b68500;stroke-width:39.66518402;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path1329"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-536.27327,-597.30675)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <path
+     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 4.1949429,7.560056 3.4757791,7.5704954 C 3.3754312,7.7374657 3.303149,7.9471169 3.2258369,8.1965155 3.1144199,8.5559076 3.0201286,8.9865466 2.9646616,9.415693 c -0.2090299,1.617144 -0.209539,2.365141 -0.209539,2.365141 l 0.4789451,0 c 0,0 -8.628e-4,-0.704859 0.2057946,-2.3038849 0.051852,-0.4011412 0.1414153,-0.8108754 0.2432126,-1.1392426 0.1017973,-0.3283586 0.2437216,-0.586195 0.27988,-0.6215337 0.084723,-0.082825 0.1584376,-0.1243499 0.2065452,-0.1456774 0.010698,-0.00518 0 [...]
+     id="path2666"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 7.514894,4.1032709 1.5680571,7.0846569 8.9793547,7.1838659 14.378458,4.3737295 7.514894,4.1032709 Z"
+     id="path2662"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 4.0277138,9.5987452 4.6702902,7.7034815 9.1482404,7.8309546 12.129738,6.2106791 13.322533,7.5932809 c 0,0 -1.505882,0.1656935 -2.162073,0.5726324 -0.656191,0.4069389 -1.5073488,1.3866569 -1.5073488,1.3866569 0,0 -1.8531175,-0.6407992 -2.7100127,-0.6551901 C 5.3070689,8.8699443 4.1292954,9.576831 4.0277138,9.5987452 Z"
+     id="path2664"
+     sodipodi:nodetypes="cccccscsc"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.37024984;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+     d="m 3.5295464,11.221281 c 0,0.313321 -0.3505229,1.141339 -0.6643957,1.141339 -0.3138728,0 -0.4728194,-0.828018 -0.4728194,-1.141339 0,-0.31332 0.254739,-0.567611 0.5686118,-0.567611 0.3138642,0 0.5686033,0.254291 0.5686033,0.567611 z"
+     id="path3462"
+     sodipodi:nodetypes="csssc"
+     inkscape:connector-curvature="0" />
+  <path
+     id="path3466"
+     d="M 2.9425059,11.338487 2.6375282,12.64464 2.9425059,11.338487 Z"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="ccc"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 3.5283213,11.331818 3.1022118,12.732512 3.5283213,11.331818 Z"
+     id="path3468"
+     sodipodi:nodetypes="ccc"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:nodetypes="ccc"
+     id="path3471"
+     d="M 2.3229824,11.203439 2.2203483,12.475746 2.3229824,11.203439 Z"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:nodetypes="ccc"
+     id="path3482"
+     d="M 2.5529516,11.301656 2.4503175,12.573962 2.5529516,11.301656 Z"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:nodetypes="ccc"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 3.1819741,11.386302 2.8769964,12.692454 3.1819741,11.386302 Z"
+     id="path3484"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/education/driving_school.png b/images/presets/education/driving_school.png
deleted file mode 100644
index 0dbe5e0..0000000
Binary files a/images/presets/education/driving_school.png and /dev/null differ
diff --git a/images/presets/education/driving_school.svg b/images/presets/education/driving_school.svg
new file mode 100644
index 0000000..bfb9ac3
--- /dev/null
+++ b/images/presets/education/driving_school.svg
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="driving_school3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="13.252561"
+     inkscape:cy="7.6487646"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       id="g3927"
+       transform="matrix(0.7645608,0,0,0.7645608,11.392749,247.77119)">
+      <rect
+         ry="2"
+         y="1036.3622"
+         x="0"
+         height="16"
+         width="6"
+         id="rect3804"
+         style="fill:#000000;fill-opacity:1;stroke:none" />
+      <circle
+         r="2"
+         cy="709.36218"
+         cx="638"
+         transform="matrix(1.0952381,0,0,1.0952381,-695.7619,262.44169)"
+         id="path3024"
+         style="fill:#ff0000;fill-opacity:1;stroke:#b20505;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <circle
+         r="2"
+         cy="714.36218"
+         cx="638"
+         transform="matrix(1.0952381,0,0,1.0952381,-695.7619,261.9655)"
+         id="path3796"
+         style="fill:#ffff00;fill-opacity:1;stroke:#ffd600;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <circle
+         r="2"
+         cy="719.36218"
+         cx="638"
+         transform="matrix(1.0952381,0,0,1.0952381,-695.76189,261.48932)"
+         id="path3798"
+         style="fill:#00ff00;fill-opacity:1;stroke:#00b200;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <g
+       id="g4201"
+       style="fill:#ffffff">
+      <circle
+         inkscape:export-ydpi="2.0869565"
+         inkscape:export-xdpi="2.0869565"
+         id="circle6"
+         style="fill:#ffffff;stroke:#000000;stroke-width:1.47277796;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         r="4.3446951"
+         cy="1046.8955"
+         cx="5.3551645" />
+      <circle
+         inkscape:export-ydpi="2.0869565"
+         inkscape:export-xdpi="2.0869565"
+         inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.OMM\svg\circle6.png"
+         id="path3602"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.98999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47277796;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+         cx="5.3551645"
+         cy="1046.8955"
+         r="0.22904202" />
+      <rect
+         inkscape:export-ydpi="2.0869565"
+         inkscape:export-xdpi="2.0869565"
+         inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.OMM\svg\circle6.png"
+         y="1046.8953"
+         x="1.7512443"
+         height="0.00065177778"
+         width="7.2078404"
+         id="rect3604"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.98999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.4796108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+      <rect
+         inkscape:export-ydpi="2.0869565"
+         inkscape:export-xdpi="2.0869565"
+         inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.OMM\svg\circle6.png"
+         transform="matrix(0,-1,1,0,0,0)"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.98999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.4796108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+         id="rect3606"
+         width="7.2078404"
+         height="0.00065177778"
+         x="-1050.4995"
+         y="5.3548388" />
+      <rect
+         inkscape:export-ydpi="2.0869565"
+         inkscape:export-xdpi="2.0869565"
+         inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.OMM\svg\circle6.png"
+         transform="matrix(0.69496168,0.71904678,-0.71904678,0.69496168,0,0)"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.98999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.47961068;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+         id="rect3608"
+         width="7.2078385"
+         height="0.00065177761"
+         x="752.88458"
+         y="723.70135" />
+      <rect
+         inkscape:export-ydpi="2.0869565"
+         inkscape:export-xdpi="2.0869565"
+         inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.OMM\svg\circle6.png"
+         y="731.40259"
+         x="745.44135"
+         height="0.00065177761"
+         width="7.2078385"
+         id="rect3610"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.98999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.47961068;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+         transform="matrix(-0.69496168,0.71904678,0.71904678,0.69496168,0,0)" />
+    </g>
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ee1c23;stroke-width:0.92498952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 6.0855973,1036.8683 6.8419437,0 -3.4209722,6.0424 z"
+       id="path4208"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+  </g>
+</svg>
diff --git a/images/presets/education/library.svg b/images/presets/education/library.svg
new file mode 100644
index 0000000..b1236f6
--- /dev/null
+++ b/images/presets/education/library.svg
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="library3.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="58.987334"
+     inkscape:cx="8.5891415"
+     inkscape:cy="6.556354"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4186" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="6.1230318e-014 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3826"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3855"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3909"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3950"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3972"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3994"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4016"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4837"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4971"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6216"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6764"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6817"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.79354273,1.2601716)"
+       xlink:href="#linearGradient829"
+       id="radialGradient874"
+       cx="180.2453"
+       cy="198.41902"
+       r="101.58017"
+       fx="180.2453"
+       fy="198.41902" />
+    <linearGradient
+       id="linearGradient829">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0.341667;"
+         offset="0.0000000"
+         id="stop830" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1.0000000"
+         id="stop831" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.007004,0.99304475)"
+       xlink:href="#linearGradient829"
+       id="radialGradient832"
+       cx="360.85147"
+       cy="167.47372"
+       r="46.394722"
+       fx="360.85147"
+       fy="167.47372" />
+    <linearGradient
+       id="linearGradient6826">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0.341667;"
+         offset="0.0000000"
+         id="stop6828" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1.0000000"
+         id="stop6830" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.74491357,1.3424376)"
+       xlink:href="#linearGradient855"
+       id="linearGradient850"
+       x1="465.29425"
+       y1="248.24467"
+       x2="463.27057"
+       y2="405.76871"
+       spreadMethod="pad" />
+    <linearGradient
+       id="linearGradient855">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="0.0000000"
+         id="stop856" />
+      <stop
+         style="stop-color: rgb(255, 166, 23); stop-opacity: 0.733333;"
+         offset="1.0000000"
+         id="stop857" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.4586159,0.68558144)"
+       xlink:href="#linearGradient855"
+       id="linearGradient854"
+       x1="157.80582"
+       y1="120.96176"
+       x2="155.40575"
+       y2="231.6349" />
+    <linearGradient
+       id="linearGradient6837">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="0.0000000"
+         id="stop6839" />
+      <stop
+         style="stop-color: rgb(255, 166, 23); stop-opacity: 0.733333;"
+         offset="1.0000000"
+         id="stop6841" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective6928"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10781"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10806"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10878"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10919"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <clipPath
+       id="clipoutline2"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 55.8,12 0.76,0.16 c 8.84,-2.94 28.68,8.64 24.26,18.96 -1.12,1.62 -0.93,4.5 0.42,6.31 L 56.43,62.25 c -1.39,-1.39 -4.48,-1.36 -5.9,0 L 9.5,101.63 c -3.74,3.59 -0.8,6.64 0.78,8.25 l 7.36,7.36 c 1.61,1.6 5.86,3.76 8.88,0.56 L 65.24,76.99 c 1.35,-1.42 1.36,-4.47 0,-5.87 0,0 0.01,-0.02 0,-0.02 L 90.15,46.2 c 2.63,2.37 5.113827,2.574854 7.47,1.93 4.55057,-1.245432 7.08725,3.206643 9.81,6.46 l -1.23,1.21 c -1.82,1.84 -1.65,4.94 0.39,6.98 2.04,2.04 5.15,2.21 6.97,0.39 l 8.14,-8.13  [...]
+         id="outline2" />
+    </clipPath>
+  </defs>
+  <g
+     id="g1327"
+     style="fill:#ffffff;stroke:none"
+     transform="matrix(0.02775633,0,0,0.02770795,-0.04729675,-0.04723)">
+    <path
+       d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z"
+       style="fill:#ffffff;stroke:none;stroke-width:3.40799999"
+       id="path1329"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-536.27327,-597.30675)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g3338"
+     transform="matrix(0.03854698,-0.0067251,0.0067251,0.03854698,-5.1054902,-1.54989)" />
+  <ellipse
+     style="fill:#000000"
+     cx="8.1412296"
+     cy="3.048584"
+     id="circle2193"
+     rx="2.0264597"
+     ry="2.0264595" />
+  <path
+     style="fill:#000000"
+     inkscape:connector-curvature="0"
+     d="m 10.109845,5.56771 c 0.927395,0.0336 1.31552,0.77439 1.31552,0.77439 l 2.991174,4.09957 c 0.123155,0.18473 0.195928,0.40492 0.195928,0.64563 0,0.63816 -0.516878,1.15504 -1.155045,1.15504 -0.151145,0 -0.291093,-0.0336 -0.425444,-0.084 l -1.804408,-0.50195 0,1.80068 -6.2603796,0 0,-1.80068 -1.8044074,0.50195 c -0.1287531,0.0504 -0.272434,0.084 -0.4254448,0.084 -0.6381669,0 -1.1550447,-0.51688 -1.1550447,-1.15504 0,-0.24071 0.072773,-0.4609 0.1996604,-0.64563 L 4.7693959,6.3421 c 0 [...]
+     id="path2195" />
+  <path
+     style="fill:#000000"
+     inkscape:connector-curvature="0"
+     d="m 14.53223,14.959162 c 0.160474,0 0.287361,-0.191239 0.287361,-0.433087 l 0,0 c 0,-0.241863 -0.126887,-0.433102 -0.287361,-0.433102 l -12.640183,0 c -0.1548768,0 -0.2873617,0.191239 -0.2873617,0.433102 l 0,0 c 0,0.241848 0.1324849,0.433087 0.2873617,0.433087 l 12.640183,0 z"
+     id="path2197" />
+</svg>
diff --git a/images/presets/education/school.png b/images/presets/education/school.png
deleted file mode 100644
index 1befbfc..0000000
Binary files a/images/presets/education/school.png and /dev/null differ
diff --git a/images/presets/education/school.svg b/images/presets/education/school.svg
new file mode 100644
index 0000000..0eabfe8
--- /dev/null
+++ b/images/presets/education/school.svg
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="15.999999"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="school3.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="61.062931"
+     inkscape:cx="8.7350305"
+     inkscape:cy="8.9119699"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4219" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowStart">
+      <path
+         id="path3634"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowEnd">
+      <path
+         id="path3631"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2510"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2611">
+      <path
+         id="path1325"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2608">
+      <path
+         id="path1322"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2605"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2656"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4223-2"
+       id="linearGradient4229-0"
+       x1="9.4411364"
+       y1="8.999999"
+       x2="-9"
+       y2="-4.000001"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4223-2">
+      <stop
+         style="stop-color:#005d00;stop-opacity:1"
+         offset="0"
+         id="stop4225-2" />
+      <stop
+         style="stop-color:#008000;stop-opacity:0;"
+         offset="1"
+         id="stop4227-8" />
+    </linearGradient>
+  </defs>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-536.27327,-597.30675)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <path
+     id="path3526"
+     style="opacity:1;fill:none;fill-rule:evenodd;stroke:#804e08;stroke-width:1.03097248;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1.4129583,15.477724 1.50149,-3.63519 2.25264,-1.29915 0.0548,-4.9269304 0.61987,-1.34745 1.58252,-3.74675002 m 6.1170997,14.95547042 -1.13522,-2.74842 -3.6200997,-5.8698204 0.1387,-3.04528 -1.39466,-3.29195002"
+     sodipodi:nodetypes="ccccccccccc"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#804e08;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1,11.999899 14,0"
+     id="path4221"
+     inkscape:connector-curvature="0" />
+  <rect
+     y="3.3071737"
+     x="1.313674"
+     height="8.3791513"
+     width="13.372833"
+     id="rect3544"
+     style="fill:#ffffff;fill-opacity:1;stroke:#005800;stroke-width:0.62734801;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+  <path
+     style="fill:url(#linearGradient4229-0);fill-opacity:1;stroke:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+     d="m 1.3795578,3.439849 0,8.379646 13.3728852,0 0,-8.379646 z M 3.517256,4.2313246 c 0.3745631,0 0.6751058,0.021736 0.9023031,0.063745 0.2271973,0.042009 0.416755,0.1296629 0.5682259,0.2628511 0.1064328,0.092211 0.1903695,0.2222754 0.2517826,0.3913268 0.061395,0.1690422 0.092083,0.330815 0.092092,0.4844964 l 0,1.4407402 c -9.1e-6,0.1536814 0.00994,0.2748147 0.029375,0.361902 0.019431,0.087124 0.06185,0.1982205 0.1273601,0.3334634 l -1.1727048,0 C 4.2686172,7.4858304 4.2379654,7.4216 [...]
+     id="rect3530-7"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccsccccccccccscscccccsccccccccsccccscscscccccscscscccscccscsccscccccccsccscccccssscscscs" />
+</svg>
diff --git a/images/presets/education/university.png b/images/presets/education/university.png
deleted file mode 100644
index 52b5153..0000000
Binary files a/images/presets/education/university.png and /dev/null differ
diff --git a/images/presets/education/university.svg b/images/presets/education/university.svg
new file mode 100644
index 0000000..0d39727
--- /dev/null
+++ b/images/presets/education/university.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="university1.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="26.715378"
+     inkscape:cx="4.3704932"
+     inkscape:cy="2.7330724"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4230" />
+  </sodipodi:namedview>
+  <g
+     id="g1327"
+     style="fill:#d74545;fill-opacity:1;stroke:#6d0000;stroke-width:39.66518402;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     transform="matrix(0.02602963,0,0,0.02586494,0.45267931,0.48737964)">
+    <path
+       d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z"
+       style="fill:#d74545;fill-opacity:1;stroke:#6d0000;stroke-width:39.66518402;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path1329"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-536.27327,-597.30675)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <path
+     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 4.1949429,7.560056 3.4757791,7.5704954 C 3.3754312,7.7374657 3.303149,7.9471169 3.2258369,8.1965155 3.1144199,8.5559076 3.0201286,8.9865466 2.9646616,9.415693 c -0.2090299,1.617144 -0.209539,2.365141 -0.209539,2.365141 l 0.4789451,0 c 0,0 -8.628e-4,-0.704859 0.2057946,-2.3038849 0.051852,-0.4011412 0.1414153,-0.8108754 0.2432126,-1.1392426 0.1017973,-0.3283586 0.2437216,-0.586195 0.27988,-0.6215337 0.084723,-0.082825 0.1584376,-0.1243499 0.2065452,-0.1456774 0.010698,-0.00518 0 [...]
+     id="path2666"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 7.514894,4.1032709 1.5680571,7.0846569 8.9793547,7.1838659 14.378458,4.3737295 7.514894,4.1032709 Z"
+     id="path2662"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 4.0277138,9.5987452 4.6702902,7.7034815 9.1482404,7.8309546 12.129738,6.2106791 13.322533,7.5932809 c 0,0 -1.505882,0.1656935 -2.162073,0.5726324 -0.656191,0.4069389 -1.5073488,1.3866569 -1.5073488,1.3866569 0,0 -1.8531175,-0.6407992 -2.7100127,-0.6551901 C 5.3070689,8.8699443 4.1292954,9.576831 4.0277138,9.5987452 Z"
+     id="path2664"
+     sodipodi:nodetypes="cccccscsc"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.37024984;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+     d="m 3.5295464,11.221281 c 0,0.313321 -0.3505229,1.141339 -0.6643957,1.141339 -0.3138728,0 -0.4728194,-0.828018 -0.4728194,-1.141339 0,-0.31332 0.254739,-0.567611 0.5686118,-0.567611 0.3138642,0 0.5686033,0.254291 0.5686033,0.567611 z"
+     id="path3462"
+     sodipodi:nodetypes="csssc"
+     inkscape:connector-curvature="0" />
+  <path
+     id="path3466"
+     d="M 2.9425059,11.338487 2.6375282,12.64464 2.9425059,11.338487 Z"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="ccc"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 3.5283213,11.331818 3.1022118,12.732512 3.5283213,11.331818 Z"
+     id="path3468"
+     sodipodi:nodetypes="ccc"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:nodetypes="ccc"
+     id="path3471"
+     d="M 2.3229824,11.203439 2.2203483,12.475746 2.3229824,11.203439 Z"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:nodetypes="ccc"
+     id="path3482"
+     d="M 2.5529516,11.301656 2.4503175,12.573962 2.5529516,11.301656 Z"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:nodetypes="ccc"
+     style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.2392623;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 3.1819741,11.386302 2.8769964,12.692454 3.1819741,11.386302 Z"
+     id="path3484"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/food/biergarten.png b/images/presets/food/biergarten.png
deleted file mode 100644
index a4dd2d4..0000000
Binary files a/images/presets/food/biergarten.png and /dev/null differ
diff --git a/images/presets/food/biergarten.svg b/images/presets/food/biergarten.svg
new file mode 100644
index 0000000..36c5ebe
--- /dev/null
+++ b/images/presets/food/biergarten.svg
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   sodipodi:docname="beer4.svg"
+   viewBox="0 0 453.72462 441.64626"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="453.72461"
+   height="441.64627">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient4213"
+       y2="349.41"
+       gradientUnits="userSpaceOnUse"
+       x2="122.01"
+       y1="121.23"
+       x1="121.87"
+       inkscape:collect="always"
+       gradientTransform="translate(206.15,216.44)">
+      <stop
+         id="stop4209"
+         style="stop-color:#ef8900"
+         offset="0" />
+      <stop
+         id="stop4211"
+         style="stop-color:#5d2500"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient4221"
+       gradientUnits="userSpaceOnUse"
+       cy="45.060001"
+       cx="126.23"
+       gradientTransform="matrix(1.7551,6.3148e-8,-1.0548e-8,1.7657,110.829,200.217)"
+       r="117.84"
+       inkscape:collect="always">
+      <stop
+         id="stop4217"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop4219"
+         style="stop-color:#c5c5c5"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient4235"
+       y2="117.64"
+       gradientUnits="userSpaceOnUse"
+       x2="160.42"
+       y1="186.8"
+       x1="113.13"
+       inkscape:collect="always"
+       gradientTransform="translate(206.15,216.44)">
+      <stop
+         id="stop4231"
+         style="stop-color:#ff7f2a"
+         offset="0" />
+      <stop
+         id="stop4233"
+         style="stop-color:#813300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:window-maximized="1"
+     inkscape:zoom="0.59807535"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="-12.508738"
+     inkscape:cy="530.92191"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-214.53904,-154.32447)">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#linearGradient4213);stroke:#000000;stroke-width:1px"
+       d="m 271.025,285.596 c -19.529,-0.024 -34.948,0.151 -36.5,0.594 -4.138,1.182 -7.687,5.312 -7.687,5.312 0,0 1.786,15.961 2.968,21.282 1.183,5.316 8.279,115.88 7.688,124.16 -0.591,8.28 2.338,106.4 1.156,111.72 -1.108,4.99 -2.21,10.49 -2.344,10.19 -0.033,0.38 -1.765,20.6 -0.594,23.53 1.183,2.95 68.576,14.18 99.908,13 31.33,-1.18 94.58,-8.27 98.12,-13 3.55,-4.73 -3.55,-28.98 -1.18,-31.94 2.36,-2.96 6.49,-4.73 13,-6.5 6.5,-1.77 33.71,-12.99 40.81,-18.31 7.09,-5.32 23.05,-33.11 26.59,-4 [...]
+       id="path4180" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#linearGradient4235)"
+       d="m 237.481,344.72 c 0,0 5.3204,-27.193 11.823,-30.74 6.5027,-3.5469 41.972,-6.5027 49.066,-4.7292 7.0938,1.7735 24.828,15.37 28.966,20.099 4.1381,4.7292 11.823,34.878 13.596,43.154 1.7735,8.2761 4.1381,40.198 5.3204,43.154 1.1823,2.9558 8.8673,18.917 17.143,18.917 8.2761,0 26.011,-15.961 29.558,-22.464 3.5469,-6.5027 4.1381,-13.596 14.779,-26.602 10.641,-13.005 8.2761,-37.834 12.414,-43.154 4.1381,-5.3204 1.1823,-8.8673 5.9115,-5.9115 4.7292,2.9558 7.0938,7.685 10.641,3.5469 3.5 [...]
+       id="path4189" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient4221);stroke:#000000;stroke-width:1px"
+       d="m 229.796,319.89 c 0,0 2.3646,-17.143 4.7292,-18.917 2.3646,-1.7735 62.071,-7.0938 66.8,-6.5027 4.7292,0.59115 19.508,8.2761 30.74,8.2761 11.232,0 16.552,2.3646 20.69,4.7292 4.1381,2.3646 8.8673,10.05 13.005,11.232 4.1381,1.1823 13.596,7.0938 12.414,11.232 -1.1823,4.1381 -1.7734,21.873 -1.1823,25.42 0.59115,3.5469 2.9558,10.05 2.9558,10.05 0,0 0,4.7292 2.9558,5.9115 2.9558,1.1823 8.8673,1.1823 8.8673,-3.5469 0,-4.7292 -2.9558,-5.9115 -4.1381,-11.823 -1.1823,-5.9115 -2.9558,-9.4 [...]
+       id="path4182" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#ffffff;stroke:#000000;stroke-width:1px"
+       d="m 232.752,311.615 2.3646,18.326 c 0,0 10.641,162.57 9.4584,173.21 -1.1823,10.641 -4.7292,39.016 -1.1823,43.745 3.5469,4.7292 3.5469,9.4584 5.9115,10.05 2.3646,0.59115 21.281,7.0938 35.469,6.5027 14.188,-0.59115 87.49,0 99.314,-1.7735 11.823,-1.7734 27.193,-4.1381 34.287,-7.0938 7.0938,-2.9558 7.685,-4.7292 10.05,-1.7735 2.3646,2.9558 5.9115,12.414 3.5469,14.188 -2.3646,1.7735 -28.375,13.005 -38.425,11.232 -10.05,-1.7735 -58.524,-4.7292 -73.894,-4.7292 -15.37,0 -34.287,2.9558 -4 [...]
+       id="path4184" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#803300"
+       d="m 428.42,341.76 c 0,0 0,34.878 0.59115,46.701 0.59115,11.823 -2.3646,78.032 -4.1381,85.717 -1.7735,7.685 -1.1823,11.823 0,18.326 1.1823,6.5027 0,8.2761 0,8.2761 0,0 3.5469,-21.873 4.1381,-27.193 0.59115,-5.3204 3.5469,-80.397 4.1381,-85.126 0.59116,-4.7292 4.7292,-20.69 5.9115,-26.602 1.1823,-5.9115 2.9558,-8.8673 0,-13.005 -2.9558,-4.1381 -1.1823,-2.3646 -4.7292,-4.7292 -3.5469,-2.3646 -5.9115,0 -5.9115,-2.3646 z"
+       id="path4191" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#803300"
+       d="m 242.801,326.39 c 1.7735,7.685 4.1381,108.18 4.7292,115.27 0.59115,7.0938 3.5469,37.243 2.3646,46.11 -1.1823,8.8673 -1.7735,10.641 -2.9558,13.596 -1.1823,2.9558 -1.7735,-11.232 -1.7735,-11.232 0,0 -7.685,-103.45 -6.5027,-107.59 1.1823,-4.1381 -2.3646,-40.198 -0.59115,-44.928 1.7735,-4.7292 4.1381,-12.414 4.7292,-11.232 z"
+       id="path4193" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#000000;fill-opacity:0.43819999"
+       d="m 251.078,533.3 c 2.9558,7.0938 4.1381,11.823 10.05,12.414 5.9115,0.59115 54.386,3.5469 66.209,3.5469 11.823,0 69.756,0 78.032,-5.9115 8.2761,-5.9115 11.232,-3.5469 14.188,-14.188 2.9558,-10.641 4.7292,-23.646 2.3646,-27.784 -2.3646,-4.1381 5.9115,10.05 5.9115,18.326 0,8.2761 -4.1381,13.596 -9.4584,21.873 -5.3204,8.2761 -13.005,12.414 -24.237,12.414 -11.232,0 -24.237,1.7734 -32.513,0.59115 -8.2761,-1.1823 -14.188,-2.3646 -25.42,0.59115 -11.232,2.95575 -53.204,-0.59115 -64.436,- [...]
+       id="path4195" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#ffffff;fill-opacity:0.71535998"
+       d="m 251.078,323.44 c 1.7735,7.685 9.4584,33.696 8.8673,42.563 -0.59115,8.8673 -1.1823,36.651 -2.3646,49.657 -1.1823,13.005 -4.7292,31.922 -2.9558,49.066 1.7735,17.143 4.1381,23.055 1.1823,29.558 -2.9558,6.5027 -7.0938,15.961 -7.0938,15.961 0,0 16.552,-21.873 17.735,-27.193 1.1823,-5.3204 -4.1381,-30.74 -2.9558,-43.745 1.1823,-13.005 2.9558,-42.563 5.3204,-56.751 2.3646,-14.188 3.5469,-26.602 0.59115,-39.607 -2.95575,-13.005 -17.735,-21.281 -18.326,-19.508 z"
+       id="path4197" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 442.97,329.88 c 0,-3.5469 2.5886,27.249 1.9975,27.249 -0.0368,-0.92399 45.677,0.8309 52.77,3.7867 7.0938,2.9558 6.5026,22.598 7.0938,33.239 0.59115,10.641 -0.59375,37.86 -0.59375,46.727 0,8.8673 -16.964,47.719 -22.284,54.221 -5.3204,6.5027 -12.953,12.546 -18.273,18.458 -5.3204,5.9115 -24.57,4.9296 -29.299,3.7473 -4.7292,-1.1823 4.4919,27.852 10.995,26.079 6.5027,-1.7734 33.719,-13.177 40.812,-18.497 7.0938,-5.3204 22.492,-32.742 26.039,-43.974 3.5469,-11.232 12.594,-36.896 13 [...]
+       style="fill:#afafaf;fill-opacity:1"
+       sodipodi:nodetypes="ccsssssccssssscc"
+       id="path4223" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#000000;stroke:#000000;stroke-width:1px"
+       d="m 442.32,330.24 c 0,0 2.069,5.1726 2.5124,7.685 0.44336,2.5124 1.3301,10.789 1.0345,13.449 -0.29557,2.6602 0.59115,5.3204 -0.44336,5.4682 -1.0345,0.14778 -1.1823,-2.2168 -1.1823,-3.9903 0,-1.7735 -0.29557,-9.1629 -0.88672,-11.675 -0.59116,-2.5124 -0.73894,-4.2858 -1.1823,-6.0593 -0.44336,-1.7734 0.59115,-5.1726 0.14779,-4.877 z"
+       id="path4225" />
+    <g
+       id="g4184"
+       transform="matrix(0,-0.58645593,0.58645593,0,583.01953,560.34528)">
+      <path
+         sodipodi:nodetypes="scccccccccccssccccccccccccccsscccsscccs"
+         inkscape:connector-curvature="0"
+         id="path7219"
+         d="m 363.50588,-211.37402 c -20.77687,0.25561 -41.59817,5.17326 -60.83197,14.93463 -0.21623,0.0997 -0.41765,0.21597 -0.63307,0.31653 -0.2841,0.14603 -0.57989,0.25469 -0.86327,0.40286 l 0,0.0288 c -81.29386,38.60382 -104.5705,140.660016 -66.78856,215.875806 52.47328,109.813984 186.72378,147.358044 294.31852,112.685914 98.6607,-27.23883 180.9134,-124.3618142 160.4825,-234.0621 -0.1271,-0.6821 -0.2103,-1.36002 -0.3453,-2.04308 l -0.0576,0 c -11.4993,-76.23032 -89.7178,-121.98495 -1 [...]
+         style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:72.95391083;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <g
+         transform="matrix(1.3973279,-0.2437849,0.2437849,1.3973279,-22.099611,-388.11715)"
+         id="g3338" />
+      <path
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccsccccsccccccccssccsccsccsccccccssccsccsccsccsccsccsccccccsscccssccssccccccccccccccsccsccssccsccsccsccsccsccccccssccsccccssccsccccssccsccsccsccccsccsccsccccssccsccccssccccccssccsccsccsccccccssccsc"
+         id="path7165"
+         d="m 363.50589,-211.37402 c -20.77687,0.25561 -41.59817,5.17326 -60.83197,14.93463 -0.21623,0.0997 -0.41765,0.21597 -0.63307,0.31653 -0.2841,0.14604 -0.57989,0.25469 -0.86327,0.40286 l 0,0.0288 C 219.88371,-157.0874 196.60707,-55.031194 234.38902,20.184606 286.8623,129.99858 421.1128,167.54264 528.70758,132.87052 627.36824,105.63169 709.6209,8.5086958 689.19004,-101.19159 c -0.12703,-0.6821 -0.2103,-1.36002 -0.34531,-2.04308 l -0.0575,0 c -11.4994,-76.23033 -89.71793,-121.98496  [...]
+         style="fill:#d45500;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:72.95391083;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+  </g>
+  <metadata
+     id="metadata26">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2010-07-17T14:58:12</dc:date>
+        <dc:description>Beer,Drink,cool,drunk,water,bujung,thirsty</dc:description>
+        <dc:source>https://openclipart.org/detail/73591/beer-by-aungkarns</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>aungkarns</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>Beer</rdf:li>
+            <rdf:li>Drink</rdf:li>
+            <rdf:li>bujung</rdf:li>
+            <rdf:li>cool</rdf:li>
+            <rdf:li>drunk</rdf:li>
+            <rdf:li>thirsty</rdf:li>
+            <rdf:li>water</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/food/cafe.png b/images/presets/food/cafe.png
deleted file mode 100644
index d2b00e8..0000000
Binary files a/images/presets/food/cafe.png and /dev/null differ
diff --git a/images/presets/food/cafe.svg b/images/presets/food/cafe.svg
new file mode 100644
index 0000000..8d723b1
--- /dev/null
+++ b/images/presets/food/cafe.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="16"
+   height="15"
+   viewBox="0 0 16 15"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="cafe5.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="33.714286"
+     inkscape:cx="1.4970704"
+     inkscape:cy="7.5720653"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4135" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape- [...]
+     id="rect4137"
+     width="16"
+     height="14.999998"
+     x="0"
+     y="0"
+     ry="3" />
+  <rect
+     width="14"
+     height="14"
+     x="0"
+     y="1"
+     id="canvas"
+     style="visibility:hidden;fill:none;stroke:none" />
+  <path
+     d="m 2,2 0,6 c 0,2 2,3 4.5,3 C 9,11 11,10 11,8 l 2,0 c 1,0 2,-1 2,-2 L 15,5 C 15,4 14,3 13,3 l -2,0 0,-1 z m 9,2.25 1.75,0 c 0.667788,0 1,0.5628359 1,1.25 0,0.6871641 -0.388201,1.25 -1,1.25 L 11,6.75 Z M 1,12 c 0,1 1,2 2,2 l 7,0 c 1,0 2,-1 2,-2 z"
+     id="cafe"
+     style="fill:#734a08;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/food/drinking_water.png b/images/presets/food/drinking_water.png
deleted file mode 100644
index c866b87..0000000
Binary files a/images/presets/food/drinking_water.png and /dev/null differ
diff --git a/images/presets/food/drinking_water.svg b/images/presets/food/drinking_water.svg
new file mode 100644
index 0000000..7b98085
--- /dev/null
+++ b/images/presets/food/drinking_water.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="100%"
+   height="100%"
+   viewBox="0 0 14 14"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="drinking_water.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="23.8396"
+     inkscape:cx="-2.3064683"
+     inkscape:cy="4.7196563"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     width="14"
+     height="14"
+     x="0"
+     y="0"
+     id="canvas"
+     style="fill:none;stroke:none;visibility:hidden" />
+  <path
+     d="m 1,6 1.5,8 5,0 L 9,6 z M 2.18,7 7.81,7 7.44,9 2.55,9 M 4,5 C 4,3 5,2 7,2 L 8,2 8,1 7,1 C 6,1 6,0 7,0 l 3,0 c 1,0 1,1 0,1 l -1,0 0,1 4,0 0,1.5 -6,0 C 5.91526,3.49111 5.5,3.9824765 5.5,5 z"
+     id="drinking-water"
+     style="fill:#3959ff;fill-opacity:1" />
+</svg>
diff --git a/images/presets/food/fast_food.svg b/images/presets/food/fast_food.svg
new file mode 100644
index 0000000..9ed126a
--- /dev/null
+++ b/images/presets/food/fast_food.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="14.06"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="fastfood17.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="29.493668"
+     inkscape:cx="6.2590352"
+     inkscape:cy="4.3700428"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4147" />
+  </sodipodi:namedview>
+  <path
+     style="fill:#cb7842;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 8.0256981,9.0650255 c 0.1066,-0.93342 -0.59998,-1.8638298 -2.11974,-1.9435898 l -2.8804316,0 c -1.51977,0.0798 -2.23306996,1.0101698 -2.13988996,1.9435898 z"
+     id="path4152" />
+  <path
+     style="fill:#cb7842;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 0.90258933,12.068739 c -0.0932,0.93302 0.62011997,1.924531 2.13988997,1.991261 l 2.8804316,0 c 1.51976,-0.0667 2.22634,-1.058241 2.11974,-1.991261 z"
+     id="path4150" />
+  <path
+     style="fill:#6e1f00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 8.3299442,9.9039051 -7.6500142,0 c -0.18637,1e-5 -0.34628,0.0666 -0.47974,0.1998899 C 0.06673,10.237065 0,10.390365 0,10.563695 c 0,0.2002 0.0667,0.36357 0.20019,0.49011 0.13346,0.12655 0.29337,0.18982 0.47974,0.18982 l 7.6500142,0 c 0.18676,0 0.34677,-0.0633 0.48004,-0.18982 0.13325,-0.12654 0.19988,-0.28991 0.19989,-0.49011 -10e-6,-0.17333 -0.0666,-0.32663 -0.19989,-0.4599 -0.13327,-0.1332499 -0.29328,-0.1998799 -0.48004,-0.1998899 z"
+     id="flowRoot3192" />
+  <path
+     sodipodi:nodetypes="ccccc"
+     inkscape:connector-curvature="0"
+     id="path4146"
+     d="m 14.900682,0 -1.587616,3.74022 1.239622,0 1.447612,-3.56017 z"
+     style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+  <path
+     style="fill:#a2afc1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 8.92025,3.74022 1.30004,10.31978 4.41954,0 1.32018,-10.31978 z"
+     id="path4154"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccc" />
+</svg>
diff --git a/images/presets/food/fastfood.png b/images/presets/food/fastfood.png
deleted file mode 100644
index c532924..0000000
Binary files a/images/presets/food/fastfood.png and /dev/null differ
diff --git a/images/presets/food/food_court.png b/images/presets/food/food_court.png
deleted file mode 100644
index 66fee62..0000000
Binary files a/images/presets/food/food_court.png and /dev/null differ
diff --git a/images/presets/food/food_court.svg b/images/presets/food/food_court.svg
new file mode 100644
index 0000000..835623f
--- /dev/null
+++ b/images/presets/food/food_court.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="100%"
+   height="100%"
+   viewBox="0 0 16 16"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="food_court10.svg">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="20.85965"
+     inkscape:cx="3.7366353"
+     inkscape:cy="9.9688485"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4135" />
+  </sodipodi:namedview>
+  <circle
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#734a08;stroke-width:1.22870338;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sh [...]
+     id="path4137"
+     cx="8"
+     cy="8"
+     r="7.3856483" />
+  <path
+     d="m 5.4939468,3.2033898 c -0.7417271,0 -2.2251817,1.4205006 -2.2251817,3.5512511 0,2.1307505 1.6688862,2.841001 1.6688862,2.841001 l -0.5403549,3.5512511 2.2271992,0 L 6.050242,9.5956419 c 0,0 1.6688863,-0.7102505 1.6688863,-2.841001 0,-2.1307505 -1.4834546,-3.5512511 -2.2251815,-3.5512511 z m 2.7974171,0.6682808 0,4.3034708 c 0,0.71025 1.56921,0.71025 1.56921,1.4205005 l -0.5403561,3.5512511 2.4644872,0 -0.540354,-3.5512511 c 0,-0.7102505 1.467514,-0.7102505 1.467514,-1.4205005 l  [...]
+     id="path4"
+     style="fill:#734a08;fill-opacity:1"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ssccccssssccccsssssssssss" />
+</svg>
diff --git a/images/presets/food/ice_cream.svg b/images/presets/food/ice_cream.svg
new file mode 100644
index 0000000..d965107
--- /dev/null
+++ b/images/presets/food/ice_cream.svg
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ice12.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4240">
+      <stop
+         style="stop-color:#d07b11;stop-opacity:1;"
+         offset="0"
+         id="stop4242" />
+      <stop
+         style="stop-color:#f0a64a;stop-opacity:1"
+         offset="1"
+         id="stop4244" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4232">
+      <stop
+         style="stop-color:#ffd07c;stop-opacity:1"
+         offset="0"
+         id="stop4234" />
+      <stop
+         style="stop-color:#ffdfba;stop-opacity:1"
+         offset="1"
+         id="stop4236" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4232"
+       id="linearGradient4238"
+       x1="8"
+       y1="1041.3622"
+       x2="17"
+       y2="1044.3622"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4240"
+       id="linearGradient4246"
+       x1="7"
+       y1="1047.3622"
+       x2="11"
+       y2="1048.3622"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="2.8248988"
+     inkscape:cy="16.677918"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4238);fill-opacity:1;fill-rule:evenodd;stroke:#6f400c;stroke-width:0.49251863;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;imag [...]
+       d="m 13.125828,1041.0489 c 1.874172,3.3133 -2.062394,4.381 -4.8400541,4.381 -2.7782431,10e-5 -6.7838009,-1.4425 -4.9663226,-3.8128 -0.4079447,-1.0393 1.3955683,-5.4211 5.0294571,-4.8231 2.6367856,0.4339 3.6510916,1.5682 4.7769196,4.2549 z"
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cscsc" />
+    <path
+       style="fill:url(#linearGradient4246);fill-opacity:1;fill-rule:evenodd;stroke:#6f400c;stroke-width:0.69062418;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 4.1773615,1044.4493 4.2144884,7.066 4.2144921,-7.066 c -2.8637895,0.5052 -5.8023338,1.7081 -8.4289805,0 z"
+       id="path4147"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4149"
+       cx="5.232717"
+       cy="1037.6697"
+       rx="0.95559686"
+       ry="0.91636896" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4149-6"
+       cx="7.1711473"
+       cy="1040.5732"
+       rx="0.95559686"
+       ry="0.91638499" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4149-2"
+       cx="7.6588259"
+       cy="1043.6079"
+       rx="0.95559686"
+       ry="0.91638499" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4149-4"
+       cx="3.0825646"
+       cy="1041.2659"
+       rx="0.95559686"
+       ry="0.91636896" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4149-8"
+       cx="11.397631"
+       cy="1040.7211"
+       rx="0.95559686"
+       ry="0.91636896" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4149-52"
+       cx="12.320267"
+       cy="1043.609"
+       rx="0.95559686"
+       ry="0.91636896" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4149-5-8"
+       cx="9.2857075"
+       cy="1037.895"
+       rx="0.95559686"
+       ry="0.91636896" />
+  </g>
+</svg>
diff --git a/images/presets/food/icecream.png b/images/presets/food/icecream.png
deleted file mode 100644
index 11712a0..0000000
Binary files a/images/presets/food/icecream.png and /dev/null differ
diff --git a/images/presets/food/pub.png b/images/presets/food/pub.png
deleted file mode 100644
index eef0cc2..0000000
Binary files a/images/presets/food/pub.png and /dev/null differ
diff --git a/images/presets/food/pub.svg b/images/presets/food/pub.svg
new file mode 100644
index 0000000..7723143
--- /dev/null
+++ b/images/presets/food/pub.svg
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   sodipodi:docname="beer3.svg"
+   viewBox="0 0 312.24864 359.23141"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="312.24863"
+   height="359.23141">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient4213"
+       y2="349.41"
+       gradientUnits="userSpaceOnUse"
+       x2="122.01"
+       y1="121.23"
+       x1="121.87"
+       inkscape:collect="always"
+       gradientTransform="translate(206.15,216.44)">
+      <stop
+         id="stop4209"
+         style="stop-color:#ef8900"
+         offset="0" />
+      <stop
+         id="stop4211"
+         style="stop-color:#5d2500"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient4221"
+       gradientUnits="userSpaceOnUse"
+       cy="45.060001"
+       cx="126.23"
+       gradientTransform="matrix(1.7551,6.3148e-8,-1.0548e-8,1.7657,110.829,200.217)"
+       r="117.84"
+       inkscape:collect="always">
+      <stop
+         id="stop4217"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop4219"
+         style="stop-color:#c5c5c5"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient4235"
+       y2="117.64"
+       gradientUnits="userSpaceOnUse"
+       x2="160.42"
+       y1="186.8"
+       x1="113.13"
+       inkscape:collect="always"
+       gradientTransform="translate(206.15,216.44)">
+      <stop
+         id="stop4231"
+         style="stop-color:#ff7f2a"
+         offset="0" />
+      <stop
+         id="stop4233"
+         style="stop-color:#813300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:window-maximized="1"
+     inkscape:zoom="1.1961507"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="21.331903"
+     inkscape:cy="176.81312"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-214.53904,-236.73933)">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#linearGradient4213);stroke:#000000;stroke-width:1px"
+       d="m 271.025,285.596 c -19.529,-0.024 -34.948,0.151 -36.5,0.594 -4.138,1.182 -7.687,5.312 -7.687,5.312 0,0 1.786,15.961 2.968,21.282 1.183,5.316 8.279,115.88 7.688,124.16 -0.591,8.28 2.338,106.4 1.156,111.72 -1.108,4.99 -2.21,10.49 -2.344,10.19 -0.033,0.38 -1.765,20.6 -0.594,23.53 1.183,2.95 68.576,14.18 99.908,13 31.33,-1.18 94.58,-8.27 98.12,-13 3.55,-4.73 -3.55,-28.98 -1.18,-31.94 2.36,-2.96 6.49,-4.73 13,-6.5 6.5,-1.77 33.71,-12.99 40.81,-18.31 7.09,-5.32 23.05,-33.11 26.59,-4 [...]
+       id="path4180" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#linearGradient4235)"
+       d="m 237.481,344.72 c 0,0 5.3204,-27.193 11.823,-30.74 6.5027,-3.5469 41.972,-6.5027 49.066,-4.7292 7.0938,1.7735 24.828,15.37 28.966,20.099 4.1381,4.7292 11.823,34.878 13.596,43.154 1.7735,8.2761 4.1381,40.198 5.3204,43.154 1.1823,2.9558 8.8673,18.917 17.143,18.917 8.2761,0 26.011,-15.961 29.558,-22.464 3.5469,-6.5027 4.1381,-13.596 14.779,-26.602 10.641,-13.005 8.2761,-37.834 12.414,-43.154 4.1381,-5.3204 1.1823,-8.8673 5.9115,-5.9115 4.7292,2.9558 7.0938,7.685 10.641,3.5469 3.5 [...]
+       id="path4189" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient4221);stroke:#000000;stroke-width:1px"
+       d="m 229.796,319.89 c 0,0 2.3646,-17.143 4.7292,-18.917 2.3646,-1.7735 62.071,-7.0938 66.8,-6.5027 4.7292,0.59115 19.508,8.2761 30.74,8.2761 11.232,0 16.552,2.3646 20.69,4.7292 4.1381,2.3646 8.8673,10.05 13.005,11.232 4.1381,1.1823 13.596,7.0938 12.414,11.232 -1.1823,4.1381 -1.7734,21.873 -1.1823,25.42 0.59115,3.5469 2.9558,10.05 2.9558,10.05 0,0 0,4.7292 2.9558,5.9115 2.9558,1.1823 8.8673,1.1823 8.8673,-3.5469 0,-4.7292 -2.9558,-5.9115 -4.1381,-11.823 -1.1823,-5.9115 -2.9558,-9.4 [...]
+       id="path4182" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#ffffff;stroke:#000000;stroke-width:1px"
+       d="m 232.752,311.615 2.3646,18.326 c 0,0 10.641,162.57 9.4584,173.21 -1.1823,10.641 -4.7292,39.016 -1.1823,43.745 3.5469,4.7292 3.5469,9.4584 5.9115,10.05 2.3646,0.59115 21.281,7.0938 35.469,6.5027 14.188,-0.59115 87.49,0 99.314,-1.7735 11.823,-1.7734 27.193,-4.1381 34.287,-7.0938 7.0938,-2.9558 7.685,-4.7292 10.05,-1.7735 2.3646,2.9558 5.9115,12.414 3.5469,14.188 -2.3646,1.7735 -28.375,13.005 -38.425,11.232 -10.05,-1.7735 -58.524,-4.7292 -73.894,-4.7292 -15.37,0 -34.287,2.9558 -4 [...]
+       id="path4184" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#803300"
+       d="m 428.42,341.76 c 0,0 0,34.878 0.59115,46.701 0.59115,11.823 -2.3646,78.032 -4.1381,85.717 -1.7735,7.685 -1.1823,11.823 0,18.326 1.1823,6.5027 0,8.2761 0,8.2761 0,0 3.5469,-21.873 4.1381,-27.193 0.59115,-5.3204 3.5469,-80.397 4.1381,-85.126 0.59116,-4.7292 4.7292,-20.69 5.9115,-26.602 1.1823,-5.9115 2.9558,-8.8673 0,-13.005 -2.9558,-4.1381 -1.1823,-2.3646 -4.7292,-4.7292 -3.5469,-2.3646 -5.9115,0 -5.9115,-2.3646 z"
+       id="path4191" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#803300"
+       d="m 242.801,326.39 c 1.7735,7.685 4.1381,108.18 4.7292,115.27 0.59115,7.0938 3.5469,37.243 2.3646,46.11 -1.1823,8.8673 -1.7735,10.641 -2.9558,13.596 -1.1823,2.9558 -1.7735,-11.232 -1.7735,-11.232 0,0 -7.685,-103.45 -6.5027,-107.59 1.1823,-4.1381 -2.3646,-40.198 -0.59115,-44.928 1.7735,-4.7292 4.1381,-12.414 4.7292,-11.232 z"
+       id="path4193" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#000000;fill-opacity:0.43819999"
+       d="m 251.078,533.3 c 2.9558,7.0938 4.1381,11.823 10.05,12.414 5.9115,0.59115 54.386,3.5469 66.209,3.5469 11.823,0 69.756,0 78.032,-5.9115 8.2761,-5.9115 11.232,-3.5469 14.188,-14.188 2.9558,-10.641 4.7292,-23.646 2.3646,-27.784 -2.3646,-4.1381 5.9115,10.05 5.9115,18.326 0,8.2761 -4.1381,13.596 -9.4584,21.873 -5.3204,8.2761 -13.005,12.414 -24.237,12.414 -11.232,0 -24.237,1.7734 -32.513,0.59115 -8.2761,-1.1823 -14.188,-2.3646 -25.42,0.59115 -11.232,2.95575 -53.204,-0.59115 -64.436,- [...]
+       id="path4195" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#ffffff;fill-opacity:0.71535998"
+       d="m 251.078,323.44 c 1.7735,7.685 9.4584,33.696 8.8673,42.563 -0.59115,8.8673 -1.1823,36.651 -2.3646,49.657 -1.1823,13.005 -4.7292,31.922 -2.9558,49.066 1.7735,17.143 4.1381,23.055 1.1823,29.558 -2.9558,6.5027 -7.0938,15.961 -7.0938,15.961 0,0 16.552,-21.873 17.735,-27.193 1.1823,-5.3204 -4.1381,-30.74 -2.9558,-43.745 1.1823,-13.005 2.9558,-42.563 5.3204,-56.751 2.3646,-14.188 3.5469,-26.602 0.59115,-39.607 -2.95575,-13.005 -17.735,-21.281 -18.326,-19.508 z"
+       id="path4197" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 442.97,329.88 c 0,-3.5469 2.5886,27.249 1.9975,27.249 -0.0368,-0.92399 45.677,0.8309 52.77,3.7867 7.0938,2.9558 6.5026,22.598 7.0938,33.239 0.59115,10.641 -0.59375,37.86 -0.59375,46.727 0,8.8673 -16.964,47.719 -22.284,54.221 -5.3204,6.5027 -12.953,12.546 -18.273,18.458 -5.3204,5.9115 -24.57,4.9296 -29.299,3.7473 -4.7292,-1.1823 4.4919,27.852 10.995,26.079 6.5027,-1.7734 33.719,-13.177 40.812,-18.497 7.0938,-5.3204 22.492,-32.742 26.039,-43.974 3.5469,-11.232 12.594,-36.896 13 [...]
+       style="fill:#afafaf;fill-opacity:1"
+       sodipodi:nodetypes="ccsssssccssssscc"
+       id="path4223" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#000000;stroke:#000000;stroke-width:1px"
+       d="m 442.32,330.24 c 0,0 2.069,5.1726 2.5124,7.685 0.44336,2.5124 1.3301,10.789 1.0345,13.449 -0.29557,2.6602 0.59115,5.3204 -0.44336,5.4682 -1.0345,0.14778 -1.1823,-2.2168 -1.1823,-3.9903 0,-1.7735 -0.29557,-9.1629 -0.88672,-11.675 -0.59116,-2.5124 -0.73894,-4.2858 -1.1823,-6.0593 -0.44336,-1.7734 0.59115,-5.1726 0.14779,-4.877 z"
+       id="path4225" />
+  </g>
+  <metadata
+     id="metadata26">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2010-07-17T14:58:12</dc:date>
+        <dc:description>Beer,Drink,cool,drunk,water,bujung,thirsty</dc:description>
+        <dc:source>https://openclipart.org/detail/73591/beer-by-aungkarns</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>aungkarns</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>Beer</rdf:li>
+            <rdf:li>Drink</rdf:li>
+            <rdf:li>bujung</rdf:li>
+            <rdf:li>cool</rdf:li>
+            <rdf:li>drunk</rdf:li>
+            <rdf:li>thirsty</rdf:li>
+            <rdf:li>water</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/landmark/beacon.png b/images/presets/landmark/beacon.png
deleted file mode 100644
index a178821..0000000
Binary files a/images/presets/landmark/beacon.png and /dev/null differ
diff --git a/images/presets/landmark/beacon.svg b/images/presets/landmark/beacon.svg
new file mode 100644
index 0000000..1991581
--- /dev/null
+++ b/images/presets/landmark/beacon.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="13"
+   height="16"
+   viewBox="0 0 13 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="beacon4.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="45.254834"
+     inkscape:cx="10.048765"
+     inkscape:cy="12.542862"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="-1"
+       originy="-1.7382813e-005" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-1,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4153"
+       width="13"
+       height="16"
+       x="1"
+       y="1036.3622"
+       ry="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.03509831px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 7.5,1052.3622 0,-15"
+       id="path4145"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.05475128px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 3,1038.8622 8.9,0"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 2.4945081,1037.3622 c 0.4833948,7.4862 9.5054919,7.5966 10.0223199,0"
+       id="path4151"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4170"
+       d="m 3.6,1040.8615 7.8,0"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.98742092px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/images/presets/landmark/boundary_stone.svg b/images/presets/landmark/boundary_stone.svg
new file mode 100644
index 0000000..2f2f697
--- /dev/null
+++ b/images/presets/landmark/boundary_stone.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="9"
+   height="16"
+   viewBox="0 0 9 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="boundary_stone.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="33.583333"
+     inkscape:cx="-0.99517906"
+     inkscape:cy="7.6500186"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0,1052.3622 9,0 0,-11 -4.5,-5 -4.5,5 z"
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+  </g>
+</svg>
diff --git a/images/presets/landmark/cave_entrance.png b/images/presets/landmark/cave_entrance.png
deleted file mode 100644
index 6471191..0000000
Binary files a/images/presets/landmark/cave_entrance.png and /dev/null differ
diff --git a/images/presets/landmark/cave_entrance.svg b/images/presets/landmark/cave_entrance.svg
new file mode 100644
index 0000000..59ebb9f
--- /dev/null
+++ b/images/presets/landmark/cave_entrance.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="cave5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="44.8"
+     inkscape:cx="8.5547422"
+     inkscape:cy="7.4673714"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0,1052.3622 c 1.8596782,-12.543 4.0209341,-10.1773 8,-14 6.346321,0.9354 6.954976,8.2678 8,14 z"
+       id="path4134"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4136"
+       d="m 2.5,1052.3622 c 0.5577641,-3.4792 -1.2259077,-6.3044 5.4776786,-11.5 5.4727264,1.9539 5.1434704,6.471 5.4776784,11.5 z"
+       style="fill:#666666;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#333333;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 4.2857143,1052.3622 c 0.026772,-5.2211 1.4939385,-6.924 3.5133928,-8.9107 3.7403139,0.5778 2.6949029,5.752 3.5133929,8.9107 z"
+       id="path4138"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4140"
+       d="m 6.0491072,1052.3622 c 0.5705131,-4.61 1.0022491,-4.8607 1.6495535,-5.0714 1.3148637,0.7535 1.3447478,3.0808 1.6495536,5.0714 z"
+       style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       sodipodi:nodetypes="cccc" />
+  </g>
+</svg>
diff --git a/images/presets/landmark/chimney.png b/images/presets/landmark/chimney.png
deleted file mode 100644
index 86ab62f..0000000
Binary files a/images/presets/landmark/chimney.png and /dev/null differ
diff --git a/images/presets/landmark/chimney.svg b/images/presets/landmark/chimney.svg
new file mode 100644
index 0000000..eac0770
--- /dev/null
+++ b/images/presets/landmark/chimney.svg
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="13"
+   height="16"
+   viewBox="0 0 13 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="chimney5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="2.5086424"
+     inkscape:cy="7.0965158"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="-2"
+       originy="0" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-2,-1036.3622)">
+    <rect
+       style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4185"
+       width="4"
+       height="6"
+       x="3"
+       y="1040.3622" />
+    <rect
+       style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4183"
+       width="6"
+       height="6"
+       x="2"
+       y="1046.3622" />
+    <rect
+       style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4173"
+       width="5"
+       height="1.0002424"
+       x="5"
+       y="1038.3622"
+       ry="0.45264965" />
+    <rect
+       style="opacity:1;fill:#666666;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4175"
+       width="5"
+       height="1"
+       x="7"
+       y="1037.3622"
+       ry="0.5" />
+    <rect
+       style="opacity:1;fill:#999999;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4177"
+       width="6"
+       height="1"
+       x="9"
+       y="1036.3622"
+       ry="0.5" />
+    <rect
+       style="opacity:1;fill:#8a1713;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4179"
+       width="1.0000011"
+       height="5.0004721"
+       x="5"
+       y="1044.3622" />
+    <rect
+       style="opacity:1;fill:#8a1713;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4181"
+       width="1"
+       height="2.0000346"
+       x="6"
+       y="1047.3622" />
+    <rect
+       style="opacity:1;fill:#d4231d;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4187"
+       width="0.99999654"
+       height="5.0000167"
+       x="4"
+       y="1044.3622" />
+    <rect
+       style="opacity:1;fill:#d4231d;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4189"
+       width="1"
+       height="2.0000346"
+       x="3"
+       y="1047.3622" />
+    <rect
+       style="opacity:1;fill:#aa1c17;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4191"
+       width="2"
+       height="2"
+       x="3"
+       y="1049.3622" />
+    <rect
+       style="opacity:1;fill:#78110e;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4193"
+       width="2"
+       height="2"
+       x="5"
+       y="1049.3622" />
+    <rect
+       style="opacity:1;fill:#e1312b;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4195"
+       width="1"
+       height="3"
+       x="4"
+       y="1041.3622" />
+    <rect
+       style="opacity:1;fill:#a11915;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4197"
+       width="1"
+       height="3"
+       x="5"
+       y="1041.3622" />
+  </g>
+</svg>
diff --git a/images/presets/landmark/hunting_stand.png b/images/presets/landmark/hunting_stand.png
deleted file mode 100644
index 56f39c1..0000000
Binary files a/images/presets/landmark/hunting_stand.png and /dev/null differ
diff --git a/images/presets/landmark/hunting_stand.svg b/images/presets/landmark/hunting_stand.svg
new file mode 100644
index 0000000..7fe5f8b
--- /dev/null
+++ b/images/presets/landmark/hunting_stand.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="hunting_stand.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="26.715378"
+     inkscape:cx="0.25897071"
+     inkscape:cy="8.9639385"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4135"
+       originx="0"
+       originy="0" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering [...]
+     id="rect4137"
+     width="16"
+     height="16"
+     x="0"
+     y="0"
+     ry="3" />
+  <path
+     d="M 4,0.7617866 4,2.25 l 8,2 0,-1.4882134 z M 5,3.5 5,8 11,8 11,5 Z M 4,9 l 0,1 1,0 -1,5 1.5,0 1,-5 3,0 1.03125,5 1.5,0 L 11,10 l 1,0 0,-1 z"
+     id="hunting-stand"
+     style="fill:#734a08;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccccccccccccccccccc" />
+</svg>
diff --git a/images/presets/landmark/pipeline.svg b/images/presets/landmark/pipeline.svg
new file mode 100644
index 0000000..8bae3ed
--- /dev/null
+++ b/images/presets/landmark/pipeline.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="14"
+   viewBox="0 0 16 14"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="pipeline5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="2.2487881"
+     inkscape:cy="5.0705796"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1038.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4144"
+       width="16"
+       height="14"
+       x="0"
+       y="1038.3622"
+       ry="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#700000;stroke-width:1.10000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 0,1049.9888 c 1,0 3.0357587,0.051 4.0575035,0 3.0714285,-0.1566 -0.3341419,-6 3.0915065,-6 l 1.6954144,0 c 3.4664896,0.045 0.048835,6.0248 3.1415936,6.0007 0.975145,-0.01 1.586699,-7e-4 4.013982,-7e-4"
+       id="path4136"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccscsc" />
+    <path
+       sodipodi:nodetypes="ccscsc"
+       inkscape:connector-curvature="0"
+       id="path4142"
+       d="m 0,1046.001 c 1,0 1.102723,0.051 2.1244678,0 2.5580357,0.067 -0.1555704,-5.0609 2.9575779,-5.0609 l 5.8293423,0 c 3.131669,0 0.205082,5.1304 3.163915,5.0616 0.974912,-0.023 -0.502586,-7e-4 1.924697,-7e-4"
+       style="fill:none;fill-rule:evenodd;stroke:#700000;stroke-width:1.10000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/images/presets/landmark/tower.png b/images/presets/landmark/tower.png
deleted file mode 100644
index 35e2aa3..0000000
Binary files a/images/presets/landmark/tower.png and /dev/null differ
diff --git a/images/presets/landmark/tower.svg b/images/presets/landmark/tower.svg
new file mode 100644
index 0000000..ccd8b74
--- /dev/null
+++ b/images/presets/landmark/tower.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="8"
+   height="16"
+   viewBox="0 0 8 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="tower3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-8.0420854"
+     inkscape:cy="15.933831"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="-4"
+       originy="-0.00034184876" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-4,-1036.3619)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4149"
+       width="8"
+       height="15.999693"
+       x="4"
+       y="1036.3622" />
+    <rect
+       style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4145"
+       width="2"
+       height="15.000059"
+       x="7"
+       y="1037.3622" />
+    <rect
+       style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.29999995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4147"
+       width="4"
+       height="3"
+       x="6"
+       y="1038.3622" />
+  </g>
+</svg>
diff --git a/images/presets/landmark/trees_palm.png b/images/presets/landmark/trees_palm.png
deleted file mode 100644
index b744f12..0000000
Binary files a/images/presets/landmark/trees_palm.png and /dev/null differ
diff --git a/images/presets/landmark/water_works.png b/images/presets/landmark/water_works.png
deleted file mode 100644
index 09840ae..0000000
Binary files a/images/presets/landmark/water_works.png and /dev/null differ
diff --git a/images/presets/landmark/water_works.svg b/images/presets/landmark/water_works.svg
new file mode 100644
index 0000000..08038c7
--- /dev/null
+++ b/images/presets/landmark/water_works.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="water_works4.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="63.356768"
+     inkscape:cx="7.9367756"
+     inkscape:cy="12.410931"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       d="m 15.999588,1049.543 -0.2388,0.1359 -0.255856,0.1456 c -0.545829,0.3106 -1.159883,0.3106 -1.70571,0 l -0.511715,-0.2912 c -0.545827,-0.3107 -1.159882,-0.3107 -1.705709,0 l -0.511725,0.2912 c -0.545828,0.3106 -1.159883,0.3106 -1.705711,0 l -0.511713,-0.2912 c -0.270238,-0.1539 -0.560098,-0.233 -0.852855,-0.233 -0.292757,0 -0.582617,0.079 -0.852855,0.233 l -0.511713,0.2912 c -0.545828,0.3106 -1.159883,0.3106 -1.70571,0 l -0.511726,-0.2912 c -0.545828,-0.3107 -1.159882,-0.3107 -1. [...]
+       id="path6-6"
+       style="fill:#1332ff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 15.999588,1046.5793 -0.2388,0.1359 -0.255856,0.1456 c -0.545829,0.3107 -1.159883,0.3107 -1.70571,0 l -0.511715,-0.2912 c -0.545827,-0.3107 -1.159882,-0.3107 -1.705709,0 l -0.511725,0.2912 c -0.545828,0.3107 -1.159883,0.3107 -1.705711,0 l -0.511713,-0.2912 c -0.270238,-0.1538 -0.560098,-0.233 -0.852855,-0.233 -0.292757,0 -0.582617,0.079 -0.852855,0.233 l -0.511713,0.2912 c -0.545828,0.3107 -1.159883,0.3107 -1.70571,0 l -0.511726,-0.2912 c -0.545828,-0.3107 -1.159882,-0.3107 -1 [...]
+       id="path6"
+       style="fill:#1332ff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1332ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="path4141"
+       cx="7.5352502"
+       cy="1042.7517"
+       rx="2.5789182"
+       ry="2.6104853" />
+    <path
+       style="fill:#1332ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 10.122768,1042.7193 c -0.287988,-0.8267 -0.279451,-1.541 -0.9594819,-2.2486 -1.4311176,-1.4891 -1.404555,-2.6617 -0.48025,-3.8339 -2.9866044,1.0162 -3.3157976,3.5058 -3.6718754,6.0379 z"
+       id="path4147"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="csccc" />
+    <path
+       style="fill:#8a99ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 6.0254276,1043.7107 c -1.0111135,-1.2746 0.034911,-2.4996 0.034911,-2.4996 l 0.5147663,-0.6756 0.7894297,-0.5911 c 0,0 -0.8494625,1.9542 -0.052184,3.2579 -0.7007705,0.8624 -0.9590023,0.5966 -1.2869228,0.5084"
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+  </g>
+</svg>
diff --git a/images/presets/landuse/aquaculture.svg b/images/presets/landuse/aquaculture.svg
new file mode 100644
index 0000000..5ab16e7
--- /dev/null
+++ b/images/presets/landuse/aquaculture.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="aquaculture2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="10.458986"
+     inkscape:cy="7.7358615"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#2090cf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4134"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.67432386;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4144"
+       cx="3.9999995"
+       cy="1040.3622"
+       rx="2.6628382"
+       ry="2.662838" />
+    <ellipse
+       cy="1048.4124"
+       cx="3.9999995"
+       id="ellipse4146"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.66867787;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       rx="2.6656611"
+       ry="2.6156611" />
+    <ellipse
+       cy="1040.3622"
+       cx="12"
+       id="ellipse4148"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.67432386;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       rx="2.662838"
+       ry="2.6628382" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.67432386;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="ellipse4150"
+       cx="12"
+       cy="1048.3623"
+       rx="2.6628382"
+       ry="2.662838" />
+  </g>
+</svg>
diff --git a/images/presets/landuse/basin.svg b/images/presets/landuse/basin.svg
new file mode 100644
index 0000000..b74c937
--- /dev/null
+++ b/images/presets/landuse/basin.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="basin3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="-0.41172602"
+     inkscape:cy="7.8116473"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:#333333;stroke-width:1.71407211;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto; [...]
+       id="rect4134"
+       width="14.285928"
+       height="14.285928"
+       x="0.85703605"
+       y="1037.2192"
+       ry="4.2861266" />
+    <circle
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1d60ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="path4136"
+       cx="7.5"
+       cy="1043.8622"
+       r="2.5" />
+  </g>
+</svg>
diff --git a/images/presets/landuse/brownfield.svg b/images/presets/landuse/brownfield.svg
new file mode 100644
index 0000000..d940395
--- /dev/null
+++ b/images/presets/landuse/brownfield.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="brownfield2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d38d5f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4134"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4136"
+       width="3"
+       height="12"
+       x="2"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#86cc86;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4138"
+       width="9"
+       height="4"
+       x="7"
+       y="1039.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4140"
+       width="3"
+       height="8"
+       x="7"
+       y="1044.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#666666;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4142"
+       width="3"
+       height="7.0000172"
+       x="12"
+       y="1043.3622" />
+  </g>
+</svg>
diff --git a/images/presets/landuse/farmland.png b/images/presets/landuse/farmland.png
deleted file mode 100644
index c999446..0000000
Binary files a/images/presets/landuse/farmland.png and /dev/null differ
diff --git a/images/presets/landuse/farmland.svg b/images/presets/landuse/farmland.svg
new file mode 100644
index 0000000..0c76907
--- /dev/null
+++ b/images/presets/landuse/farmland.svg
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg4388"
+   sodipodi:docname="Wheat24.svg"
+   viewBox="0 0 553.9831 553.68453"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="553.98309"
+   height="553.68451">
+  <defs
+     id="defs49" />
+  <title
+     id="title5714">Wheat</title>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     fit-margin-left="2"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:window-maximized="1"
+     inkscape:zoom="1.979899"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="-151.02624"
+     inkscape:cy="4.049648"
+     fit-margin-top="2"
+     fit-margin-right="2"
+     fit-margin-bottom="2"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px" />
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-83.340282,-231.71751)">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 530.39285,301.73308 c 0,0 15.51935,0.48631 22.47878,-1.80159 24.38065,-8.01471 60.82723,-44.59216 60.82723,-44.59216 0,0 -38.3691,38.53426 -47.22319,60.07227 -2.67468,6.50623 -2.98691,21.43367 -2.98691,21.43367 z"
+       id="path5248-6" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 459.17873,334.41859 c 0,0 -7.49863,-14.48918 -8.76986,-22.13198 -4.45377,-26.77438 9.41578,-78.04055 9.41578,-78.04055 0,0 -14.62399,53.98293 -28.55254,72.21956 -4.20754,5.50897 -16.52292,12.62718 -16.52292,12.62718 z"
+       id="path5248-5-6-7" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 342.68691,626.83748 c 0,0 13.17416,9.89982 20.62434,12.54623 26.09953,9.27128 80.25427,5.53217 80.25427,5.53217 0,0 -57.02818,3.95591 -77.97132,13.91691 -6.32655,3.00901 -15.78516,13.49748 -15.78516,13.49748 z"
+       id="path5248" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 242.20236,526.3529 c 0,0 -9.89983,-13.17413 -12.54624,-20.62432 -9.27129,-26.09955 -5.5322,-80.25428 -5.5322,-80.25428 0,0 -3.95588,57.02819 -13.91688,77.97131 -3.00901,6.32656 -13.49748,15.78518 -13.49748,15.78518 z"
+       id="path5248-1" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 275.28274,694.24053 c 0,0 13.17415,9.89982 20.62432,12.54624 26.09955,9.27128 80.25427,5.53218 80.25427,5.53218 0,0 -57.02817,3.95592 -77.97131,13.9169 -6.32656,3.00901 -15.78517,13.49748 -15.78517,13.49748 z"
+       id="path5248-7" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 174.80298,593.7608 c 0,0 -9.89984,-13.17419 -12.54623,-20.62434 -9.2713,-26.09958 -5.5322,-80.25429 -5.5322,-80.25429 0,0 -3.9559,57.02818 -13.9169,77.9713 -3.00901,6.32656 -13.49748,15.78518 -13.49748,15.78518 z"
+       id="path5248-1-1" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 410.08789,559.43535 c 0,0 13.17415,9.89986 20.62433,12.54625 26.09956,9.27129 80.25428,5.53218 80.25428,5.53218 0,0 -57.02819,3.95594 -77.9713,13.9169 -6.32656,3.00904 -15.78517,13.4975 -15.78517,13.4975 z"
+       id="path5248-4" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 309.60813,458.95561 c 0,0 -9.89984,-13.17415 -12.54622,-20.62432 -9.27128,-26.09956 -5.53219,-80.25429 -5.53219,-80.25429 0,0 -3.95591,57.02819 -13.91689,77.97134 -3.00904,6.32654 -13.49748,15.78516 -13.49748,15.78516 z"
+       id="path5248-1-3" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 477.49076,492.03313 c 0,0 13.17415,9.89985 20.62435,12.54624 26.09953,9.2713 80.25425,5.5322 80.25425,5.5322 0,0 -57.02819,3.95591 -77.97132,13.91691 -6.32654,3.00901 -15.78517,13.49745 -15.78517,13.49745 z"
+       id="path5248-5" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 377.01182,391.55419 c 0,0 -9.89985,-13.17415 -12.54624,-20.62434 -9.27128,-26.09953 -5.5322,-80.25426 -5.5322,-80.25426 0,0 -3.9559,57.0282 -13.9169,77.97133 -3.00902,6.32652 -13.49748,15.78517 -13.49748,15.78517 z"
+       id="path5248-1-6" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04283762;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cscscc"
+       d="m 534.62234,409.86218 c 0,0 14.48915,7.49866 22.13196,8.76988 26.77438,4.45376 78.04054,-9.4158 78.04054,-9.4158 0,0 -53.9829,14.62399 -72.21953,28.55253 -5.50898,4.20754 -12.62722,16.52294 -12.62722,16.52294 z"
+       id="path5248-5-6" />
+    <path
+       id="path5138"
+       sodipodi:nodetypes="cc"
+       style="fill:#be9c20;fill-opacity:1;stroke:#be9c20;stroke-width:24.91200066;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       d="M 509.96978,359.36134 96.16436,772.57802" />
+    <ellipse
+       ry="37.200233"
+       rx="65.700165"
+       cy="618.60901"
+       cx="96.44648"
+       transform="matrix(0.67859198,-0.73451543,0.7285685,0.68497295,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.04291439;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-9" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="686.74634"
+       cx="149.03452"
+       transform="matrix(0.99467463,-0.10306489,0.21928412,0.97566104,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="-273.89423"
+       cx="-512.87701"
+       transform="matrix(0.10306489,-0.99467463,-0.97566104,-0.21928412,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-8" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="747.26312"
+       cx="67.928009"
+       transform="matrix(0.99467463,-0.10306489,0.21928412,0.97566104,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-4" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="-213.38159"
+       cx="-593.98621"
+       transform="matrix(0.10306489,-0.99467463,-0.97566104,-0.21928412,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-8-7" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="626.23022"
+       cx="230.13754"
+       transform="matrix(0.99467463,-0.10306489,0.21928412,0.97566104,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-0" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="-334.41449"
+       cx="-431.77667"
+       transform="matrix(0.10306489,-0.99467463,-0.97566104,-0.21928412,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-8-3" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="565.71417"
+       cx="311.24255"
+       transform="matrix(0.99467463,-0.10306489,0.21928412,0.97566104,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-1" />
+    <ellipse
+       ry="35.784126"
+       rx="68.774345"
+       cy="-394.9321"
+       cx="-350.67279"
+       transform="matrix(0.10306489,-0.99467463,-0.97566104,-0.21928412,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05692768;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-8-4" />
+    <ellipse
+       ry="36.466541"
+       rx="67.325684"
+       cy="575.84583"
+       cx="288.83432"
+       transform="matrix(0.95532394,-0.29556078,0.38518633,0.92283882,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05205441;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-1-1" />
+    <ellipse
+       ry="36.466541"
+       rx="67.325684"
+       cy="-516.18646"
+       cx="-180.54051"
+       transform="matrix(0.29556078,-0.95532394,-0.92283882,-0.38518633,0,0)"
+       style="fill:#be9c20;fill-opacity:1;stroke:#000000;stroke-width:4.05205441;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path5246-1-1-4" />
+  </g>
+  <metadata
+     id="metadata47">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title>Wheat</dc:title>
+        <dc:date>2011-06-11T04:11:17</dc:date>
+        <dc:description>Black and white wheat icon</dc:description>
+        <dc:source>https://openclipart.org/detail/144535/wheat-black-and-white-by-serioustux</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>SeriousTux</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>b&w</rdf:li>
+            <rdf:li>black and white</rdf:li>
+            <rdf:li>grain</rdf:li>
+            <rdf:li>wheat</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/landuse/farmyard.png b/images/presets/landuse/farmyard.png
deleted file mode 100644
index 7812c3d..0000000
Binary files a/images/presets/landuse/farmyard.png and /dev/null differ
diff --git a/images/presets/landuse/farmyard.svg b/images/presets/landuse/farmyard.svg
new file mode 100644
index 0000000..8e4471f
--- /dev/null
+++ b/images/presets/landuse/farmyard.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="farmyard5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="12.765991"
+     inkscape:cy="0.23670218"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#6ace6a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4162"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <path
+       style="font-size:12px;fill:#7c3c11;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.02129138"
+       d="m 3.9996529,1036.3731 -3.9739294,3.5806 0.79478065,0 0,5.3708 2.38436295,0 0,-2.7294 1.6440693,0 5.1e-6,2.7294 2.3298605,0 0,-5.3708 0.7947858,0 -3.9739349,-3.5806 0,0 0,0 z"
+       id="path645"
+       sodipodi:nodetypes="ccccccccccccc"
+       inkscape:connector-curvature="0" />
+    <g
+       transform="matrix(0.99999983,0,0,1.001178,2.0000007,3.7780574)"
+       id="g4150">
+      <path
+         sodipodi:nodetypes="cccccsscccc"
+         inkscape:connector-curvature="0"
+         id="path4153"
+         d="m 8.1107127,1037.3621 -1.0610248,3.8423 -5.048498,0.5092 -0.00119,2.8581 c 0,0 1.9439315,-0.017 6.0511112,-0.017 0.1430592,1.601 1.4544383,2.7956 2.9684849,2.7956 1.597498,0 2.980406,-1.3547 2.980406,-3.0788 0,-1.3793 -0.870279,-2.5123 -2.038598,-2.9187 l 0,-3.9779 -3.8506843,0 z"
+         style="fill:#000000" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4151"
+         d="m 8.718716,1038.1256 2.420089,0 0,3.0666 -3.23076,0.024 0.810671,-3.0787 z"
+         style="fill:#ffffff" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4149"
+         d="m 11.007668,1043.0395 c 0.762984,0 1.216005,0.5788 1.216005,1.2315 0,0.6527 -0.453021,1.2315 -1.216005,1.2315 -0.762985,0 -1.2160071,-0.5788 -1.2160071,-1.2315 0,-0.6527 0.4530221,-1.2315 1.2160071,-1.2315 z"
+         style="fill:#ffffff" />
+      <circle
+         style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.745;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="circle4145"
+         cx="4.4972916"
+         cy="1045.5714"
+         r="1.7789224" />
+      <circle
+         r="0.91713595"
+         cy="1045.5714"
+         cx="4.4972916"
+         id="path4143"
+         style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.745;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/landuse/garages.png b/images/presets/landuse/garages.png
deleted file mode 100644
index 2a0fb14..0000000
Binary files a/images/presets/landuse/garages.png and /dev/null differ
diff --git a/images/presets/landuse/garages.svg b/images/presets/landuse/garages.svg
new file mode 100644
index 0000000..d468acc
--- /dev/null
+++ b/images/presets/landuse/garages.svg
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="garages3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="10.159106"
+     inkscape:cy="7.9616689"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4165"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <g
+       transform="matrix(0.01388464,0,0,0.01388464,0.62885776,1037.1303)"
+       id="g4188">
+      <path
+         inkscape:connector-curvature="0"
+         d="M 55.335442,781.58875 C 52.942279,605.17849 43.369629,756.97336 149.69442,495.4349 226.61749,317.65712 148.66878,365.52037 546.61749,359.02464 c 354.18803,7.17949 282.73504,-44.10256 364.10256,144.61539 101.88035,241.7094 94.01715,115.21367 93.33335,272.82051 -3.7607,172.99145 60.171,128.54701 -475.89745,134.35898 C -3.809859,903.64004 59.096121,948.76823 55.335442,781.58875 Z M 163.02774,611.33234 235.84826,443.12721 c 13.58658,-29.87865 9.25188,-25.46798 41.02564,-25.64103  [...]
+         id="Car"
+         style="fill:#000000;fill-rule:evenodd;stroke:none" />
+      <circle
+         id="LeftLamp"
+         cx="178.66878"
+         cy="737.17847"
+         r="66.5"
+         style="fill:#ffffff;fill-opacity:1;stroke:none" />
+      <circle
+         id="RightLamp"
+         cx="878.66876"
+         cy="737.17847"
+         r="66.5"
+         style="fill:#ffffff;fill-opacity:1;stroke:none" />
+    </g>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.71230602;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 0.96327773,1040.8213 6.99500047,-2.9471 6.9949998,2.9471 0,0"
+       id="path4163"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/landuse/greenfield.svg b/images/presets/landuse/greenfield.svg
new file mode 100644
index 0000000..d13e5fe
--- /dev/null
+++ b/images/presets/landuse/greenfield.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="greenfield.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#59b959;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4134"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#009a07;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4136"
+       width="3"
+       height="12"
+       x="2"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#86cc86;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4138"
+       width="9"
+       height="4"
+       x="7"
+       y="1039.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#abff99;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4140"
+       width="3"
+       height="8"
+       x="7"
+       y="1044.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#046600;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4142"
+       width="3"
+       height="7.0000172"
+       x="12"
+       y="1043.3622" />
+  </g>
+</svg>
diff --git a/images/presets/landuse/greenhouse_horticulture.png b/images/presets/landuse/greenhouse_horticulture.png
deleted file mode 100644
index 90f0d3f..0000000
Binary files a/images/presets/landuse/greenhouse_horticulture.png and /dev/null differ
diff --git a/images/presets/landuse/greenhouse_horticulture.svg b/images/presets/landuse/greenhouse_horticulture.svg
new file mode 100644
index 0000000..161b955
--- /dev/null
+++ b/images/presets/landuse/greenhouse_horticulture.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="15"
+   height="16"
+   viewBox="0 0 15 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="greenhouse_horticulture4.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="-0.49124684"
+     inkscape:cy="5.9422902"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c1f0b5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03500366;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto; [...]
+       id="rect4157"
+       width="13.964996"
+       height="14.964996"
+       x="0.51750183"
+       y="1036.8798"
+       ry="1.468807" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.4039129;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1.8305419,1040.8177 5.7351736,-2.4163 5.7351725,2.4163 0,0"
+       id="path4163"
+       inkscape:connector-curvature="0" />
+    <circle
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="path4159"
+       cx="7.50035"
+       cy="1045.8622"
+       r="2.5" />
+    <g
+       id="g4213"
+       style="fill:#faaf00;fill-opacity:1">
+      <rect
+         ry="0.5"
+         y="1040.3622"
+         x="7.00035"
+         height="2"
+         width="1"
+         id="rect4161"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+      <rect
+         ry="0.5"
+         y="1049.3622"
+         x="7.00035"
+         height="2"
+         width="1"
+         id="rect4161-9"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+      <rect
+         ry="0.50003481"
+         y="1045.3622"
+         x="11.00035"
+         height="1.0000696"
+         width="2.0000002"
+         id="rect4161-7"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+      <rect
+         ry="0.50003481"
+         y="1045.3622"
+         x="2.00035"
+         height="1.0000696"
+         width="2.0000002"
+         id="rect4161-7-3"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+      <rect
+         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+         id="rect4205"
+         width="1"
+         height="2"
+         x="-734.73267"
+         y="739.33978"
+         ry="0.5" />
+      <rect
+         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+         id="rect4207"
+         width="1"
+         height="2"
+         x="-734.73267"
+         y="748.33978"
+         ry="0.5" />
+      <rect
+         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+         id="rect4209"
+         width="2.0000002"
+         height="1.0000696"
+         x="-730.73267"
+         y="744.33978"
+         ry="0.50003481" />
+      <rect
+         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#faaf00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+         id="rect4211"
+         width="2.0000002"
+         height="1.0000696"
+         x="-739.73267"
+         y="744.33978"
+         ry="0.50003481" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/landuse/landuse.png b/images/presets/landuse/landuse.png
deleted file mode 100644
index b8ec0d1..0000000
Binary files a/images/presets/landuse/landuse.png and /dev/null differ
diff --git a/images/presets/landuse/landuse_water.png b/images/presets/landuse/landuse_water.png
deleted file mode 100644
index 327a140..0000000
Binary files a/images/presets/landuse/landuse_water.png and /dev/null differ
diff --git a/images/presets/landmark/plant.svg b/images/presets/landuse/plant_nursery.svg
similarity index 100%
rename from images/presets/landmark/plant.svg
rename to images/presets/landuse/plant_nursery.svg
diff --git a/images/presets/landuse/rail_light.png b/images/presets/landuse/rail_light.png
deleted file mode 100644
index 6141ef1..0000000
Binary files a/images/presets/landuse/rail_light.png and /dev/null differ
diff --git a/images/presets/landuse/railway.svg b/images/presets/landuse/railway.svg
new file mode 100644
index 0000000..09a1c22
--- /dev/null
+++ b/images/presets/landuse/railway.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="400" height="360" id="svg2" sodipodi:version="0.32" inkscape:version="0.44.1" sodipodi:docname="Bahn_aus_Zusatzzeichen_1024- [...]
+  <metadata id="metadata10">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Purodha Blissenbach</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://commons.mediawiki.org/wiki/Image:Zusatzzeichen_1024-15.svg</dc:source>
+        <dc:title>Symbol: Eisenbahnzug</dc:title>
+      </cc:Work>
+      <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:window-height="749" inkscape:window-width="1024" inkscape:pageshadow="2" inkscape:pageopacity="1" guidetolerance="10.0" gridtolerance="10.0" objecttolerance="10.0" borderopacity="1.0" bordercolor="#666666" pagecolor="white" id="base" inkscape:zoom="0.74246212" inkscape:cx="245" inkscape:cy="185.97159" inkscape:window-x="-4" inkscape:window-y="-4" inkscape:current-layer="svg2" showguides="true" inkscape:guide-bbox="true" inkscape:showpageshadow="false" showb [...]
+  <defs id="defs4"/>
+  <g id="g5262" transform="matrix(1.386118,0,0,1.542038,-196.1754,-667.7566)">
+    <g id="g2285" transform="translate(-597.3004,408.9739)">
+      <path id="path2251" style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1009.2409,214.27547 L 778.51034,214.27547 C 767.62857,214.27547 754.64651,197.1834 754.64651,186.04954 C 754.40757,167.2221 755.3126,148.96663 755.91728,130.561 C 758.8462,109.58406 766.90603,90.391773 774.90005,71.176601 C 776.86018,67.160472 779.21612,63.236208 784.00517,63.236208 L 867.61359,63.236208 C 875.20749,66. [...]
+      <path id="path2253" style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 793.875,37.03125 C 790.72173,37.03125 790.81823,43.156249 793.875,43.15625 L 807.46875,43.15625 C 818.96113,47.799678 825.74527,54.403373 828.90625,63.28125 L 834.125,63.28125 L 834.125,63.25 L 839.28125,63.25 C 842.44212,54.37242 849.22708,47.799652 860.71875,43.15625 L 874,43.15625 C 877.27802,43.15625 876.78185,37.03 [...]
+      <path id="path2260" style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 770.43133,114.13629 L 875.52,114.13629 C 878.07188,114.13629 879.0233,108.86338 877.81594,105.56774 C 874.02206,95.426493 869.39273,75.603781 864.13539,75.603781 L 783.34848,75.603781 C 778.97076,75.603781 773.13152,95.745774 768.02304,105.81677 C 767.00828,109.81958 768.01345,114.13629 770.43133,114.13629 z "/>
+      <path id="path2265" style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" transform="translate(1.548102,-0.619241)" d="M 787.9841,164.9391 C 787.9841,170.24006 783.68682,174.53733 778.38587,174.53733 C 773.08491,174.53733 768.78763,170.24006 768.78763,164.9391 C 768.78763,159.63814 773.08491,155.34087 778.38587,155.34087 C 783. [...]
+      <path id="path2267" style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" transform="translate(80.81094,-0.619236)" d="M 787.9841,164.9391 C 787.9841,170.24006 783.68682,174.53733 778.38587,174.53733 C 773.08491,174.53733 768.78763,170.24006 768.78763,164.9391 C 768.78763,159.63814 773.08491,155.34087 778.38587,155.34087 C 783. [...]
+      <path id="path2271" style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 913.61464,136.35817 L 913.61464,171.27826 L 897.63241,163.94395 C 896.11238,149.20714 895.97165,134.19446 895.88093,119.17179 C 901.79166,124.90194 908.13437,132.76415 913.61464,136.35817 z "/>
+      <path id="path2273" style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 937.80693,155.40549 L 938.04009,182.28151 L 922.75735,175.87984 C 922.40312,161.14303 922.8453,159.53714 922.75458,144.51447 C 929.36479,150.12804 932.0935,151.22857 937.80693,155.40549 z "/>
+      <path id="path2275" style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 945.69493,160.17743 L 945.69493,184.16603 C 950.07313,186.52004 955.14,187.77217 960.61567,188.37022 L 960.61567,166.27763 L 945.69493,160.17743 z "/>
+      <path id="path2277" style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 966.7983,169.24529 L 966.7983,190.18379 C 970.62585,191.67422 974.62319,192.14594 978.66895,192.3271 L 978.66895,172.29538 L 966.7983,169.24529 z "/>
+      <path id="path2279" style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 984.76914,174.35626 L 984.76914,193.15145 C 987.91261,194.03102 991.13362,194.5229 994.49648,194.30554 L 994.49648,176.25227 L 984.76914,174.35626 z "/>
+      <path id="path2281" style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 999.68988,177.24149 L 999.68988,195.04746 L 1007.5212,196.36642 L 1007.5212,178.31314 L 999.68988,177.24149 z "/>
+      <path id="path2283" style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 754.65511,229.21337 L 774.58951,229.21337 L 774.58951,219.23069 L 804.62563,219.23069 L 804.62563,229.09314 L 848.63107,229.09314 L 848.63107,219.20093 L 1012.7369,219.20093 L 1012.7369,229.24313 C 966.49324,230.93241 919.38423,232.25082 894.91493,243.27197 L 754.62535,243.27197 L 754.65511,229.21337 z "/>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/images/presets/landuse/reservoir.svg b/images/presets/landuse/reservoir.svg
new file mode 100644
index 0000000..cafa6a4
--- /dev/null
+++ b/images/presets/landuse/reservoir.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="reservoir5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="4.3252088"
+     inkscape:cy="7.5683276"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#333333;stroke-width:1.76193774;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto; [...]
+       id="rect4134"
+       width="14.238063"
+       height="14.238062"
+       x="0.88096887"
+       y="1037.2432"
+       ry="4.2717662" />
+  </g>
+</svg>
diff --git a/images/presets/landuse/vineyard.png b/images/presets/landuse/vineyard.png
deleted file mode 100644
index 058a727..0000000
Binary files a/images/presets/landuse/vineyard.png and /dev/null differ
diff --git a/images/presets/landuse/vineyard.svg b/images/presets/landuse/vineyard.svg
new file mode 100644
index 0000000..1181bb0
--- /dev/null
+++ b/images/presets/landuse/vineyard.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 10.0, SVG Export Plug-In . SVG Version: 3.0.0 Build 77)  -->
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:x="http://ns.adobe.com/Extensibility/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" xmlns:cc="http://web.resource.org/cc/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" xmlns:graph="http://ns.adobe.com/Graphs/1.0/" xmlns:svg="http://www.w3.org/2000/svg" xmlns:inkscape="http:// [...]
+  <switch>
+    <foreignObject y="0" width="1" requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/" x="0" height="1">
+      <i:pgfRef xlink:href="#adobe_illustrator_pgf"/>
+    </foreignObject>
+    <g i:extraneous="self">
+      <g id="Layer_1" i:layer="yes" i:rgbTrio="#4F008000FFFF" i:dimmedPercent="50">
+        <g clip-rule="evenodd" fill-rule="evenodd">
+          <path i:knockout="Off" d="m264.53 75.132c-4.5 2.052-7.704 6.336-9.756 12.852-2.124 6.516-6.229 18.792-2.593 26.136 3.78 7.236 13.608 17.028 24.336 16.884 10.656-0.36 33.12-9.072 38.628-18.36 5.112-9.468-1.188-26.928-7.235-37.368-6.156-10.512-16.309-23.688-28.8-24.948-12.601-1.224-27.504 4.356-45.685 17.28-1.151-11.52-4.176-21.06-9.072-29.448-5.004-8.316-13.68-17.136-20.34-20.232-6.731-3.168-12.996-2.664-19.368 1.368-3.779 3.024-5.939 7.236-6.623 13.176-0.721 5.832 0.107 13.032  [...]
+          <path d="m84.456 97.848c-15.264 4.104-24.768 17.748-21.744 28.944 2.988 11.16 15.156 18.468 30.42 14.4s23.4-16.488 20.376-27.648c-3.03-11.16-13.79-19.76-29.054-15.692z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m81.828 147.92c-10.62-4.032-20.664 4.572-22.428 19.26-1.728 14.687 5.472 29.88 16.092 33.912 10.62 4.033 20.664-4.607 22.428-19.26 1.728-14.68-5.436-29.87-16.092-33.91z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m123.12 106.49c-3.06 17.244 2.34 29.664 12.42 32.58 10.08 2.952 23.076-2.664 26.136-19.872 3.061-17.244-5.616-32.472-15.696-35.424s-19.84 5.504-22.86 22.714z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m152.32 154.19c-3.456 19.476 2.412 33.263 13.824 36.576 11.412 3.348 27.252-4.104 30.708-23.58 3.456-19.44-7.344-35.316-18.756-38.628-11.37-3.35-22.32 6.15-25.77 25.63z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m105.66 204.41c-3.456 19.477 3.564 30.527 14.976 33.875 11.376 3.313 25.416-4.031 28.872-23.508 3.456-19.475-5.832-32.832-17.244-36.143-11.42-3.35-23.15 6.3-26.61 25.78z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m165.74 258.66c3.204 15.984 15.444 28.547 24.948 25.74 9.468-2.844 17.243-20.52 14.04-36.541-3.24-15.984-16.236-24.227-25.704-21.383-9.51 2.8-16.53 16.16-13.29 32.18z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m173.77 306.54c-4.5 11.557 0.611 22.5 8.208 25.705 7.668 3.203 17.46-3.564 21.96-15.121 4.5-11.52 0.756-27.143-6.876-30.348-7.63-3.2-18.79 8.21-23.29 19.77z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m222.44 330.62c10.907 11.484 21.348 16.74 27.18 8.102 5.832-8.605 0.864-30.492-10.008-42.012-10.908-11.484-20.484-11.125-26.316-2.521-5.82 8.64-1.72 24.91 9.15 36.43z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m204.91 180.04c1.08 17.424 13.824 29.232 23.904 28.729 10.08-0.539 17.1-12.203 16.02-29.592-1.116-17.388-13.428-27.792-23.508-27.288-10.07 0.53-17.49 10.76-16.41 28.15z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m209.59 145.98c11.592 0.684 18.216-8.316 17.28-17.208-0.9-8.892-9.828-14.832-21.42-15.48-11.592-0.684-16.452 5.04-15.552 13.932 0.9 8.9 8.14 18.11 19.69 18.76z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m194.15 224.93c9.504 8.064 20.34 9.289 24.228 1.801 3.888-7.453-3.132-20.449-12.636-28.512-9.504-8.064-16.668-6.877-20.557 0.646-3.88 7.45-0.54 17.99 8.97 26.06z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m203.47 236.7c5.328-1.26 10.296-0.215 15.049 3.42 4.752 3.564 11.735 11.557 13.319 18 1.477 6.408-0.359 17.568-4.248 20.412-3.996 2.701-10.26 1.512-19.224-3.852 3.023-4.428 4.14-9.863 3.348-16.164-0.87-6.45-3.57-13.54-8.25-21.82z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m230.76 286.74c-0.684-6.625 0.612-10.873 4.284-13.176 3.636-2.34 11.7-2.305 17.244-0.432 5.4 1.836 12.132 6.623 15.336 11.592 3.132 4.824 5.76 12.779 3.42 17.496-2.52 4.607-8.388 7.955-18.036 10.188-3.023-8.172-6.156-14.148-9.936-18.504-3.8-4.25-7.73-6.74-12.3-7.17z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m160.67 244.44c-3.06 4.68-3.312 10.656-1.044 18.469 2.34 7.775 7.2 16.848 14.868 27.756-8.064 3.779-15.048 4.859-21.492 2.844-6.444-2.123-14.184-7.92-16.812-14.615-2.628-6.732-1.476-19.008 0.972-25.164 2.34-6.193 9.108-10.008 13.104-11.592 3.92-1.63 7.34-0.77 10.4 2.29z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m149.62 229.86c6.876 3.492 12.456 4.176 17.172 1.908 4.608-2.375 10.368-9.9 10.62-15.371 0.036-5.473-5.977-14.473-9.433-17.281-3.455-2.951-7.056-2.879-10.943-0.07 0.684 6.264 0.432 11.807-0.756 17.027-1.34 5.18-3.42 9.64-6.66 13.78z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m139.97 147.53c-6.588-0.648-11.592-2.268-15.012-5.148-3.456-2.916-5.292-6.84-5.652-11.916-5.184 1.152-9.18 4.032-12.276 9.072-3.132 4.932-6.084 13.212-6.084 20.521 0 7.2 1.908 14.544 5.868 22.428 4.14-5.797 8.64-9.504 13.644-10.98 4.968-1.548 10.296-1.008 16.128 1.764 2.268-4.14 3.708-8.28 4.32-12.564 0.57-4.32 0.21-8.71-0.94-13.17z" i:knockout="Off" fill="#FF00FF"/>
+          <path d="m197.39 22.14l-5.508 0.828c1.08 2.376 1.368 5.76 1.008 10.296-0.432 4.464-1.512 10.044-3.384 16.74 4.032 1.476 8.101 3.96 12.348 7.74 4.177 3.672 11.017 9.144 12.889 14.472 1.8 5.292 5.04 10.152-1.8 16.956-7.021 6.66-19.801 14.256-39.313 22.932l0.864 5.868c5.399-1.296 11.016-3.168 17.424-5.616 6.336-2.448 14.796-5.328 20.376-9.072 5.436-3.888 9.432-6.48 12.132-14.004 2.521-7.74 5.688-21.492 3.528-31.536-2.269-10.224-11.304-22.5-16.416-28.512-5.12-6.008-9.83-8.24-14.15- [...]
+          <path d="m232.88 76.572c5.688-6.084 12.132-10.548 19.765-13.536 7.56-2.988 16.848-6.804 25.523-4.248 8.568 2.556 20.809 11.052 25.74 19.26 4.788 8.1 6.876 21.672 3.06 29.052-4.067 7.272-18.468 14.04-26.531 14.472-8.101 0.18-19.513-5.328-21.313-12.492-1.764-7.344 5.184-25.704 10.98-30.348 5.688-4.536 19.188-0.72 23.292 3.096 4.031 3.708 4.031 15.48 0.972 18.936-3.24 3.348-9.72 3.744-19.836 1.188l3.888-10.476c4.536 3.024 7.668 4.356 9.828 3.996 2.052-0.432 4.788-4.932 2.521-6.408 [...]
+          <path d="m168.59 96.156c5.544-11.16 6.948-21.672 4.068-32.076-3.024-10.44-12.636-21.528-21.348-29.916-8.748-8.496-18.9-15.012-30.744-20.232l0.288 16.56-24.984-2.736 2.224 14.148c-11.412-2.484-21.852-2.628-31.608-0.288-9.828 2.376-18.576 6.912-26.784 14.148l10.368 11.304c-6.804 0.504-13.284 5.256-19.728 14.652-6.516 9.396-12.6 22.896-18.684 41.184 6.948-4.644 14.148-7.272 21.888-7.74 7.704-0.54 15.66 1.08 24.156 4.716 1.764-11.664 6.12-19.692 13.5-24.912 7.416-5.148 22.392-6.3 3 [...]
+          <path d="m137.38 95.04c1.836-1.296 4.608-2.808 7.488-2.052 2.736 0.72 7.416 2.736 9.036 6.588 1.476 3.888 0.792 15.264 0.324 16.056-0.504 0.54-1.548-9.756-3.276-12.564-1.836-2.988-4.104-4.176-6.948-4.68-2.88-0.54-8.568 2.052-9.684 1.548-1.16-0.686 1.26-3.71 3.06-4.898z" i:knockout="Off" fill="#FFFFFF"/>
+          <path d="m168.73 141.3c2.124-1.512 5.688-3.42 9.144-2.52s9.036 3.42 11.052 8.1c1.836 4.68 0.937 18.756 0.36 19.584-0.72 0.576-1.872-11.808-3.996-15.336-2.232-3.564-5.004-5.148-8.46-5.724-3.42-0.612-10.512 2.484-11.844 1.908-1.36-0.79 1.56-4.61 3.75-6.01z" i:knockout="Off" fill="#FFFFFF"/>
+          <path d="m223.09 163.04c1.62-1.116 4.429-2.736 7.057-1.944 2.592 0.72 6.947 2.628 8.495 6.264 1.44 3.672 0.721 14.365 0.324 15.121-0.468 0.396-1.548-9.108-3.096-11.844-1.729-2.808-3.96-3.96-6.552-4.428-2.809-0.54-7.992 1.944-9.145 1.476-0.99-0.65 1.13-3.49 2.93-4.65z" i:knockout="Off" fill="#FFFFFF"/>
+          <path d="m119.09 190.15c2.664-1.801 6.876-4.213 11.088-3.061 4.068 1.045 10.98 4.176 13.356 9.793 2.304 5.688 1.116 22.68 0.468 23.76-0.828 0.756-2.304-14.328-4.86-18.613-2.7-4.283-6.12-6.227-10.26-6.947-4.14-0.793-12.708 3.096-14.328 2.34-1.7-0.93 1.9-5.58 4.53-7.27z" i:knockout="Off" fill="#FFFFFF"/>
+          <path d="m178.34 236.41c2.053-1.477 5.652-3.313 9-2.447 3.276 0.791 8.893 3.383 10.872 7.92 1.836 4.57 0.937 18.467 0.36 19.332-0.612 0.539-1.872-11.629-3.924-15.121-2.196-3.455-4.933-5.148-8.353-5.652-3.527-0.611-10.188 2.484-11.628 1.908-1.29-0.72 1.41-4.64 3.67-5.94z" i:knockout="Off" fill="#FFFFFF"/>
+          <path d="m239.69 279.83c2.159-1.512 5.615-2.988 9-2.484 3.312 0.469 10.512 3.961 10.476 5.184-0.252 1.045-7.704 0.686-11.521 1.297-3.96 0.504-10.296 2.484-11.628 1.908-1.3-0.76 1.4-4.54 3.67-5.91z" i:knockout="Off" fill="#FFFFFF"/>
+          <path d="m225.25 292.28c2.484 0.252 6.408 1.369 9 3.889 2.556 2.52 6.912 9.973 6.264 10.836-0.899 0.648-6.876-4.32-10.548-6.443-3.672-2.088-10.188-4.752-10.943-6.049-0.79-1.41 3.6-2.52 6.23-2.24z" i:knockout="Off" fill="#FFFFFF"/>
+          <path d="m89.244 101.2c2.484 0.252 6.408 1.368 9 3.888 2.556 2.448 6.912 9.936 6.264 10.8-0.9 0.54-6.876-4.248-10.548-6.444-3.708-2.088-10.116-4.752-10.908-6.048-0.83-1.45 3.634-2.46 6.19-2.2z" i:knockout="Off" fill="#FFFFFF"/>
+        </g>
+      </g>
+    </g>
+  </switch>
+  <metadata>
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
+        <dc:publisher>
+          <cc:Agent rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title>Simple Fruit Grapes</dc:title>
+        <dc:date>2007-11-15T00:18:12</dc:date>
+        <dc:description/>
+        <dc:source>https://openclipart.org/detail/8531/simple-fruit-grapes-by-gerald_g</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Gerald_G</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>food</rdf:li>
+            <rdf:li>fruit</rdf:li>
+            <rdf:li>grape</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
\ No newline at end of file
diff --git a/images/presets/leisure/bbq.png b/images/presets/leisure/bbq.png
deleted file mode 100644
index 390d8c1..0000000
Binary files a/images/presets/leisure/bbq.png and /dev/null differ
diff --git a/images/presets/leisure/bbq.svg b/images/presets/leisure/bbq.svg
new file mode 100644
index 0000000..e293de8
--- /dev/null
+++ b/images/presets/leisure/bbq.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bbq2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="48.127455"
+     inkscape:cx="6.9045354"
+     inkscape:cy="9.5957136"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#00669c;stroke-width:0.83655584;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto; [...]
+       id="rect4161"
+       width="15.163444"
+       height="15.163445"
+       x="0.41827792"
+       y="1036.7805"
+       rx="1.8965528"
+       ry="2.1267412" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00669c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="path4145"
+       sodipodi:type="arc"
+       sodipodi:cx="7.4151788"
+       sodipodi:cy="1043.5742"
+       sodipodi:rx="4.8839288"
+       sodipodi:ry="4.4040179"
+       sodipodi:start="0"
+       sodipodi:end="3.1415927"
+       d="m 12.299108,1043.5742 a 4.8839288,4.4040179 0 0 1 -2.4419649,3.814 4.8839288,4.4040179 0 0 1 -4.8839288,0 4.8839288,4.4040179 0 0 1 -2.4419643,-3.814 l 4.8839288,0 z" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#00669c;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 3,1050.8333 3,-5"
+       id="path4147"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#00669c;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 8.882461,1050.8039 -1,-5"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#00669c;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 12.293848,1050.6276 -3.0000004,-5"
+       id="path4151"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#00669c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 14.774573,1037.5238 -1.69146,1.8384"
+       id="path4153"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#00669c;stroke-width:0.92784739px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 9.8851159,1040.663 c 2.7244261,-3.178 4.8589401,-0.8588 1.8719581,1.8291"
+       id="path4155"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#00669c;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 3.59375,1038.5899 c 0.1766654,2.4283 1.8453544,2.0036 1.875,4.1964"
+       id="path4157"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       id="path4159"
+       d="m 5.59375,1038.5899 c 0.1766654,2.4283 1.8453544,2.0036 1.875,4.1964"
+       style="fill:none;fill-rule:evenodd;stroke:#00669c;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/beach_resort.svg b/images/presets/leisure/beach_resort.svg
new file mode 100644
index 0000000..15833ad
--- /dev/null
+++ b/images/presets/leisure/beach_resort.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   sodipodi:docname="sonnenschirm22.svg"
+   viewBox="0 0 16 16"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="16"
+   height="16">
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     id="namedview7"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     guidetolerance="10"
+     pagecolor="#ffffff"
+     gridtolerance="10"
+     inkscape:window-maximized="1"
+     inkscape:zoom="136.125"
+     objecttolerance="10"
+     borderopacity="1"
+     inkscape:current-layer="svg2"
+     inkscape:cx="6.1211213"
+     inkscape:cy="2.004816"
+     inkscape:window-y="-8"
+     inkscape:showpageshadow="false"
+     inkscape:window-x="-8"
+     inkscape:window-width="1680"
+     showgrid="true"
+     inkscape:pageopacity="0"
+     inkscape:window-height="988"
+     showborder="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <g
+     transform="matrix(0.07241444,0.04389037,-0.04761145,0.08104442,2.2335397,-39.342888)"
+     id="g4138"
+     style="fill:#ff0000">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 381.8346,391.5447 c 2.4325,-4.1228 9.1607,-9.6569 15.741,-12.947 5.4113,-2.7058 18.38,-5.7362 24.548,-5.7362 2.1087,0 4.0946,-0.42155 4.413,-0.93678 1.978,-3.2004 -7.978,-18.9 -17.189,-27.106 -10.016,-8.9227 -32.972,-17.444 -50.772,-18.846 -10.97032,-0.41058 -34.00566,-5.55473 -20.0232,7.7787 5.8647,5.5466 12.07,13.783 17.049,22.628 1.6641,2.9566 3.9407,6.412 5.0592,7.6788 1.1184,1.2668 2.5913,3.61 3.273,5.2071 0.68172,1.5971 2.71,5.1971 4.5072,8 7.2938,11.375 8.3793,13.215 9 [...]
+       style="fill:#ff0000"
+       sodipodi:nodetypes="cssssccssccccc"
+       id="path4140" />
+  </g>
+  <g
+     transform="matrix(0.07241444,0.04389037,-0.04761145,0.08104442,6.8373885,-25.801563)"
+     id="g4157"
+     style="fill:#ffff00">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 178.89758,304.18379 c 15.289,-9.4066 43.924,-13.906 60.469,-9.5019 2.9128,0.77536 5.9073,1.4151 6.6544,1.4216 2.4294,0.0212 0.34225,-4.7685 -7.4101,-17.005 -4.0966,-6.4662 -7.4483,-12.069 -7.4483,-12.45 0,-0.38144 -1.6397,-3.2448 -3.6438,-6.363 -2.0041,-3.1182 -5.1509,-8.0202 -6.9929,-10.893 -6.5564,-10.227 -19.363,-21.805 -19.363,-17.506 0,0.42333 -2.0044,3.4495 -4.4543,6.7249 -5.8713,7.8497 -13.574,23.366 -18.37,37.005 -4.9976,14.213 -7.5892,31.5 -4.7224,31.5 0.284,0 2.6606 [...]
+       style="fill:#ffff00"
+       sodipodi:nodetypes="ssssssssssccs"
+       id="path4159" />
+  </g>
+  <g
+     transform="matrix(0.07169747,0.04345581,-0.04714005,0.080242,21.572042,-13.024977)"
+     id="g4161"
+     style="fill:#ff0000">
+    <path
+       inkscape:connector-curvature="0"
+       d="m -56.626918,263.82726 c 1.628019,-11.45138 7.598129,-28.84055 14.544,-42.36344 1.594285,-3.10363 4.046767,-7.91548 5.449859,-10.69287 1.403092,-2.7775 3.848302,-6.38613 5.4338,-8.0192 5.353,-5.51379 4.507226,-5.76165 -12.30988,-3.60641 -11.16858,1.43127 -15.61561,2.52924 -24.239998,5.98566 -12.40987,4.97345 -25.62471,14.42078 -34.816713,24.88943 -7.22393,8.22817 -13.07142,21.05951 -14.13899,31.02417 -0.81102,7.57319 -0.64482,7.73509 5.34795,5.20807 4.75609,-2.00556 17.804273,- [...]
+       style="fill:#ff0000"
+       sodipodi:nodetypes="ssssssssssccss"
+       id="path4163" />
+  </g>
+  <g
+     id="g4"
+     transform="matrix(0.07169747,0.04345581,-0.04714005,0.080242,2.3736738,-38.889047)"
+     style="fill:#4d4d4d">
+    <path
+       id="path2954"
+       sodipodi:nodetypes="csssssssssssssssssssssssssccccssssssssssccsssssssssssccsscsssssssssccccc"
+       style="fill:#4d4d4d"
+       d="m 335.05307,467.84424 c -1.2707,-54.675 -0.4699,-68.38848 -1.36247,-70.06048 -0.8216,-1.539 -0.52368,-1.01446 -4.13678,-0.47256 -5.2256,0.78363 -20.121,6.6669 -25.539,10.087 -5.0991,3.2189 -7.9468,3.107 -11.351,-0.44606 -1.5322,-1.5992 -5.4939,-4.1231 -8.8039,-5.6085 -5.367,-2.4085 -7.5473,-2.7534 -20.151,-3.1878 -14.043,-0.48388 -14.181,-0.46714 -21.521,2.6085 -7.4181,3.1083 -10.13,3.7386 -10.092,2.3455 0.0114,-0.4125 0.88492,-5.989 1.9412,-12.392 3.0216,-18.318 5.4827,-22.768 [...]
+       inkscape:connector-curvature="0" />
+  </g>
+  <metadata
+     id="metadata6">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2010-08-29T20:47:21</dc:date>
+        <dc:description>umbrella outline</dc:description>
+        <dc:source>https://openclipart.org/detail/82753/umbrella-by-mireille</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>mireille</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>art line</rdf:li>
+            <rdf:li>black and white</rdf:li>
+            <rdf:li>outline</rdf:li>
+            <rdf:li>umbrella</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/leisure/bench.png b/images/presets/leisure/bench.png
deleted file mode 100644
index 9ddc134..0000000
Binary files a/images/presets/leisure/bench.png and /dev/null differ
diff --git a/images/presets/leisure/bench.svg b/images/presets/leisure/bench.svg
new file mode 100644
index 0000000..72ced59
--- /dev/null
+++ b/images/presets/leisure/bench.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="6"
+   viewBox="0 0 16 6"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bench2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="2.3066721"
+     inkscape:cy="2.2027743"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="0"
+       originy="-5.0000174" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1041.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4151"
+       width="16"
+       height="3"
+       x="0"
+       y="1041.3622"
+       ry="0.5" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4153"
+       width="3"
+       height="4"
+       x="2"
+       y="1043.3622"
+       ry="0.5" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4155"
+       width="3"
+       height="4"
+       x="11"
+       y="1043.3622"
+       ry="0.5" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4145"
+       width="14"
+       height="1"
+       x="1"
+       y="1042.3622"
+       ry="0.5" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4147"
+       width="1"
+       height="4"
+       x="3"
+       y="1042.3622"
+       ry="0.5" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4149"
+       width="1"
+       height="4"
+       x="12"
+       y="1042.3622"
+       ry="0.5" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/brothel.svg b/images/presets/leisure/brothel.svg
new file mode 100644
index 0000000..63e11ed
--- /dev/null
+++ b/images/presets/leisure/brothel.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="brothel2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="3.5814383"
+     inkscape:cy="5.2795365"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <circle
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.27590525;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="path4134"
+       cx="4.5638151"
+       cy="1043.7982"
+       r="3.9258626" />
+    <circle
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#1850ff;stroke-width:1.27590525;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="path4134-2"
+       cx="8.6999903"
+       cy="1043.7371"
+       r="3.9258626" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#1850ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 11.262691,1041.0995 3.715894,-3.8106"
+       id="path4174"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#1850ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 15.5,1040.3622 0,-4"
+       id="path4176"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#1850ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 12,1036.8622 4,0"
+       id="path4178"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 4.5,1052.3622 0,-5"
+       id="path4180"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 3,1050.8622 3,0"
+       id="path4182"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/casino.svg b/images/presets/leisure/casino.svg
index 8a1d971..686c8d5 100644
--- a/images/presets/leisure/casino.svg
+++ b/images/presets/leisure/casino.svg
@@ -10,12 +10,24 @@
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    version="1.1"
-   width="73%"
-   height="100%"
-   viewBox="0 0 272.83196 373.82317"
+   width="11"
+   height="16"
+   viewBox="0 0 11 16"
    id="svg2"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="30.svg">
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="casino4.svg">
+  <metadata
+     id="metadata9">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Hotel has a casino</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -28,15 +40,19 @@
      inkscape:window-width="1680"
      inkscape:window-height="988"
      id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.5252581"
-     inkscape:cx="53.270554"
-     inkscape:cy="272.63461"
+     showgrid="true"
+     inkscape:zoom="28.963094"
+     inkscape:cx="3.5189393"
+     inkscape:cy="7.4496916"
      inkscape:window-x="-8"
      inkscape:window-y="-8"
      inkscape:window-maximized="1"
      inkscape:current-layer="svg2"
-     showguides="false" />
+     showguides="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4141" />
+  </sodipodi:namedview>
   <title
      id="title3924">Hotel has a casino</title>
   <defs
@@ -45,15 +61,15 @@
      inkscape:connector-curvature="0"
      style="fill:#ffffff;fill-rule:evenodd"
      id="path127"
-     d="M 32.344551,373.81427 C 14.444566,373.84771 0.05259428,359.41983 0.01660512,341.50894 L -4.3678e-5,341.4633 0.02881424,32.389577 C 0.02778757,14.424621 14.455235,0.03133824 32.357482,-1.8391e-5 L 240.46501,0.04956728 C 258.36724,0.01821204 272.80486,14.429535 272.79011,32.347081 l 0.0418,309.121839 c 0.001,17.96494 -14.4269,32.35692 -32.34574,32.34265 l -208.129564,0.0111 z" />
+     d="M 1.304076,15.999821 C 0.58237886,16.001281 0.00212482,15.383717 6.7389239e-4,14.617108 L 0,14.614908 0.00137529,1.3861086 C 0.00133403,0.6171854 0.58302525,0.0011329 1.3048049,-2.103e-4 l 8.3904965,0.00219 C 10.417088,5.197e-4 10.999185,0.6174628 10.998587,1.3843566 L 11,14.615214 c 4.1e-5,0.768924 -0.581664,1.384925 -1.3041174,1.384312 L 1.3044987,16 Z" />
   <path
      inkscape:connector-curvature="0"
      style="fill:#ff0000;fill-rule:evenodd"
      id="path131"
-     d="m 122.36392,119.93142 28.14385,-0.0363 -14.11474,-49.417165 -14.02911,49.453705 z m 34.77323,23.01259 -41.33333,-0.0905 -6.53008,22.67335 -26.646267,-0.0392 38.006617,-124.115479 31.56297,0.0091 38.02328,124.130789 -26.60858,0.0642 -6.47461,-22.6329 z" />
+     d="M 5.0301915,5.1332715 6.2347899,5.1318115 5.6306584,3.0166905 5.0301915,5.1333737 Z M 6.5185362,6.1182401 4.7494091,6.1145901 4.4699115,7.0850389 3.3294149,7.0835789 4.9561542,1.7712628 6.3070971,1.7716497 7.9345445,7.0846228 6.7956613,7.0875428 6.5185362,6.1188241 Z" />
   <path
      inkscape:connector-curvature="0"
      style="fill:#ff0000;fill-rule:evenodd"
      id="path139"
-     d="m 108.40674,209.70696 c -3.22172,0.0565 -6.77182,0.81704 -10.688583,2.61468 -42.717784,33.19441 14.882693,86.74844 39.161733,132.70968 l 0.73451,0.26565 c 26.71877,-50.28116 77.6009,-105.58036 38.70954,-132.99128 -30.76775,-13.99543 -38.98711,32.63384 -39.27381,34.33274 -0.27863,-1.49166 -6.526,-37.06043 -28.64339,-36.93147 z" />
+     d="m 4.4328052,8.9757924 c -0.1378909,0.00219 -0.2898418,0.034967 -0.4574878,0.11191 -1.8283817,1.4207676 0.6370038,3.7129596 1.6761827,5.6801666 l 0.031463,0.01139 C 6.8265624,12.627154 9.0043905,10.260268 7.3397862,9.0870454 6.0228836,8.4880166 5.6710862,10.483818 5.6588147,10.556534 5.6469156,10.492658 5.3794923,8.9702954 4.4328344,8.9758143 Z" />
 </svg>
diff --git a/images/presets/leisure/common.png b/images/presets/leisure/common.png
deleted file mode 100644
index 5e7f229..0000000
Binary files a/images/presets/leisure/common.png and /dev/null differ
diff --git a/images/presets/leisure/common.svg b/images/presets/leisure/common.svg
new file mode 100644
index 0000000..84a919b
--- /dev/null
+++ b/images/presets/leisure/common.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="12"
+   height="16"
+   viewBox="0 0 12 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="common1.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="0.79842057"
+     inkscape:cy="7.6517806"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 3.390276,1052.1244 c -0.8020071,-0.2731 -0.5005155,-1.2998 -1.3727381,-2.0263 -0.7171393,-0.5974 -1.33136388,-0.6001 -1.80573674,-1.197 -0.20345284,-0.6868 -0.26409877,-1.3498 -0.16554557,-2.3407 0.35474047,-0.8347 0.97077541,-2.0272 3.34402041,-3.0314 0.9218686,-0.3644 1.5738332,-0.2724 2.1189832,0 1.4599653,0.6346 0.767543,-5.3121 2.1189832,-6.4466 0.9080683,-0.4607 1.6720546,-1.3596 3.1784756,0 0.861097,0.9618 0.706328,5.0141 1.059491,7.521 0.185883,1.0273 0.170732,2.1056  [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cscccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/dog.png b/images/presets/leisure/dog.png
deleted file mode 100644
index c9fb408..0000000
Binary files a/images/presets/leisure/dog.png and /dev/null differ
diff --git a/images/presets/leisure/dogpark.png b/images/presets/leisure/dogpark.png
deleted file mode 100644
index 1d57e30..0000000
Binary files a/images/presets/leisure/dogpark.png and /dev/null differ
diff --git a/images/presets/leisure/dogpark.svg b/images/presets/leisure/dogpark.svg
new file mode 100644
index 0000000..816d20d
--- /dev/null
+++ b/images/presets/leisure/dogpark.svg
@@ -0,0 +1,826 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="580"
+   height="580"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="dogpark2.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="0.90509668"
+     inkscape:cx="12.800294"
+     inkscape:cy="211.2488"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     inkscape:window-maximized="1" />
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective2466"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3333"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3401"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3464"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3581"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4312"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8860"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8887"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective4904" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       id="perspective4668" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective4471" />
+    <symbol
+       id="symbol-university"
+       viewBox="244.5 110 489 219.9">
+      <path
+         d="M79,43l57,119c0,0,21-96,104-96s124,106,124,106l43-133l82-17L0,17L79,43z"
+         id="path4460" />
+      <path
+         fill="none"
+         stroke="#000000"
+         stroke-width="20"
+         d="M94,176l-21,39"
+         id="path4462" />
+      <path
+         d="M300,19c0,10.5-22.6,19-50.5,19S199,29.5,199,19s22.6-19,50.5-19S300,8.5,300,19z"
+         id="path4464" />
+      <path
+         ill="none"
+         stroke="#000000"
+         stroke-width="20"
+         d="M112,216l-16-38L64,88c0,0-9-8-4-35s16-24,16-24"
+         id="path4466" />
+    </symbol>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       id="perspective3452" />
+    <inkscape:perspective
+       id="perspective9479"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9690"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective9819" />
+    <inkscape:perspective
+       id="perspective9817"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol9807">
+      <path
+         id="path9809"
+         d="M79,43l57,119c0,0,21-96,104-96s124,106,124,106l43-133l82-17L0,17L79,43z" />
+      <path
+         id="path9811"
+         d="M94,176l-21,39"
+         stroke-width="20"
+         stroke="#000000"
+         fill="none" />
+      <path
+         id="path9813"
+         d="M300,19c0,10.5-22.6,19-50.5,19S199,29.5,199,19s22.6-19,50.5-19S300,8.5,300,19z" />
+      <path
+         id="path9815"
+         d="M112,216l-16-38L64,88c0,0-9-8-4-35s16-24,16-24"
+         stroke-width="20"
+         stroke="#000000"
+         ill="none" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective9805"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9803"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9801"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 16 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9799" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9797" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9795" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9793" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9791" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9789" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9787" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9785" />
+    <inkscape:perspective
+       id="perspective9783"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <defs
+       id="defs48974" />
+    <sodipodi:namedview
+       pagecolor="#ffffff"
+       inkscape:zoom="0.61399264"
+       inkscape:window-y="26"
+       inkscape:window-x="0"
+       inkscape:window-width="1012"
+       inkscape:window-height="739"
+       inkscape:pageshadow="2"
+       inkscape:pageopacity="0.0"
+       inkscape:cy="250.37448"
+       inkscape:cx="475.26707"
+       id="namedview4258"
+       borderopacity="1.0"
+       bordercolor="#666666" />
+    <inkscape:perspective
+       id="perspective11483"
+       inkscape:persp3d-origin="100 : 66.666667 : 1"
+       inkscape:vp_z="200 : 100 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 100 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       id="linearGradient2936">
+      <stop
+         style="stop-color:#8acf6b;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2938" />
+      <stop
+         style="stop-color:#368912;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2940" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2952">
+      <stop
+         style="stop-color:#c0d50d;stop-opacity:1;"
+         offset="0"
+         id="stop2954" />
+      <stop
+         style="stop-color:#eef2cd;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2956" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective34"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective13933"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective13955"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective2446" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 204.28572 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="405.71429 : 204.28572 : 1"
+       inkscape:persp3d-origin="202.85715 : 136.19048 : 1"
+       id="perspective5571" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 250 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="500 : 250 : 1"
+       inkscape:persp3d-origin="250 : 166.66667 : 1"
+       id="perspective5412" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective5233" />
+    <marker
+       inkscape:stockid="RazorWire"
+       id="RazorWire"
+       refX="0"
+       refY="0"
+       orient="auto">
+       style="overflow:visible">
+      <path
+   id="path4286"
+   transform="scale(0.8,0.8)"
+   style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.1pt"
+   d="M 0.022727273,-0.74009011 L 0.022727273,0.69740989 L -7.7585227,3.0099099 L 10.678977,3.0099099 L 3.4914773,0.69740989 L 3.4914773,-0.74009011 L 10.741477,-2.8963401 L -7.7272727,-2.8963401 L 0.022727273,-0.74009011 z " />
+</marker>
+    <marker
+       inkscape:stockid="DiamondS"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="DiamondS"
+       style="overflow:visible">
+      <path
+         id="path4202"
+         d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Sstart"
+       style="overflow:visible">
+      <path
+         id="path4146"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="StopS"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="StopS"
+       style="overflow:visible">
+      <path
+         id="path4229"
+         d="M 0.0,5.65 L 0.0,-5.65"
+         style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.2)" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       inkscape:stockid="InfiniteLineStart"
+       id="InfiniteLineStart"
+       refX="0"
+       refY="0"
+       orient="auto">
+      <g
+         id="g4298"
+         transform="translate(-13,0)">
+        <circle
+           id="circle4300"
+           r="0.8"
+           cy="0"
+           cx="3" />
+        <circle
+           id="circle4302"
+           r="0.8"
+           cy="0"
+           cx="6.5" />
+        <circle
+           id="circle4304"
+           r="0.8"
+           cy="0"
+           cx="10" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="CurveIn"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="CurveIn"
+       style="overflow:visible">
+      <path
+         id="path4238"
+         d="M 4.6254930,-5.0456926 C 1.8654930,-5.0456926 -0.37450702,-2.8056926 -0.37450702,-0.045692580 C -0.37450702,2.7143074 1.8654930,4.9543074 4.6254930,4.9543074"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;fill:none"
+         transform="scale(0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutS"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleOutS"
+       style="overflow:visible">
+      <path
+         id="path4220"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;">
+      <path
+         id="path4149"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="SemiCircleOut"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="SemiCircleOut"
+       style="overflow:visible">
+      <path
+         id="path4235"
+         d="M -2.5,-0.80913858 C -2.5,1.9508614 -4.7400000,4.1908614 -7.5,4.1908614 L -7.5,-5.8091386 C -4.7400000,-5.8091386 -2.5,-3.5691386 -2.5,-0.80913858 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none"
+         transform="scale(0.6) translate(7.125493,0.763446)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;">
+      <path
+         id="path4131"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path4128"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Tail"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Tail"
+       style="overflow:visible">
+      <g
+         id="g4152"
+         transform="scale(-1.2)">
+        <path
+           id="path4154"
+           d="M -3.8048674,-3.9585227 L 0.54352094,0"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path4156"
+           d="M -1.2866832,-3.9585227 L 3.0617053,0"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path4158"
+           d="M 1.3053582,-3.9585227 L 5.6537466,0"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path4160"
+           d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path4162"
+           d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+        <path
+           id="path4164"
+           d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path4119"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutL"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleOutL"
+       style="overflow:visible">
+      <path
+         id="path4214"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mend"
+       style="overflow:visible;">
+      <path
+         id="path4125"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.4) rotate(180) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path4137"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective14642" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       id="perspective14640" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective14638" />
+    <symbol
+       id="symbol14628"
+       viewBox="244.5 110 489 219.9">
+      <path
+         d="M79,43l57,119c0,0,21-96,104-96s124,106,124,106l43-133l82-17L0,17L79,43z"
+         id="path14630" />
+      <path
+         fill="none"
+         stroke="#000000"
+         stroke-width="20"
+         d="M94,176l-21,39"
+         id="path14632" />
+      <path
+         d="M300,19c0,10.5-22.6,19-50.5,19S199,29.5,199,19s22.6-19,50.5-19S300,8.5,300,19z"
+         id="path14634" />
+      <path
+         ill="none"
+         stroke="#000000"
+         stroke-width="20"
+         d="M112,216l-16-38L64,88c0,0-9-8-4-35s16-24,16-24"
+         id="path14636" />
+    </symbol>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       id="perspective14626" />
+    <inkscape:perspective
+       id="perspective14624"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective14775"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective14839"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2562"
+       inkscape:persp3d-origin="212.91061 : 133.01251 : 1"
+       inkscape:vp_z="425.82123 : 199.51877 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 199.51877 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g1327"
+     style="stroke:none;fill:#00ff00;fill-opacity:0.74901962"
+     transform="matrix(1.0061671,0,0,1.0044133,-1.7145087,-1.7119892)">
+    <path
+       d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z"
+       style="fill:#00ff00;stroke:none;stroke-width:3.40799999;fill-opacity:0.74901962"
+       id="path1329"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="stroke:#757575;stroke-opacity:1;display:none"
+     transform="matrix(48.14969,0,0,48.14969,-1210.2219,-51.870914)">
+    <rect
+       style="fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g9828"
+     inkscape:label="Layout"
+     style="stroke:#757575;stroke-opacity:1;display:none"
+     transform="matrix(48.14969,0,0,48.14969,-1870.5198,102.97115)">
+    <rect
+       style="fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       id="rect9830"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       id="rect9832"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g14695"
+     inkscape:label="Layout"
+     style="stroke:#757575;stroke-opacity:1;display:none"
+     transform="matrix(48.14969,0,0,48.14969,-1210.2219,-182.06834)">
+    <rect
+       style="fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       id="rect14697"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       id="rect14699"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="layer1"
+     transform="matrix(0.96164875,0.57003852,-0.5710339,0.95997247,-251.11826,-835.38157)"
+     style="fill:#000000;fill-opacity:1;stroke:none">
+    <path
+       id="path2078"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 922.96817,588.96089 c 24.0243,2.80534 52.37886,8.1762 65.0633,31.40835 9.26227,13.69502 17.32513,28.38401 28.87643,40.36617 20.4742,10.36026 40.8732,22.80183 55.5624,40.70359 18.4349,27.56507 12.8528,67.04874 -8.5754,91.25527 -23.9937,21.96745 -58.5285,32.94178 -90.50944,24.81452 -20.44108,-4.08663 -40.82293,-16.11271 -62.09074,-9.39446 -19.67342,5.52125 -39.19757,14.22038 -60.14891,11.8866 -19.91653,-0.67497 -37.78663,-10.41533 -54.54059,-20.2091 -19.53406,-12.53883 -31.7396 [...]
+       sodipodi:nodetypes="cccccccccccccc"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path2040"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 706.83161,545.9715 c 5.12977,-18.01457 19.67126,-34.6786 38.97729,-37.11684 13.80277,-1.78026 28.08593,1.72456 40.23749,8.24205 22.16066,14.75851 35.05953,39.74123 42.35302,64.6795 3.67599,11.92517 6.17666,24.67526 3.14767,37.03976 -2.7993,14.60207 -13.39057,26.97443 -27.02046,32.66676 -17.70364,10.64278 -41.17953,9.20349 -58.05972,-2.43004 -10.04038,-6.64991 -18.93779,-15.32943 -24.33797,-26.20917 -12.78899,-23.06312 -21.41515,-50.46696 -15.29732,-76.87202 z"
+       sodipodi:nodetypes="ccccccccc"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path2071"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       transform="translate(452.857,333.791)"
+       d="m 421.73586,81.462526 c 0,0 29.46428,0.178571 45.71428,37.857144 0,0 11.21308,24.43717 7.32143,61.96429 0,0 -0.60865,37.77966 -23.08454,53.18448 0,0 -30.55712,27.7792 -65.65992,-9.59645 0,0 -24.4962,-26.26396 -29.29442,-63.38707 0,0 -5.3033,-38.3858 18.43528,-61.36677 0,0 20.13932,-18.834196 46.56789,-18.655624 z"
+       sodipodi:nodetypes="cccccccc"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path2073"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       transform="translate(452.857,333.791)"
+       d="m 576.52455,89.717037 c 0,0 36.25,10.714283 32.32143,52.142853 0,0 2.05835,33.27693 -17.63963,63.58151 0,0 -19.95051,37.37564 -46.46702,41.41625 0,0 -29.29442,9.09137 -50.50762,-35.86042 0,0 -15.15229,-51.0127 8.33376,-85.35789 0,0 27.42112,-50.946446 73.95908,-35.922303 z"
+       sodipodi:nodetypes="ccccccc"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path2075"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 1117.8,529.42866 c 17.0128,5.19957 29.0252,21.65542 30.538,39.14833 1.6415,15.71874 -2.0788,31.51923 -7.3703,46.23188 -8.6097,21.5116 -24.1266,40.31698 -43.7581,52.63552 -14.8357,8.09747 -33.3338,4.66111 -46.9133,-4.41714 -5.555,-2.66124 -8.9406,-7.70303 -11.333,-13.19597 -9.0423,-17.99186 -10.3113,-39.89227 -2.093,-58.41912 6.9469,-17.44643 15.4953,-35.25253 30.1471,-47.54014 11.1088,-10.0964 25.6272,-18.34264 41.1562,-16.72517 3.2906,0.33413 6.5337,1.11092 9.6264,2.28181 z"
+       sodipodi:nodetypes="cccccccccc"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/equestrian.png b/images/presets/leisure/equestrian.png
deleted file mode 100644
index 3684df2..0000000
Binary files a/images/presets/leisure/equestrian.png and /dev/null differ
diff --git a/images/presets/leisure/garden.png b/images/presets/leisure/garden.png
deleted file mode 100644
index 61042bb..0000000
Binary files a/images/presets/leisure/garden.png and /dev/null differ
diff --git a/images/presets/leisure/garden.svg b/images/presets/leisure/garden.svg
new file mode 100644
index 0000000..f822741
--- /dev/null
+++ b/images/presets/leisure/garden.svg
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="garden.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.839192"
+     inkscape:cx="1.8427794"
+     inkscape:cy="4.5873085"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#45d749;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4159"
+       width="16"
+       height="3"
+       x="0"
+       y="1049.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a3b6f3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4161"
+       width="16"
+       height="13"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4145"
+       width="8"
+       height="2"
+       x="1"
+       y="1045.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4147"
+       width="6"
+       height="4.0000172"
+       x="2"
+       y="1043.3622"
+       ry="2.0000086" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4149"
+       width="4"
+       height="2"
+       x="3"
+       y="1042.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4151"
+       width="2"
+       height="2"
+       x="4"
+       y="1041.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#804000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4153"
+       width="2"
+       height="2"
+       x="4"
+       y="1047.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4178"
+       width="3.999999"
+       height="1.9996688"
+       x="11"
+       y="1048.3622"
+       ry="0.95522642" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4180"
+       width="2"
+       height="2"
+       x="12"
+       y="1047.3622"
+       ry="0.955226" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/horse_riding.svg b/images/presets/leisure/horse_riding.svg
new file mode 100644
index 0000000..c5b8758
--- /dev/null
+++ b/images/presets/leisure/horse_riding.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   xml:space="preserve"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="horse_riding.svg"><metadata
+   id="metadata17"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /><cc:license
+         rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><defs
+   id="defs15">
+	
+	
+	
+	
+</defs><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1680"
+   inkscape:window-height="988"
+   id="namedview13"
+   showgrid="true"
+   inkscape:zoom="30.565246"
+   inkscape:cx="3.9740921"
+   inkscape:cy="6.4235773"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="Layer_1"><inkscape:grid
+     type="xygrid"
+     id="grid4149" /></sodipodi:namedview>
+<path
+   inkscape:connector-curvature="0"
+   id="path7"
+   d="M 1.652496,-4.6e-7 C 0.741342,-4.6e-7 0,0.74236954 0,1.6545495 L 0,14.34546 C 0,15.25871 0.741342,16 1.652496,16 l 12.691768,0 C 15.258523,16 16,15.25871 16,14.34546 L 16,1.6545495 C 16,0.74236954 15.258658,-4.6e-7 14.344264,-4.6e-7 l -12.691768,0 z"
+   style="fill:#ffffff;stroke:none;stroke-opacity:1" /><path
+   inkscape:connector-curvature="0"
+   id="path9"
+   d="m 6.9213522,3.0774732 c 0.6174871,0 1.1169764,-0.4874454 1.1169764,-1.0876954 0,-0.6051683 -0.4996464,-1.09246583 -1.1169764,-1.09246583 -0.6137158,0 -1.1121051,0.48745693 -1.1121051,1.09246583 0,0.60025 0.4983893,1.0876954 1.1121051,1.0876954 z"
+   style="fill:#000000;stroke:none;stroke-opacity:1" /><path
+   inkscape:connector-curvature="0"
+   id="path11"
+   d="m 13.611819,6.1118426 -1.014553,-0.1941 -0.590563,1.17362 c 0.09598,0.0221 0.195055,0.0327 0.296294,0.0327 0.629709,1.4e-4 1.156963,-0.42801 1.308822,-1.01219 z m -12.6059548,1.98146 c 0,-0.77828 0.7683797,-1.41092 1.5467077,-1.41092 l 2.968607,0 0,-2.13222 c 0,-0.53046 0.428175,-0.95861 0.959614,-0.95861 0.530494,0 0.958669,0.42815 0.958669,0.95861 l 0,0.33002 1.414246,0.36173 c 0.246754,0.057 0.404957,0.3037 0.349073,0.55044 -0.05588,0.25092 -0.303718,0.40601 -0.553711,0.35013 l  [...]
+   style="fill:#000000;stroke:none;stroke-opacity:1"
+   sodipodi:nodetypes="ccccccsscssscccccccccccccsccssscccccccccsssccccccs" />
+<path
+   inkscape:connector-curvature="0"
+   id="path11-8"
+   d="m 10.764184,9.1499062 2.264298,4.9904528 c 0.144223,0.317863 0.0074,0.694714 -0.308916,0.842234 -0.316364,0.147541 -0.696713,0.01181 -0.840943,-0.306047 L 9.6092971,9.6753199 C 10.001075,9.4543662 10.355997,9.2888636 10.764184,9.1499062 Z"
+   style="fill:#000000;stroke:none;stroke-opacity:1"
+   sodipodi:nodetypes="cssscc" /></svg>
\ No newline at end of file
diff --git a/images/presets/leisure/nature_reserve.png b/images/presets/leisure/nature_reserve.png
deleted file mode 100644
index da991ae..0000000
Binary files a/images/presets/leisure/nature_reserve.png and /dev/null differ
diff --git a/images/presets/leisure/nature_reserve.svg b/images/presets/leisure/nature_reserve.svg
new file mode 100644
index 0000000..9a96335
--- /dev/null
+++ b/images/presets/leisure/nature_reserve.svg
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="nature_reserve.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.2"
+     inkscape:cx="6.9538344"
+     inkscape:cy="7.5569493"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#45d749;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4159"
+       width="16"
+       height="3"
+       x="0"
+       y="1049.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a3b6f3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4161"
+       width="16"
+       height="13"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4145"
+       width="8"
+       height="2"
+       x="1"
+       y="1045.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4147"
+       width="6"
+       height="4.0000172"
+       x="2"
+       y="1043.3622"
+       ry="2.0000086" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4149"
+       width="4"
+       height="2"
+       x="3"
+       y="1042.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4151"
+       width="2"
+       height="2"
+       x="4"
+       y="1041.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#804000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4153"
+       width="2"
+       height="2"
+       x="4"
+       y="1047.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#804000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4155"
+       width="5"
+       height="5"
+       x="10"
+       y="1045.3622"
+       ry="1.0000174" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#804000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4157"
+       width="1"
+       height="2"
+       x="12"
+       y="1050.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4163"
+       width="3"
+       height="1"
+       x="11"
+       y="1046.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4165"
+       width="3"
+       height="1"
+       x="11"
+       y="1048.3622" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/nightclub.png b/images/presets/leisure/nightclub.png
deleted file mode 100644
index cc937d1..0000000
Binary files a/images/presets/leisure/nightclub.png and /dev/null differ
diff --git a/images/presets/leisure/discoball.svg b/images/presets/leisure/nightclub.svg
similarity index 100%
rename from images/presets/leisure/discoball.svg
rename to images/presets/leisure/nightclub.svg
diff --git a/images/presets/leisure/park.png b/images/presets/leisure/park.png
deleted file mode 100644
index e680863..0000000
Binary files a/images/presets/leisure/park.png and /dev/null differ
diff --git a/images/presets/leisure/park.svg b/images/presets/leisure/park.svg
new file mode 100644
index 0000000..3c1ac18
--- /dev/null
+++ b/images/presets/leisure/park.svg
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="park.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="5.6851932"
+     inkscape:cy="5.2430881"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#45d749;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4159"
+       width="16"
+       height="3"
+       x="0"
+       y="1049.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a3b6f3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4161"
+       width="16"
+       height="13"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4145"
+       width="8"
+       height="2"
+       x="1"
+       y="1044.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4147"
+       width="6"
+       height="4.0000172"
+       x="2"
+       y="1042.3622"
+       ry="2.0000086" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4149"
+       width="4"
+       height="2"
+       x="3"
+       y="1041.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4151"
+       width="2"
+       height="2"
+       x="4"
+       y="1040.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#804000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4153"
+       width="2"
+       height="3.0000174"
+       x="4"
+       y="1046.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4145-1"
+       width="8"
+       height="2"
+       x="8"
+       y="1047.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4147-3"
+       width="6"
+       height="4.0000172"
+       x="9"
+       y="1045.3622"
+       ry="2.0000086" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4149-4"
+       width="4"
+       height="2"
+       x="10"
+       y="1044.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4151-9"
+       width="2"
+       height="2"
+       x="11.000001"
+       y="1043.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#804000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4153-5"
+       width="2"
+       height="2"
+       x="11.000001"
+       y="1049.3622"
+       ry="0" />
+  </g>
+</svg>
diff --git a/images/presets/leisure/picnic.png b/images/presets/leisure/picnic.png
deleted file mode 100644
index ad4a98b..0000000
Binary files a/images/presets/leisure/picnic.png and /dev/null differ
diff --git a/images/presets/leisure/picnic.svg b/images/presets/leisure/picnic.svg
new file mode 100644
index 0000000..79bc425
--- /dev/null
+++ b/images/presets/leisure/picnic.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="picnic2.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="37.78125"
+     inkscape:cx="-5.7481997"
+     inkscape:cy="10.036459"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4135" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering [...]
+     id="rect4137"
+     width="16"
+     height="16"
+     x="0"
+     y="0"
+     ry="3" />
+  <path
+     d="m 3.9995255,3.071 c -1.322034,0 -1.322034,1.9 0,1.9 l 8.0000005,0 c 1.33909,0 1.338983,-1.9 0,-1.9 z M 4.9,5.3710014 4.1495255,8.0714466 1.9995255,8.071 c -1.32203397,-2.746e-4 -1.32015778,1.970408 0,1.9 L 3.775,9.9714466 2.9,13.370999 4.7,13.370552 5.575,9.971 l 4.85,4.466e-4 0.875,3.3995524 1.8,-4.47e-4 -0.875,-3.399552 1.774526,0 c 1.33909,0 1.337663,-1.9594517 0,-1.9 L 11.85,8.071 11.1,5.3705548 9.2999998,5.3710014 10.05,8.0714466 5.95,8.071 6.7,5.3705548 Z"
+     id="table"
+     style="fill:#734a08;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="sssssccssccccccccssccccccc" />
+</svg>
diff --git a/images/presets/leisure/sauna.png b/images/presets/leisure/sauna.png
deleted file mode 100644
index 6a3818c..0000000
Binary files a/images/presets/leisure/sauna.png and /dev/null differ
diff --git a/images/presets/leisure/sauna.svg b/images/presets/leisure/sauna.svg
new file mode 100644
index 0000000..39e7b88
--- /dev/null
+++ b/images/presets/leisure/sauna.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="sauna.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.919596"
+     inkscape:cx="-6.6671004"
+     inkscape:cy="1.1390122"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4156"
+       width="4"
+       height="6"
+       x="12"
+       y="1046.3622"
+       ry="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#813400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4158"
+       width="5"
+       height="5.9997625"
+       x="0"
+       y="1046.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#813400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4160"
+       width="3.9999998"
+       height="3.000433"
+       x="5"
+       y="1049.3622"
+       ry="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.70000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 2.6065308,1041.5838 C 0.60653083,1048.2981 8,1042.3622 6.8798041,1047.675"
+       id="path4162"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <circle
+       r="1.35"
+       cy="1038.8622"
+       cx="3.5"
+       id="circle4157"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 11,1045.3622 c 0,-2 3,-4 3,-4"
+       id="path4172"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 8.5580583,1044.2247 C 8.8285148,1042.6945 10.458633,1039.4718 13,1038.3622"
+       id="path4174"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.70000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4176"
+       width="1"
+       height="1"
+       x="13"
+       y="1046.3622"
+       ry="0.5" />
+    <rect
+       ry="0.5"
+       y="1046.3622"
+       x="14"
+       height="1"
+       width="1"
+       id="rect4178"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.70000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+  </g>
+</svg>
diff --git a/images/presets/leisure/stripclub.png b/images/presets/leisure/stripclub.png
deleted file mode 100644
index cc00355..0000000
Binary files a/images/presets/leisure/stripclub.png and /dev/null differ
diff --git a/images/presets/leisure/stripclub.svg b/images/presets/leisure/stripclub.svg
new file mode 100644
index 0000000..10dc1ad
--- /dev/null
+++ b/images/presets/leisure/stripclub.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   x="0px"
+   y="0px"
+   width="12"
+   height="16"
+   viewBox="0 0 12 16"
+   enable-background="new 0 0 580 580"
+   xml:space="preserve"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="strip7.svg"><metadata
+   id="metadata19"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+   id="defs17">
+	
+
+		
+		
+	</defs><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1680"
+   inkscape:window-height="988"
+   id="namedview15"
+   showgrid="true"
+   inkscape:zoom="52.082758"
+   inkscape:cx="4.7885074"
+   inkscape:cy="7.7383803"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="svg2"><inkscape:grid
+     type="xygrid"
+     id="grid4154" /></sodipodi:namedview>
+
+<rect
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-r [...]
+   id="rect4152"
+   width="12"
+   height="16"
+   x="-12"
+   y="0"
+   ry="0.13449061"
+   transform="scale(-1,1)" /><path
+   d="M 3.8635101,4.3151508 C 4.1684622,4.3151799 4.4310024,4.2106648 4.651189,4.0016929 4.8713755,3.7927211 4.9814542,3.5359484 4.9814542,3.2313458 4.9814542,2.9263937 4.8713755,2.6694462 4.651189,2.4604452 4.4310024,2.2514734 4.1684622,2.1469874 3.8635101,2.1469874 c -0.3046026,0 -0.5642299,0.104486 -0.778882,0.3134578 -0.214652,0.209001 -0.3219926,0.4659485 -0.3219926,0.7709006 0,0.3046026 0.1073406,0.5613753 0.3219926,0.7703471 0.2146521,0.2089719 0.4742794,0.313487 0.778882,0.3134579 z"
+   id="path11"
+   style="fill:#000000"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="csscscssc" /><path
+   d="M 10.81614,4.5903483 C 10.77648,4.4435669 10.67712,4.3193315 10.518049,4.2177002 c 0,0 -0.356534,-0.029433 -0.5430602,-0.027484 l 0,-2.9514936 c 0,-0.2091467 -0.199139,-0.37867781 -0.4448108,-0.37867781 -0.2456719,0 -0.4448097,0.16953111 -0.4448097,0.37867781 l 0,2.9960902 -4.9611323,0.761813 C 3.9384425,5.0303864 3.7891917,5.1122391 3.6764839,5.2421256 3.563776,5.3720412 3.5339053,5.5103751 3.5869403,5.6571564 L 4.6809666,9.298318 1.1386498,13.931107 c -0.066345,0.101311 -0.0995,0 [...]
+   id="path13"
+   style="fill:#000000"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="cccsssccccccsscccccscccccccsssccc" />
+</svg>
\ No newline at end of file
diff --git a/images/presets/leisure/theater.png b/images/presets/leisure/theater.png
deleted file mode 100644
index a123004..0000000
Binary files a/images/presets/leisure/theater.png and /dev/null differ
diff --git a/images/presets/leisure/theater.svg b/images/presets/leisure/theater.svg
new file mode 100644
index 0000000..5666b90
--- /dev/null
+++ b/images/presets/leisure/theater.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="534.52161"
+   height="416.0217"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="theater4.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1.3034483"
+     inkscape:cx="331.5135"
+     inkscape:cy="162.28064"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1" />
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2543"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+     id="rect4160"
+     width="168.01587"
+     height="110.47619"
+     x="288.46561"
+     y="93.799477" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+     id="rect4162"
+     width="120.44974"
+     height="74.417992"
+     x="291.53439"
+     y="224.22276" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 242.1591,49.078223 c -9.66651,0.0211 -20.42752,7.75494 -27.28125,14.21875 -29.30327,22.49956 -50.74591,38.617837 -99.71875,51.812497 -18.606255,5.62024 -56.493915,-1.22039 -93.656255,-3.84375 -23.727041,-3.69829 -3.39165,38.67497 -0.21875,55.90625 21.098259,66.07481 45.37477,132.95229 88.250005,188.34375 24.45161,27.21272 58.26924,50.93253 96.1875,50.5 31.33394,-2.6127 57.19566,-27.77299 64.53125,-57.75 0.63361,-2.02339 1.21909,-4.0723 1.75,-6.125 0.84079,-3.1428 1.65225,-6.278 [...]
+     id="path3327"
+     inkscape:connector-curvature="0" />
+  <path
+     style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:#333333;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 290.9091,18.109473 c -7.75845,1.99335 -6.65216,12.10518 -9.21875,18 -11.44586,36.58947 -22.94424,73.821137 -23.40625,112.499997 -3.52027,58.1076 -1.26601,118.13291 18.96875,173.09375 11.94252,24.79259 40.55421,42.6954 68.3125,35.6875 39.13884,-8.07086 70.3371,-37.51733 90.65625,-70.84375 38.09398,-59.52032 59.59666,-127.4029 79.09375,-194.812497 0.37298,-3.58477 1.83659,-9.10048 -0.34375,-11.6875 -18.78901,1.3028 -37.70899,3.78469 -56.59375,5.4375 -20.57984,1.95747 -41.6362,0.0 [...]
+     id="path3331"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:nodetypes="ccccccccccc"
+     id="path3354"
+     d="m 262.51945,303.08799 c -17.04374,-63.70793 -15.96456,-130.77757 -8.56478,-195.8052 6.27884,-30.407617 16.27806,-59.851497 24.82708,-89.655377 10.94439,-16.0704455 30.41032,-3.23905 40.8541,6.61056 29.30327,22.49956 50.76107,38.63246 99.73391,51.82712 18.60624,5.62024 56.48034,-1.23286 93.64268,-3.85622 23.72704,-3.69829 3.41363,38.678837 0.24073,55.910117 -21.09826,66.07482 -45.40258,132.93375 -88.27782,188.32521 -24.45161,27.21271 -58.25363,50.95197 -96.17189,50.51944 -31.33394 [...]
+     style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#333333;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#000000;fill-opacity:1"
+     d="m 163.18776,337.38633 c -15.58748,-2.16514 -30.47705,-11.40864 -37.97298,-25.45175 8.30075,-9.22258 20.15463,0.12007 29.84602,1.0014 22.60382,2.85779 43.72857,-12.00492 54.73953,-30.87822 7.13799,-6.84119 8.06807,-25.49854 20.48231,-22.7628 8.95332,4.95513 7.26619,16.35659 5.07908,24.63977 -1.41566,11.04444 -6.78311,20.97417 -13.878,29.39427 -5.58926,7.48599 -11.13937,16.05207 -20.80631,18.5313 -12.36214,2.29995 -24.66344,8.14265 -37.48965,5.52603 z M 107.96013,216.54334 c -11.91 [...]
+     id="path3360"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/leisure/water_park.png b/images/presets/leisure/water_park.png
deleted file mode 100644
index 4aba27a..0000000
Binary files a/images/presets/leisure/water_park.png and /dev/null differ
diff --git a/images/presets/leisure/water_park.svg b/images/presets/leisure/water_park.svg
new file mode 100644
index 0000000..85a73b5
--- /dev/null
+++ b/images/presets/leisure/water_park.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="water_park1001.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="1.1076822"
+     inkscape:cy="8.1984568"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.17200001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4153"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <path
+       style="fill:#1288ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0,1052.3622 8,0 0,-4 c -5.8018596,3.0166 -4.6497361,-2.9157 -8,0 z"
+       id="path4134"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.17200001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4136"
+       width="8.0000019"
+       height="4.9999652"
+       x="8"
+       y="1047.3622" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.4821428,1043.8801 1.2500005,3.8616"
+       id="path4149"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#1a1a1a;stroke-width:0.9;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 15.398884,1047.5306 -2.839309,-8.522 -0.0397,8.7556"
+       id="path4151"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0b0bff;stroke-width:1.9653343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 12.98648,1039.1706 c -1.59965,-0.054 -2.607206,0.3947 -3.9036588,2.5254 -0.7197243,1.3265 -1.5538296,2.7911 -2.4370261,4.0362 -1.0519243,0.8991 -2.2566332,0.7485 -2.9585231,0.4961"
+       id="path4138"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+  </g>
+</svg>
diff --git a/images/presets/misc/addresses.png b/images/presets/misc/addresses.png
deleted file mode 100644
index 00d2fb9..0000000
Binary files a/images/presets/misc/addresses.png and /dev/null differ
diff --git a/images/presets/misc/boundaries.png b/images/presets/misc/boundaries.png
deleted file mode 100644
index bcdd176..0000000
Binary files a/images/presets/misc/boundaries.png and /dev/null differ
diff --git a/images/presets/misc/boundaries.svg b/images/presets/misc/boundaries.svg
new file mode 100644
index 0000000..558e8e9
--- /dev/null
+++ b/images/presets/misc/boundaries.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Creator: CorelDRAW -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   style="fill-rule:evenodd"
+   sodipodi:docname="boundary6.svg"
+   xml:space="preserve"
+   sodipodi:version="0.32"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:version="0.91 r13725"
+   viewBox="0 0 16 16"
+   width="16"
+   height="16"><defs
+   id="defs35" /><sodipodi:namedview
+   id="base"
+   bordercolor="#666666"
+   inkscape:pageshadow="2"
+   guidetolerance="10.0"
+   inkscape:current-layer="svg2"
+   pagecolor="#ffffff"
+   gridtolerance="10.0"
+   inkscape:zoom="7.2407734"
+   objecttolerance="10.0"
+   borderopacity="1.0"
+   width="744.09449px"
+   inkscape:cx="16.297044"
+   inkscape:cy="13.750517"
+   inkscape:window-y="-8"
+   inkscape:window-x="-8"
+   inkscape:window-height="988"
+   height="1052.3622px"
+   inkscape:pageopacity="0.0"
+   inkscape:window-width="1680"
+   showgrid="false"
+   inkscape:window-maximized="1" />
+ 
+<metadata
+   id="metadata33"><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license
+         rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /><dc:publisher><cc:Agent
+           rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher><dc:title></dc:title><dc:date>2008-05-18T09:25:46</dc:date><dc:description /><dc:source>https://openclipart.org/detail/16816/administrative-map-of-bulgaria-by-ivak</dc:source><dc:creator><cc:Agent><dc:title>ivak</dc:title></cc:Agent></dc:creator><dc:subject><rdf:Bag><rdf:li>bulgaria</rdf:li><rdf:li>map</rdf:li></rdf:Bag></dc:subject></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><path
+   style="fill:#00ffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.463;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+   d="M 8.657522,7.217 C 9.673076,6.8203071 8.9442553,5.8065688 8.9160049,5.1818168 7.7228348,5.2745283 9.5253808,4.3301105 9.049498,3.6221861 8.9178631,2.913632 9.1172786,1.3854531 10.072539,2.3134104 c 0.39382,0.3444207 1.450795,-0.1091505 0.885057,0.7386345 -0.123841,0.8068043 0.814136,1.4933219 0.56811,2.3173656 0.81684,0.443124 3.065334,-0.050231 4.118909,-0.084561 -0.107118,0.9385613 0.335874,1.261937 -0.26285,2.3643616 -0.804026,0.677605 -1.605499,2.2689139 0.361666,3.6195294 -0.5 [...]
+   id="path17-9"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="cccccccccccccccc" /><path
+   style="fill:#ffff00;fill-rule:evenodd;stroke:#000000;stroke-width:0.463;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+   d="m 8.0657641,8.842 c 0.05224,0.4705782 0.2764225,0.9745093 0.7196469,1.193702 0.2685625,-0.0092 0.8070986,-0.2502153 0.8563302,0.166495 -0.185841,0.354446 0.064417,0.680465 0.4518678,0.64297 0.276952,0.03469 0.542616,0.121731 0.806153,0.211116 0.293685,0.128375 0.609365,0.339585 0.705051,0.656961 -0.0115,0.407285 -0.449178,0.732213 -0.304462,1.154307 0.150331,0.224085 0.508673,0.317646 0.537482,0.651731 0.09068,0.295559 -0.03843,0.5876 -0.196533,0.830543 -0.131838,0.433946 0.381046, [...]
+   id="path23-1"
+   inkscape:connector-curvature="0" /><path
+   style="fill:#008000;fill-rule:evenodd;stroke:#000000;stroke-width:0.463;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+   d="M 0.6452814,9.668 C 0.65320472,9.1293243 0.52096221,8.5053828 0.77368804,8.0282053 1.083476,7.6854582 1.3859866,7.3851368 1.840823,7.7664801 2.4773764,8.0939887 3.0356316,6.6498709 3.4502815,7.6024608 3.7251174,8.0671466 4.9254203,8.5075222 5.0217236,7.7322555 5.0267725,7.1185861 5.2767192,7.9006424 5.4546021,7.3480223 5.7363632,6.6495748 6.521548,6.6878114 6.938517,7.2238298 7.4877883,6.9929122 7.5950199,6.4218744 7.765973,5.9896852 8.2956904,6.1723834 7.9195212,7.0429665 8.484539 [...]
+   id="path31-6"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="ccccccccccccccccccccccccc" /><path
+   style="fill:#ff0000;fill-rule:evenodd;stroke:#000000;stroke-width:0.463;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+   d="M 0.457421,5.796 C 0.82479596,5.1242453 1.4844727,4.685857 1.0953078,4.0000759 1.1099541,3.2789632 1.1500657,2.0523187 2.2026978,2.5365681 2.4263078,2.1551852 2.5204533,1.6969307 2.9786789,1.933373 3.3003099,1.467788 3.4247279,0.92389496 4.0984132,0.72621666 4.562209,-0.09839821 5.5980034,0.52635353 5.833228,1.1997183 6.3168638,1.6836238 6.4982739,0.76966576 7.1364381,0.95530101 8.0471458,0.90840249 8.5134437,2.0081129 9.0894867,2.3537527 8.9497341,3.1778176 9.2577138,4.0870362 8.7 [...]
+   id="path39-2"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="ccccccccccccccccccc" /></svg>
\ No newline at end of file
diff --git a/images/presets/misc/boundary_stone.png b/images/presets/misc/boundary_stone.png
deleted file mode 100644
index 4558de6..0000000
Binary files a/images/presets/misc/boundary_stone.png and /dev/null differ
diff --git a/images/presets/misc/cliff-pattern.png b/images/presets/misc/cliff-pattern.png
deleted file mode 100644
index f7b6b0c..0000000
Binary files a/images/presets/misc/cliff-pattern.png and /dev/null differ
diff --git a/images/presets/misc/cliff_pattern.svg b/images/presets/misc/cliff_pattern.svg
new file mode 100644
index 0000000..b15607b
--- /dev/null
+++ b/images/presets/misc/cliff_pattern.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="9"
+   height="9"
+   viewBox="0 0 9 9"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="cliff-pattern3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.627417"
+     inkscape:cx="1.6247722"
+     inkscape:cy="2.8625146"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1043.3622)">
+    <path
+       style="fill:#b2b2b2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 2,1044.3622 5,0 -2.5,8 z"
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+  </g>
+</svg>
diff --git a/images/presets/misc/contact.png b/images/presets/misc/contact.png
deleted file mode 100644
index e82f0d4..0000000
Binary files a/images/presets/misc/contact.png and /dev/null differ
diff --git a/images/presets/misc/contact.svg b/images/presets/misc/contact.svg
new file mode 100644
index 0000000..0e083d0
--- /dev/null
+++ b/images/presets/misc/contact.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns1="http://sozi.baierouge.fr" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg2690" sodipodi:docname="lunanaut_Cartoon_Globe.svg" viewBo [...]
+  <sodipodi:namedview id="base" bordercolor="#666666" inkscape:pageshadow="2" guidetolerance="10" pagecolor="#ffffff" gridtolerance="10000" inkscape:window-height="826" inkscape:zoom="1" objecttolerance="10" borderopacity="1.0" inkscape:current-layer="layer1" inkscape:cx="216.6042" inkscape:cy="198.42215" inkscape:window-y="116" inkscape:window-x="88" inkscape:window-width="1055" inkscape:pageopacity="0.0" inkscape:document-units="px"/>
+  <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(-189.14 -130.07)">
+    <a id="a7312" transform="matrix(.23754 0 0 .23754 315.92 169.76)">
+      <path id="path1961" sodipodi:rx="771.42859" sodipodi:ry="785.71429" style="stroke:#000000;stroke-width:16.147;fill:#323ad3" sodipodi:type="arc" d="m820 558.08a771.43 785.71 0 1 1 -1542.9 0 771.43 785.71 0 1 1 1542.9 0z" transform="matrix(1 0 0 .98182 197.14 64.429)" sodipodi:cy="558.07648" sodipodi:cx="48.57143"/>
+    </a>
+    <path id="path3740" style="fill-rule:evenodd;stroke:#000000;stroke-width:1.9003;fill:#faf0f0" d="m332.21 176.09c-1.39-4.7-0.77-9.31 5.43-10.86 4.98-1.25 8.8 0.51 13.57-0.68 5.37-1.34 9.88-2.81 14.93-4.07 5.17-1.29 7.56 5.43 12.9 5.43 5.57 0 8.5-2.81 13.57-4.07 4.61-1.16 9.18 4.12 10.18 8.14 1.62 6.49 3.44 8.19 8.14 12.89 4.07 4.07-2.99 8.57-4.07 12.9-1.27 5.08-3.03 12.31-8.82 10.86-5.88-1.47-6.61 5.61-13.57-1.36-2.23-2.22-7.85 3.4-12.22 3.4-4.65 0-9.03-4.55-12.9-0.68-3.54 3.54-6.13 4 [...]
+    <path id="path3742" sodipodi:nodetypes="csssssssssssssssssssssssssssssssssssssssssssssscsccsssssssssssssssssssssssssssssssss" style="fill-rule:evenodd;stroke:#000000;stroke-width:1.9003;fill:#399a3d" d="m308.45 199.16c2.52 5.05-1.21 9.7 2.72 14.93 3.89 5.19 6.07 9.53 12.89 6.11 6.83-3.41 6.56 6.34 3.4 9.5-1.31 1.31-10.8 0-12.9 0-6.49 0-9.2-0.17-12.89 4.76-3.44 4.57-7.91 5.91-5.43 10.85 1.75 3.5-0.04 10.93-1.36 13.58-2.22 4.43-2.93 9.07-0.68 13.57 2.15 4.3 9.5 7.79 9.5 0.68 0-6.7 3.93 [...]
+    <path id="path5518" sodipodi:nodetypes="cssssssssssssssssssssc" style="fill-rule:evenodd;stroke:#000000;stroke-width:1.9003;fill:#299d3d" d="m355.28 214.43c-0.79 1.25-1.58 2.49-2.37 3.74-1.75 2.74 1.4 0.63 3.05 4.75 1.15 2.86-0.25 4.5 0.34 7.46 0.64 3.19 2.92 5.7 3.39 9.17 0.17 1.21-2.89 5.12-3.73 6.1-3.06 3.61-1.31 9.13-2.04 13.58-0.73 2.93 3.4 5.97 3.4 8.82 0 2.27 2.89 3.05 4.75 3.05 3.59 0 3.83-0.42 4.75-2.71 0.71-1.77 0.99-5.75 2.71-6.79 1.21-0.72 5.43-3.46 5.43-4.75 0-2.56 3.95- [...]
+    <path id="path5522" sodipodi:nodetypes="csssssssssssssssssssssssssccssssssssssssssssssssssssssssssscssssscscccssssssssssssssssssssssssssz" style="fill-rule:evenodd;stroke:#000000;stroke-width:1.9003;fill:#2d913e" d="m433.05 212.22c-4.07-0.98-4.31 0.31-7.3 6.28-2.63 9.71 1.29 8.51 2.38 13.07 0.96 4 3.39 9.23 3.39 13.23 0 5.59 0.98 10.85 6.45 12.22 6.55 1.63 6.4 2.03 12.73 2.03 7 0 3.61-8.37 2.03-11.53-2.49-4.98-4.79-8.69-9.5-12.22-2.92-2.19-0.93-9.33 3.39-0.68 3.05 6.09 6.25 7.54 11.5 [...]
+  </g>
+  <metadata>
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
+        <dc:publisher>
+          <cc:Agent rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title>Cartoon Globe</dc:title>
+        <dc:date>2006-12-26T00:00:00</dc:date>
+        <dc:description>Colored globe.</dc:description>
+        <dc:source>https://openclipart.org/detail/3437/-by--3437</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>lunanaut</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>color</rdf:li>
+            <rdf:li>earth</rdf:li>
+            <rdf:li>globe</rdf:li>
+            <rdf:li>planet</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
\ No newline at end of file
diff --git a/images/presets/misc/entrance-emergency.png b/images/presets/misc/entrance-emergency.png
deleted file mode 100644
index 9553b04..0000000
Binary files a/images/presets/misc/entrance-emergency.png and /dev/null differ
diff --git a/images/presets/misc/entrance-exit.png b/images/presets/misc/entrance-exit.png
deleted file mode 100644
index 3a37575..0000000
Binary files a/images/presets/misc/entrance-exit.png and /dev/null differ
diff --git a/images/presets/misc/entrance-main.png b/images/presets/misc/entrance-main.png
deleted file mode 100644
index e5805a8..0000000
Binary files a/images/presets/misc/entrance-main.png and /dev/null differ
diff --git a/images/presets/misc/entrance-service.png b/images/presets/misc/entrance-service.png
deleted file mode 100644
index 677bde2..0000000
Binary files a/images/presets/misc/entrance-service.png and /dev/null differ
diff --git a/images/presets/misc/entrance-yes.png b/images/presets/misc/entrance-yes.png
deleted file mode 100644
index c7d9d71..0000000
Binary files a/images/presets/misc/entrance-yes.png and /dev/null differ
diff --git a/images/presets/misc/entrance_emergency.svg b/images/presets/misc/entrance_emergency.svg
new file mode 100644
index 0000000..dd58ed8
--- /dev/null
+++ b/images/presets/misc/entrance_emergency.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ee.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="5.4866866"
+     inkscape:cy="6.1960397"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4138"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622"
+       ry="0" />
+    <g
+       id="g5653"
+       transform="matrix(0.12490242,0,0,0.12490242,-44.952356,984.74003)"
+       style="fill:#009900;fill-opacity:1">
+      <path
+         id="path3495"
+         d="m 471.9,510.8 -3.2,-8.5 c -1.4,-3.5 -4.6,-5.9 -8.6,-5.9 l -1.4,0 0,-73.2 -69.5,0 0,40.5 9.1,0 10.4,-13 c 2.1,-2.4 5.3,-4 8.8,-4 l 22.2,0 c 3.5,0 6.6,1.9 8.2,5 l 6.6,12.5 c 0.3,0.5 0.5,1.1 0.5,1.9 0,2.2 -1.9,4.2 -4.2,4.2 -1.8,0 -3,-0.8 -3.8,-2.2 l -5.9,-11.4 -9.6,0 7.4,18.4 2.2,23.5 19,0 c 3,0 5.4,1.9 6.6,4.5 l 2.1,5.4 -32.8,0 c -2.4,0 -4.5,-1.8 -4.6,-4.2 l -2.2,-20.6 -17.6,36.5 c -1,2.1 -3.2,3.5 -5.8,3.5 l -8.5,0 21.6,-44.7 -6.7,-16.8 -6.4,7.8 c -1.6,2.1 -4.3,3.5 -7.2,3.5 l - [...]
+         style="fill:#009900;fill-opacity:1"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path3497"
+         d="m 412,428 0.5,0 0.5,0 0.5,0.1 0.4,0.1 0.4,0.1 0.4,0.1 0.4,0.2 0.4,0.2 0.4,0.2 0.4,0.2 0.4,0.2 0.4,0.2 0.3,0.3 0.3,0.3 0.3,0.3 0.3,0.3 0.3,0.3 0.3,0.3 0.3,0.3 0.3,0.4 0.2,0.4 0.2,0.4 0.2,0.4 0.2,0.4 0.2,0.4 0.1,0.4 0.1,0.4 0.1,0.4 0.1,0.4 0.1,0.5 0,0.5 0,0.5 c 0,5 -4.2,9 -9.1,9 -5,0 -9,-4 -9,-9 0,-5 4.2,-9.2 9.1,-9.2 z"
+         style="fill:#009900;fill-opacity:1"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path3499"
+         d="m 416,529.8 11.5,11.5 -13.9,0 -15,-14.9 9,0 c 3.1,0 6.2,1.3 8.4,3.4 z"
+         style="fill:#009900;fill-opacity:1"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/misc/entrance_exit.svg b/images/presets/misc/entrance_exit.svg
new file mode 100644
index 0000000..64852c8
--- /dev/null
+++ b/images/presets/misc/entrance_exit.svg
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="exit3.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs22">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective24" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowStart">
+      <path
+         id="path3568"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowEnd">
+      <path
+         id="path3565"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2683"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2959">
+      <path
+         id="path2626"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2956">
+      <path
+         id="path2623"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2953"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3077">
+      <path
+         id="path3298"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3074">
+      <path
+         id="path3295"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective3071"
+       inkscape:persp3d-origin="180.936 : 163.92867 : 1"
+       inkscape:vp_z="361.87201 : 245.89301 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 245.89301 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3724"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7956"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8355"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="22.627418"
+     inkscape:cx="9.1593463"
+     inkscape:cy="13.219409"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4249" />
+  </sodipodi:namedview>
+  <path
+     inkscape:connector-curvature="0"
+     id="path1329"
+     style="fill:#aa0000;stroke:none;stroke-width:3.40799999;fill-opacity:1"
+     d="M 1.792253,0.00176061 C 0.64495383,0.00176061 0,0.59391061 0,1.8037806 L 0,14.275761 c 0,1.13171 0.57994055,1.72424 1.726228,1.72424 l 12.546522,0 c 1.146528,0 1.72725,-0.56291 1.72725,-1.72424 L 16,1.8037806 c 0,-1.18038999 -0.580722,-1.80201999 -1.763142,-1.80201999 -8e-5,0 -12.4485419,-0.004 -12.444605,0 z" />
+  <g
+     id="g2319"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2323"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g2325"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2329"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g4264">
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path8372"
+       d="m 2.478544,11.578874 0,-8.0822 5.0753842,0 0,8.0822"
+       style="fill:none;stroke:#ffffff;stroke-width:1.03557968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <rect
+       y="4.0554256"
+       x="2.8336146"
+       height="7.4207835"
+       width="4.292532"
+       id="rect8376"
+       style="opacity:0.2;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.10825205;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+  </g>
+  <g
+     id="g8450"
+     transform="matrix(0.03063633,0,0,0.02736393,8.302915,-0.44694355)">
+    <path
+       id="path8395"
+       d="m 53.457112,288.64978 160.583208,0 -39.38834,-75.7468"
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 53.457112,294.31581 160.583208,0 -39.38834,75.7468"
+       id="path8397"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/misc/entrance_main.svg b/images/presets/misc/entrance_main.svg
new file mode 100644
index 0000000..43edfe0
--- /dev/null
+++ b/images/presets/misc/entrance_main.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="entrance-main3.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs22">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective24" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowStart">
+      <path
+         id="path3568"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowEnd">
+      <path
+         id="path3565"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2683"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2959">
+      <path
+         id="path2626"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2956">
+      <path
+         id="path2623"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2953"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3077">
+      <path
+         id="path3298"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3074">
+      <path
+         id="path3295"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective3071"
+       inkscape:persp3d-origin="180.936 : 163.92867 : 1"
+       inkscape:vp_z="361.87201 : 245.89301 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 245.89301 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3724"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7956"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8355"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="45.254835"
+     inkscape:cx="6.5780667"
+     inkscape:cy="8.1899083"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4249" />
+  </sodipodi:namedview>
+  <path
+     inkscape:connector-curvature="0"
+     id="path1329"
+     style="fill:#338000;stroke:none;stroke-width:3.40799999;fill-opacity:1"
+     d="M 1.792253,0.00176061 C 0.64495383,0.00176061 0,0.59391061 0,1.8037806 L 0,14.275761 c 0,1.13171 0.57994055,1.72424 1.726228,1.72424 l 12.546522,0 c 1.146528,0 1.72725,-0.56291 1.72725,-1.72424 L 16,1.8037806 c 0,-1.18038999 -0.580722,-1.80201999 -1.763142,-1.80201999 -8e-5,0 -12.4485419,-0.004 -12.444605,0 z" />
+  <g
+     id="g2319"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2323"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g2325"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2329"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g4264"
+     transform="translate(5.9999998,0)">
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path8372"
+       d="m 2.478544,11.578874 0,-8.0822 5.0753842,0 0,8.0822"
+       style="fill:none;stroke:#ffffff;stroke-width:1.03557968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <rect
+       y="4.0554256"
+       x="2.8336146"
+       height="7.4207835"
+       width="4.292532"
+       id="rect8376"
+       style="opacity:0.2;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.10825205;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+  </g>
+  <g
+     id="g8450"
+     transform="matrix(0.03016554,0,0,0.02741884,-0.26275126,-0.49419966)">
+    <path
+       id="path8395"
+       d="m 53.457112,288.64978 160.583208,0 -39.38834,-75.7468"
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 53.457112,294.31581 160.583208,0 -39.38834,75.7468"
+       id="path8397"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/misc/entrance_service.svg b/images/presets/misc/entrance_service.svg
new file mode 100644
index 0000000..03dde5d
--- /dev/null
+++ b/images/presets/misc/entrance_service.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="entrance-service.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs22">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective24" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowStart">
+      <path
+         id="path3568"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowEnd">
+      <path
+         id="path3565"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2683"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2959">
+      <path
+         id="path2626"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2956">
+      <path
+         id="path2623"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2953"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3077">
+      <path
+         id="path3298"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3074">
+      <path
+         id="path3295"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective3071"
+       inkscape:persp3d-origin="180.936 : 163.92867 : 1"
+       inkscape:vp_z="361.87201 : 245.89301 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 245.89301 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3724"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7956"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8355"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="32.000001"
+     inkscape:cx="8.3933733"
+     inkscape:cy="11.005172"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4249" />
+  </sodipodi:namedview>
+  <path
+     inkscape:connector-curvature="0"
+     id="path1329"
+     style="fill:#2c5aa0;stroke:none;stroke-width:3.40799999;fill-opacity:1"
+     d="M 1.792253,0.00176061 C 0.64495383,0.00176061 0,0.59391061 0,1.8037806 L 0,14.275761 c 0,1.13171 0.57994055,1.72424 1.726228,1.72424 l 12.546522,0 c 1.146528,0 1.72725,-0.56291 1.72725,-1.72424 L 16,1.8037806 c 0,-1.18038999 -0.580722,-1.80201999 -1.763142,-1.80201999 -8e-5,0 -12.4485419,-0.004 -12.444605,0 z" />
+  <g
+     id="g2319"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2323"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g2325"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2329"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g4264"
+     transform="translate(5.9999998,0)">
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path8372"
+       d="m 2.478544,11.578874 0,-8.0822 5.0753842,0 0,8.0822"
+       style="fill:none;stroke:#ffffff;stroke-width:1.03557968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <rect
+       y="4.0554256"
+       x="2.8336146"
+       height="7.4207835"
+       width="4.292532"
+       id="rect8376"
+       style="opacity:0.2;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.10825205;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+  </g>
+  <g
+     id="g8450"
+     transform="matrix(0.03016554,0,0,0.02741884,-0.26275126,-0.49419966)">
+    <path
+       id="path8395"
+       d="m 53.457112,288.64978 160.583208,0 -39.38834,-75.7468"
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 53.457112,294.31581 160.583208,0 -39.38834,75.7468"
+       id="path8397"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/misc/entrance_yes.svg b/images/presets/misc/entrance_yes.svg
new file mode 100644
index 0000000..a700d41
--- /dev/null
+++ b/images/presets/misc/entrance_yes.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="entrance-yes.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs22">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective24" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowStart">
+      <path
+         id="path3568"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowEnd">
+      <path
+         id="path3565"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2683"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2959">
+      <path
+         id="path2626"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2956">
+      <path
+         id="path2623"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2953"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3077">
+      <path
+         id="path3298"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3074">
+      <path
+         id="path3295"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective3071"
+       inkscape:persp3d-origin="180.936 : 163.92867 : 1"
+       inkscape:vp_z="361.87201 : 245.89301 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 245.89301 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3724"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7956"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8355"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="32.000001"
+     inkscape:cx="8.3933733"
+     inkscape:cy="11.005172"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4249" />
+  </sodipodi:namedview>
+  <path
+     inkscape:connector-curvature="0"
+     id="path1329"
+     style="fill:#4d4d4d;stroke:none;stroke-width:3.40799999;fill-opacity:1"
+     d="M 1.792253,0.00176061 C 0.64495383,0.00176061 0,0.59391061 0,1.8037806 L 0,14.275761 c 0,1.13171 0.57994055,1.72424 1.726228,1.72424 l 12.546522,0 c 1.146528,0 1.72725,-0.56291 1.72725,-1.72424 L 16,1.8037806 c 0,-1.18038999 -0.580722,-1.80201999 -1.763142,-1.80201999 -8e-5,0 -12.4485419,-0.004 -12.444605,0 z" />
+  <g
+     id="g2319"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2323"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g2325"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2329"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g4264"
+     transform="translate(5.9999998,0)">
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path8372"
+       d="m 2.478544,11.578874 0,-8.0822 5.0753842,0 0,8.0822"
+       style="fill:none;stroke:#ffffff;stroke-width:1.03557968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <rect
+       y="4.0554256"
+       x="2.8336146"
+       height="7.4207835"
+       width="4.292532"
+       id="rect8376"
+       style="opacity:0.2;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.10825205;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+  </g>
+  <g
+     id="g8450"
+     transform="matrix(0.03016554,0,0,0.02741884,-0.26275126,-0.49419966)">
+    <path
+       id="path8395"
+       d="m 53.457112,288.64978 160.583208,0 -39.38834,-75.7468"
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#ffffff;stroke-width:42.84885788;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 53.457112,294.31581 160.583208,0 -39.38834,75.7468"
+       id="path8397"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/misc/fixme-annotation.png b/images/presets/misc/fixme-annotation.png
deleted file mode 100644
index 9edc88f..0000000
Binary files a/images/presets/misc/fixme-annotation.png and /dev/null differ
diff --git a/images/presets/misc/fixme.svg b/images/presets/misc/fixme.svg
new file mode 100644
index 0000000..1d16ffd
--- /dev/null
+++ b/images/presets/misc/fixme.svg
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="13"
+   height="16"
+   viewBox="0 0 13 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="fixme1.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4134"
+       width="5"
+       height="16.000017"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4136"
+       width="3"
+       height="14"
+       x="1"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4158"
+       width="9.0000038"
+       height="4.9996171"
+       x="4"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4160"
+       width="7"
+       height="4.9996862"
+       x="4"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4164"
+       width="8"
+       height="2.9998782"
+       x="4"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4166"
+       width="6"
+       height="2.9999478"
+       x="4"
+       y="1043.3622" />
+  </g>
+</svg>
diff --git a/images/presets/misc/fixme_annotation.svg b/images/presets/misc/fixme_annotation.svg
new file mode 100644
index 0000000..18641c1
--- /dev/null
+++ b/images/presets/misc/fixme_annotation.svg
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="23"
+   height="23"
+   viewBox="0 0 23 23"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="fixme4.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="10.322295"
+     inkscape:cy="18.469253"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1029.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4144"
+       width="4"
+       height="3"
+       x="18"
+       y="1029.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4146"
+       width="3"
+       height="4.0000172"
+       x="18"
+       y="1031.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4166"
+       width="3"
+       height="9.0000172"
+       x="16"
+       y="1029.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4149"
+       width="1"
+       height="7.0000172"
+       x="17"
+       y="1030.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4140"
+       width="3"
+       height="1"
+       x="18"
+       y="1030.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4142"
+       width="2"
+       height="1.0001045"
+       x="18"
+       y="1033.3622" />
+  </g>
+</svg>
diff --git a/images/presets/misc/flag.png b/images/presets/misc/flag.png
deleted file mode 100644
index ea85d63..0000000
Binary files a/images/presets/misc/flag.png and /dev/null differ
diff --git a/images/presets/misc/flag.svg b/images/presets/misc/flag.svg
new file mode 100644
index 0000000..4ba9886
--- /dev/null
+++ b/images/presets/misc/flag.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="14"
+   viewBox="0 0 16 14"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="flag52.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="1.5994895"
+     inkscape:cy="4.3481398"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="0.1427308"
+       originy="-1.6255464" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0.1427308,-1037.2844)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31338018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;s [...]
+       id="rect4145"
+       width="10.414392"
+       height="6.5774565"
+       x="464.96634"
+       y="931.99701"
+       ry="0"
+       transform="matrix(0.90089527,0.43403653,-0.44272837,0.89665578,0,0)" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.0629921;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+       id="rect4147"
+       width="4.7338142"
+       height="6.5774565"
+       x="467.80664"
+       y="931.99701"
+       transform="matrix(0.90089527,0.43403653,-0.44272837,0.89665578,0,0)" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.31337288;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;s [...]
+       id="rect4149"
+       width="1.0707346"
+       height="7.4951429"
+       x="460.37506"
+       y="936.26123"
+       transform="matrix(0.89879404,0.43837116,-0.43837116,0.89879404,0,0)" />
+  </g>
+</svg>
diff --git a/images/presets/misc/fountain.png b/images/presets/misc/fountain.png
deleted file mode 100644
index 176fe67..0000000
Binary files a/images/presets/misc/fountain.png and /dev/null differ
diff --git a/images/presets/misc/fountain.svg b/images/presets/misc/fountain.svg
new file mode 100644
index 0000000..68599f9
--- /dev/null
+++ b/images/presets/misc/fountain.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 16 16"
+   height="16"
+   width="16"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="fountain28.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="37.78125"
+     inkscape:cx="5.9855205"
+     inkscape:cy="9.608847"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4168" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="visibility:hidden;fill:none;stroke:none"
+     id="canvas"
+     y="8.8817842e-016"
+     x="0"
+     height="16"
+     width="16" />
+  <path
+     d="m 0,12.870882 16,0 C 14.857143,15.156596 10.285714,16 8,16 5.7142857,16 1.4874088,15.156596 0,12.870882 Z M 10.285714,0.06964103 c -1.1428569,0 -1.9144613,1.18296717 -2.2991069,2.07278377 C 7.6008168,1.2091577 6.8571429,0.01741029 5.7142857,0.01741029 c -1.714704,0 -2.6225989,2.19866311 -2.6225989,3.34152021 0,1.1428572 1.4797418,0.7710245 1.4797418,0.034821 1.1428571,-2.2857143 2.2857143,-1.8445756 2.5625,1.7687632 l 0,0.3995536 C 6.6962173,5.3458282 6.2059374,5.2093891 5.714285 [...]
+     style="fill:#1388ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     id="path4182"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccscscsscccssssssccccccsssssccccss" />
+</svg>
diff --git a/images/presets/misc/housenumber.png b/images/presets/misc/housenumber.png
deleted file mode 100644
index 6a1e046..0000000
Binary files a/images/presets/misc/housenumber.png and /dev/null differ
diff --git a/images/presets/misc/housenumber.svg b/images/presets/misc/housenumber.svg
new file mode 100644
index 0000000..2644da8
--- /dev/null
+++ b/images/presets/misc/housenumber.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   sodipodi:docname="hn8.svg"
+   xml:space="preserve"
+   viewBox="0 0 16 12"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="16"
+   height="12"><defs
+   id="defs18" />
+  <title
+   id="title3096">Pancarte</title>
+  <sodipodi:namedview
+   id="namedview4"
+   bordercolor="#666666"
+   inkscape:pageshadow="2"
+   guidetolerance="10"
+   pagecolor="#ffffff"
+   gridtolerance="10"
+   inkscape:window-maximized="1"
+   inkscape:zoom="51.315992"
+   objecttolerance="10"
+   borderopacity="1"
+   inkscape:current-layer="g10"
+   inkscape:cx="8.5318819"
+   inkscape:cy="5.7643996"
+   inkscape:window-y="-8"
+   inkscape:window-x="-8"
+   inkscape:window-width="1680"
+   showgrid="true"
+   inkscape:pageopacity="0"
+   inkscape:window-height="988">
+    <inkscape:grid
+   id="grid4543"
+   type="xygrid" />
+  </sodipodi:namedview>
+  <g
+   id="g10"
+   inkscape:label="Lawn_Sign_Large"
+   inkscape:groupmode="layer"
+   transform="matrix(1.25,0,0,-1.25,0,12)">
+    
+    <rect
+   id="rect3749"
+   style="fill:#0000a0;fill-opacity:1"
+   transform="scale(1,-1)"
+   height="9.6000004"
+   width="12.8"
+   y="-9.6000004"
+   x="0" />
+    <path
+   id="rect3759"
+   style="fill:none;stroke:#ffffff;stroke-width:0.67839998;stroke-miterlimit:4;stroke-dasharray:none"
+   d="M 2.6842219,8.407381 C 2.6837888,7.6789791 1.9414953,6.9452137 1.2309486,6.9254159 l 0,-4.2688679 C 1.9482318,2.6570042 2.6972619,1.8471268 2.6842219,1.1187517 l 7.4493391,-6.82e-5 c 0.02726,0.7351116 0.778174,1.5087896 1.451606,1.5378645 l 0,4.2688679 c -0.642861,-0.00701 -1.451304,0.7670481 -1.451606,1.4819857 l -7.4493391,5.04e-5 z"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="cccccccccc" />
+    
+    
+    
+    
+    
+  <g
+   transform="scale(1,-1)"
+   style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+   id="text4146"><path
+     d="m 5.861626,-5.4307982 0,-0.013176 c 0,-0.00439 0.0022,-0.010981 0.00659,-0.019764 l 0,-0.026351 0,-0.026352 c 0,-0.017567 -0.0022,-0.037331 -0.00659,-0.059291 0,-0.021959 -0.0022,-0.043919 -0.00659,-0.065879 -0.013176,-0.052703 -0.039527,-0.098818 -0.079054,-0.1383455 -0.035135,-0.043919 -0.092249,-0.067553 -0.1712849,-0.065879 l -0.5204426,0 0,-0.4971595 0.4677396,0 c 0.2108122,0 0.4062527,-0.063683 0.5863214,-0.1910486 0.1844607,-0.1317576 0.3293941,-0.2443564 0.4348002,-0.4024 [...]
+     id="path4151"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="csccscccsccscccccscsccccscsc" /></g></g>
+<metadata
+   id="metadata16"><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license
+         rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /><dc:publisher><cc:Agent
+           rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher><dc:title>Pancarte</dc:title></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
\ No newline at end of file
diff --git a/images/presets/misc/housenumber_small.svg b/images/presets/misc/housenumber_small.svg
new file mode 100644
index 0000000..70ac3e1
--- /dev/null
+++ b/images/presets/misc/housenumber_small.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   sodipodi:docname="housenumber_small.svg"
+   xml:space="preserve"
+   viewBox="0 0 12 9"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="12"
+   height="9"><defs
+   id="defs18" />
+  <title
+   id="title3096">Pancarte</title>
+  <sodipodi:namedview
+   id="namedview4"
+   bordercolor="#666666"
+   inkscape:pageshadow="2"
+   guidetolerance="10"
+   pagecolor="#ffffff"
+   gridtolerance="10"
+   inkscape:window-maximized="1"
+   inkscape:zoom="36.285886"
+   objecttolerance="10"
+   borderopacity="1"
+   inkscape:current-layer="g10"
+   inkscape:cx="5.2880758"
+   inkscape:cy="5.4555467"
+   inkscape:window-y="-8"
+   inkscape:window-x="-8"
+   inkscape:window-width="1680"
+   showgrid="true"
+   inkscape:pageopacity="0"
+   inkscape:window-height="988">
+    <inkscape:grid
+   id="grid4543"
+   type="xygrid" />
+  </sodipodi:namedview>
+  <g
+   id="g10"
+   inkscape:label="Lawn_Sign_Large"
+   inkscape:groupmode="layer"
+   transform="matrix(1.25,0,0,-1.25,0,9)">
+    
+    <rect
+   id="rect3749"
+   style="fill:#0000a0;fill-opacity:1"
+   transform="scale(1,-1)"
+   height="7.1999998"
+   width="9.5999994"
+   y="-7.1999998"
+   x="2.3841858e-008" />
+    <path
+   id="rect3759"
+   style="fill:none;stroke:#ffffff;stroke-width:0.50879997;stroke-miterlimit:4;stroke-dasharray:none"
+   d="M 2.0131663,6.3055349 C 2.0128414,5.7592335 1.4561213,5.2089095 0.9232113,5.1940611 l 0,-3.2016508 c 0.5379624,3.422e-4 1.099735,-0.6070659 1.089955,-1.15334716 l 5.5870041,-5.11e-5 C 7.6206154,1.3903457 8.1838008,1.9706041 8.688875,1.9924103 l 0,3.2016508 C 8.2067291,5.1888036 7.6003969,5.7693472 7.6001704,6.3055503 l -5.5870041,3.78e-5 z"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="cccccccccc" />
+    
+    
+    
+    
+    
+  <g
+   transform="scale(0.74999997,-0.74999997)"
+   style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+   id="text4146"><path
+     d="m 5.861626,-5.4307982 0,-0.013176 c 0,-0.00439 0.0022,-0.010981 0.00659,-0.019764 l 0,-0.026351 0,-0.026352 c 0,-0.017567 -0.0022,-0.037331 -0.00659,-0.059291 0,-0.021959 -0.0022,-0.043919 -0.00659,-0.065879 -0.013176,-0.052703 -0.039527,-0.098818 -0.079054,-0.1383455 -0.035135,-0.043919 -0.092249,-0.067553 -0.1712849,-0.065879 l -0.5204426,0 0,-0.4971595 0.4677396,0 c 0.2108122,0 0.4062527,-0.063683 0.5863214,-0.1910486 0.1844607,-0.1317576 0.3293941,-0.2443564 0.4348002,-0.4024 [...]
+     id="path4151"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="csccscccsccscccccscsccccscsc" /></g></g>
+<metadata
+   id="metadata16"><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license
+         rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /><dc:publisher><cc:Agent
+           rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher><dc:title>Pancarte</dc:title></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
\ No newline at end of file
diff --git a/images/presets/misc/information/board.svg b/images/presets/misc/information/board.svg
index 84d1ac2..84169d3 100644
--- a/images/presets/misc/information/board.svg
+++ b/images/presets/misc/information/board.svg
@@ -13,15 +13,15 @@
    width="16"
    height="16"
    style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
-   viewBox="0 0 4.5155555 4.5155555"
+   viewBox="0 0 16 16"
    version="1.0"
    sodipodi:version="0.32"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="board.svg"
+   sodipodi:docname="board2.svg"
    id="svg2"><metadata
    id="metadata18"><rdf:RDF><cc:Work
        rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
    pagecolor="#ffffff"
    bordercolor="#666666"
    borderopacity="1"
@@ -33,19 +33,21 @@
    inkscape:window-width="1680"
    inkscape:window-height="988"
    id="namedview16"
-   showgrid="false"
+   showgrid="true"
    units="px"
    fit-margin-top="0"
    fit-margin-left="0"
    fit-margin-right="0"
    fit-margin-bottom="0"
-   inkscape:zoom="18.838582"
-   inkscape:cx="-2.5617452"
-   inkscape:cy="10.938397"
+   inkscape:zoom="37.677164"
+   inkscape:cx="1.6959344"
+   inkscape:cy="7.6616169"
    inkscape:window-x="-8"
    inkscape:window-y="-8"
    inkscape:window-maximized="1"
-   inkscape:current-layer="svg2" />
+   inkscape:current-layer="svg2"><inkscape:grid
+     type="xygrid"
+     id="grid4138" /></sodipodi:namedview>
  <defs
    id="defs4">
   <style
@@ -101,20 +103,22 @@
      id="GridFromPre046Settings" /></sodipodi:namedview>
  </defs>
  <path
-   style="fill:#957f66;stroke:#957f66;stroke-width:0.04470847;stroke-opacity:1;fill-opacity:1"
+   style="fill:#957f66;fill-opacity:1;stroke:none;stroke-width:0.15841587;stroke-opacity:1"
    inkscape:connector-curvature="0"
    id="path10"
-   d="m 0.62082182,0.02235424 3.27391188,0 c 0.3304626,0 0.5984675,0.40199621 0.5984675,0.89770137 l 0,2.67544429 c 0,0.4956828 -0.2680049,0.897679 -0.5984675,0.897679 l -3.27391188,2.23e-5 C 0.29035916,4.4931789 0.02237659,4.0911827 0.02237659,3.5954775 L 0.02235424,0.92005561 C 0.02237659,0.42435045 0.29035916,0.02235424 0.62084417,0.02235424 Z"
-   class="fil0 str0" /><circle
-   style="fill:#ffffff;stroke:#ffffff;stroke-width:0.04470847"
+   d="M 2.9499601,0 13.05,0 C 14.232641,0 16,1.175998 16,2.95 l 0,10.100038 c 0,1.773923 -1.767359,2.949869 -2.95,2.949879 L 2.9499601,16 C 1.76732,15.999917 9.4020901e-5,14.82396 7.9971801e-5,13.049962 L 0,2.95 C 7.9971801e-5,1.175998 1.76732,0 2.95004,0 Z"
+   class="fil0 str0"
+   sodipodi:nodetypes="csssscsccc" /><ellipse
+   style="fill:#ffffff;stroke:#ffffff;stroke-width:0.15841587"
    id="circle12"
-   r="1.3412541"
-   cy="2.2577777"
-   cx="2.2577777"
-   class="fil1 str1" /><path
-   style="fill:#957f66;fill-rule:nonzero;stroke:#957f66;stroke-width:0.01703393;fill-opacity:1;stroke-opacity:1"
+   cy="7.9999976"
+   cx="8"
+   class="fil1 str1"
+   rx="4.7524753"
+   ry="4.7524757" /><path
+   style="fill:#957f66;fill-opacity:1;fill-rule:nonzero;stroke:#957f66;stroke-width:0.06035645;stroke-opacity:1"
    inkscape:connector-curvature="0"
-   d="m 2.2575318,1.660875 c -0.073814,0 -0.1343713,-0.021773 -0.1812257,-0.065766 -0.047302,-0.044015 -0.070975,-0.097487 -0.070975,-0.1613529 0,-0.065766 0.023673,-0.1192375 0.070975,-0.1608834 0.046854,-0.041646 0.1074121,-0.062458 0.1812257,-0.062458 0.075244,0 0.135802,0.020812 0.1826341,0.062458 0.046385,0.041646 0.070036,0.095117 0.070036,0.1608834 0,0.066705 -0.023651,0.1211153 -0.070036,0.1637001 -0.046832,0.042115 -0.1073897,0.063419 -0.1826341,0.063419 z m 0.2162326,1.6442434  [...]
+   d="M 7.9991286,5.884992 C 7.737583,5.884992 7.5230098,5.8078497 7.3569903,5.6519566 7.1893848,5.4960277 7.1055041,5.3065323 7.1055041,5.0802353 c 0,-0.2330354 0.083881,-0.4224987 0.2514862,-0.5700627 0.1660182,-0.1475641 0.3805941,-0.2213104 0.6421383,-0.2213104 0.2666126,0 0.4811882,0.073746 0.6471287,0.2213104 0.1643563,0.147564 0.2481591,0.3370594 0.2481591,0.5700627 0,0.2363598 -0.083802,0.4291476 -0.2481591,0.5800397 C 8.4803172,5.8094834 8.2657427,5.8849813 7.9991286,5.8849813 Z [...]
    class="fil2 str2"
    id="_1" />
 </svg>
\ No newline at end of file
diff --git a/images/presets/misc/information/informationoffice.svg b/images/presets/misc/information/informationoffice.svg
index c27b889..5336279 100644
--- a/images/presets/misc/information/informationoffice.svg
+++ b/images/presets/misc/information/informationoffice.svg
@@ -10,14 +10,14 @@
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xml:space="preserve"
-   width="20mm"
-   height="20mm"
+   width="16"
+   height="16"
    style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
-   viewBox="0 0 20 20"
+   viewBox="0 0 16 16"
    id="svg2"
    version="1.1"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="informationoffice2.svg"><metadata
+   sodipodi:docname="informationoffice4.svg"><metadata
    id="metadata14"><rdf:RDF><cc:Work
        rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
          rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
@@ -32,14 +32,16 @@
    inkscape:window-width="1680"
    inkscape:window-height="988"
    id="namedview12"
-   showgrid="false"
-   inkscape:zoom="6.6604444"
-   inkscape:cx="51.610128"
-   inkscape:cy="19.494288"
+   showgrid="true"
+   inkscape:zoom="53.283555"
+   inkscape:cx="9.6337418"
+   inkscape:cy="10.753572"
    inkscape:window-x="-8"
    inkscape:window-y="-8"
    inkscape:window-maximized="1"
-   inkscape:current-layer="svg2" />
+   inkscape:current-layer="svg2"><inkscape:grid
+     type="xygrid"
+     id="grid4135" /></sodipodi:namedview>
  <defs
    id="defs4">
   <style
@@ -57,13 +59,14 @@
  <rect
    style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
    id="rect4143"
-   width="9.8777781"
-   height="18.344444"
-   x="5.0799999"
-   y="1.0911111" /><path
-   style="fill:#da251d;stroke:#ffffff;stroke-width:0.2"
+   width="7.9022226"
+   height="14.675555"
+   x="4.0640001"
+   y="0.87288892" /><path
+   style="fill:#da251d;stroke:none;stroke-width:0.2"
    inkscape:connector-curvature="0"
    id="path10"
-   d="M 0,0 20,0 20,20 0,20 0,0 Z m 10,2 c 1.6566,0 2.9999,0.8957 2.9999,2 0,1.1043 -1.3433,2 -2.9999,2 C 8.3433,6 6.9999,5.1043 6.9999,4 6.9999,2.8957 8.3433,2 10,2 Z M 7,8 13,8 13,18 7,18 7,8 Z"
-   class="fil0 str0" />
+   d="M 0,0 16,0 16,16 0,16 Z M 8,1.4 C 9.32528,1.4 10.39992,2.11656 10.39992,3 10.39992,3.88344 9.32528,4.8 8,4.8 6.67464,4.8 5.59992,3.88344 5.59992,3 5.59992,2.11656 6.67464,1.4 8,1.4 Z M 6,6 l 4,0 0,8 -4,0 z"
+   class="fil0 str0"
+   sodipodi:nodetypes="cccccsssssccccc" />
 </svg>
\ No newline at end of file
diff --git a/images/presets/misc/information/map.svg b/images/presets/misc/information/map.svg
index abc86e8..fd6ba7b 100644
--- a/images/presets/misc/information/map.svg
+++ b/images/presets/misc/information/map.svg
@@ -13,11 +13,11 @@
    width="16"
    height="16"
    style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
-   viewBox="0 0 4.5155555 4.5155555"
+   viewBox="0 0 16 16"
    version="1.0"
    sodipodi:version="0.32"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="map3.svg"
+   sodipodi:docname="map2.svg"
    id="svg2"><metadata
    id="metadata18"><rdf:RDF><cc:Work
        rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
@@ -33,19 +33,21 @@
    inkscape:window-width="1680"
    inkscape:window-height="988"
    id="namedview16"
-   showgrid="false"
+   showgrid="true"
    units="px"
    fit-margin-top="0"
    fit-margin-left="0"
    fit-margin-right="0"
    fit-margin-bottom="0"
-   inkscape:zoom="3.3302222"
-   inkscape:cx="7.9999988"
-   inkscape:cy="7.6997182"
+   inkscape:zoom="32"
+   inkscape:cx="9.3280203"
+   inkscape:cy="7.4055762"
    inkscape:window-x="-8"
    inkscape:window-y="-8"
    inkscape:window-maximized="1"
-   inkscape:current-layer="svg2" />
+   inkscape:current-layer="svg2"><inkscape:grid
+     type="xygrid"
+     id="grid4140" /></sodipodi:namedview>
  <defs
    id="defs4">
   <style
@@ -63,28 +65,30 @@
  </defs>
  <g
    id="Ebene_x0020_1"
-   transform="matrix(0.22354235,0,0,0.22354235,0.02235424,0.02235424)">
+   transform="scale(0.8,0.8)"
+   style="stroke:none">
   <metadata
    id="CorelCorpID_0Corel-Layer" />
   <path
    class="fil0 str0"
-   d="M 2.6772,0 17.3228,0 C 18.8011,0 20,1.7983 20,4.0158 l 0,11.9684 c 0,2.2174 -1.1989,4.0157 -2.6772,4.0157 L 2.6772,20 C 1.1989,19.9999 1e-4,18.2016 1e-4,15.9841 L 0,4.0158 C 1e-4,1.7983 1.1989,0 2.6773,0 Z"
+   d="M 3.74995,0 16.25,5e-5 C 17.7283,5.5913176e-5 20,1.5325 20,3.75 l 0,12.50005 c 0,2.2174 -2.2717,3.749894 -3.75,3.7499 L 3.74995,20 C 2.27165,19.9999 1.1774007e-4,18.46745 1e-4,16.24995 L 0,3.75 C 1e-4,1.5325 2.27165,0 3.75005,0 Z"
    id="path10"
    inkscape:connector-curvature="0"
-   style="fill:#84c225;stroke:#84c225;stroke-width:0.2" />
+   style="fill:#84c225;stroke:none;stroke-width:0.2"
+   sodipodi:nodetypes="csssscsccc" />
   <circle
    class="fil1 str1"
    cx="10"
    cy="10"
    r="6"
    id="circle12"
-   style="fill:#ffffff;stroke:#ffffff;stroke-width:0.2" />
+   style="fill:#ffffff;stroke:none;stroke-width:0.2" />
   <path
    id="_1"
    class="fil2 str2"
    d="M 9.9989,7.3298 C 9.6687,7.3298 9.3978,7.2324 9.1882,7.0356 8.9766,6.8387 8.8707,6.5995 8.8707,6.3138 8.8707,6.0196 8.9766,5.7804 9.1882,5.5941 9.3978,5.4078 9.6687,5.3147 9.9989,5.3147 c 0.3366,0 0.6075,0.0931 0.817,0.2794 0.2075,0.1863 0.3133,0.4255 0.3133,0.7197 0,0.2984 -0.1058,0.5418 -0.3133,0.7323 -0.2095,0.1884 -0.4804,0.2837 -0.817,0.2837 z m 0.9673,7.3554 -1.9579,0 0,-6.35 1.9579,0 0,6.35 z"
    inkscape:connector-curvature="0"
-   style="fill:#84c225;fill-rule:nonzero;stroke:#84c225;stroke-width:0.0762" />
+   style="fill:#84c225;fill-rule:nonzero;stroke:none;stroke-width:0.0762" />
   <sodipodi:namedview
    inkscape:window-height="749"
    inkscape:window-width="1024"
diff --git a/images/presets/misc/interpolation.png b/images/presets/misc/interpolation.png
deleted file mode 100644
index eadd1e3..0000000
Binary files a/images/presets/misc/interpolation.png and /dev/null differ
diff --git a/images/presets/misc/interpolation.svg b/images/presets/misc/interpolation.svg
new file mode 100644
index 0000000..7841caf
--- /dev/null
+++ b/images/presets/misc/interpolation.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="interpolation2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="3.0902593"
+     inkscape:cy="4.6321976"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="fill:#0087cb;fill-rule:evenodd;stroke:#0089ec;stroke-width:1.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 4,1048.3622 8,-8 0,0"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000cd8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.36399996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4145"
+       width="4"
+       height="4"
+       x="1"
+       y="1047.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000cd8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.36399996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4147"
+       width="4"
+       height="4"
+       x="11"
+       y="1037.3622" />
+  </g>
+</svg>
diff --git a/images/presets/misc/message.png b/images/presets/misc/message.png
deleted file mode 100644
index acbf8c8..0000000
Binary files a/images/presets/misc/message.png and /dev/null differ
diff --git a/images/presets/misc/monitoring_station.png b/images/presets/misc/monitoring_station.png
deleted file mode 100644
index 35258cb..0000000
Binary files a/images/presets/misc/monitoring_station.png and /dev/null differ
diff --git a/images/presets/misc/monitoring_station.svg b/images/presets/misc/monitoring_station.svg
new file mode 100644
index 0000000..818ce8b
--- /dev/null
+++ b/images/presets/misc/monitoring_station.svg
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--part of the rodentia icon theme by sixsixfive released under CC0 (https://creativecommons.org/publicdomain/zero/1.0/) on openclipart-->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="rodentia-icons_utilities-system-sensors5.svg"
+   width="16"
+   height="16">
+  <metadata
+     id="metadata47">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview45"
+     showgrid="true"
+     inkscape:zoom="27.812867"
+     inkscape:cx="10.395811"
+     inkscape:cy="12.11614"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4175" />
+  </sodipodi:namedview>
+  <defs
+     id="0">
+    <linearGradient
+       id="D">
+      <stop
+         id="R"
+         stop-color="#2e3436" />
+      <stop
+         id="S"
+         offset="1"
+         stop-color="#babdb6" />
+    </linearGradient>
+    <linearGradient
+       id="E">
+      <stop
+         id="T"
+         stop-color="#fff" />
+      <stop
+         id="U"
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0" />
+    </linearGradient>
+    <linearGradient
+       id="F">
+      <stop
+         id="V"
+         stop-color="#d3d7cf" />
+      <stop
+         id="W"
+         offset="1"
+         stop-color="#eeeeec" />
+    </linearGradient>
+    <linearGradient
+       id="G">
+      <stop
+         id="X"
+         stop-color="#888a85" />
+      <stop
+         id="Y"
+         offset="1"
+         stop-color="#555753" />
+    </linearGradient>
+    <linearGradient
+       id="H">
+      <stop
+         id="Z"
+         stop-color="#fff"
+         stop-opacity="0.5" />
+      <stop
+         id="a"
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0" />
+    </linearGradient>
+    <linearGradient
+       id="I">
+      <stop
+         id="b"
+         stop-color="#2e3436" />
+      <stop
+         id="c"
+         offset="1"
+         stop-color="#2e3436"
+         stop-opacity="0" />
+    </linearGradient>
+    <linearGradient
+       id="J">
+      <stop
+         id="d"
+         stop-color="#eee" />
+      <stop
+         id="e"
+         offset="1"
+         stop-color="#dcdcdc" />
+    </linearGradient>
+    <radialGradient
+       cx="60.049999"
+       cy="51.389999"
+       r="15.03"
+       id="K"
+       xlink:href="#J"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.404511,1.1888571,-1,-1.1813958,199.73811,11.750541)" />
+    <radialGradient
+       cx="25.02"
+       cy="44.299999"
+       r="16.726999"
+       id="L"
+       xlink:href="#I"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.11504424,0,39.202918)" />
+    <linearGradient
+       y1="5.2649999"
+       x2="0"
+       y2="42.603001"
+       id="M"
+       xlink:href="#H"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4,0,0,0.40004104,-1.6,-1.600985)" />
+    <radialGradient
+       cx="14.11"
+       cy="9.4209995"
+       r="18.716999"
+       id="N"
+       xlink:href="#G"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.09714344,0.39278942,-0.78960068,-0.1953216,13.521788,-2.780101)" />
+    <radialGradient
+       cx="26.805"
+       cy="30.17"
+       r="14.476"
+       id="O"
+       xlink:href="#F"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4768218,-0.66869805,0.9693748,0.69136409,-33.419096,8.179519)" />
+    <linearGradient
+       x1="9"
+       y1="-17.412249"
+       x2="24"
+       y2="30.144016"
+       id="P"
+       xlink:href="#E"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4,0,0,0.40004104,-1.6,-1.600985)" />
+    <linearGradient
+       y1="8.1639996"
+       x2="0"
+       y2="39.695"
+       id="Q"
+       xlink:href="#D"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4,0,0,0.40004104,-1.6,-1.600985)" />
+  </defs>
+  <path
+     d="M 16,8 A 8,8 0 0 1 0,8 8,8 0 1 1 16,8 Z"
+     id="2"
+     inkscape:connector-curvature="0"
+     style="fill:#2e3436" />
+  <path
+     d="M 7.5,0.549236 C 1.8461344,0.649927 -1.5992295,7.981101 1.975,12.425454 l -0.0125,0.0125 c 3.2448528,4.794594 11.375379,3.608403 13.0625,-1.937698 l 0.0125,0 c 0.003,-0.0078 -0.003,-0.01716 0,-0.025 C 16.903361,5.590472 12.743582,0.092689 7.525,0.549238 c -0.00859,7.52e-4 -0.0164,-7.85e-4 -0.025,0 z"
+     id="3"
+     style="fill:url(#N)"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 8.4625,0.711752 c -0.3053856,-0.01496 -0.6232224,-0.0031 -0.9375,0.025 -0.00419,3.74e-4 -0.00831,-3.82e-4 -0.0125,0 -5.506051,0.08771 -8.8905179,7.270311 -5.3875,11.588689 3.1565128,4.664063 11.107974,3.514908 12.7375,-1.887694 0.0012,-0.0038 -0.0012,-0.0087 0,-0.0125 1.714588,-4.464543 -1.762114,-9.486373 -6.4,-9.713497 z"
+     id="4"
+     style="fill:none;stroke:url(#M);stroke-width:0.40002051"
+     inkscape:connector-curvature="0" />
+  <path
+     d="M 7.525,1.686852 C 2.8502776,1.770102 -0.10222468,8.026413 2.8625,11.712881 a 1.143021,1.1431382 0 0 1 0.1,0.150015 c 2.7315172,3.908088 9.580342,2.884508 10.975,-1.700174 a 1.143021,1.1431382 0 0 1 0.0375,-0.10001 c 1.56176,-4.088656 -1.977437,-8.758394 -6.35,-8.37586 -0.203102,0.01777 -0.213126,0.01715 -0.025,0 a 1.143021,1.1431382 0 0 1 -0.075,0 z"
+     id="5"
+     style="fill:url(#Q)"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 7.5375,2.236909 c -0.00876,7.2e-4 -0.018132,0.012 -0.025,0.0125 -0.00588,4.4e-4 -0.029384,-6.4e-4 -0.0375,0 -0.00842,2.7e-4 -0.016596,-3.15e-4 -0.025,0 -4.139902,0.155256 -6.80769476,5.836786 -4.1625,9.125936 0.043739,0.05556 0.088576,0.114447 0.125,0.175018 2.4601504,3.519833 8.743725,2.579616 10,-1.550159 0.01454,-0.04507 0.03173,-0.09383 0.05,-0.137514 1.41407,-3.702004 -1.824979,-7.972444 -5.7875,-7.625782 -0.02572,0.0022 -0.042687,-0.0017 -0.0625,0 -0.027704,9.2e-4 -0.0472 [...]
+     id="6"
+     style="fill:url(#O)"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 8.05,2.224407 c -0.122296,0.002 -0.2511712,0.0017 -0.375,0.0125 -0.02572,0.0022 -0.042687,-0.0017 -0.0625,0 -0.027704,9.2e-4 -0.047286,4.4e-4 -0.075,0 -0.00876,7.2e-4 -0.018132,0.012 -0.025,0.0125 -0.00588,4.4e-4 -0.029384,-6.4e-4 -0.0375,0 -0.00842,2.69e-4 -0.016596,-3.15e-4 -0.025,0 -1.3598736,0.051 -2.5564348,0.699772 -3.4625,1.662671 L 5.775,5.68726 C 6.3521836,5.122075 7.14153,4.774666 8.0125,4.774666 c 0.8768956,0 1.671812,0.353104 2.25,0.925095 L 12.05,3.912081 C 11.0102 [...]
+     id="7"
+     inkscape:connector-curvature="0"
+     style="opacity:0.9;fill:#ca5b00;fill-opacity:1" />
+  <path
+     d="m 3.9625,3.937083 c -1.8336372,1.971284 -2.4436165,5.239088 -0.675,7.438263 0.043739,0.05556 0.088576,0.114447 0.125,0.175018 0.1367508,0.195655 0.291142,0.381746 0.45,0.550057 l 1.875,-1.875193 C 5.1655236,9.646971 4.8125,8.852029 4.8125,7.974997 c 0,-0.876822 0.3532644,-1.672008 0.925,-2.25023 L 3.9625,3.937083 Z"
+     id="8"
+     inkscape:connector-curvature="0"
+     style="opacity:0.9;fill:#729300;fill-opacity:1" />
+  <path
+     d="m 12.075,3.937083 -1.7875,1.787684 c 0.571929,0.57825 0.925,1.37324 0.925,2.25023 0,0.873953 -0.356564,1.659988 -0.925,2.23773 l 1.85,1.85019 c 0.575951,-0.558345 1.02574,-1.243314 1.275,-2.062712 0.01454,-0.04507 0.03173,-0.09383 0.05,-0.137514 0.806462,-2.111299 0.10401,-4.40644 -1.3875,-5.925608 z"
+     id="9"
+     inkscape:connector-curvature="0"
+     style="opacity:0.9;fill:#c70000;fill-opacity:1" />
+  <path
+     d="m 8.815398,7.968164 a 0.799998,0.80008197 0 1 1 -1.5999956,0 0.799998,0.80008197 0 1 1 1.5999956,0 z"
+     id="A"
+     inkscape:connector-curvature="0"
+     style="fill:#555753" />
+  <rect
+     width="1.3852358"
+     height="6.4390998"
+     ry="0.70753425"
+     x="10.474097"
+     y="-3.8875353"
+     transform="matrix(0.8158332,0.57828729,-0.57820831,0.81588918,0,0)"
+     id="B"
+     rx="0.69237375"
+     style="fill:#383936;fill-opacity:1" />
+  <path
+     d="m 8.05,2.211906 c -0.1223196,0.002 -0.2511712,0.01417 -0.375,0.025 -0.02572,0.0022 -0.042687,-0.0017 -0.0625,0 -0.027704,9.2e-4 -0.047286,4.4e-4 -0.075,0 -0.00876,7.2e-4 -0.018132,0.012 -0.025,0.0125 -0.00588,4.4e-4 -0.029384,-6.4e-4 -0.0375,0 -0.00842,2.7e-4 -0.016596,-3.15e-4 -0.025,0 C 4.3795344,2.364559 2.1213858,5.523259 2.2375,8.48755 5.7904172,7.334861 9.7067168,6.244417 13.175,5.46224 12.214074,3.579482 10.271474,2.175632 8.05,2.211906 Z"
+     id="C"
+     style="opacity:0.6;fill:url(#P)"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/misc/multipolygon.png b/images/presets/misc/multipolygon.png
deleted file mode 100644
index eb6ea61..0000000
Binary files a/images/presets/misc/multipolygon.png and /dev/null differ
diff --git a/images/presets/misc/multipolygon.svg b/images/presets/misc/multipolygon.svg
new file mode 100644
index 0000000..b8cb21d
--- /dev/null
+++ b/images/presets/misc/multipolygon.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="mp5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="6.7287838"
+     inkscape:cy="11.525462"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ecac00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       d="M 3,0 C 1.3379904,0 0,1.3379904 0,3 l 0,7 c 0,1.66201 1.3379904,3 3,3 1.3333333,0 3.6629126,-0.03157 4,1.325553 C 7.0315673,16.050699 8.3379889,16 10,16 l 3,0 c 1.662011,0 3,-1.337989 3,-3 l 0,-2 C 16,10.828411 15.97663,10.663566 15.94922,10.5 15.976626,10.336434 16,10.171589 16,10 L 16,3 C 16,1.3379904 14.66201,0 13,0 Z M 3.5,3 C 4.331,3 5,3.669 5,4.5 l 0,1 C 5,6.331 4.331,7 3.5,7 2.669,7 2,6.331 2,5.5 l 0,-1 C 2,3.669 2.669,3 3.5,3 Z m 7,1 2,0 C 13.331,4 14,4.669 14,5.5 l 0,6 [...]
+       transform="translate(0,1036.3622)"
+       id="rect4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="sssscsssscssssssssssssssssssss" />
+  </g>
+</svg>
diff --git a/images/presets/misc/name.svg b/images/presets/misc/name.svg
new file mode 100644
index 0000000..b779799
--- /dev/null
+++ b/images/presets/misc/name.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="14"
+   viewBox="0 0 16 14"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="name3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="3.5456257"
+     inkscape:cy="4.9298763"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1038.3622)">
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.39564025;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;s [...]
+       id="path4145"
+       cx="8"
+       cy="1044.3622"
+       rx="7.3021798"
+       ry="5.3021798" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0.55803571,1046.5092 c -0.23862558,0.3543 -0.56375892,5.8434 -0.20103571,5.853 1.9274363,-0.033 2.8572617,-0.6791 3.3796071,-3.5651"
+       id="path4147"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93900001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4149"
+       width="8"
+       height="1"
+       x="4"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93900001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4151"
+       width="6"
+       height="1"
+       x="4"
+       y="1045.3622" />
+  </g>
+</svg>
diff --git a/images/presets/misc/note-annotation.png b/images/presets/misc/note-annotation.png
deleted file mode 100644
index 0b8dc3b..0000000
Binary files a/images/presets/misc/note-annotation.png and /dev/null differ
diff --git a/images/presets/misc/note-fixme-annotation.png b/images/presets/misc/note-fixme-annotation.png
deleted file mode 100644
index ac7cd90..0000000
Binary files a/images/presets/misc/note-fixme-annotation.png and /dev/null differ
diff --git a/images/presets/misc/note.svg b/images/presets/misc/note.svg
new file mode 100644
index 0000000..1a359de
--- /dev/null
+++ b/images/presets/misc/note.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="15"
+   height="16"
+   viewBox="0 0 15 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="note1.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4142"
+       width="4.7276525"
+       height="15.128506"
+       x="-701.53229"
+       y="702.38928"
+       transform="matrix(0.67139867,-0.74109637,0.67139867,0.74109637,0,0)" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4134"
+       width="5"
+       height="16.000017"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4136"
+       width="3"
+       height="14"
+       x="1"
+       y="1037.3622" />
+    <rect
+       y="1036.3622"
+       x="10"
+       height="16.000017"
+       width="5"
+       id="rect4138"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <rect
+       y="1037.3622"
+       x="11"
+       height="14"
+       width="3"
+       id="rect4140"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4144"
+       width="3.2895761"
+       height="15.351354"
+       x="-700.81329"
+       y="702.30774"
+       transform="matrix(0.67139867,-0.74109637,0.67139867,0.74109637,0,0)" />
+  </g>
+</svg>
diff --git a/images/presets/misc/note_annotation.svg b/images/presets/misc/note_annotation.svg
new file mode 100644
index 0000000..58f51d3
--- /dev/null
+++ b/images/presets/misc/note_annotation.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="23"
+   height="23"
+   viewBox="0 0 23 23"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="note4.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="4.940076"
+     inkscape:cy="18.437686"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1029.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4166-1"
+       width="3"
+       height="9.0000172"
+       x="20"
+       y="1029.3622" />
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       id="path4183"
+       d="m 17.5,1030.6622 4,6.4"
+       style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4166"
+       width="3"
+       height="9.0000172"
+       x="16"
+       y="1029.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4149"
+       width="1"
+       height="7.0000172"
+       x="17"
+       y="1030.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4151"
+       width="1"
+       height="7.0000172"
+       x="21"
+       y="1030.3622" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 17.5,1030.6622 4,6.4"
+       id="path4153"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
diff --git a/images/presets/misc/note_fixme_annotation.svg b/images/presets/misc/note_fixme_annotation.svg
new file mode 100644
index 0000000..c1b3379
--- /dev/null
+++ b/images/presets/misc/note_fixme_annotation.svg
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="37"
+   height="23"
+   viewBox="0 0 37 23"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="nf6.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="15.770548"
+     inkscape:cy="17.814262"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1029.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4166-1"
+       width="3"
+       height="9.0000172"
+       x="27"
+       y="1029.3622" />
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       id="path4183"
+       d="m 24.5,1030.6622 4,6.4"
+       style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4166"
+       width="3"
+       height="9.0000172"
+       x="23"
+       y="1029.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4149"
+       width="1"
+       height="7.0000172"
+       x="24"
+       y="1030.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4151"
+       width="1"
+       height="7.0000172"
+       x="28"
+       y="1030.3622" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 24.5,1030.6622 4,6.4"
+       id="path4153"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4144"
+       width="4"
+       height="3"
+       x="33"
+       y="1029.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4146"
+       width="3"
+       height="4.0000172"
+       x="33"
+       y="1031.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4166-7"
+       width="3"
+       height="9.0000172"
+       x="31"
+       y="1029.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4149-2"
+       width="1"
+       height="7.0000172"
+       x="32"
+       y="1030.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4140"
+       width="3"
+       height="1"
+       x="33"
+       y="1030.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4142"
+       width="2"
+       height="1.0001045"
+       x="33"
+       y="1033.3622" />
+  </g>
+</svg>
diff --git a/images/presets/misc/path.png b/images/presets/misc/path.png
deleted file mode 100644
index 613fd33..0000000
Binary files a/images/presets/misc/path.png and /dev/null differ
diff --git a/images/presets/misc/relations.png b/images/presets/misc/relations.png
deleted file mode 100644
index f111259..0000000
Binary files a/images/presets/misc/relations.png and /dev/null differ
diff --git a/images/presets/misc/relations.svg b/images/presets/misc/relations.svg
new file mode 100644
index 0000000..a957b42
--- /dev/null
+++ b/images/presets/misc/relations.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="11"
+   viewBox="0 0 16 11"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="relations5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="7.4904607"
+     inkscape:cy="1.825691"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="5.0033631"
+       originy="1.9960983" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(5.0033631,-1043.1703)">
+    <circle
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20857573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="path4145"
+       cx="0.86478049"
+       cy="1048.7643"
+       r="4.2637119" />
+    <circle
+       r="4.2637119"
+       cy="1048.7643"
+       cx="5.1284928"
+       id="circle4162"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.20857573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+  </g>
+</svg>
diff --git a/images/presets/misc/rock.svg b/images/presets/misc/rock.svg
index 0d3b502..06fdf3a 100644
--- a/images/presets/misc/rock.svg
+++ b/images/presets/misc/rock.svg
@@ -14,15 +14,15 @@
    x="0px"
    y="0px"
    width="16"
-   height="12.676259"
-   viewBox="0 0 16 12.676259"
+   height="13"
+   viewBox="0 0 16 13"
    enable-background="new 0 0 16 16"
    xml:space="preserve"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="05.svg"><metadata
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="rock2.svg"><metadata
    id="metadata9"><rdf:RDF><cc:Work
        rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
    id="defs7" /><sodipodi:namedview
    pagecolor="#ffffff"
    bordercolor="#666666"
@@ -40,9 +40,9 @@
    fit-margin-left="0"
    fit-margin-right="0"
    fit-margin-bottom="0"
-   inkscape:zoom="32"
-   inkscape:cx="8.8945999"
-   inkscape:cy="3.398555"
+   inkscape:zoom="64"
+   inkscape:cx="8.3718219"
+   inkscape:cy="1.8195663"
    inkscape:window-x="-8"
    inkscape:window-y="-8"
    inkscape:window-maximized="1"
@@ -62,7 +62,7 @@
    id="path2988"
    inkscape:connector-curvature="0"
    sodipodi:nodetypes="cccccccccccccc" /><path
-   style="fill:none;stroke:#636363;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+   style="fill:none;stroke:#636363;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
    d="m 0.45,9.629259 0,2.597 15.1,0.006 0,-3.006"
    id="path3758"
    inkscape:connector-curvature="0"
diff --git a/images/presets/misc/route.svg b/images/presets/misc/route.svg
new file mode 100644
index 0000000..aab8dfa
--- /dev/null
+++ b/images/presets/misc/route.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="path7.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="2.7358166"
+     inkscape:cy="9.0588769"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+       id="rect4151"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622"
+       ry="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 2,1050.0051 c 2,0 3.569299,0.2606 6.9474476,-1.5908"
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 10.113409,1047.8122 c 1.909633,-1.5326 1.828126,-3.4271 -0.3188242,-3.6005 -2.9769396,-0.2404 -3.7184861,-1.2687 -1.9445121,-2.9634"
+       id="path4147"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="csc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 9.1573041,1040.2666 c 2.5616699,-1.3426 3.7980529,-1.2392 5.9185879,-1.4803"
+       id="path4149"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
diff --git a/images/presets/misc/stone.svg b/images/presets/misc/stone.svg
index 84937dd..333b848 100644
--- a/images/presets/misc/stone.svg
+++ b/images/presets/misc/stone.svg
@@ -14,8 +14,8 @@
    x="0px"
    y="0px"
    width="12"
-   height="10.419232"
-   viewBox="0 0 12 10.419232"
+   height="11"
+   viewBox="0 0 12 11"
    enable-background="new 0 0 16 16"
    xml:space="preserve"
    inkscape:version="0.48.5 r10040"
diff --git a/images/presets/misc/streetlamp.png b/images/presets/misc/streetlamp.png
deleted file mode 100644
index fd5754c..0000000
Binary files a/images/presets/misc/streetlamp.png and /dev/null differ
diff --git a/images/presets/misc/streetlamp.svg b/images/presets/misc/streetlamp.svg
new file mode 100644
index 0000000..c214382
--- /dev/null
+++ b/images/presets/misc/streetlamp.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="7"
+   height="16"
+   viewBox="0 0 7 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="streetlamp3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="44.8"
+     inkscape:cx="1.8237576"
+     inkscape:cy="7.6199912"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="707"
+     inkscape:window-height="443"
+     inkscape:window-x="150"
+     inkscape:window-y="150"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="fill:#333333;stroke:#000000;stroke-width:0.00098624"
+       inkscape:connector-curvature="0"
+       id="path5"
+       d="m 3.9288921,1042.2535 c 0.009,0.026 0.065,0.035 0.10691,0.049 0.0285,0.01 0.0417,0.029 0.0216,0.043 -0.0672,0.062 -0.1637,0.1189 -0.18628,0.1888 -0.0119,0.034 0.0119,0.068 0.0591,0.094 -0.027,0.024 -0.0648,0.048 -0.0614,0.076 0.006,0.026 0.0373,0.048 0.0629,0.071 -0.0229,0.012 -0.046,0.024 -0.0698,0.035 0.0478,0.3598 0.0775,0.72 0.10057,1.0802 0.0182,0.3015 0.0408,0.6032 0.0581,0.9044 0.0231,0.016 0.0832,0.021 0.0749,0.046 0.006,0.028 -0.0756,0.038 -0.0728,0.065 0.0391,0.2546 0 [...]
+       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
+    <g
+       id="_x23_fdee21ff"
+       transform="matrix(0.01942266,0,0,0.01715941,-6.6184579,1034.3756)">
+      <path
+         d="m 411.84,271.94 c 37.19,-14.82 74.37,-29.66 111.54,-44.54 0.08,53.27 -0.1,106.55 -0.1,159.83 -23.4,8.55 -46.78,17.19 -70.31,25.35 -12.49,-42.89 -25.24,-85.71 -37.82,-128.57 -1.14,-4.01 -2.53,-7.96 -3.31,-12.07 z"
+         id="path8"
+         inkscape:connector-curvature="0"
+         style="fill:#fdee21;stroke:#fdee21;stroke-width:0.0938" />
+      <path
+         d="m 536.31,228.72 c 30.81,16.87 61.58,33.81 92.41,50.64 -9.7,44.98 -19.75,89.89 -29.55,134.84 -21.01,-8.85 -41.92,-17.93 -62.89,-26.88 0,-52.87 -0.05,-105.74 0.03,-158.6 z"
+         id="path10"
+         inkscape:connector-curvature="0"
+         style="fill:#fdee21;stroke:#fdee21;stroke-width:0.0938" />
+    </g>
+    <path
+       d="m 2.8466721,1036.4521 c 0.23269,-0.1008 0.5048,-0.1121 0.7571,-0.074 0.13557,0.025 0.28027,0.07 0.36495,0.1729 0.0738,0.09 0.0577,0.2227 -0.0299,0.3012 -0.0658,0.063 -0.15557,0.1376 -0.1245,0.2332 0.0315,0.1398 0.19384,0.1952 0.30571,0.2764 0.0798,0.054 0.10605,0.1471 0.095,0.2325 0.18762,0.1639 0.48362,0.1769 0.65843,0.3552 0.18665,0.1936 0.23152,0.4638 0.42691,0.6524 0.16062,0.1486 0.39389,0.2071 0.6155,0.245 0.0113,0.024 0.02,0.05 0.0375,0.072 0.0923,0.1057 0.2814303,0.093 0 [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       style="fill:#333333;stroke:#000000;stroke-width:0.00171241"
+       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/nautical/boatyard.png b/images/presets/nautical/boatyard.png
deleted file mode 100644
index c86a957..0000000
Binary files a/images/presets/nautical/boatyard.png and /dev/null differ
diff --git a/images/presets/nautical/boatyard.svg b/images/presets/nautical/boatyard.svg
new file mode 100644
index 0000000..1bbc4f1
--- /dev/null
+++ b/images/presets/nautical/boatyard.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="15"
+   viewBox="0 0 16 15"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="boatyard.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="44.8"
+     inkscape:cx="9.7846687"
+     inkscape:cy="8.6364843"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1037.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4148"
+       width="16"
+       height="15"
+       x="0"
+       y="1037.3623" />
+    <g
+       id="Layer_2"
+       transform="matrix(0,0.05028433,0.04204333,0,-2.5686007,1028.5531)"
+       style="fill:#000000">
+      <path
+         d="m 230.667,88 5,42 20,6.333 18,-11 -6.333,-43 c 0,0 36.667,11 39.667,37.333 0,0 3.999,23 -10.334,34 l -10.999,10 c 0,0 -14,10.667 -10.667,34 l 0,204 -0.333,7.667 c 0,0 1,9 -9,9.333 l -19,0 c 0,0 -10,1.667 -11.667,-12.333 l 0,-220.334 c 0,0 1.333,-12.333 -8.333,-18.333 l -12.333,-10 c 0,0 -21.333,-16.334 -7.333,-45.667 -0.001,0 4.999,-13.999 23.665,-23.999 z"
+         id="path68800"
+         inkscape:connector-curvature="0"
+         style="fill:#000000" />
+    </g>
+    <path
+       d="m 14.744728,1049.6684 0.01563,-1.3279 -1.092296,0.017 0.329492,-0.9938 -2.391848,-0.029 0.411169,-0.984 -3.2572074,0 0.2658846,-0.9889 -3.0423737,-0.022 -0.4691449,1.3093 -1.5408468,0 -0.5702689,0.6974 -2.3403059,0 c 1.1993656,2.242 1.937388,2.999 2.960654,4.0986 4.2184181,0 5.976734,0 9.775956,-0.017 0.714666,-0.511 0.819894,-1.2805 0.945506,-1.7638 z"
+       id="path10"
+       style="fill:#000000;fill-rule:evenodd;stroke:none"
+       sodipodi:nodetypes="ccccccccccccccccc"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/nautical/marina.png b/images/presets/nautical/marina.png
deleted file mode 100644
index e27b17e..0000000
Binary files a/images/presets/nautical/marina.png and /dev/null differ
diff --git a/images/presets/nautical/marina.svg b/images/presets/nautical/marina.svg
new file mode 100644
index 0000000..f52f012
--- /dev/null
+++ b/images/presets/nautical/marina.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg3140"
+   sodipodi:docname="ancla3.svg"
+   viewBox="0 0 14 16"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="14"
+   height="16">
+  <defs
+     id="defs10" />
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     pagecolor="#ffffff"
+     inkscape:zoom="22.4"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="2.7442557"
+     inkscape:cy="7.7448563"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <g
+     id="layer1"
+     inkscape:label="Capa 1"
+     inkscape:groupmode="layer"
+     transform="translate(-72.089995,-959.94004)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:0.00749496;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4140"
+       width="13.992505"
+       height="15.992505"
+       x="72.093742"
+       y="959.94379"
+       ry="0.015582588" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 79.081953,960.99629 c -0.982567,0 -1.779784,0.75097 -1.779784,1.67654 0,0.7634 0.543103,1.40654 1.284409,1.60897 l 0,0.68624 -0.219674,0 c -0.165058,0 -0.302351,0.10777 -0.336239,0.25339 l -2.297605,0 c -0.114008,-0.39349 -0.396067,-0.67359 -0.726277,-0.67359 -0.430878,0 -0.782295,0.47514 -0.782295,1.06004 0,0.58485 0.351427,1.06002 0.782295,1.06002 0.334902,0 0.620017,-0.28811 0.730798,-0.69049 l 2.293158,0 c 0.0346,0.14469 0.171882,0.25339 0.336229,0.25339 l 0.08066,0 c -0. [...]
+       style="fill:#4261a0;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.11307544px"
+       sodipodi:nodetypes="cscccccsssccccccccccccccccccccccsccccssscccccsccsssc"
+       id="path3181-6" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#ffffff;fill-rule:evenodd"
+       d="m 79.09091,961.1865 c -0.212892,0.005 -0.453112,0.0386 -0.717298,0.11402 -0.02558,0.0241 0.02537,0.19125 0.486406,0.0465 0.461158,-0.1448 1.331532,0.19335 1.15221,0.0486 -0.123305,-0.0996 -0.452911,-0.22071 -0.921318,-0.20905 z m 0.302638,3.1251 -0.05381,0.006 c -0.0096,10e-4 -0.01613,0.0407 -0.01571,0.0866 l 0.01794,0.52786 c 4.25e-4,0.046 0.0085,0.0815 0.01794,0.0803 l 0.05158,-0.006 c 0.0096,-10e-4 0.01613,-0.0407 0.0156,-0.0866 l -0.0156,-0.52793 c -4.35e-4,-0.0459 -0.0085, [...]
+       id="path3395" />
+  </g>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2010-08-29T18:52:55</dc:date>
+        <dc:description>Ancla azul</dc:description>
+        <dc:source>https://openclipart.org/detail/82687/ancla-by-rastrojo</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>rastrojo</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>anchor</rdf:li>
+            <rdf:li>ancla</rdf:li>
+            <rdf:li>barco</rdf:li>
+            <rdf:li>mar</rdf:li>
+            <rdf:li>sail</rdf:li>
+            <rdf:li>sea</rdf:li>
+            <rdf:li>ship</rdf:li>
+            <rdf:li>vela</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/nautical/marine_fuel.png b/images/presets/nautical/marine_fuel.png
deleted file mode 100644
index bf580e2..0000000
Binary files a/images/presets/nautical/marine_fuel.png and /dev/null differ
diff --git a/images/presets/nautical/marine_fuel.svg b/images/presets/nautical/marine_fuel.svg
new file mode 100644
index 0000000..60cd868
--- /dev/null
+++ b/images/presets/nautical/marine_fuel.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="marine_fuel5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="44.8"
+     inkscape:cx="7.4684333"
+     inkscape:cy="8.0287656"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4135"
+       width="15.906998"
+       height="16.0005"
+       x="0"
+       y="1036.3622" />
+    <g
+       id="g4166"
+       transform="translate(-0.31250002,0)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path1897"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 6.9557006,1051.5768 6.4516284,0 0.0041,-1.0007 0.604803,0 0,-12.8396 c -3e-6,-0.2738 -0.158698,-0.5106 -0.457189,-0.5106 l -6.6229038,0 c -0.3418229,0 -0.682621,0.2463 -0.682621,0.6415 l -0.00739,12.7046 0.7023445,0 0.00722,1.0048 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path1899"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 6.2848779,1041.5921 -0.6456358,0 c -0.00419,2.6271 0.01496,7.8119 0.025902,7.9006 0.023357,0.1894 0.00923,0.3856 -0.039389,0.5643 -1.0121392,2.5498 -4.2872074,1.3787 -3.8221901,-1.1024 1.0213402,-2.461 2.4534663,-4.1263 3.1662348,-7.029 l 0.063451,2.1578 c -0.6414682,1.2482 -1.7731455,3.4405 -2.6507881,5.2729 -0.073941,1.6919 1.9386827,2.2493 2.5690163,0.4333 0.2808972,-3.1787 -0.010561,-6.6437 -0.015842,-9.9655 0.4096081,-1.2177 0.8615678,-1.3343 1.3202409,-1.2763" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path1901"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 7.5916069,1039.0369 -0.022334,3.2832 c 0,0.2642 0.2121045,0.4466 0.4578517,0.4466 l 4.2546664,0.011 c 0.258123,0 0.379682,-0.1646 0.379682,-0.3908 l 0,-3.339 c 0,-0.3228 -0.184706,-0.4188 -0.418767,-0.4188 l -4.2267482,0 c -0.2422488,0 -0.4243506,0.1447 -0.4243506,0.4076 z" />
+    </g>
+    <path
+       d="m 15.999588,1048.543 -0.2388,0.1359 -0.255856,0.1456 c -0.545829,0.3106 -1.159883,0.3106 -1.70571,0 l -0.511715,-0.2912 c -0.545827,-0.3107 -1.159882,-0.3107 -1.705709,0 l -0.511725,0.2912 c -0.545828,0.3106 -1.159883,0.3106 -1.705711,0 l -0.511713,-0.2912 c -0.270238,-0.1539 -0.560098,-0.233 -0.852855,-0.233 -0.292757,0 -0.582617,0.079 -0.852855,0.233 l -0.511713,0.2912 c -0.545828,0.3106 -1.159883,0.3106 -1.70571,0 l -0.511726,-0.2912 c -0.545828,-0.3107 -1.159882,-0.3107 -1. [...]
+       id="path6-6"
+       style="fill:#1332ff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 15.999588,1045.5793 -0.2388,0.1359 -0.255856,0.1456 c -0.545829,0.3107 -1.159883,0.3107 -1.70571,0 l -0.511715,-0.2912 c -0.545827,-0.3107 -1.159882,-0.3107 -1.705709,0 l -0.511725,0.2912 c -0.545828,0.3107 -1.159883,0.3107 -1.705711,0 l -0.511713,-0.2912 c -0.270238,-0.1538 -0.560098,-0.233 -0.852855,-0.233 -0.292757,0 -0.582617,0.079 -0.852855,0.233 l -0.511713,0.2912 c -0.545828,0.3107 -1.159883,0.3107 -1.70571,0 l -0.511726,-0.2912 c -0.545828,-0.3107 -1.159882,-0.3107 -1 [...]
+       id="path6"
+       style="fill:#1332ff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/nautical/slipway.png b/images/presets/nautical/slipway.png
deleted file mode 100644
index ab6c77c..0000000
Binary files a/images/presets/nautical/slipway.png and /dev/null differ
diff --git a/images/presets/nautical/slipway.svg b/images/presets/nautical/slipway.svg
new file mode 100644
index 0000000..b8db6fb
--- /dev/null
+++ b/images/presets/nautical/slipway.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="slipway15.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="10.327496"
+     inkscape:cy="9.1363606"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.708;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-re [...]
+       id="rect4152"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 16,1044.3197 0.45320392,1050.3192 16,1052.2192 Z"
+       id="path4138"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#41a8e2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0,1052.3622 16,0 0,-3.3233 c -1.779029,-2.0871 -3.222792,-1.8692 -6.2121761,-0.018 -1.440584,1.2787 -4.0083375,1.772 -5.7156465,-0.1378 -1.6302357,-2.3946 -3.14707531,-1.2218 -4.0721774,0 z"
+       id="path4136"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 4.0669642,1043.6521 8.9151778,-3.3348"
+       id="path4166"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 12.357139,1043.4959 0.959821,-3.4687 -3.267853,-1.5803"
+       id="path4168"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       sodipodi:nodetypes="ccc"
+       inkscape:connector-curvature="0"
+       id="path4181"
+       d="m 4.6620641,1040.2819 -0.959821,3.4687 3.267853,1.5803"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/images/presets/place/capital.svg b/images/presets/place/capital.svg
new file mode 100644
index 0000000..f57f350
--- /dev/null
+++ b/images/presets/place/capital.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#8fa7f6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/city.svg b/images/presets/place/city.svg
new file mode 100644
index 0000000..22a83c7
--- /dev/null
+++ b/images/presets/place/city.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#7748a8;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/farm.svg b/images/presets/place/farm.svg
new file mode 100644
index 0000000..42b6e70
--- /dev/null
+++ b/images/presets/place/farm.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#a7ff92;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/hamlet.svg b/images/presets/place/hamlet.svg
new file mode 100644
index 0000000..1f5fc70
--- /dev/null
+++ b/images/presets/place/hamlet.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#ffff33;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/isolated_dwelling.svg b/images/presets/place/isolated_dwelling.svg
new file mode 100644
index 0000000..e351508
--- /dev/null
+++ b/images/presets/place/isolated_dwelling.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#00ff0c;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/neighbourhood.svg b/images/presets/place/neighbourhood.svg
new file mode 100644
index 0000000..3f15f59
--- /dev/null
+++ b/images/presets/place/neighbourhood.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#ffc8a3;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/settlement/capital.png b/images/presets/place/settlement/capital.png
deleted file mode 100644
index 1463338..0000000
Binary files a/images/presets/place/settlement/capital.png and /dev/null differ
diff --git a/images/presets/place/settlement/city.png b/images/presets/place/settlement/city.png
deleted file mode 100644
index ef3df7c..0000000
Binary files a/images/presets/place/settlement/city.png and /dev/null differ
diff --git a/images/presets/place/settlement/farm.png b/images/presets/place/settlement/farm.png
deleted file mode 100644
index 42bc43f..0000000
Binary files a/images/presets/place/settlement/farm.png and /dev/null differ
diff --git a/images/presets/place/settlement/hamlet.png b/images/presets/place/settlement/hamlet.png
deleted file mode 100644
index b00bf81..0000000
Binary files a/images/presets/place/settlement/hamlet.png and /dev/null differ
diff --git a/images/presets/place/settlement/isolated_dwelling.png b/images/presets/place/settlement/isolated_dwelling.png
deleted file mode 100644
index b82acad..0000000
Binary files a/images/presets/place/settlement/isolated_dwelling.png and /dev/null differ
diff --git a/images/presets/place/settlement/neighbourhood.png b/images/presets/place/settlement/neighbourhood.png
deleted file mode 100644
index ec56eb4..0000000
Binary files a/images/presets/place/settlement/neighbourhood.png and /dev/null differ
diff --git a/images/presets/place/settlement/suburb.png b/images/presets/place/settlement/suburb.png
deleted file mode 100644
index d00442b..0000000
Binary files a/images/presets/place/settlement/suburb.png and /dev/null differ
diff --git a/images/presets/place/settlement/town.png b/images/presets/place/settlement/town.png
deleted file mode 100644
index 859eb8c..0000000
Binary files a/images/presets/place/settlement/town.png and /dev/null differ
diff --git a/images/presets/place/settlement/village.png b/images/presets/place/settlement/village.png
deleted file mode 100644
index 0fef589..0000000
Binary files a/images/presets/place/settlement/village.png and /dev/null differ
diff --git a/images/presets/place/suburb.svg b/images/presets/place/suburb.svg
new file mode 100644
index 0000000..f8909c3
--- /dev/null
+++ b/images/presets/place/suburb.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#ffc221;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/town.svg b/images/presets/place/town.svg
new file mode 100644
index 0000000..073ceb3
--- /dev/null
+++ b/images/presets/place/town.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/place/village.svg b/images/presets/place/village.svg
new file mode 100644
index 0000000..07c8102
--- /dev/null
+++ b/images/presets/place/village.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="capital12.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.5823956"
+     inkscape:cy="-7.3402775"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <path
+       style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97307134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 8.5380631,1049.6846 c -0.603283,-2.4222 1.9922899,-1.3924 3.2209819,0 0.756162,0.511 1.507072,0.3248 2.257945,0.1345 1.957005,-0.36 1.461761,-3.0218 1.379903,-3.4492 -0.277846,-0.8432 -0.22161,-1.061 -1.438908,-2.1021 -1.073374,-0.499 -2.076717,-0.1483 -2.459486,-0.4388 -0.707308,-0.3481 0.356589,-2.2339 -1.187385,-2.3689 -2.8155432,0.2884 -3.877829,0.1299 -4.0699413,-0.067 -1.060499,-0.6232 -1.1916803,-0.7814 -2.4885151,-0.1017 -1.6245177,1.2331 -1.0990479,2.7364 -1.2962578, [...]
+       id="path4145"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/power/power_source-biofuel.svg b/images/presets/power/power_source-biofuel.svg
index 6bdaf47..9102e5c 100644
--- a/images/presets/power/power_source-biofuel.svg
+++ b/images/presets/power/power_source-biofuel.svg
@@ -1,192 +1,168 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_burn.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <metadata
-     id="metadata10">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     inkscape:window-height="804"
-     inkscape:window-width="962"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     guidetolerance="10.0"
-     gridtolerance="10.0"
-     objecttolerance="10.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     showgrid="true"
-     inkscape:zoom="23.1"
-     inkscape:cx="9.5682046"
-     inkscape:cy="10"
-     inkscape:window-x="95"
-     inkscape:window-y="9"
-     inkscape:current-layer="svg2">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2383"
-       visible="true"
-       enabled="true" />
-  </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="namedview10"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="26.052568"
-     inkscape:cx="9.9125234"
-     inkscape:cy="9.2770693"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:snap-bbox="true"
-     inkscape:object-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:bbox-paths="true"
-     inkscape:bbox-nodes="true"
-     gridtolerance="30"
-     inkscape:window-width="1172"
-     inkscape:window-height="805"
-     inkscape:window-x="122"
-     inkscape:window-y="11">
-    <inkscape:grid
-       type="xygrid"
-       id="grid12"
-       visible="true"
-       enabled="true"
-       spacingx="0.5px"
-       spacingy="0.5px"
-       empspacing="2" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#00EE76;fill-opacity:1;stroke:#000000;stroke-opacity:1"
-     id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
-  <g
-     id="g2391">
-    <rect
-       id="rect2939"
-       height="8"
-       width="2"
-       y="9"
-       x="7"
-       style="fill:#000000" />
-    <path
-       id="path2941"
-       d="M 8.0000001,6.0000004 C 8.0000001,6.0000004 8.0000001,4.0000004 10,4.0000004 C 12,4.0000004 12,2.0000004 12,2.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2943"
-       height="6"
-       width="2"
-       y="11"
-       x="10"
-       style="fill:#000000" />
-    <path
-       id="path2945"
-       d="M 11,8.0000004 C 11,8.0000004 11,6.0000004 13,6.0000004 C 15,6.0000004 15,4.0000004 15,4.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2947"
-       height="1"
-       width="2"
-       y="7.0000005"
-       x="7"
-       style="fill:#000000" />
-    <rect
-       id="rect2949"
-       height="1"
-       width="2"
-       y="9"
-       x="10"
-       style="fill:#000000" />
-  </g>
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="power_source-gas.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="1018"
+     inkscape:window-width="1920"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="32"
+     inkscape:cx="6.9004192"
+     inkscape:cy="10.644037"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true" />
+  </sodipodi:namedview>
+  <sodipodi:namedview
+     id="namedview10"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="26.052568"
+     inkscape:cx="9.9125234"
+     inkscape:cy="9.2770693"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-bbox="true"
+     inkscape:object-paths="true"
+     inkscape:object-nodes="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     gridtolerance="30"
+     inkscape:window-width="1172"
+     inkscape:window-height="805"
+     inkscape:window-x="122"
+     inkscape:window-y="11">
+    <inkscape:grid
+       type="xygrid"
+       id="grid12"
+       visible="true"
+       enabled="true"
+       spacingx="0.5px"
+       spacingy="0.5px"
+       empspacing="2" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <ellipse
+     style="fill:#00EE76;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-opacity:1"
+     id="background"
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="7"
+     width="2"
+     height="6"
+     id="rect2939" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.80864745;stroke-opacity:1"
+     d="m 5.9796932,4.5406871 c 0,0 0,-1.6020611 1.6326736,-1.6020611 1.6326736,0 1.6326736,-1.6020611 1.6326736,-1.6020611"
+     id="path2941" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="8"
+     width="2"
+     height="5"
+     id="rect2943" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="5"
+     width="1.9999994"
+     height="0.99999976"
+     id="rect2947" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="6"
+     width="2.0000012"
+     height="0.99999595"
+     id="rect2949" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.69512463;stroke-opacity:1"
+     d="m 9.06003,5.2659558 c 0,0 0,-1.3571756 1.424129,-1.3571756 1.424129,0 1.424129,-1.3571757 1.424129,-1.3571757"
+     id="path2941-2" />
+</svg>
diff --git a/images/presets/power/power_source-coal.svg b/images/presets/power/power_source-coal.svg
index f900751..4aa74b3 100644
--- a/images/presets/power/power_source-coal.svg
+++ b/images/presets/power/power_source-coal.svg
@@ -1,192 +1,168 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_burn.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <metadata
-     id="metadata10">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     inkscape:window-height="804"
-     inkscape:window-width="962"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     guidetolerance="10.0"
-     gridtolerance="10.0"
-     objecttolerance="10.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     showgrid="true"
-     inkscape:zoom="23.1"
-     inkscape:cx="9.5682046"
-     inkscape:cy="10"
-     inkscape:window-x="95"
-     inkscape:window-y="9"
-     inkscape:current-layer="svg2">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2383"
-       visible="true"
-       enabled="true" />
-  </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="namedview10"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="26.052568"
-     inkscape:cx="9.9125234"
-     inkscape:cy="9.2770693"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:snap-bbox="true"
-     inkscape:object-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:bbox-paths="true"
-     inkscape:bbox-nodes="true"
-     gridtolerance="30"
-     inkscape:window-width="1172"
-     inkscape:window-height="805"
-     inkscape:window-x="122"
-     inkscape:window-y="11">
-    <inkscape:grid
-       type="xygrid"
-       id="grid12"
-       visible="true"
-       enabled="true"
-       spacingx="0.5px"
-       spacingy="0.5px"
-       empspacing="2" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#8B4513;fill-opacity:1;stroke:#000000;stroke-opacity:1"
-     id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
-  <g
-     id="g2391">
-    <rect
-       id="rect2939"
-       height="8"
-       width="2"
-       y="9"
-       x="7"
-       style="fill:#000000" />
-    <path
-       id="path2941"
-       d="M 8.0000001,6.0000004 C 8.0000001,6.0000004 8.0000001,4.0000004 10,4.0000004 C 12,4.0000004 12,2.0000004 12,2.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2943"
-       height="6"
-       width="2"
-       y="11"
-       x="10"
-       style="fill:#000000" />
-    <path
-       id="path2945"
-       d="M 11,8.0000004 C 11,8.0000004 11,6.0000004 13,6.0000004 C 15,6.0000004 15,4.0000004 15,4.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2947"
-       height="1"
-       width="2"
-       y="7.0000005"
-       x="7"
-       style="fill:#000000" />
-    <rect
-       id="rect2949"
-       height="1"
-       width="2"
-       y="9"
-       x="10"
-       style="fill:#000000" />
-  </g>
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="power_source-gas.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="1018"
+     inkscape:window-width="1920"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="32"
+     inkscape:cx="6.9004192"
+     inkscape:cy="10.644037"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true" />
+  </sodipodi:namedview>
+  <sodipodi:namedview
+     id="namedview10"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="26.052568"
+     inkscape:cx="9.9125234"
+     inkscape:cy="9.2770693"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-bbox="true"
+     inkscape:object-paths="true"
+     inkscape:object-nodes="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     gridtolerance="30"
+     inkscape:window-width="1172"
+     inkscape:window-height="805"
+     inkscape:window-x="122"
+     inkscape:window-y="11">
+    <inkscape:grid
+       type="xygrid"
+       id="grid12"
+       visible="true"
+       enabled="true"
+       spacingx="0.5px"
+       spacingy="0.5px"
+       empspacing="2" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <ellipse
+     style="fill:#8B4513;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-opacity:1"
+     id="background"
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="7"
+     width="2"
+     height="6"
+     id="rect2939" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.80864745;stroke-opacity:1"
+     d="m 5.9796932,4.5406871 c 0,0 0,-1.6020611 1.6326736,-1.6020611 1.6326736,0 1.6326736,-1.6020611 1.6326736,-1.6020611"
+     id="path2941" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="8"
+     width="2"
+     height="5"
+     id="rect2943" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="5"
+     width="1.9999994"
+     height="0.99999976"
+     id="rect2947" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="6"
+     width="2.0000012"
+     height="0.99999595"
+     id="rect2949" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.69512463;stroke-opacity:1"
+     d="m 9.06003,5.2659558 c 0,0 0,-1.3571756 1.424129,-1.3571756 1.424129,0 1.424129,-1.3571757 1.424129,-1.3571757"
+     id="path2941-2" />
+</svg>
diff --git a/images/presets/power/power_source-gas.svg b/images/presets/power/power_source-gas.svg
index 5b42571..30319db 100644
--- a/images/presets/power/power_source-gas.svg
+++ b/images/presets/power/power_source-gas.svg
@@ -1,192 +1,168 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_burn.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <metadata
-     id="metadata10">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     inkscape:window-height="804"
-     inkscape:window-width="962"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     guidetolerance="10.0"
-     gridtolerance="10.0"
-     objecttolerance="10.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     showgrid="true"
-     inkscape:zoom="23.1"
-     inkscape:cx="9.5682046"
-     inkscape:cy="10"
-     inkscape:window-x="95"
-     inkscape:window-y="9"
-     inkscape:current-layer="svg2">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2383"
-       visible="true"
-       enabled="true" />
-  </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="namedview10"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="26.052568"
-     inkscape:cx="9.9125234"
-     inkscape:cy="9.2770693"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:snap-bbox="true"
-     inkscape:object-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:bbox-paths="true"
-     inkscape:bbox-nodes="true"
-     gridtolerance="30"
-     inkscape:window-width="1172"
-     inkscape:window-height="805"
-     inkscape:window-x="122"
-     inkscape:window-y="11">
-    <inkscape:grid
-       type="xygrid"
-       id="grid12"
-       visible="true"
-       enabled="true"
-       spacingx="0.5px"
-       spacingy="0.5px"
-       empspacing="2" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-opacity:1"
-     id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
-  <g
-     id="g2391">
-    <rect
-       id="rect2939"
-       height="8"
-       width="2"
-       y="9"
-       x="7"
-       style="fill:#000000" />
-    <path
-       id="path2941"
-       d="M 8.0000001,6.0000004 C 8.0000001,6.0000004 8.0000001,4.0000004 10,4.0000004 C 12,4.0000004 12,2.0000004 12,2.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2943"
-       height="6"
-       width="2"
-       y="11"
-       x="10"
-       style="fill:#000000" />
-    <path
-       id="path2945"
-       d="M 11,8.0000004 C 11,8.0000004 11,6.0000004 13,6.0000004 C 15,6.0000004 15,4.0000004 15,4.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2947"
-       height="1"
-       width="2"
-       y="7.0000005"
-       x="7"
-       style="fill:#000000" />
-    <rect
-       id="rect2949"
-       height="1"
-       width="2"
-       y="9"
-       x="10"
-       style="fill:#000000" />
-  </g>
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="power_source-gas.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="1018"
+     inkscape:window-width="1920"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="32"
+     inkscape:cx="6.9004192"
+     inkscape:cy="10.644037"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true" />
+  </sodipodi:namedview>
+  <sodipodi:namedview
+     id="namedview10"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="26.052568"
+     inkscape:cx="9.9125234"
+     inkscape:cy="9.2770693"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-bbox="true"
+     inkscape:object-paths="true"
+     inkscape:object-nodes="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     gridtolerance="30"
+     inkscape:window-width="1172"
+     inkscape:window-height="805"
+     inkscape:window-x="122"
+     inkscape:window-y="11">
+    <inkscape:grid
+       type="xygrid"
+       id="grid12"
+       visible="true"
+       enabled="true"
+       spacingx="0.5px"
+       spacingy="0.5px"
+       empspacing="2" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <ellipse
+     style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-opacity:1"
+     id="background"
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="7"
+     width="2"
+     height="6"
+     id="rect2939" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.80864745;stroke-opacity:1"
+     d="m 5.9796932,4.5406871 c 0,0 0,-1.6020611 1.6326736,-1.6020611 1.6326736,0 1.6326736,-1.6020611 1.6326736,-1.6020611"
+     id="path2941" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="8"
+     width="2"
+     height="5"
+     id="rect2943" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="5"
+     width="1.9999994"
+     height="0.99999976"
+     id="rect2947" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="6"
+     width="2.0000012"
+     height="0.99999595"
+     id="rect2949" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.69512463;stroke-opacity:1"
+     d="m 9.06003,5.2659558 c 0,0 0,-1.3571756 1.424129,-1.3571756 1.424129,0 1.424129,-1.3571757 1.424129,-1.3571757"
+     id="path2941-2" />
+</svg>
diff --git a/images/presets/power/power_source-geothermal.svg b/images/presets/power/power_source-geothermal.svg
index bb17730..ec73b3c 100644
--- a/images/presets/power/power_source-geothermal.svg
+++ b/images/presets/power/power_source-geothermal.svg
@@ -9,14 +9,16 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
+   width="16"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.48.5 r10040"
+   inkscape:version="0.91 r13725"
    version="1.0"
-   sodipodi:docname="power_source-water.svg"
+   sodipodi:docname="power_source-geothermal2.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs14" />
   <metadata
      id="metadata10">
     <rdf:RDF>
@@ -53,9 +55,9 @@
      pagecolor="#ffffff"
      id="base"
      showgrid="true"
-     inkscape:zoom="11.8"
-     inkscape:cx="10"
-     inkscape:cy="10"
+     inkscape:zoom="33.37544"
+     inkscape:cx="0.88431149"
+     inkscape:cy="7.3901301"
      inkscape:window-x="-8"
      inkscape:window-y="-8"
      inkscape:window-maximized="1"
@@ -66,30 +68,6 @@
        visible="true"
        enabled="true" />
   </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
   <sodipodi:namedview
      id="namedview10"
      pagecolor="#ffffff"
@@ -144,30 +122,31 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#ff4b00;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+  <ellipse
+     style="fill:#ff4b00;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
      id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
   <g
      id="g2973"
-     transform="translate(2.6475,5.6455)"
-     style="stroke:#000000;stroke-opacity:1">
+     transform="matrix(0.70956312,0,0,0.80502669,2.8413415,4.4945337)"
+     style="stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
     <path
        id="path2959"
-       d="M 0.354,3.355 C 1.354,4.355 4.353,6.354 7.352,4.355 C 10.352,2.355 13.352,4.355 14.351,5.355"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
+       d="m 0.354,3.355 c 1,1 3.999,2.999 6.998,1 3,-2 6,0 6.999,1"
+       style="fill:none;stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
     <path
        id="path2961"
-       d="M 0.354,0.355 C 1.354,1.356 4.353,3.355 7.352,1.356 C 10.352,-0.644 13.352,1.356 14.351,2.355"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
+       d="m 0.354,0.355 c 1,1.001 3.999,3 6.998,1.001 3,-2 6,0 6.999,0.999"
+       style="fill:none;stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
     <path
        id="path2963"
-       d="M 0.354,6.354 C 1.354,7.355 4.353,9.353 7.352,7.355 C 10.352,5.355 13.352,7.355 14.351,8.354"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
+       d="m 0.354,6.354 c 1,1.001 3.999,2.999 6.998,1.001 3,-2 6,0 6.999,0.999"
+       style="fill:none;stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
   </g>
 </svg>
diff --git a/images/presets/power/power_source-nuclear.svg b/images/presets/power/power_source-nuclear.svg
index 102c9f2..6bd65eb 100644
--- a/images/presets/power/power_source-nuclear.svg
+++ b/images/presets/power/power_source-nuclear.svg
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://creativecommons.org/ns#"
@@ -8,14 +9,16 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
+   width="16"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.46"
+   inkscape:version="0.91 r13725"
    version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_nuclear.svg"
+   sodipodi:docname="power_source-nuclear.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs15" />
   <metadata
      id="metadata10">
     <rdf:RDF>
@@ -26,6 +29,7 @@
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
         <cc:license
            rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
       </cc:Work>
       <cc:License
          rdf:about="http://web.resource.org/cc/PublicDomain">
@@ -39,8 +43,8 @@
     </rdf:RDF>
   </metadata>
   <sodipodi:namedview
-     inkscape:window-height="480"
-     inkscape:window-width="640"
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
      inkscape:pageshadow="2"
      inkscape:pageopacity="0.0"
      guidetolerance="10.0"
@@ -50,37 +54,20 @@
      bordercolor="#666666"
      pagecolor="#ffffff"
      id="base"
-     showgrid="true">
+     showgrid="true"
+     inkscape:zoom="33.37544"
+     inkscape:cx="6.6382163"
+     inkscape:cy="6.2111108"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
     <inkscape:grid
        type="xygrid"
        id="grid2383"
        visible="true"
        enabled="true" />
   </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
   <sodipodi:namedview
      id="namedview10"
      pagecolor="#ffffff"
@@ -135,38 +122,37 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+  <ellipse
+     style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-opacity:1"
      id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
   <g
      id="g2397"
-     style="fill:#000000">
+     style="fill:#000000"
+     transform="scale(0.8,0.80000003)">
     <path
        id="path4369"
-       d="M 14,3.074 L 11.5,7.404 C 12.396,7.922 13.001,8.889 13.001,10 L 18,10 C 18,7.041 16.39,4.457 14,3.074 z"
-       style="fill:#000000" />
+       d="m 14,3.074 -2.5,4.33 C 12.396,7.922 13.001,8.889 13.001,10 L 18,10 C 18,7.041 16.39,4.457 14,3.074 Z"
+       style="fill:#000000"
+       inkscape:connector-curvature="0" />
     <path
        id="path4371"
-       d="M 2.006,10 L 7.005,10 C 7.005,8.964 7.54,7.957 8.501,7.402 L 6.002,3.072 C 3.441,4.552 2.008,7.238 2.006,10 z"
-       style="fill:#000000" />
+       d="m 2.006,10 4.999,0 C 7.005,8.964 7.54,7.957 8.501,7.402 L 6.002,3.072 C 3.441,4.552 2.008,7.238 2.006,10 Z"
+       style="fill:#000000"
+       inkscape:connector-curvature="0" />
     <path
        id="path4373"
-       d="M 14,16.925 L 11.5,12.596 C 10.603,13.112 9.463,13.152 8.502,12.597 L 6.003,16.925 C 8.565,18.406 11.607,18.302 14,16.925 z"
-       style="fill:#000000" />
-    <path
-       d="M 12,10 A 2,2 0 1 1 8,10 A 2,2 0 1 1 12,10 z"
-       sodipodi:ry="2"
-       sodipodi:rx="2"
-       sodipodi:cy="10"
-       sodipodi:cx="10"
+       d="m 14,16.925 -2.5,-4.329 c -0.897,0.516 -2.037,0.556 -2.998,10e-4 l -2.499,4.328 c 2.562,1.481 5.604,1.377 7.997,0 z"
+       style="fill:#000000"
+       inkscape:connector-curvature="0" />
+    <circle
        id="path4395"
        style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
-       sodipodi:type="arc" />
+       cx="10"
+       cy="10"
+       r="2" />
   </g>
 </svg>
diff --git a/images/presets/power/power_source-oil.svg b/images/presets/power/power_source-oil.svg
index daa78d0..1ea189d 100644
--- a/images/presets/power/power_source-oil.svg
+++ b/images/presets/power/power_source-oil.svg
@@ -1,192 +1,168 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_burn.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <metadata
-     id="metadata10">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     inkscape:window-height="804"
-     inkscape:window-width="962"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     guidetolerance="10.0"
-     gridtolerance="10.0"
-     objecttolerance="10.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     showgrid="true"
-     inkscape:zoom="23.1"
-     inkscape:cx="9.5682046"
-     inkscape:cy="10"
-     inkscape:window-x="95"
-     inkscape:window-y="9"
-     inkscape:current-layer="svg2">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2383"
-       visible="true"
-       enabled="true" />
-  </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="namedview10"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="26.052568"
-     inkscape:cx="9.9125234"
-     inkscape:cy="9.2770693"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:snap-bbox="true"
-     inkscape:object-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:bbox-paths="true"
-     inkscape:bbox-nodes="true"
-     gridtolerance="30"
-     inkscape:window-width="1172"
-     inkscape:window-height="805"
-     inkscape:window-x="122"
-     inkscape:window-y="11">
-    <inkscape:grid
-       type="xygrid"
-       id="grid12"
-       visible="true"
-       enabled="true"
-       spacingx="0.5px"
-       spacingy="0.5px"
-       empspacing="2" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#708090;fill-opacity:1;stroke:#000000;stroke-opacity:1"
-     id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
-  <g
-     id="g2391">
-    <rect
-       id="rect2939"
-       height="8"
-       width="2"
-       y="9"
-       x="7"
-       style="fill:#000000" />
-    <path
-       id="path2941"
-       d="M 8.0000001,6.0000004 C 8.0000001,6.0000004 8.0000001,4.0000004 10,4.0000004 C 12,4.0000004 12,2.0000004 12,2.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2943"
-       height="6"
-       width="2"
-       y="11"
-       x="10"
-       style="fill:#000000" />
-    <path
-       id="path2945"
-       d="M 11,8.0000004 C 11,8.0000004 11,6.0000004 13,6.0000004 C 15,6.0000004 15,4.0000004 15,4.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2947"
-       height="1"
-       width="2"
-       y="7.0000005"
-       x="7"
-       style="fill:#000000" />
-    <rect
-       id="rect2949"
-       height="1"
-       width="2"
-       y="9"
-       x="10"
-       style="fill:#000000" />
-  </g>
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="power_source-gas.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="1018"
+     inkscape:window-width="1920"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="32"
+     inkscape:cx="6.9004192"
+     inkscape:cy="10.644037"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true" />
+  </sodipodi:namedview>
+  <sodipodi:namedview
+     id="namedview10"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="26.052568"
+     inkscape:cx="9.9125234"
+     inkscape:cy="9.2770693"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-bbox="true"
+     inkscape:object-paths="true"
+     inkscape:object-nodes="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     gridtolerance="30"
+     inkscape:window-width="1172"
+     inkscape:window-height="805"
+     inkscape:window-x="122"
+     inkscape:window-y="11">
+    <inkscape:grid
+       type="xygrid"
+       id="grid12"
+       visible="true"
+       enabled="true"
+       spacingx="0.5px"
+       spacingy="0.5px"
+       empspacing="2" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <ellipse
+     style="fill:#708090;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-opacity:1"
+     id="background"
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="7"
+     width="2"
+     height="6"
+     id="rect2939" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.80864745;stroke-opacity:1"
+     d="m 5.9796932,4.5406871 c 0,0 0,-1.6020611 1.6326736,-1.6020611 1.6326736,0 1.6326736,-1.6020611 1.6326736,-1.6020611"
+     id="path2941" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="8"
+     width="2"
+     height="5"
+     id="rect2943" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="5"
+     width="1.9999994"
+     height="0.99999976"
+     id="rect2947" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="6"
+     width="2.0000012"
+     height="0.99999595"
+     id="rect2949" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.69512463;stroke-opacity:1"
+     d="m 9.06003,5.2659558 c 0,0 0,-1.3571756 1.424129,-1.3571756 1.424129,0 1.424129,-1.3571757 1.424129,-1.3571757"
+     id="path2941-2" />
+</svg>
diff --git a/images/presets/power/power_source-sun.svg b/images/presets/power/power_source-sun.svg
index 03f10cd..2034f10 100644
--- a/images/presets/power/power_source-sun.svg
+++ b/images/presets/power/power_source-sun.svg
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://creativecommons.org/ns#"
@@ -8,14 +9,16 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
+   width="16"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.46"
+   inkscape:version="0.91 r13725"
    version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_sun.svg"
+   sodipodi:docname="power_source-sun5.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs18" />
   <metadata
      id="metadata10">
     <rdf:RDF>
@@ -26,6 +29,7 @@
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
         <cc:license
            rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
       </cc:Work>
       <cc:License
          rdf:about="http://web.resource.org/cc/PublicDomain">
@@ -39,8 +43,8 @@
     </rdf:RDF>
   </metadata>
   <sodipodi:namedview
-     inkscape:window-height="480"
-     inkscape:window-width="640"
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
      inkscape:pageshadow="2"
      inkscape:pageopacity="0.0"
      guidetolerance="10.0"
@@ -50,37 +54,20 @@
      bordercolor="#666666"
      pagecolor="#ffffff"
      id="base"
-     showgrid="true">
+     showgrid="true"
+     inkscape:zoom="23.6"
+     inkscape:cx="8.6883174"
+     inkscape:cy="3.5715644"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
     <inkscape:grid
        type="xygrid"
        id="grid2383"
        visible="true"
        enabled="true" />
   </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
   <sodipodi:namedview
      id="namedview10"
      pagecolor="#ffffff"
@@ -135,80 +122,57 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+  <ellipse
+     style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.74915254;stroke-opacity:1"
      id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
-  <rect
-     transform="matrix(-0.5,-0.8660254,0.8660254,-0.5,0,0)"
-     y="3.1602542"
-     x="-18.660254"
-     height="1"
-     width="10"
-     id="rect3797"
-     style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1" />
+     cx="7.4915257"
+     cy="8.5084743"
+     rx="7.1169496"
+     ry="7.1169491" />
   <rect
-     y="9.5"
-     x="5"
-     height="1"
-     width="10"
-     id="rect3787"
-     style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1" />
-  <rect
-     transform="matrix(0.8660254,-0.5,0.5,0.8660254,0,0)"
-     y="13.160254"
-     x="-3.839746"
-     height="1"
-     width="15"
-     id="rect3789"
-     style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1" />
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4146"
+     width="1"
+     height="11"
+     x="-1.2071068"
+     y="5.8137083"
+     transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+     ry="0.5" />
   <rect
-     style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
-     id="rect3791"
-     width="10"
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4148"
+     width="11"
      height="1"
-     x="-8.6602535"
-     y="13.160254"
-     transform="matrix(0.5,-0.8660254,0.8660254,0.5,0,0)" />
+     x="-6.2071066"
+     y="10.813708"
+     transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+     ry="0.5" />
   <rect
-     style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
-     id="rect3793"
-     width="15"
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4154"
+     width="11"
      height="1"
-     x="-17.5"
-     y="9.5"
-     transform="matrix(0,-1,1,0,0,0)" />
+     x="2"
+     y="8"
+     ry="0.5" />
   <rect
-     transform="matrix(-0.8660254,-0.5,0.5,-0.8660254,0,0)"
-     y="-4.1602535"
-     x="-21.160254"
-     height="1"
-     width="15"
-     id="rect3795"
-     style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1" />
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4156"
+     width="0.99999952"
+     height="11.000003"
+     x="7"
+     y="3"
+     ry="0.49999976" />
+  <circle
+     id="circle4170"
+     cy="8.5"
+     cx="7.5"
+     style="fill:#000000;stroke:none;stroke-width:0.99980003"
+     r="2.5" />
   <circle
-     transform="translate(6.9999695e-3,6.3999653e-2)"
-     style="fill:#000000;stroke:none;stroke-width:0.99980002999999995"
-     sodipodi:ry="2.9990001"
-     sodipodi:rx="2.9990001"
-     sodipodi:cy="9.9350004"
-     sodipodi:cx="9.993"
-     cx="9.993"
-     cy="9.9350004"
-     r="2.9990001"
-     id="circle2969" />
-  <path
-     d="M 12,10 A 2,2 0 1 1 8,10 A 2,2 0 1 1 12,10 z"
-     sodipodi:ry="2"
-     sodipodi:rx="2"
-     sodipodi:cy="10"
-     sodipodi:cx="10"
-     id="path3777"
-     style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"
-     sodipodi:type="arc" />
+     cy="8.5"
+     cx="7.5"
+     style="fill:#ffff00;fill-opacity:1;stroke:none;stroke-opacity:1"
+     id="circle4172"
+     r="1.5" />
 </svg>
diff --git a/images/presets/power/power_source-waste.svg b/images/presets/power/power_source-waste.svg
index c189988..31d165e 100644
--- a/images/presets/power/power_source-waste.svg
+++ b/images/presets/power/power_source-waste.svg
@@ -1,192 +1,168 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_burn.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <metadata
-     id="metadata10">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     inkscape:window-height="804"
-     inkscape:window-width="962"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     guidetolerance="10.0"
-     gridtolerance="10.0"
-     objecttolerance="10.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     showgrid="true"
-     inkscape:zoom="23.1"
-     inkscape:cx="9.5682046"
-     inkscape:cy="10"
-     inkscape:window-x="95"
-     inkscape:window-y="9"
-     inkscape:current-layer="svg2">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2383"
-       visible="true"
-       enabled="true" />
-  </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="namedview10"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="26.052568"
-     inkscape:cx="9.9125234"
-     inkscape:cy="9.2770693"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:snap-bbox="true"
-     inkscape:object-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:bbox-paths="true"
-     inkscape:bbox-nodes="true"
-     gridtolerance="30"
-     inkscape:window-width="1172"
-     inkscape:window-height="805"
-     inkscape:window-x="122"
-     inkscape:window-y="11">
-    <inkscape:grid
-       type="xygrid"
-       id="grid12"
-       visible="true"
-       enabled="true"
-       spacingx="0.5px"
-       spacingy="0.5px"
-       empspacing="2" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#EE82EE;fill-opacity:1;stroke:#000000;stroke-opacity:1"
-     id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
-  <g
-     id="g2391">
-    <rect
-       id="rect2939"
-       height="8"
-       width="2"
-       y="9"
-       x="7"
-       style="fill:#000000" />
-    <path
-       id="path2941"
-       d="M 8.0000001,6.0000004 C 8.0000001,6.0000004 8.0000001,4.0000004 10,4.0000004 C 12,4.0000004 12,2.0000004 12,2.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2943"
-       height="6"
-       width="2"
-       y="11"
-       x="10"
-       style="fill:#000000" />
-    <path
-       id="path2945"
-       d="M 11,8.0000004 C 11,8.0000004 11,6.0000004 13,6.0000004 C 15,6.0000004 15,4.0000004 15,4.0000004"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
-    <rect
-       id="rect2947"
-       height="1"
-       width="2"
-       y="7.0000005"
-       x="7"
-       style="fill:#000000" />
-    <rect
-       id="rect2949"
-       height="1"
-       width="2"
-       y="9"
-       x="10"
-       style="fill:#000000" />
-  </g>
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   version="1.0"
+   sodipodi:docname="power_source-gas.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="1018"
+     inkscape:window-width="1920"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="32"
+     inkscape:cx="6.9004192"
+     inkscape:cy="10.644037"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2383"
+       visible="true"
+       enabled="true" />
+  </sodipodi:namedview>
+  <sodipodi:namedview
+     id="namedview10"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="26.052568"
+     inkscape:cx="9.9125234"
+     inkscape:cy="9.2770693"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-bbox="true"
+     inkscape:object-paths="true"
+     inkscape:object-nodes="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     gridtolerance="30"
+     inkscape:window-width="1172"
+     inkscape:window-height="805"
+     inkscape:window-x="122"
+     inkscape:window-y="11">
+    <inkscape:grid
+       type="xygrid"
+       id="grid12"
+       visible="true"
+       enabled="true"
+       spacingx="0.5px"
+       spacingy="0.5px"
+       empspacing="2" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <ellipse
+     style="fill:#EE82EE;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-opacity:1"
+     id="background"
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="7"
+     width="2"
+     height="6"
+     id="rect2939" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.80864745;stroke-opacity:1"
+     d="m 5.9796932,4.5406871 c 0,0 0,-1.6020611 1.6326736,-1.6020611 1.6326736,0 1.6326736,-1.6020611 1.6326736,-1.6020611"
+     id="path2941" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="8"
+     width="2"
+     height="5"
+     id="rect2943" />
+  <rect
+     style="fill:#000000"
+     x="5"
+     y="5"
+     width="1.9999994"
+     height="0.99999976"
+     id="rect2947" />
+  <rect
+     style="fill:#000000"
+     x="8"
+     y="6"
+     width="2.0000012"
+     height="0.99999595"
+     id="rect2949" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000;stroke-width:0.69512463;stroke-opacity:1"
+     d="m 9.06003,5.2659558 c 0,0 0,-1.3571756 1.424129,-1.3571756 1.424129,0 1.424129,-1.3571757 1.424129,-1.3571757"
+     id="path2941-2" />
+</svg>
diff --git a/images/presets/power/power_source-water.svg b/images/presets/power/power_source-water.svg
index b17dfc4..e4cc159 100644
--- a/images/presets/power/power_source-water.svg
+++ b/images/presets/power/power_source-water.svg
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://creativecommons.org/ns#"
@@ -8,14 +9,16 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
+   width="16"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.46"
+   inkscape:version="0.91 r13725"
    version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_water.svg"
+   sodipodi:docname="power_source-geothermal2.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs14" />
   <metadata
      id="metadata10">
     <rdf:RDF>
@@ -26,6 +29,7 @@
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
         <cc:license
            rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
       </cc:Work>
       <cc:License
          rdf:about="http://web.resource.org/cc/PublicDomain">
@@ -39,8 +43,8 @@
     </rdf:RDF>
   </metadata>
   <sodipodi:namedview
-     inkscape:window-height="480"
-     inkscape:window-width="640"
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
      inkscape:pageshadow="2"
      inkscape:pageopacity="0.0"
      guidetolerance="10.0"
@@ -50,37 +54,20 @@
      bordercolor="#666666"
      pagecolor="#ffffff"
      id="base"
-     showgrid="true">
+     showgrid="true"
+     inkscape:zoom="33.37544"
+     inkscape:cx="0.88431149"
+     inkscape:cy="7.3901301"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
     <inkscape:grid
        type="xygrid"
        id="grid2383"
        visible="true"
        enabled="true" />
   </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
   <sodipodi:namedview
      id="namedview10"
      pagecolor="#ffffff"
@@ -135,30 +122,31 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+  <ellipse
+     style="fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
      id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
   <g
      id="g2973"
-     transform="translate(2.6475,5.6455)"
-     style="stroke:#000000;stroke-opacity:1">
+     transform="matrix(0.70956312,0,0,0.80502669,2.8413415,4.4945337)"
+     style="stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
     <path
        id="path2959"
-       d="M 0.354,3.355 C 1.354,4.355 4.353,6.354 7.352,4.355 C 10.352,2.355 13.352,4.355 14.351,5.355"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
+       d="m 0.354,3.355 c 1,1 3.999,2.999 6.998,1 3,-2 6,0 6.999,1"
+       style="fill:none;stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
     <path
        id="path2961"
-       d="M 0.354,0.355 C 1.354,1.356 4.353,3.355 7.352,1.356 C 10.352,-0.644 13.352,1.356 14.351,2.355"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
+       d="m 0.354,0.355 c 1,1.001 3.999,3 6.998,1.001 3,-2 6,0 6.999,0.999"
+       style="fill:none;stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
     <path
        id="path2963"
-       d="M 0.354,6.354 C 1.354,7.355 4.353,9.353 7.352,7.355 C 10.352,5.355 13.352,7.355 14.351,8.354"
-       style="fill:none;stroke:#000000;stroke-opacity:1" />
+       d="m 0.354,6.354 c 1,1.001 3.999,2.999 6.998,1.001 3,-2 6,0 6.999,0.999"
+       style="fill:none;stroke:#000000;stroke-width:1.32312033;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
   </g>
 </svg>
diff --git a/images/presets/power/power_source-wind.svg b/images/presets/power/power_source-wind.svg
index d5e882b..b4adcb9 100644
--- a/images/presets/power/power_source-wind.svg
+++ b/images/presets/power/power_source-wind.svg
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://creativecommons.org/ns#"
@@ -8,14 +9,16 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="20"
-   height="20"
+   width="16"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.46"
+   inkscape:version="0.91 r13725"
    version="1.0"
-   sodipodi:docname="2020_stBN_powergensource_wind.svg"
+   sodipodi:docname="power_source-wind3.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs15" />
   <metadata
      id="metadata10">
     <rdf:RDF>
@@ -26,6 +29,7 @@
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
         <cc:license
            rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:title></dc:title>
       </cc:Work>
       <cc:License
          rdf:about="http://web.resource.org/cc/PublicDomain">
@@ -39,8 +43,8 @@
     </rdf:RDF>
   </metadata>
   <sodipodi:namedview
-     inkscape:window-height="480"
-     inkscape:window-width="640"
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
      inkscape:pageshadow="2"
      inkscape:pageopacity="0.0"
      guidetolerance="10.0"
@@ -50,37 +54,20 @@
      bordercolor="#666666"
      pagecolor="#ffffff"
      id="base"
-     showgrid="true">
+     showgrid="true"
+     inkscape:zoom="47.2"
+     inkscape:cx="8.3885021"
+     inkscape:cy="7.9297332"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
     <inkscape:grid
        type="xygrid"
        id="grid2383"
        visible="true"
        enabled="true" />
   </sodipodi:namedview>
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2461"
-       inkscape:persp3d-origin="10 : 6.6666667 : 1"
-       inkscape:vp_z="20 : 10 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 10 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2466"
-       inkscape:persp3d-origin="400 : 200 : 1"
-       inkscape:vp_z="800 : 300 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 300 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
   <sodipodi:namedview
      id="namedview10"
      pagecolor="#ffffff"
@@ -135,25 +122,25 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <path
-     sodipodi:type="arc"
-     style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+  <ellipse
+     style="fill:#94d2ff;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-opacity:1"
      id="background"
-     sodipodi:cx="10"
-     sodipodi:cy="10"
-     sodipodi:rx="9.5"
-     sodipodi:ry="9.5"
-     d="M 19.5,10 A 9.5,9.5 0 1 1 0.5,10 A 9.5,9.5 0 1 1 19.5,10 z" />
+     cx="8"
+     cy="8"
+     rx="7.6000004"
+     ry="7.5999999" />
   <g
      id="g2391"
-     style="fill:#000000">
+     style="fill:#000000"
+     transform="scale(0.8,0.80000003)">
     <rect
        y="2"
        x="9"
        height="7"
        width="2"
        id="rect3840"
-       style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1" />
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
+       ry="1" />
     <rect
        transform="matrix(-0.5,0.8660254,-0.8660254,-0.5,0,0)"
        style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
@@ -161,7 +148,8 @@
        width="2"
        height="7"
        x="2.2942286"
-       y="-21.026279" />
+       y="-21.026279"
+       ry="1" />
     <rect
        y="-3.7057714"
        x="-14.294229"
@@ -169,10 +157,12 @@
        width="2"
        id="rect3844"
        style="fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
-       transform="matrix(-0.5,-0.8660254,0.8660254,-0.5,0,0)" />
+       transform="matrix(-0.5,-0.8660254,0.8660254,-0.5,0,0)"
+       ry="1" />
     <path
        id="path3846"
-       d="M 9,18 L 11,18 L 11,12 L 10,11.5 L 9,12 L 9,18 z"
-       style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+       d="m 9,18 2,0 0,-6 -1,-0.5 -1,0.5 0,6 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
   </g>
 </svg>
diff --git a/images/presets/religion/wayside_cross.svg b/images/presets/religion/wayside_cross.svg
index f0f49a6..0f1e298 100644
--- a/images/presets/religion/wayside_cross.svg
+++ b/images/presets/religion/wayside_cross.svg
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://creativecommons.org/ns#"
@@ -8,13 +9,13 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="130"
+   width="10"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.46"
+   inkscape:version="0.91 r13725"
    version="1.0"
-   sodipodi:docname="wayside_cross.svg"
+   sodipodi:docname="wayside_cross2.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape"
    inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.map-icons\svg\religion\wayside_cross.png"
    inkscape:export-xdpi="11.076923"
@@ -36,16 +37,27 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="0.35"
-     inkscape:cx="-537.14286"
-     inkscape:cy="520"
+     inkscape:zoom="12.902778"
+     inkscape:cx="-16.035609"
+     inkscape:cy="16.658079"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
-     showgrid="false"
+     showgrid="true"
      inkscape:window-width="1400"
      inkscape:window-height="964"
      inkscape:window-x="-4"
-     inkscape:window-y="-4" />
+     inkscape:window-y="-4"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137"
+       originx="0"
+       originy="-1.9087982e-005" />
+  </sodipodi:namedview>
   <metadata
      id="metadata7">
     <rdf:RDF>
@@ -55,10 +67,11 @@
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
         <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title></dc:title>
       </cc:Work>
       <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
         <cc:permits
            rdf:resource="http://creativecommons.org/ns#Reproduction" />
         <cc:permits
@@ -72,28 +85,27 @@
      inkscape:label="Ebene 1"
      inkscape:groupmode="layer"
      id="layer1"
-     transform="translate(-325,-438.79074)">
+     transform="translate(-325,-552.79071)">
     <rect
-       style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:12.27957249000000000;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:12.27957249;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect2385"
-       width="80.577568"
-       height="17.720427"
-       x="336.85406"
-       y="476.3591" />
+       width="10"
+       height="2.0000186"
+       x="325"
+       y="556.79071" />
     <rect
        style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect2387"
-       width="20"
-       height="111.42857"
-       x="367.14288"
-       y="452.36218" />
+       width="1.9999183"
+       height="13.999911"
+       x="329"
+       y="553.79071" />
     <rect
        style="fill:#666666;fill-opacity:1;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect3151"
-       width="45.714287"
-       height="28.571428"
-       x="28.571428"
-       y="112.85714"
-       transform="translate(325,438.79074)" />
+       width="6"
+       height="2.0000186"
+       x="327"
+       y="566.79071" />
   </g>
 </svg>
diff --git a/images/presets/service/arts_centre.png b/images/presets/service/arts_centre.png
deleted file mode 100644
index b9d767d..0000000
Binary files a/images/presets/service/arts_centre.png and /dev/null differ
diff --git a/images/presets/service/community_centre.png b/images/presets/service/community_centre.png
deleted file mode 100644
index 5a39cf1..0000000
Binary files a/images/presets/service/community_centre.png and /dev/null differ
diff --git a/images/presets/service/community_centre.svg b/images/presets/service/community_centre.svg
new file mode 100644
index 0000000..38604d1
--- /dev/null
+++ b/images/presets/service/community_centre.svg
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg3361"
+   sodipodi:docname="Community-circle11.svg"
+   viewBox="0 0 16 16"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="16"
+   height="16">
+  <defs
+     id="defs25" />
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:window-maximized="1"
+     inkscape:zoom="69.12"
+     inkscape:window-x="-8"
+     showgrid="true"
+     borderopacity="1.0"
+     inkscape:current-layer="g3568"
+     inkscape:cx="6.8373839"
+     inkscape:cy="10.619744"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4181" />
+  </sodipodi:namedview>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(137.98,-958.53)">
+    <g
+       id="g3568"
+       transform="translate(-24.511,166.98)">
+      <ellipse
+         id="path3627"
+         style="color:#000000;fill:#d60000;fill-opacity:1"
+         transform="matrix(0.99983132,-0.01836646,0.01981285,0.99980371,0,0)"
+         cx="-121.06232"
+         cy="791.21387"
+         rx="1.6434149"
+         ry="1.5823138" />
+      <path
+         id="path3629"
+         style="color:#000000;fill:#d60000;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -105.43856,795.26271 c -2.19167,0.0403 -3.9631,1.67227 -4.1478,3.72898 l 1.03676,0.006 c 0.18903,-1.62698 1.35998,-2.82424 3.10611,-2.85635 1.74606,-0.0321 3.0492,1.09179 3.3027,2.7106 l 0.99583,-0.0149 c -0.26618,-2.04842 -2.10167,-3.61424 -4.29332,-3.57383 z"
+         sodipodi:nodetypes="cccscccc" />
+      <path
+         id="path3631"
+         sodipodi:nodetypes="czzszzcc"
+         style="color:#000000;fill:#d60000;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -105.42783,795.21395 c -1.00563,0.0321 -1.77626,3.95012 -1.75861,5.49813 0.0177,1.54798 0.22478,0.8399 0.43446,0.27334 0.2097,-0.56658 0.59419,-2.18691 1.36944,-2.21163 0.77506,-0.0247 1.32964,1.5408 1.55259,2.09473 0.22294,0.5539 0.30244,1.27525 0.28481,-0.27259 -0.0176,-1.54784 -0.87708,-5.414 -1.88271,-5.382 z" />
+      <ellipse
+         id="path3627-9-0"
+         style="color:#000000;fill:#f89000;fill-opacity:1"
+         transform="matrix(-0.83436039,-0.55121931,-0.01404013,0.99990143,0,0)"
+         ry="1.7166464"
+         rx="1.5140436"
+         cy="854.30823"
+         cx="104.02796" />
+      <path
+         id="path3629-6-4"
+         sodipodi:nodetypes="cccsccsc"
+         style="color:#000000;fill:#f89000;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -99.144696,799.86107 c -0.248631,-1.0865 -1.458774,-1.50727 -2.775344,-1.0115 l 0.0921,0.6684 c 1.04581,-0.37074 1.997063,-0.29288 2.195249,0.57275 0.198075,0.86569 -1.095359,1.67906 -2.091019,2.26917 l 0.1944,0.83209 c 1.26544,-0.71939 2.633334,-2.24417 2.384721,-3.33089 z" />
+      <path
+         id="path3631-2-5"
+         sodipodi:nodetypes="czzszzcc"
+         style="color:#000000;fill:#f89000;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -98.780346,799.27797 c 0.749752,0.48572 1.324281,5.41969 1.311124,7.22557 -0.01314,1.80587 -0.167584,0.88393 -0.323935,0.12665 -0.15634,-0.75729 -0.443008,-2.82705 -1.020956,-3.20156 -0.577852,-0.37436 -0.991317,1.21277 -1.157541,1.76242 -0.166216,0.54962 -0.225486,1.35937 -0.212346,-0.44632 0.0131,-1.80569 0.653899,-5.9525 1.403651,-5.46684 z" />
+      <ellipse
+         id="path3627-9-0-8"
+         style="color:#000000;fill:#007cba;fill-opacity:1"
+         transform="matrix(0.85037958,-0.52616972,0.01499073,0.99988763,0,0)"
+         cx="-144.53421"
+         cy="720.91339"
+         rx="1.5861232"
+         ry="1.7166702" />
+      <path
+         id="path3629-6-4-6"
+         sodipodi:nodetypes="cccsccsc"
+         style="color:#000000;fill:#007cba;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -111.81993,799.86108 c 0.25101,-1.08661 1.69781,-1.48685 3.02696,-0.99104 l -0.0725,0.58656 c -1.05581,-0.37074 -2.2617,-0.2315 -2.46177,0.63413 -0.19997,0.86569 1.10486,1.6586 2.11003,2.24871 l -0.1953,0.85255 c -1.27745,-0.71939 -2.65833,-2.24435 -2.40735,-3.33089 z" />
+      <path
+         id="path3631-2-5-8"
+         sodipodi:nodetypes="czzszzcc"
+         style="color:#000000;fill:#007cba;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -112.19038,799.27798 c -0.73104,0.48572 -1.29124,5.41969 -1.27841,7.22557 0.0135,1.80587 0.1634,0.88393 0.31585,0.12665 0.15245,-0.75729 0.43195,-2.82705 0.99548,-3.20156 0.56343,-0.37436 0.96658,1.21277 1.12866,1.76242 0.16206,0.54962 0.21987,1.35937 0.20704,-0.44632 -0.0135,-1.80569 -0.63757,-5.9525 -1.36862,-5.46684 z" />
+      <ellipse
+         id="path3627-7"
+         style="color:#000000;fill:#00bf00;fill-opacity:1"
+         transform="matrix(0.99983132,-0.01836646,0.01981285,0.99980371,0,0)"
+         cx="-121.20014"
+         cy="795.90759"
+         rx="1.7989973"
+         ry="1.7321116" />
+      <path
+         id="path3629-2"
+         style="color:#000000;fill:#00bf00;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -105.39635,799.75347 c -2.17313,0.0358 -3.92952,1.69177 -4.11282,3.5209 l 0.98898,-0.0133 c 0.18744,-1.44689 1.38732,-2.1342 3.11859,-2.16272 1.7313,-0.0285 2.98099,0.63224 3.23239,2.07181 l 1.0299,-0.0338 c -0.26376,-1.82183 -2.06324,-3.41873 -4.23648,-3.38303 z"
+         sodipodi:nodetypes="cccccccc" />
+      <path
+         id="path3631-5"
+         sodipodi:nodetypes="czzszzcc"
+         style="color:#000000;fill:#00bf00;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m -105.45217,799.90935 c -1.00564,0.0376 -1.77626,4.62822 -1.75861,6.44197 0.0177,1.81372 0.2657,1.03524 0.47538,0.37142 0.2097,-0.66385 0.55327,-2.61348 1.32851,-2.64245 0.77506,-0.029 1.1762,2.12244 1.39915,2.77146 0.22294,0.64898 0.45589,1.17703 0.43826,-0.63652 -0.0176,-1.81354 -0.87709,-6.3434 -1.88272,-6.3059 z" />
+    </g>
+  </g>
+  <metadata
+     id="metadata23">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2012-01-31T19:44:46</dc:date>
+        <dc:description>Representation of four people holding hands and forming a circle</dc:description>
+        <dc:source>https://openclipart.org/detail/167580/community-circle-by-josephluis</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>josephluis</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>being</rdf:li>
+            <rdf:li>circle</rdf:li>
+            <rdf:li>community</rdf:li>
+            <rdf:li>doll</rdf:li>
+            <rdf:li>hands</rdf:li>
+            <rdf:li>holding</rdf:li>
+            <rdf:li>human</rdf:li>
+            <rdf:li>man</rdf:li>
+            <rdf:li>mankind</rdf:li>
+            <rdf:li>men</rdf:li>
+            <rdf:li>people</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/service/embassy.png b/images/presets/service/embassy.png
deleted file mode 100644
index 5d8b4e9..0000000
Binary files a/images/presets/service/embassy.png and /dev/null differ
diff --git a/images/presets/service/embassy.svg b/images/presets/service/embassy.svg
new file mode 100644
index 0000000..00eb10e
--- /dev/null
+++ b/images/presets/service/embassy.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="100%"
+   height="100%"
+   viewBox="0 0 16 16"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="flag3.svg">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview6"
+     showgrid="true"
+     inkscape:zoom="29.5"
+     inkscape:cx="8.0859711"
+     inkscape:cy="5.9459021"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4138" />
+  </sodipodi:namedview>
+  <path
+     d="M 9,2 C 6,4 4,2 4,2 l 0,7 c 0,0 2,2 5,0 3,-2 5,0 5,0 L 14,2 C 14,2 12,0 9,2 Z"
+     id="path4"
+     style="fill:#4f83ff;fill-opacity:1"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="sccsccs" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#703f1f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.0629921;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-r [...]
+     id="rect4140"
+     width="1"
+     height="14"
+     x="2"
+     y="1"
+     ry="0.5" />
+</svg>
diff --git a/images/presets/service/excrement_bags.png b/images/presets/service/excrement_bags.png
deleted file mode 100644
index 3116c7f..0000000
Binary files a/images/presets/service/excrement_bags.png and /dev/null differ
diff --git a/images/presets/service/excrement_bags.svg b/images/presets/service/excrement_bags.svg
new file mode 100644
index 0000000..be2b4ac
--- /dev/null
+++ b/images/presets/service/excrement_bags.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="dog16.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="89.6"
+     inkscape:cx="2.7186998"
+     inkscape:cy="6.3488206"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4165"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.63"
+       ry="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.85036296px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 7.4304287,1044.9947 c 0.4961085,-0.2907 0.1877991,-1.0227 0.4405821,-1.4951 0.096734,-0.4889 0.4182304,-0.8681 0.6965273,-1.2469 0.4135101,-0.3543 0.7982703,-0.7663 1.2829231,-1.0088 0.4821048,-0.1911 0.4156248,-0.8882 0.2088688,-1.2788 -0.4175458,-0.2987 -0.609926,-0.9332 -0.3189898,-1.3856 0.2792648,-0.4888 0.9695608,-0.7867 1.6068828,-0.8003 0.808586,0 0.880243,0 1.268853,0.239 0.481936,0.5266 0.595978,1.0427 0.384574,1.6971 -0.317863,0.3687 -0.677342,0.7832 -0.756868,1.30 [...]
+       id="path4156"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccccc" />
+    <path
+       style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.68504059px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 1.2035753,1046.3413 c -0.028851,-0.1229 0.9662055,-1.2913 1.3616892,-1.916 0.3541719,-0.346 1.1123639,-0.7213 1.613312,-0.4547 0.5625656,0.3731 1.0349257,1.0523 1.3260172,1.6822 0.2928694,0.3915 0.8390821,0.3255 1.2916002,0.359 0.6509395,0 1.3820137,0.055 1.9285324,-0.3624 0.3894218,-0.415 1.1374238,-0.8028 1.5248327,-0.6572 0.511507,0.36 0.398256,1.1972 0.03018,1.7313 -0.4156611,0.4102 -0.5723416,0.9719 -0.7236419,1.5252 -0.026122,0.791 -0.1641829,1.58 -0.2118186,2.3675 0.00 [...]
+       id="path4160"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccccccccc" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#952d0f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4163"
+       width="2.210346"
+       height="4.5430746"
+       x="10.883937"
+       y="1047.0309"
+       ry="0.71712559" />
+  </g>
+</svg>
diff --git a/images/presets/service/post_box.png b/images/presets/service/post_box.png
deleted file mode 100644
index 47e52df..0000000
Binary files a/images/presets/service/post_box.png and /dev/null differ
diff --git a/images/presets/service/post_box.svg b/images/presets/service/post_box.svg
new file mode 100644
index 0000000..a3bcca0
--- /dev/null
+++ b/images/presets/service/post_box.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="371.82468"
+   height="282.37003"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="post_box2.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3263" />
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="0.65172414"
+     inkscape:cx="-504.70851"
+     inkscape:cy="245.77144"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1" />
+  <rect
+     style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:14.9296093;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+     id="rect4152"
+     width="356.89542"
+     height="267.4404"
+     x="7.4648046"
+     y="7.4648161" />
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-641.97653,-180.61862)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <path
+     style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 26.092697,44.73442 96.450613,96.91985 -96.450613,96.45059 0,-193.37044 z M 326.15176,26.56194 207.34817,144.91052 c -5.90607,5.90595 -13.3618,8.85885 -22.36722,8.85872 -9.3187,1.3e-4 -17.08725,-3.10919 -23.30568,-9.32798 L 43.795947,26.56194 l 282.355813,0 z m 18.64172,211.54292 -96.45061,-96.45059 96.45061,-96.91985 0,193.37044 z m -301.466783,18.17247 96.919843,-96.4506 4.19475,4.19474 c 11.18576,10.87326 24.69897,16.30983 40.53966,16.30972 15.84023,1.1e-4 29.19704,-5.43646 4 [...]
+     id="flowRoot3192"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/service/post_office.png b/images/presets/service/post_office.png
deleted file mode 100644
index 83478b3..0000000
Binary files a/images/presets/service/post_office.png and /dev/null differ
diff --git a/images/presets/service/post_office.svg b/images/presets/service/post_office.svg
new file mode 100644
index 0000000..fbc3040
--- /dev/null
+++ b/images/presets/service/post_office.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="post_office.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="29.493668"
+     inkscape:cx="-4.7083747"
+     inkscape:cy="8.4998802"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4138"
+       originx="0"
+       originy="0" />
+  </sodipodi:namedview>
+  <circle
+     style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:23.80400085;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+     id="path2207"
+     cx="8"
+     cy="8"
+     r="8" />
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-554.32782,-583.03307)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 2.892698,4.432354 3.0875517,3.0934688 -3.0875517,3.0784892 0,-6.171958 z M 12.498103,3.8523395 8.6949924,7.6297547 C 8.5059363,7.8182558 8.2672598,7.9125064 7.9789848,7.9125064 c -0.2983128,0 -0.5469942,-0.099211 -0.7460553,-0.2977315 l -3.7735224,-3.7624354 9.0386959,0 z M 13.09486,10.604312 10.007308,7.5258228 13.09486,4.432354 l 0,6.171958 z M 3.4443941,11.184337 6.5469587,8.1058482 6.6812443,8.2397288 c 0.3580694,0.3470536 0.7906569,0.520575 1.2977405,0.520575 0.5070727,0 0 [...]
+     id="flowRoot3192"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/service/recycling/trash-bin.svg b/images/presets/service/recycling/trash-bin.svg
deleted file mode 100644
index 9e3e231..0000000
--- a/images/presets/service/recycling/trash-bin.svg
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg831"
-   sodipodi:version="0.32"
-   width="112.85"
-   height="123.6125"
-   sodipodi:docname="trash-bin2.svg"
-   inkscape:version="0.91 r13725"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   version="1.1">
-  <metadata
-     id="metadata2212">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-        <dc:title></dc:title>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs833" />
-  <sodipodi:namedview
-     id="base"
-     inkscape:zoom="3.0498533"
-     inkscape:cx="0.52067075"
-     inkscape:cy="61.478367"
-     inkscape:window-width="1680"
-     inkscape:window-height="988"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:current-layer="svg831"
-     showgrid="false"
-     units="px"
-     inkscape:window-maximized="1" />
-  <rect
-     style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
-     id="rect4136"
-     width="112.85"
-     height="123.6125"
-     x="0"
-     y="-8.3923342e-006" />
-  <g
-     id="g663"
-     transform="matrix(0.453438,-0.0060926,0.00628608,0.467838,-68.49557,-243.2297)">
-    <path
-       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
-       d="m 234.631,654.56 c 8.279,-4.073 11.199,-8.145 14.119,-15.079 -7.396,-4.554 -13.898,-8.156 -17.721,-18.434 -3.207,-2.543 -18.027,0.637 -19.448,8.586 5.896,10.217 10.901,17.572 23.05,24.927 z"
-       id="path660"
-       sodipodi:nodetypes="ccccc"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 187.354,655.797 80.406,-10e-4 -10.149,110.072 -58.548,-0.782 -11.709,-109.289 z"
-       id="path661"
-       sodipodi:nodetypes="ccccc"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 289.719,610.341 c 0.846,7.972 4.226,26.31 4.226,34.282 0,12.757 -5.917,46.243 -6.763,57.405 -0.844,11.162 1.692,47.837 -0.844,51.824 -2.536,3.986 -19.44,6.378 -19.44,6.378 l -1.69,5.58 34.653,0 3.381,-58.202 c 1.69,-4.783 6.761,-8.77 10.141,0 0.846,6.379 0,22.324 2.536,28.703 2.536,6.378 5.072,23.918 5.072,23.918 0,0 -13.523,1.595 -13.523,5.581 0,3.987 28.736,2.392 28.736,2.392 -5.071,-10.364 -5.072,-50.228 -8.452,-55.81 1.69,-5.58 0,-90.093 0,-90.093 0,0 6.761,2.392 9.297,5. [...]
-       id="path662"
-       sodipodi:nodetypes="cccccccccccccccccccccccccccccccc"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/images/presets/service/recycling/waste_basket.svg b/images/presets/service/recycling/waste_basket.svg
new file mode 100644
index 0000000..c44c4e9
--- /dev/null
+++ b/images/presets/service/recycling/waste_basket.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="16"
+   height="16"
+   viewBox="0 0 14 14"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="waste_basket.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="59"
+     inkscape:cx="4.0664832"
+     inkscape:cy="8.0610259"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4152" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rende [...]
+     id="rect4154"
+     width="14"
+     height="14"
+     x="0"
+     y="0"
+     ry="1.75" />
+  <path
+     d="m 6,0.87415896 c -1,0 -1,1.02272124 -1,1.02272124 l -1,0 c -2,0 -2,1.5479948 -2,1.5479948 l 10,0 c 0,0 0,-1.5479948 -2,-1.5479948 l -1,0 c 0,0 0,-1.02272124 -1,-1.02272124 z M 2,4.38025 l 2,8.766565 6,0 2,-8.766565 z"
+     id="waste-basket"
+     style="fill:#734a08;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="scsccscssccccc" />
+</svg>
diff --git a/images/presets/service/recycling/waste_disposal.png b/images/presets/service/recycling/waste_disposal.png
deleted file mode 100644
index 0021cfd..0000000
Binary files a/images/presets/service/recycling/waste_disposal.png and /dev/null differ
diff --git a/images/presets/service/recycling/waste_disposal.svg b/images/presets/service/recycling/waste_disposal.svg
new file mode 100644
index 0000000..4b66341
--- /dev/null
+++ b/images/presets/service/recycling/waste_disposal.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="15"
+   height="16"
+   viewBox="0 0 15 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="waste_disposal6.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="64"
+     inkscape:cx="5.3425075"
+     inkscape:cy="3.5099536"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4170"
+       width="15"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <path
+       style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 1,1049.3622 0,-8 11.957726,0 c 0,0 -0.999999,9.9864 -3.9154515,9.9921 L 4,1051.3622 Z"
+       id="path4160"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccscc" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.28999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4162"
+       sodipodi:type="arc"
+       sodipodi:cx="3.05"
+       sodipodi:cy="1049.3621"
+       sodipodi:rx="2.4841819"
+       sodipodi:ry="2.4289775"
+       sodipodi:start="0"
+       sodipodi:end="6.2827839"
+       sodipodi:open="true"
+       d="m 5.5341818,1049.3621 a 2.4841819,2.4289775 0 0 1 -2.4839326,2.4289 2.4841819,2.4289775 0 0 1 -2.48443108,-2.4285 2.4841819,2.4289775 0 0 1 2.48343398,-2.4294 2.4841819,2.4289775 0 0 1 2.4849295,2.428" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.28999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4166"
+       sodipodi:type="arc"
+       sodipodi:cx="3.05"
+       sodipodi:cy="1049.3621"
+       sodipodi:rx="0.97122699"
+       sodipodi:ry="0.94964403"
+       sodipodi:start="0"
+       sodipodi:end="6.2827839"
+       sodipodi:open="true"
+       d="m 4.0212269,1049.3621 a 0.97122699,0.94964403 0 0 1 -0.9711295,0.9496 0.97122699,0.94964403 0 0 1 -0.9713244,-0.9494 0.97122699,0.94964403 0 0 1 0.9709346,-0.9499 0.97122699,0.94964403 0 0 1 0.9715193,0.9493" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1.7954951,1041.4341 10.8132299,-3.4214"
+       id="path4168"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
diff --git a/images/presets/service/studio.png b/images/presets/service/studio.png
deleted file mode 100644
index 8ee50b3..0000000
Binary files a/images/presets/service/studio.png and /dev/null differ
diff --git a/images/presets/service/studio.svg b/images/presets/service/studio.svg
new file mode 100644
index 0000000..df67b7e
--- /dev/null
+++ b/images/presets/service/studio.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg5365"
+   sodipodi:docname="mikro3.svg"
+   viewBox="0 0 13 16"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="13"
+   height="16">
+  <defs
+     id="defs15" />
+  <sodipodi:namedview
+     id="base"
+     fit-margin-left="0"
+     inkscape:zoom="31.678384"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="10.271781"
+     inkscape:cy="5.8057763"
+     inkscape:window-maximized="1"
+     showgrid="true"
+     fit-margin-right="0"
+     units="mm"
+     inkscape:document-units="mm"
+     bordercolor="#666666"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     fit-margin-top="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4143"
+       originx="3.6621094e-006"
+       originy="4.0199671e-006" />
+  </sodipodi:namedview>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-138.84,-673.30001)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4145"
+       width="13"
+       height="16"
+       x="138.84"
+       y="673.30005"
+       ry="1.9999563" />
+    <path
+       id="path5262"
+       style="fill:#000000"
+       inkscape:connector-curvature="0"
+       d="m 146.84468,677.81342 c 0,1.94046 -1.60305,3.51341 -3.58038,3.51341 -1.97744,0 -3.58036,-1.57307 -3.58036,-3.51341 0,-1.94046 1.60303,-3.51341 3.58036,-3.51341 1.97745,0 3.58038,1.57305 3.58038,3.51341 z" />
+    <path
+       id="path5268"
+       sodipodi:nodetypes="ccccc"
+       style="fill:#000000"
+       inkscape:connector-curvature="0"
+       d="m 140.78171,679.95723 1.4726,5.78378 2.04178,0 1.47246,-5.78378 -4.98706,0 z" />
+    <rect
+       id="rect5275"
+       style="fill:#ffffff"
+       height="1.049"
+       width="7.4800816"
+       y="677.32611"
+       x="139.63336" />
+    <rect
+       id="rect5277"
+       style="fill:#ffffff"
+       height="0.98785055"
+       width="0.99844259"
+       y="681.31104"
+       x="142.83621" />
+    <path
+       id="path5299"
+       style="fill:none;stroke:#000000;stroke-width:1.06299213;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+       inkscape:connector-curvature="0"
+       d="m 143.27547,685.32153 c 0.0677,0.87066 0.34144,1.82216 1.06706,2.33124 0.87086,0.6136 2.25422,0.18968 2.59739,-0.87502 0.49879,-1.17802 0.34309,-2.5905 1.07342,-3.67203 0.50925,-0.72881 1.73874,-0.49135 2.03168,0.33676 0.24669,0.483 0.27412,1.04271 0.34025,1.57493" />
+  </g>
+  <metadata
+     id="metadata13">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/service/surveillance.png b/images/presets/service/surveillance.png
deleted file mode 100644
index 5219ae8..0000000
Binary files a/images/presets/service/surveillance.png and /dev/null differ
diff --git a/images/presets/service/surveillance.svg b/images/presets/service/surveillance.svg
new file mode 100644
index 0000000..62ba190
--- /dev/null
+++ b/images/presets/service/surveillance.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="surv3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="45.254834"
+     inkscape:cx="13.181422"
+     inkscape:cy="5.3416433"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.66019452;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto; [...]
+       id="rect4159"
+       width="2.9398055"
+       height="7.4130197"
+       x="7.030097"
+       y="1036.3923" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.28999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4145"
+       width="9.3797579"
+       height="5.2418313"
+       x="370.80548"
+       y="962.91003"
+       transform="matrix(0.92523816,0.3793868,-0.35358302,0.93540315,0,0)" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.35006732;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto; [...]
+       id="rect4149"
+       width="3.410821"
+       height="3.4945693"
+       x="379.67514"
+       y="963.76813"
+       transform="matrix(0.92523816,0.3793868,-0.35358302,0.93540315,0,0)" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.35006732;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto; [...]
+       id="rect4151"
+       width="1.7054105"
+       height="5.2418313"
+       x="383.08597"
+       y="962.89447"
+       transform="matrix(0.92523816,0.3793868,-0.35358302,0.93540315,0,0)" />
+    <path
+       style="fill:#000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.51776552;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m -0.01406146,1046.9001 8.67851426,3.5586 4.8380902,-5.5671 -11.0453705,-4.529 -2.47123396,6.5375"
+       id="path4147"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/service/townhall.png b/images/presets/service/townhall.png
deleted file mode 100644
index 5ee577a..0000000
Binary files a/images/presets/service/townhall.png and /dev/null differ
diff --git a/images/presets/service/townhall.svg b/images/presets/service/townhall.svg
new file mode 100644
index 0000000..afb4610
--- /dev/null
+++ b/images/presets/service/townhall.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="townhall3.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="33.714286"
+     inkscape:cx="0.43996325"
+     inkscape:cy="8.1711736"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape- [...]
+     id="rect4135"
+     width="16"
+     height="16"
+     x="0"
+     y="0"
+     ry="3" />
+  <rect
+     width="14"
+     height="14"
+     x="0"
+     y="2"
+     id="canvas"
+     style="visibility:hidden;fill:none;stroke:none" />
+  <path
+     d="M 8,1 C 7.75,1.0032 7.5,1.1644239 7.5,1.5 L 7.5,5.375 2,8 14,8 8.5,5.375 8.5,1.5 C 8.5,1.1516409 8.25,0.9968043 8,1 Z M 9,1 9,4 13,4 11,2.5 13,1 Z m -7,8 0,1 1,0 0,4 -1,0 0,1 12,0 0,-1 -1,0 0,-4 1,0 0,-1 z m 6,1.5 c 1,0 2,0.5 2,1.5 l 0,2 -4,0 0,-2 c 0,-1 1,-1.5 2,-1.5 z"
+     id="town-hall"
+     style="fill:#734a08;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/shop/boutique.png b/images/presets/shop/boutique.png
deleted file mode 100644
index 5b758f1..0000000
Binary files a/images/presets/shop/boutique.png and /dev/null differ
diff --git a/images/presets/shop/boutique.svg b/images/presets/shop/boutique.svg
new file mode 100644
index 0000000..b4e04a5
--- /dev/null
+++ b/images/presets/shop/boutique.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bou4.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4158">
+      <stop
+         style="stop-color:#f94eaa;stop-opacity:1"
+         offset="0"
+         id="stop4160" />
+      <stop
+         style="stop-color:#fcb2da;stop-opacity:1"
+         offset="1"
+         id="stop4162" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4158"
+       id="linearGradient4164"
+       x1="3"
+       y1="1049.3622"
+       x2="17"
+       y2="1034.3622"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="6.6260867"
+     inkscape:cy="8.2188032"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4164);fill-opacity:1;fill-rule:evenodd;stroke:#d31b7b;stroke-width:1.18763161;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;imag [...]
+       id="rect4145"
+       width="14.812368"
+       height="14.812368"
+       x="0.5938158"
+       y="1036.9561"
+       ry="2.4061453" />
+    <g
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.46151066px;line-height:125%;font-family:'CommercialScript BT';-inkscape-font-specification:'CommercialScript BT, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4151"
+       transform="matrix(1.0286235,0,0,1.1000318,-0.28204197,-104.97547)">
+      <path
+         d="m 12.372466,1040.8348 c -0.263621,-0.1223 -0.567256,-0.2118 -0.910905,-0.2683 -0.343649,-0.061 -0.724959,-0.092 -1.143929,-0.092 -0.7390808,0 -1.5205295,0.12 -2.344346,0.3601 -0.8238165,0.2401 -1.5605439,0.5626 -2.210182,0.9674 -0.5319501,0.3343 -0.9626885,0.7132 -1.2922151,1.1369 -0.3248191,0.419 -0.4872286,0.7933 -0.4872286,1.1228 0,0.2777 0.089443,0.5013 0.2683288,0.6708 0.1835934,0.1695 0.4307383,0.2542 0.7414348,0.2542 0.4895824,0 1.02624,-0.2024 1.6099729,-0.6073 0.5884 [...]
+         id="path4156"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccscccscscccscssscscccscccscscccscccscssscscscscsscsscscscscscscscccccscscscscccscsccscccc" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/shop/clothes.svg b/images/presets/shop/clothes.svg
index 92ffe4f..1656758 100644
--- a/images/presets/shop/clothes.svg
+++ b/images/presets/shop/clothes.svg
@@ -1,73 +1,448 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
-"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-<!-- Created with Inkscape (http://www.inkscape.org/) --><svg height="160.00000pt" id="svg1" inkscape:version="0.39" sodipodi:docbase="/home/nicu/Desktop/camel" sodipodi:docname="ocal_t-shirt_02.svg" sodipodi:version="0.32" width="160.00000pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipod [...]
-  <metadata>
-    <rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-      <cc:Work rdf:about="">
-        <dc:title>t-shirt</dc:title>
-        <dc:description></dc:description>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li></rdf:li>
-            <rdf:li>people</rdf:li>
-            <rdf:li>clothing</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:publisher>
-          <cc:Agent rdf:about="http://www.openclipart.org">
-            <dc:title>Nicu Buculei</dc:title>
-          </cc:Agent>
-        </dc:publisher>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Nicu Buculei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:rights>
-          <cc:Agent>
-            <dc:title>Nicu Buculei</dc:title>
-          </cc:Agent>
-        </dc:rights>
-        <dc:date></dc:date>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="464.89203"
+   height="464.95932"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="clothes34.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
-        <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
-        <dc:language>en</dc:language>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
       </cc:Work>
-      <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
-        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
-        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <defs id="defs3">
-    <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="namedview4258" inkscape:cx="475.26707" inkscape:cy="250.37448" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="739" inkscape:window-width="1012" inkscape:window-x="0" inkscape:window-y="26" inkscape:zoom="0.61399264" pagecolor="#ffffff"/>
-    <defs id="defs48974"/>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="0.90509664"
+     inkscape:cx="-40.591004"
+     inkscape:cy="103.71321"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1" />
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective2466"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3333"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3401"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3464"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3581"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4312"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8860"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8887"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective4904" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       id="perspective4668" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective4471" />
+    <symbol
+       id="symbol-university"
+       viewBox="244.5 110 489 219.9">
+      <path
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         id="path4460"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 94,176 73,215"
+         id="path4462"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         id="path4464"
+         inkscape:connector-curvature="0" />
+      <path
+         ill="none"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         id="path4466"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       id="perspective3452" />
+    <inkscape:perspective
+       id="perspective9479"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9690"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective9819" />
+    <inkscape:perspective
+       id="perspective9817"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol9807">
+      <path
+         id="path9809"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path9811"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path9813"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path9815"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective9805"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9803"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9801"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 16 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9799" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9797" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9795" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9793" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9791" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9789" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9787" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9785" />
+    <inkscape:perspective
+       id="perspective9783"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <defs
+       id="defs48974" />
+    <sodipodi:namedview
+       pagecolor="#ffffff"
+       inkscape:zoom="0.61399264"
+       inkscape:window-y="26"
+       inkscape:window-x="0"
+       inkscape:window-width="1012"
+       inkscape:window-height="739"
+       inkscape:pageshadow="2"
+       inkscape:pageopacity="0.0"
+       inkscape:cy="250.37448"
+       inkscape:cx="475.26707"
+       id="namedview4258"
+       borderopacity="1.0"
+       bordercolor="#666666" />
+    <inkscape:perspective
+       id="perspective11483"
+       inkscape:persp3d-origin="100 : 66.666667 : 1"
+       inkscape:vp_z="200 : 100 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 100 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective12684"
+       inkscape:persp3d-origin="180 : 66.666667 : 1"
+       inkscape:vp_z="360 : 100 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 100 : 1"
+       sodipodi:type="inkscape:persp3d" />
   </defs>
-  <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:cx="80.000000" inkscape:cy="80.000000" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="725" inkscape:window-width="903" inkscape:window-x="47" inkscape:window-y="63" inkscape:zoom="3.5000000" pagecolor="#ffffff"/>
-  <g id="g2776">
-    <path d="M 7.7954843,97.974423 C 10.290914,101.81355 36.652504,113.09481 44.368044,110.75406 C 47.284684,107.83740 47.015394,94.483303 48.743004,91.066763 C 52.966024,104.35035 43.905434,176.72080 43.638884,188.04489 C 54.889704,195.91369 138.80798,195.06855 158.53939,190.38567 C 161.57065,186.08665 151.24785,122.39154 152.28354,93.254223 C 154.27906,96.173613 155.41755,103.83339 155.92932,107.10824 C 164.06882,109.44904 193.65360,102.73332 195.84116,99.087513 C 195.91708,91.794533 1 [...]
-    <path d="M 83.031250,4.5937500 C 77.453404,12.463182 62.437934,15.158085 53.167383,21.490685 C 44.010674,27.093993 32.007139,30.442347 27.666035,41.250980 C 18.785770,59.284699 10.555505,76.491767 5.7812500,96.062500 C 8.8870275,105.39955 22.528072,106.92179 30.846025,110.68957 C 33.644061,111.42432 39.435242,113.05978 43.115415,112.20193 C 46.081301,109.55837 46.936179,104.42150 48.433036,95.540179 C 52.511675,112.83820 43.036832,161.40210 41.815119,188.58266 C 49.433004,194.91429 6 [...]
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-1274.9916,-109.29196)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
   </g>
-  <g id="g3615" transform="matrix(0.445330,0.000000,0.000000,0.445330,77.48423,30.03762)">
-    <g id="g1108" transform="matrix(0.192029,0.000000,0.000000,0.192029,10.17587,51.14223)">
-      <path d="M 281.59307,73.122280 C 289.29251,73.122280 294.53956,67.133790 294.53956,52.590450 C 294.53956,45.290240 292.48635,33.769600 282.04933,33.769600 C 272.75298,33.769600 268.76066,43.807390 268.76066,53.331870 C 268.76066,62.856340 271.84044,73.122280 281.53605,73.122280 L 281.59307,73.122280 M 281.76417,65.479910 C 279.19769,65.479910 277.82889,60.917210 277.94297,53.217810 C 277.88593,46.430910 279.19769,41.411990 281.76417,41.411990 C 284.44471,41.411990 285.35725,46.4309 [...]
-      <path d="M 278.23347,69.704248 C 285.93291,69.704248 291.17996,63.715755 291.17996,49.172417 C 291.17996,41.872203 289.12675,30.351569 278.68973,30.351569 C 269.39338,30.351569 265.40106,40.389360 265.40106,49.913838 C 265.40106,59.438309 268.48084,69.704248 278.17645,69.704248 L 278.23347,69.704248 M 278.40457,62.061874 C 275.83809,62.061874 274.46929,57.499178 274.58337,49.799772 C 274.52633,43.012880 275.83809,37.993957 278.40457,37.993957 C 281.08511,37.993957 281.99765,43.0128 [...]
-    </g>
-    <g id="g1092" transform="matrix(5.915837e-2,0.000000,0.000000,5.915837e-2,85.92543,66.21956)">
-      <path d="M 296.77515,91.480067 C 292.39395,91.203657 288.27505,93.294297 285.80645,96.823867 L 176.33769,96.823867 C 169.39928,96.823867 163.80645,102.38537 163.80645,109.32387 L 163.80645,132.57387 L 48.712696,173.57387 C 42.176676,175.90237 38.790386,183.03777 41.118946,189.57387 L 116.77520,401.94887 C 119.10376,408.48477 126.23919,411.87117 132.77520,409.54257 L 297.46265,350.88627 L 451.58765,392.51127 C 458.28595,394.32087 465.12185,390.39707 466.93145,383.69887 L 525.74395,1 [...]
-      <path d="M 289.13776,11.141406 C 282.19933,11.141406 276.61353,16.727213 276.61353,23.665638 L 276.61353,249.10181 C 276.61353,256.04023 282.19933,261.62604 289.13776,261.62604 L 514.57393,261.62604 C 521.51235,261.62604 527.09816,256.04023 527.09816,249.10181 L 527.09816,23.665638 C 527.09816,16.727213 521.51235,11.141406 514.57393,11.141406 L 289.13776,11.141406 z " id="rect911" style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;" transform="matrix(0.96 [...]
-      <path d="M 310.90331,38.364491 C 305.39329,38.364491 300.95743,42.800352 300.95743,48.310369 L 300.95743,227.33617 C 300.95743,232.84619 305.39329,237.28205 310.90331,237.28205 L 489.92911,237.28205 C 495.43912,237.28205 499.87498,232.84619 499.87498,227.33617 L 499.87498,48.310369 C 499.87498,42.800352 495.43912,38.364491 489.92911,38.364491 L 310.90331,38.364491 z " id="rect912" style="fill:#f3e533;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:0.79413080pt;" transform="ma [...]
-      <path d="M 153.28592,91.074089 C 146.34750,91.074089 140.76169,96.659896 140.76169,103.59832 L 140.76169,329.03449 C 140.76169,335.97292 146.34750,341.55872 153.28592,341.55872 L 378.72209,341.55872 C 385.66052,341.55872 391.24632,335.97292 391.24632,329.03449 L 391.24632,103.59832 C 391.24632,96.659896 385.66052,91.074089 378.72209,91.074089 L 153.28592,91.074089 z " id="rect913" style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;"/>
-      <path d="M 175.05156,118.29723 C 169.54154,118.29723 165.10568,122.73310 165.10568,128.24311 L 165.10568,307.26891 C 165.10568,312.77893 169.54154,317.21479 175.05156,317.21479 L 354.07736,317.21479 C 359.58738,317.21479 364.02324,312.77893 364.02324,307.26891 L 364.02324,128.24311 C 364.02324,122.73310 359.58738,118.29723 354.07736,118.29723 L 175.05156,118.29723 z " id="rect914" style="fill:#ff7f00;fill-rule:evenodd;stroke-width:0.79413080pt;"/>
-      <path d="M -32.155801,166.71382 C -39.094218,166.71382 -44.680019,172.29962 -44.680019,179.23804 L -44.680019,404.67401 C -44.680019,411.61243 -39.094218,417.19823 -32.155801,417.19823 L 193.28017,417.19823 C 200.21858,417.19823 205.80439,411.61243 205.80439,404.67401 L 205.80439,179.23804 C 205.80439,172.29962 200.21858,166.71382 193.28017,166.71382 L -32.155801,166.71382 z " id="rect915" style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999866pt;" transform="m [...]
-      <path d="M -10.390225,193.93687 C -15.900234,193.93687 -20.336090,198.37273 -20.336090,203.88274 L -20.336090,382.90835 C -20.336090,388.41836 -15.900234,392.85422 -10.390225,392.85422 L 168.63539,392.85422 C 174.14540,392.85422 178.58125,388.41836 178.58125,382.90835 L 178.58125,203.88274 C 178.58125,198.37273 174.14540,193.93687 168.63539,193.93687 L -10.390225,193.93687 z " id="rect916" style="fill:#bf0000;fill-rule:evenodd;stroke-width:0.79413080pt;" transform="matrix(0.942003, [...]
-    </g>
-    <g id="g3612">
-      <path d="M 137.86172,98.940798 C 137.86172,98.597796 137.81755,98.323413 137.72923,98.117602 C 137.64090,97.909520 137.52469,97.805486 137.38057,97.805486 C 137.23801,97.805486 137.12255,97.908384 137.03423,98.114179 C 136.94745,98.319974 136.90406,98.595508 136.90406,98.940798 C 136.90406,99.288375 136.94745,99.565045 137.03423,99.770840 C 137.12255,99.976651 137.23801,100.07955 137.38057,100.07955 C 137.52469,100.07955 137.64090,99.976651 137.72923,99.770840 C 137.81755,99.562758 [...]
-      <path d="M 137.28099,98.258217 C 137.28099,97.915215 137.23682,97.640832 137.14850,97.435021 C 137.06017,97.226939 136.94396,97.122905 136.79984,97.122905 C 136.65728,97.122905 136.54182,97.225803 136.45350,97.431598 C 136.36672,97.637393 136.32333,97.912927 136.32333,98.258217 C 136.32333,98.605794 136.36672,98.882464 136.45350,99.088259 C 136.54182,99.294070 136.65728,99.396967 136.79984,99.396967 C 136.94396,99.396967 137.06017,99.294070 137.14850,99.088259 C 137.23682,98.880177 [...]
-    </g>
+  <g
+     id="g9828"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-1935.2895,45.550109)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect9830"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect9832"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g3219"
+     transform="matrix(2.8815995,0,0,3.5487324,-191.08733,-1938.2597)"
+     style="fill:#3d5889;fill-opacity:1;stroke:#000000;stroke-width:1.73248327;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
+    <path
+       sodipodi:nodetypes="ccccccccccc"
+       id="path2427"
+       d="m 67.613793,570.41735 c 24.468075,-13.10042 45.356037,-11.77452 66.041377,-23.06206 11.09637,2.43104 19.357,1.4592 26.99311,-0.26207 23.42862,10.78637 44.02825,12.51579 66.04138,23.5862 -1.82964,11.55946 -5.85886,21.54778 -12.57932,29.6138 -8.15361,-4.36994 -15.86829,-6.10632 -23.32413,-6.28966 l -0.52414,78.62069 c -32.1215,5.98273 -59.34716,3.39775 -85.95862,-0.26207 l -0.26207,-78.09655 c -9.370679,-0.2722 -16.500436,3.19047 -23.848277,6.28966 -7.067215,-9.63539 -10.36885,-1 [...]
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3199"
+       d="m 71.282759,569.10701 c 2.214678,10.74851 6.083496,20.78686 13.627586,29.35172"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3203"
+       d="m 105.35172,668.16908 c 28.12874,4.60443 56.25747,5.59295 84.38621,-0.26207"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="czc"
+       id="path3205"
+       d="m 133.3931,547.61736 c -0.22816,2.3247 1.69237,12.73282 13.88965,13.36551 11.93593,0.61914 14.27527,-11.53603 13.88966,-13.10345"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 128.21194,550.41871 c -0.22816,2.3247 4.57424,15.11165 18.34482,15.46206 14.03248,0.35707 19.77872,-14.68086 19.39311,-16.24828"
+       id="path3207"
+       sodipodi:nodetypes="czc"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3209"
+       d="m 134.52279,552.33459 c 8.53814,2.23324 16.08174,1.75419 25.31809,-0.20185"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3213"
+       d="m 104.16182,558.28077 c 2.57594,9.88539 6.83803,21.48891 -0.26207,35.37931"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 190.37521,558.48262 c -2.57594,9.88539 -6.83803,21.48891 0.26207,35.37931"
+       id="path3215"
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 223.28276,568.84494 c -2.21468,10.74851 -6.0835,20.78686 -13.62759,29.35172"
+       id="path3217"
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0" />
   </g>
 </svg>
diff --git a/images/presets/shop/convenience.png b/images/presets/shop/convenience.png
deleted file mode 100644
index f78b85b..0000000
Binary files a/images/presets/shop/convenience.png and /dev/null differ
diff --git a/images/presets/shop/convenience.svg b/images/presets/shop/convenience.svg
new file mode 100644
index 0000000..2554613
--- /dev/null
+++ b/images/presets/shop/convenience.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="14"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="convenience3.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="29.493668"
+     inkscape:cx="7.8032571"
+     inkscape:cy="7.4099081"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4156"
+       originx="8.3569295e-007"
+       originy="6.1573665e-007" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:1.02052903;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 15.489752,5.5321066 -14.9794998,0 1.7347755,7.9576294 11.5097223,0.0052 z"
+     id="path3264"
+     sodipodi:nodetypes="ccccc" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path3268"
+     d="m 3.5265902,6.1319312 0,6.9129858"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.65751857;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="cc" />
+  <path
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cc"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.65751857;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1.8313998,9.514923 12.5595382,0"
+     id="path3280" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.65751857;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 6.5412678,6.1319312 0,6.9145208"
+     id="path3318"
+     sodipodi:nodetypes="cc" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path3320"
+     d="m 9.5264476,6.1319312 0,7.2263808"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.65751857;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="cc" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.65751857;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 12.475516,6.1319312 0,7.2740808"
+     id="path3322"
+     sodipodi:nodetypes="cc" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path3324"
+     d="m 2.4551196,11.509435 11.3120994,0"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.65751857;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="cc" />
+  <path
+     style="fill:#ffffff;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.7001493;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 7.7706551,5.4176285 1.88096,-5.05487999 0.5485509,0.20412 -1.9074509,5.12606999 -0.52206,-0.27531 z"
+     id="path10756"
+     sodipodi:nodetypes="ccccc"
+     inkscape:connector-curvature="0" />
+  <path
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cc"
+     style="fill:none;fill-rule:evenodd;stroke:#ac39ac;stroke-width:0.67799997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1.2686403,7.514923 13.3644397,0"
+     id="path3280-0" />
+</svg>
diff --git a/images/presets/shop/copyshop.png b/images/presets/shop/copyshop.png
deleted file mode 100644
index ba24a13..0000000
Binary files a/images/presets/shop/copyshop.png and /dev/null differ
diff --git a/images/presets/shop/copyshop.svg b/images/presets/shop/copyshop.svg
new file mode 100644
index 0000000..faea367
--- /dev/null
+++ b/images/presets/shop/copyshop.svg
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="copyshop.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="29.493668"
+     inkscape:cx="-1.9171752"
+     inkscape:cy="9.7880935"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4196" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective2466"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3333"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3401"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3464"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3581"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4312"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8860"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8887"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective4904" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       id="perspective4668" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective4471" />
+    <symbol
+       id="symbol-university"
+       viewBox="244.5 110 489 219.9">
+      <path
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         id="path4460"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 94,176 73,215"
+         id="path4462"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         id="path4464"
+         inkscape:connector-curvature="0" />
+      <path
+         ill="none"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         id="path4466"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       id="perspective3452" />
+    <inkscape:perspective
+       id="perspective9479"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9690"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective9819" />
+    <inkscape:perspective
+       id="perspective9817"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol9807">
+      <path
+         id="path9809"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path9811"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path9813"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path9815"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective9805"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9803"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9801"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 16 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9799" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9797" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9795" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9793" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9791" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9789" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9787" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9785" />
+    <inkscape:perspective
+       id="perspective9783"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <defs
+       id="defs48974" />
+    <sodipodi:namedview
+       pagecolor="#ffffff"
+       inkscape:zoom="0.61399264"
+       inkscape:window-y="26"
+       inkscape:window-x="0"
+       inkscape:window-width="1012"
+       inkscape:window-height="739"
+       inkscape:pageshadow="2"
+       inkscape:pageopacity="0.0"
+       inkscape:cy="250.37448"
+       inkscape:cx="475.26707"
+       id="namedview4258"
+       borderopacity="1.0"
+       bordercolor="#666666" />
+    <inkscape:perspective
+       id="perspective11483"
+       inkscape:persp3d-origin="100 : 66.666667 : 1"
+       inkscape:vp_z="200 : 100 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 100 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       id="linearGradient2936">
+      <stop
+         style="stop-color:#8acf6b;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2938" />
+      <stop
+         style="stop-color:#368912;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2940" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2952">
+      <stop
+         style="stop-color:#c0d50d;stop-opacity:1;"
+         offset="0"
+         id="stop2954" />
+      <stop
+         style="stop-color:#eef2cd;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2956" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective34"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9750"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <path
+     inkscape:connector-curvature="0"
+     id="path1329"
+     style="fill:#ac39ac;fill-opacity:1;stroke:none;stroke-width:3.40799999"
+     d="M 1.79225,0.00176061 C 0.64495,0.00176061 0,0.59391061 0,1.8037806 L 0,14.275761 c 0,1.13171 0.57997,1.72424 1.72622,1.72424 l 12.54653,0 c 1.14653,0 1.72725,-0.56289 1.72725,-1.72424 L 16,1.8037806 c 0,-1.18038999 -0.58072,-1.80201999 -1.76311,-1.80201999 -1.1e-4,0 -12.44858,-0.004 -12.44464,0 z" />
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-1211.9259,-615.0269)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g9828"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-1872.2238,-460.18483)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect9830"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect9832"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     transform="matrix(39.181587,0,0,39.181587,136.13818,-41283.329)"
+     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.93952465px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#e5afe5;fill-opacity:1;stroke:none"
+     id="text3805-2" />
+  <g
+     id="g10367"
+     transform="matrix(0.02775633,0,0,0.02770795,0.20824,0.20786061)">
+    <path
+       id="rect10304"
+       d="m 42.125,111.03125 0,424.53125 289.15625,0 0,-424.53125 -289.15625,0 z m 134.53125,85.28125 c 21.16701,0 39.23246,3.11388 54.15625,9.34375 15.07569,6.24554 27.24185,15.63783 36.53125,28.125 5.78647,7.61298 9.90701,17.04388 12.34375,28.3125 2.43627,11.11582 3.65598,27.86164 3.65625,50.25 l 0,145.96875 -42.25,0 0,-37.9375 c -8.98481,15.22596 -20.32607,26.50122 -34.03125,33.8125 -13.55323,7.15848 -30.10182,10.75 -49.59375,10.75 -26.04027,0 -46.81108,-7.31885 -62.34375,-21.9375 -15 [...]
+       style="fill:#ffffff;fill-opacity:1;stroke:none"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       style="opacity:0.5;fill:#ffffff;fill-opacity:1;stroke:none"
+       d="m 42.125,111.03125 0,424.53125 289.15625,0 0,-424.53125 -289.15625,0 z"
+       id="path10359"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g10363"
+     transform="matrix(0.02775633,0,0,0.02770795,-0.0473,-0.04722939)">
+    <path
+       sodipodi:nodetypes="ccccsccccccccsccccccccccccccccccscccccccscsccccc"
+       id="rect3753-2"
+       d="m 241.78125,38.3125 0,138.03125 48.40625,-36 c 15.53267,-5.93601 30.36897,-10.3584 44.53125,-13.25 14.31437,-3.05616 28.19283,-4.5625 41.59375,-4.5625 21.16701,0 39.20121,3.11388 54.125,9.34375 15.07569,6.24554 27.2731,15.63783 36.5625,28.125 5.78647,7.61298 9.87576,17.04388 12.3125,28.3125 2.43627,11.11582 3.65598,27.86164 3.65625,50.25 l 0,145.96875 -42.25,0 0,-37.9375 c -8.98481,15.22596 -20.32607,26.50122 -34.03125,33.8125 -13.55323,7.15848 -30.07057,10.75 -49.5625,10.75 -2 [...]
+       style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke:none"
+       inkscape:connector-curvature="0" />
+    <path
+       style="opacity:0.50199998;fill:#ffffff;fill-opacity:1;stroke:none"
+       d="m 241.78125,38.3125 0,138.03125 c 66.69029,16.56966 52.83028,166.22244 56.75,286.5 l 232.375,0 0,-424.53125 -289.125,0 z m 0,138.03125 0,0 z"
+       id="path10361"
+       sodipodi:nodetypes="cccccccc"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/images/presets/shop/curtain.png b/images/presets/shop/curtain.png
deleted file mode 100644
index fb21abb..0000000
Binary files a/images/presets/shop/curtain.png and /dev/null differ
diff --git a/images/presets/shop/curtain.svg b/images/presets/shop/curtain.svg
new file mode 100644
index 0000000..a30e5c6
--- /dev/null
+++ b/images/presets/shop/curtain.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="13"
+   viewBox="0 0 16 13"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="curtain9.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.839192"
+     inkscape:cx="4.2797934"
+     inkscape:cy="11.241084"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1039.3622)">
+    <path
+       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+       inkscape:connector-curvature="0"
+       id="path5"
+       d="m 0.03003334,1039.3908 c 0.0254,-0.012 0.0498,-0.029 0.0784,-0.029 5.26170996,0 10.52341966,-2e-4 15.78512966,0 0.0283,-4e-4 0.0527,0.018 0.0781,0.03 0.0109,0.027 0.0289,0.054 0.0286,0.085 0,0.9072 -1.6e-4,2.2356 0,3.1429 6.5e-4,0.032 -0.0174,0.059 -0.0284,0.086 -0.0252,0.012 -0.0495,0.03 -0.0775,0.03 -0.14017,8e-4 -0.28017,-7e-4 -0.42017,3e-4 0.002,1.0598 -1.6e-4,1.8991 0.001,2.9589 0.004,0.038 -0.0138,0.072 -0.0294,0.1043 -0.0244,0.011 -0.049,0.023 -0.073,0.034 0.024,0.012 0. [...]
+    <path
+       sodipodi:nodetypes="ccccccccccccccccccccccccccc"
+       style="fill:#ff003c"
+       inkscape:connector-curvature="0"
+       id="path7"
+       d="m 0.22484334,1039.5854 c 5.18390996,-9e-4 10.36798966,-9e-4 15.55190966,-2e-4 -10e-4,0.8218 -10e-4,2.0956 1.6e-4,2.9174 -0.14402,0 -0.28788,0 -0.43174,0 -0.0587,0 -0.1,0.064 -0.0952,0.1244 1.6e-4,1.0626 0,1.894 0,2.9566 -0.94079,-7e-4 -1.88174,-10e-4 -2.82253,10e-5 -0.12377,-0.1408 -0.244,-0.289 -0.32999,-0.4615 -0.0825,-0.148 -0.14193,-0.3093 -0.2223,-0.4586 -0.12216,-0.228 -0.21619,-0.4723 -0.30154,-0.7189 -0.0682,-0.2179 -0.13808,-0.4362 -0.18083,-0.662 -0.0611,-0.2755 -0.10 [...]
+    <path
+       style="fill:#ff003c"
+       inkscape:connector-curvature="0"
+       id="path9"
+       d="m 0.70705334,1046.083 c 0.91956996,-10e-4 1.83930996,7e-4 2.75887996,-9e-4 0.13389,0.1662 0.33031,0.2439 0.51034,0.3341 0.14193,0.058 0.27261,0.1494 0.37853,0.2674 0.14515,0.1721 0.25943,0.3741 0.3427,0.5889 0.11605,0.2762 0.18516,0.5715 0.24705,0.8662 0.11525,0.5611 0.12087,1.1433 0.25702,1.6999 0.0942,0.4396 0.27919,0.8467 0.46517,1.2478 0.0871,0.1933 0.18693,0.3822 0.24335,0.5898 0.01,0.059 0.0156,0.1303 -0.026,0.1781 -0.058,0.084 -0.15672,0.1112 -0.24609,0.1347 -0.0807,0.02 [...]
+    <path
+       style="fill:#ff003c"
+       inkscape:connector-curvature="0"
+       id="path11"
+       d="m 12.508173,1046.122 c 0.0119,-0.015 0.0191,-0.045 0.0429,-0.039 0.89964,-5e-4 1.79928,7e-4 2.69892,-5e-4 0,1.6594 0,3.3187 0,4.9781 -0.34799,-10e-4 -0.69583,2e-4 -1.04382,-9e-4 -0.12216,0 -0.23853,0.054 -0.33433,0.1329 -0.1445,0.1304 -0.23355,0.3142 -0.35362,0.4682 -0.10754,0.1538 -0.25011,0.2966 -0.43077,0.3326 -0.11638,0.03 -0.23291,-0.013 -0.34109,-0.056 -0.10271,-0.036 -0.1879,-0.1102 -0.27695,-0.1733 -0.15479,-0.1205 -0.29045,-0.2671 -0.44508,-0.3878 -0.11026,-0.081 -0.23 [...]
+  </g>
+</svg>
diff --git a/images/presets/shop/diy_store.svg b/images/presets/shop/diy_store.svg
index 432ad92..0ccfe00 100644
--- a/images/presets/shop/diy_store.svg
+++ b/images/presets/shop/diy_store.svg
@@ -120,7 +120,7 @@
          style="stop-color:#000000;stop-opacity:0.49803922;" />
       <stop
          id="stop8972"
-         offset="0.50000000"
+         offset="0.7"
          style="stop-color:#000000;stop-opacity:0.24705882;" />
       <stop
          id="stop8966"
diff --git a/images/presets/shop/erotic.png b/images/presets/shop/erotic.png
deleted file mode 100644
index 824ad6f..0000000
Binary files a/images/presets/shop/erotic.png and /dev/null differ
diff --git a/images/presets/shop/erotic.svg b/images/presets/shop/erotic.svg
new file mode 100644
index 0000000..c701f68
--- /dev/null
+++ b/images/presets/shop/erotic.svg
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2497"
+   sodipodi:docname="sivvus-heart2.svg"
+   inkscape:export-filename="C:\Documents and Settings\Piotrek\Pulpit\TAPETUŃCIA.png"
+   viewBox="0 0 306 288.41"
+   sodipodi:version="0.32"
+   inkscape:export-xdpi="90"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-ydpi="90"
+   inkscape:version="0.91 r13725"
+   width="306"
+   height="288.41">
+  <defs
+     id="defs2499">
+    <filter
+       id="filter3428"
+       inkscape:collect="always">
+      <feGaussianBlur
+         id="feGaussianBlur3430"
+         stdDeviation="3.982787"
+         inkscape:collect="always" />
+    </filter>
+    <linearGradient
+       id="linearGradient3482"
+       y2="576"
+       gradientUnits="userSpaceOnUse"
+       x2="742"
+       y1="92"
+       x1="742"
+       inkscape:collect="always">
+      <stop
+         id="stop2543"
+         style="stop-color:#ff0000"
+         offset="0" />
+      <stop
+         id="stop2545"
+         style="stop-color:#800000"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient3484"
+       gradientUnits="userSpaceOnUse"
+       cy="507.67999"
+       cx="154.49001"
+       gradientTransform="matrix(-0.11869,2.956,-2.58,-0.10359,1797.5,-275.65)"
+       r="89.498001"
+       inkscape:collect="always">
+      <stop
+         id="stop2537"
+         style="stop-color:#ffffff;stop-opacity:.8"
+         offset="0" />
+      <stop
+         id="stop2539"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </radialGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:zoom="1.9617303"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="120.92192"
+     inkscape:cy="94.442679"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     inkscape:window-maximized="1" />
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-359.56,-243.98002)">
+    <g
+       id="g3432"
+       transform="matrix(0.70216437,-0.20025316,0.19865217,0.72778207,-43.936567,294.37691)">
+      <path
+         id="path2604"
+         style="fill:#808080;filter:url(#filter3428)"
+         d="m 666.96,125.24 c -37.63,-8.31 -81.08,-1.06 -114.02,29.91 -28.16,27.26 -40.88,72.83 -36.39,112.35 4.56,52.15 27.52,96.52 52.3,136.38 25.02,39.26 54.3,74.45 86.24,105.49 8.51,2.55 17.04,-4.08 25.62,-5.5 63.3,-20.7 126.94,-49.02 181.41,-97.5 28.63,-26.11 54.28,-62.16 60.85,-104.49 5.33,-35.16 -5.34,-70.1 -25.68,-92.46 -28.22,-33.18 -70.08,-49.83 -111.9,-44.51 -16.67,2.8 -33.74,10.78 -46.01,26.11 -5.21,-29.42 -26.9,-48.53 -49.43,-58.22 -7.35,-3.33 -15.12,-5.8 -22.99,-7.56 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path2393"
+         style="fill:#800000"
+         d="m 664.96,117.24 c -37.63,-8.31 -81.08,-1.06 -114.02,29.91 -28.16,27.26 -40.88,72.83 -36.39,112.35 4.56,52.15 27.52,96.52 52.3,136.38 25.02,39.26 54.3,74.45 86.24,105.49 8.51,2.55 17.04,-4.08 25.62,-5.5 63.3,-20.7 126.94,-49.02 181.41,-97.5 28.63,-26.11 54.28,-62.16 60.85,-104.49 5.33,-35.16 -5.34,-70.1 -25.68,-92.46 -28.22,-33.18 -70.08,-49.83 -111.9,-44.51 -16.67,2.8 -33.74,10.78 -46.01,26.11 -5.21,-29.42 -26.9,-48.53 -49.43,-58.22 -7.35,-3.33 -15.12,-5.8 -22.99,-7.56 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path2383"
+         style="fill:url(#linearGradient3482)"
+         d="m 663.63,123.01 c -33.03,-7.07 -70.23,-2.5 -100.87,20.92 -24.02,18.01 -39.91,50.09 -42.99,82.49 -4.63,44.42 9.3,86.03 26.55,121.95 27.94,56.12 65.74,103.69 107.06,145.5 3.27,5.25 9.32,0.09 13.99,-0.42 56.43,-17.38 112.64,-41.17 163.75,-78.1 31.8,-23.62 63.2,-54.44 78.37,-96.22 11.08,-29.56 10.56,-63.49 -2.09,-89.18 -17.24,-35.71 -49.65,-57.3 -83.75,-65.48 -23.9,-5.24 -51.53,-4.71 -73.83,13.16 -6.61,5.41 -12.3,12.49 -16.4,20.74 1.36,-27 -14.46,-48.07 -32.45,-59.78 -11.48,-7.59 [...]
+         inkscape:connector-curvature="0" />
+      <path
+         id="path2401"
+         style="fill:url(#radialGradient3484)"
+         d="m 653.7,131.04 c -41.51,-10.16 -89.71,10.06 -108.65,49.12 -18.64,40.69 -12.73,88.49 4.86,128.35 15.09,34.26 33.77,67.42 56.59,97.25 L 722.69,200.71 C 712.3,196.86 705.97,184.62 706.37,173.73 700.6,149.77 675.99,136.28 653.7,131.04 Z"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+  <metadata
+     id="metadata19">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2008-08-11T22:08:25</dc:date>
+        <dc:description />
+        <dc:source>https://openclipart.org/detail/18379/heart-by-sivvus</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>sivvus</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>colour</rdf:li>
+            <rdf:li>heart</rdf:li>
+            <rdf:li>love</rdf:li>
+            <rdf:li>red</rdf:li>
+            <rdf:li>valentine</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/shop/fabric.png b/images/presets/shop/fabric.png
deleted file mode 100644
index 6c1427c..0000000
Binary files a/images/presets/shop/fabric.png and /dev/null differ
diff --git a/images/presets/shop/fabric.svg b/images/presets/shop/fabric.svg
new file mode 100644
index 0000000..394295d
--- /dev/null
+++ b/images/presets/shop/fabric.svg
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="13"
+   height="16"
+   viewBox="0 0 13 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="fabric3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="0.78590943"
+     inkscape:cy="9.569933"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4172"
+       width="8"
+       height="2.0000174"
+       x="4.5"
+       y="1045.8622"
+       ry="0.97761762" />
+    <rect
+       ry="0.97761762"
+       y="1042.8622"
+       x="4.5"
+       height="2.0000174"
+       width="8"
+       id="rect4174"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       ry="0.97761762"
+       y="1039.8622"
+       x="4.5"
+       height="2.0000174"
+       width="8"
+       id="rect4176"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cd9a00;fill-opacity:1;fill-rule:evenodd;stroke:#cd9a00;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00009b;fill-opacity:1;fill-rule:evenodd;stroke:#00009b;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4178"
+       width="8"
+       height="2.0000174"
+       x="4.5"
+       y="1036.8622"
+       ry="0.97761762" />
+    <rect
+       ry="0.97761762"
+       y="1046.8622"
+       x="3.500001"
+       height="2.0000174"
+       width="8"
+       id="rect4146"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4148"
+       width="8"
+       height="2.0000174"
+       x="3.500001"
+       y="1043.8622"
+       ry="0.97761762" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cd9a00;fill-opacity:1;fill-rule:evenodd;stroke:#cd9a00;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4150"
+       width="8"
+       height="2.0000174"
+       x="3.500001"
+       y="1040.8622"
+       ry="0.97761762" />
+    <rect
+       ry="0.97761762"
+       y="1037.8622"
+       x="3.500001"
+       height="2.0000174"
+       width="8"
+       id="rect4152"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00009b;fill-opacity:1;fill-rule:evenodd;stroke:#00009b;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4156"
+       width="8"
+       height="2.0000174"
+       x="2.500001"
+       y="1047.8622"
+       ry="0.97761762" />
+    <rect
+       ry="0.97761762"
+       y="1044.8622"
+       x="2.500001"
+       height="2.0000174"
+       width="8"
+       id="rect4158"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       ry="0.97761762"
+       y="1041.8622"
+       x="2.500001"
+       height="2.0000174"
+       width="8"
+       id="rect4160"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cd9a00;fill-opacity:1;fill-rule:evenodd;stroke:#cd9a00;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00009b;fill-opacity:1;fill-rule:evenodd;stroke:#00009b;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4162"
+       width="8"
+       height="2.0000174"
+       x="2.500001"
+       y="1038.8622"
+       ry="0.97761762" />
+    <rect
+       ry="0.97761762"
+       y="1048.8622"
+       x="1.5"
+       height="2.0000174"
+       width="8"
+       id="rect4164"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4166"
+       width="8"
+       height="2.0000174"
+       x="1.5"
+       y="1045.8622"
+       ry="0.97761762" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cd9a00;fill-opacity:1;fill-rule:evenodd;stroke:#cd9a00;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4168"
+       width="8"
+       height="2.0000174"
+       x="1.5"
+       y="1042.8622"
+       ry="0.97761762" />
+    <rect
+       ry="0.97761762"
+       y="1039.8622"
+       x="1.5"
+       height="2.0000174"
+       width="8"
+       id="rect4170"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00009b;fill-opacity:1;fill-rule:evenodd;stroke:#00009b;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4134"
+       width="8"
+       height="2.0000174"
+       x="0.5"
+       y="1049.8622"
+       ry="0.97761762" />
+    <rect
+       ry="0.97761762"
+       y="1046.8622"
+       x="0.5"
+       height="2.0000174"
+       width="8"
+       id="rect4138"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       ry="0.97761762"
+       y="1043.8622"
+       x="0.5"
+       height="2.0000174"
+       width="8"
+       id="rect4140"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#cd9a00;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#00009b;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-ren [...]
+       id="rect4142"
+       width="8"
+       height="2.0000174"
+       x="0.5"
+       y="1040.8622"
+       ry="0.97761762" />
+  </g>
+</svg>
diff --git a/images/presets/shop/frame.png b/images/presets/shop/frame.png
deleted file mode 100644
index 2bbec88..0000000
Binary files a/images/presets/shop/frame.png and /dev/null differ
diff --git a/images/presets/shop/frame.svg b/images/presets/shop/frame.svg
new file mode 100644
index 0000000..bee024e
--- /dev/null
+++ b/images/presets/shop/frame.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="frame5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#666666;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4145"
+       width="16"
+       height="12"
+       x="0"
+       y="1040.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4147"
+       width="14"
+       height="10"
+       x="1"
+       y="1041.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9bc4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4149"
+       width="12"
+       height="8"
+       x="2"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ece1bc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4151"
+       width="10"
+       height="6"
+       x="3"
+       y="1043.3622" />
+  </g>
+</svg>
diff --git a/images/presets/shop/furniture.svg b/images/presets/shop/furniture.svg
index f7e2324..e892eed 100644
--- a/images/presets/shop/furniture.svg
+++ b/images/presets/shop/furniture.svg
@@ -1,376 +1,73 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
-	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
-]>
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="416.263" height="469.455" viewBox="0 0 416.263 469.455" overflow="visible" enable-background="new 0 0 416.263 469.455" xml:space="preserve">
-<g>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M157.76,1.26c-0.296,1.804-6.83,1.475-6.342,0.396   C152.841,0.833,155.705,1.451,157.76,1.26z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M162.913,4.431c-1.925-0.288-3.677,1.088-4.756,0.396   C158.815,3.675,163.305,0.693,162.913,4.431z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M148.643,4.828c1.334-0.659,5.405-0.659,6.738,0   C153.726,6.952,150.655,5.461,148.643,4.828z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M145.472,7.206c0.748,1.557-2.819,1.606-5.153,2.378   c-33.01,10.925-66.249,24.924-94.735,39.242c3.491-4.924,9.828-6.112,15.062-8.72c10.38-5.172,20.96-10.345,32.503-15.062   c15.87-6.486,33.378-13.071,51.926-17.837C145.208,7.206,145.34,7.206,145.472,7.206z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M179.561,10.773c-4.043,2.72-8.926,3.699-13.477,5.55   c-7.519,3.058-15.237,6.069-23.783,8.72c2.998-3.476,9.895-3.054,13.08-6.342C164.428,17.045,170.321,12.235,179.561,10.773z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M180.354,14.737c0.824,0.222,0.84,0.619,0.396,1.189   c-10.382,3.76-21.738,8.646-32.107,11.099C158.41,22.126,170.262,19.312,180.354,14.737z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M183.128,19.097c-1.436,2.284-4.068,1.928-6.342,2.775   c-7.884,2.937-16.425,7.108-24.972,9.909C161.057,26.358,172.159,22.794,183.128,19.097z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M185.11,23.458c-9.352,4.257-20.745,8.587-30.125,11.495   C164.105,30.2,174.249,26.469,185.11,23.458z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M185.506,27.421c0.265,0,0.529,0,0.793,0c-0.439,1.706-2.685,1.832-3.964,2.378   c-8.941,3.821-19.496,8.596-28.936,12.685C162.599,35.959,174.785,32.422,185.506,27.421z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M187.885,32.574c-7.835,3.006-15.919,7.854-23.783,9.513   C171.541,38.673,179.47,33.697,187.885,32.574z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M106.626,36.935c-12.182,6.184-25.784,10.947-36.07,19.026   c3.77-6.591,13.248-8.967,21.404-13.08c4.777-2.409,9.119-4.773,13.477-6.342C106.078,36.426,106.12,36.913,106.626,36.935z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M189.867,37.331c-9.514,3.699-18.206,8.219-28.143,11.495   C170.479,44.368,179.063,39.739,189.867,37.331z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M191.849,42.484c-10.275,2.678-20.18,7.825-28.936,10.702   c7.344-5.34,18.142-7.227,26.558-11.495C190.288,41.931,192.224,41.051,191.849,42.484z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M109.005,44.862c-2.713,2.19-6.081,3.115-9.117,4.757   c-8.353,4.516-17.728,9.101-26.954,13.477c4.459-4.671,11.332-6.14,17.044-9.117c6.048-3.152,11.93-6.833,17.837-9.513   C108.135,44.675,108.459,44.879,109.005,44.862z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M193.434,46.051c-9.978,4.028-19.326,8.685-29.729,12.288   c3.999-3.422,9.43-4.64,14.27-6.738C182.804,49.506,187.676,46.657,193.434,46.051z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M41.62,47.24c-1.612,2.669-6.675,2.194-10.702,1.585   C33.004,46.816,37.543,47.26,41.62,47.24z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M43.999,49.222c2.7,4.749,3.297,10.333,4.756,15.459   c10.159,35.685,21.958,72.905,31.71,109.798c-1.444,0.537-1.958,2.005-3.567,2.378C64.376,135.207,52.11,93.301,40.431,50.808   C41.677,50.336,42.528,49.47,43.999,49.222z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M107.816,51.997c-3.243-0.072-4.242,2.1-7.135,2.378   C101.744,52.76,106.688,49.703,107.816,51.997z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M193.831,50.808c-8.773,4.043-17.965,7.667-27.747,10.703   c3.395-3.052,8.38-3.701,12.684-5.55C183.619,53.877,188.119,51.935,193.831,50.808z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M29.729,51.204c2.114,0,4.228,0,6.342,0   C48.952,92.7,59.29,135.216,72.538,177.253c1.823,5.783,4.322,11.646,4.36,17.837C61.509,148.513,49.402,98.651,34.089,51.997   C45.741,94.71,58.99,138.342,71.349,182.01c1.671,5.905,5.191,11.872,3.964,18.233C59.815,151.66,46.919,100.472,31.314,51.997   c11.342,43.983,26.454,89.094,38.449,133.977c1.668,6.241,4.786,12.407,3.964,19.026c-2.922-5.837-4.544-12.253-6.342-18.63   C55.905,145.65, [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M36.863,51.204c0.641-0.112,0.683,0.375,1.189,0.396   c6.875,23.272,13.846,46.401,20.215,69.763c6.35,23.289,14.511,46.144,19.819,70.159C63.646,145.452,50.922,97.658,36.863,51.204z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M65.403,55.564c-3.401-0.563-7.384-0.543-10.702-1.189   C56.907,53.06,63.224,53.539,65.403,55.564z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M99.492,53.979c0.824,0.222,0.84,0.618,0.396,1.189   c-8.917,3.635-18.049,9.168-26.161,12.288C80.962,61.61,91.165,58.733,99.492,53.979z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M114.158,54.375c-12.85,5.252-24.784,11.419-37.656,16.648   C87.934,64.354,99.958,58.277,114.158,54.375z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M195.812,55.564c-10.433,3.043-19.139,7.815-30.125,10.306   C175.022,61.988,185.159,56.809,195.812,55.564z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M197.398,59.528c-9.261,4.479-19.89,7.592-29.332,11.891   C176.197,66.07,187.724,62.016,197.398,59.528z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M110.59,60.717C99.536,65.653,87.495,71.706,76.898,75.78   c9.714-6.273,21.663-10.312,32.503-15.459C110.042,60.209,110.083,60.695,110.59,60.717z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M30.125,62.303c0.461-0.064,0.705,0.087,0.793,0.396   c13.562,45.632,25.904,92.81,40.034,138.733c0.865,2.812,2.635,5.802,0.793,8.721c-8.676-26.288-16.282-54.675-24.576-82.448   c-3.194-10.695-5.22-22.95-10.306-31.314C35.17,84.476,32.582,73.455,30.125,62.303z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M67.781,64.681c-2.325-0.053-4.489-0.268-6.342-0.793   C61.959,62.913,67.078,63.293,67.781,64.681z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M116.933,63.492c-12.688,6.097-27.086,11.616-38.053,18.234   c2.708-4.696,8.596-5.643,13.477-7.928C100.301,70.079,107.631,65.409,116.933,63.492z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M199.38,64.681c-10.32,3.954-21.192,9.456-31.314,12.288   C177.724,72.353,188.548,66.803,199.38,64.681z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M68.97,67.852c-2.249,0.879-8.697-0.78-12.684-0.792   C59.931,65.24,65.612,66.895,68.97,67.852z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M112.176,69.042c0.487,0.173,0.814,0.507,0.792,1.189   c-11.899,4.484-22.408,10.36-33.296,15.855C88.614,78.512,101.426,74.807,112.176,69.042z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M199.776,69.042c0.824,0.222,0.84,0.618,0.396,1.189   c-9.935,2.221-17.062,7.25-26.954,9.513C181.232,75.337,190.688,72.373,199.776,69.042z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M70.16,73.401c-5.134-0.68-11.075-0.552-15.855-1.585   c1.142-1.098,3.741-0.579,5.946-0.396C63.707,71.706,68.511,71.659,70.16,73.401z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M118.518,72.212c-11.933,5.508-23.883,10.999-34.881,17.441   C93.273,81.849,105.202,76.336,118.518,72.212z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M201.758,73.401c-4.975,4.539-13.41,5.617-19.423,9.117   C187.189,77.859,195.484,76.64,201.758,73.401z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M61.043,77.365c3.247-0.864,8.209-0.021,11.099,0.793   C70.132,79.223,64.193,77.761,61.043,77.365z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M202.947,77.365c-5.074,3.513-12.625,5.064-18.63,7.531   c-1.435,0.59-2.642,2.364-4.36,1.585C186.208,82.031,194.83,79.95,202.947,77.365z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M117.329,78.158c-11.124,5.392-22.417,10.615-32.503,17.044   c3.255-4.098,9.326-6.937,15.459-10.306c5.396-2.964,11.155-4.526,16.251-7.135C116.997,77.697,117.242,77.849,117.329,78.158z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M74.124,83.708c-4.396,1.156-11.081-2.082-17.441-1.585   C61.721,80.281,69.293,82.705,74.124,83.708z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M204.533,81.726c-7.061,5.491-18.935,6.169-26.558,11.099   C184.089,86.386,196.237,85.982,204.533,81.726z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M363.878,97.977c-1.595-1.734-1.955-6.097-3.171-7.928   c-4.558-6.862-16.279-3.925-26.161-2.378c-38.404,6.012-83.173,14.37-120.104,19.026c-3.674-4.002,3.778-4.8,6.342-5.55   c6.416-1.876,18.124-3.295,25.765-4.36c34.928-4.868,73.444-9.832,105.041-13.477c2.656-0.307,7.125,0.188,9.117,1.585   C363.894,87.133,367.501,94.65,363.878,97.977z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M124.86,86.482c-13.067,6.091-26.725,11.592-38.053,19.423   c3.069-5.15,10.909-7.892,18.63-11.495C112.497,91.115,117.914,87.504,124.86,86.482z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M204.929,86.482c-9.242,4.499-19.179,8.304-30.521,10.703   C184.013,93.048,194.647,89.941,204.929,86.482z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M63.025,87.275c4.13,0.759,9.954-0.177,12.288,2.378   C71.496,88.581,65.817,89.372,63.025,87.275z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M125.653,91.239c-12.417,5.552-24.175,11.763-36.071,17.837   c1.36-3.204,5.262-3.579,7.928-5.153c8.106-4.788,18.011-9.081,26.954-13.081C125.104,90.73,125.146,91.217,125.653,91.239z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M206.912,91.239c-9.758,4.248-20.072,7.939-30.522,11.495   C185.438,98.036,196.923,93.676,206.912,91.239z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M77.691,95.203c-5.432,0.541-11.563-1.648-17.837-1.586   C64.765,92.034,72.757,94.171,77.691,95.203z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M327.807,94.013c0.407,1.332-1.232,0.617-1.981,0.793   C325.418,93.474,327.058,94.189,327.807,94.013z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M337.321,94.806c0,0.264,0,0.528,0,0.793c-0.919,0.126-1.522-0.064-1.982-0.396   C335.467,94.746,337.068,93.838,337.321,94.806z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M323.843,94.806c0.407,1.332-1.232,0.617-1.981,0.793   C321.455,94.267,323.094,94.982,323.843,94.806z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M334.546,95.203c-0.059,0.866-0.999,0.851-1.982,0.792   C332.287,94.623,333.954,94.574,334.546,95.203z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M207.307,95.599c-8.617,4.859-19.057,7.896-28.936,11.495   c3.448-3.191,8.806-4.146,13.477-5.946c4.684-1.804,9.471-3.246,13.477-5.549C205.986,95.599,206.647,95.599,207.307,95.599z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M319.88,95.599c-0.05,1.189-2.25,1.271-2.775,0.792   C317.161,95.258,318.758,95.667,319.88,95.599z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M330.979,95.599c0.11,1.27-1.736,1.441-2.379,0.792   C328.645,95.379,329.927,95.605,330.979,95.599z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M126.446,96.392c-11.636,5.805-23.861,11.021-34.882,17.441   c0.687-3.161,4.6-4.248,7.135-5.549c8.048-4.132,18.283-8.131,26.557-12.288C125.897,95.883,125.939,96.37,126.446,96.392z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M325.033,96.788c-0.038,1.289-2.394,1.454-3.171,0.792   C321.95,96.348,323.834,96.911,325.033,96.788z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M320.276,97.581c-0.124,1.33-1.796,1.111-3.171,1.189   C317.229,97.44,318.901,97.659,320.276,97.581z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M77.294,100.752c-5.437-0.113-9.981-1.117-14.666-1.982   C65.947,97.862,73.621,99.38,77.294,100.752z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M371.013,189.145c-3.846-0.165-2.54-6.984-2.774-10.306   c-1.839-25.993-3.43-51.996-4.757-79.276c1.081,0.289,0.798-0.788,1.586-0.792c0.264,0,0.528,0,0.792,0   c0.965,15.216,1.851,30.848,2.775,46.376C369.516,159.952,371.708,176.118,371.013,189.145z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M37.656,99.167c0.353,0.175,0.709,0.348,0.793,0.792   c9.227,33.606,19.687,67.455,29.332,101.077c1.288,4.489,3.507,9.417,2.378,14.27c-3.337-6.556-4.679-14.17-6.739-21.405   c-4.083-14.342-8.469-29.023-12.684-43.602c-2.081-7.196-3.555-14.662-7.135-21.008C42.042,118.827,39.42,109.426,37.656,99.167z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M208.1,99.959c-0.707,1.683-3.006,2.465-4.756,3.171   c-6.514,2.627-15.983,5.153-21.405,7.927C188.589,105.288,199.917,104.195,208.1,99.959z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M127.239,103.526c-12.72,3.928-23.111,10.186-34.089,15.855   c3.298-4.835,9.747-6.048,15.062-8.721c5.617-2.824,11.589-5.926,17.044-8.324C126.392,102.259,127.42,102.288,127.239,103.526z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M209.29,105.508c0.265,0,0.528,0,0.793,0   c-10.419,3.983-20.774,8.03-32.107,11.099C187.514,112.272,199.39,108.162,209.29,105.508z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M71.745,106.698c-1.274,0.73-4.379-0.101-5.946-0.396   C66.794,104.649,71.014,105.56,71.745,106.698z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M126.446,109.076c-11.399,4.324-21.418,10.028-30.918,16.252   c-0.528-2.729,4.592-4.407,7.531-5.946c6.907-3.615,14.64-8.624,22.594-11.099C126.327,108.137,126.401,108.592,126.446,109.076z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M359.518,108.679c1.36,1.283,0.85,4.436,1.189,6.739   C359.351,114.131,359.66,111.18,359.518,108.679z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M72.142,109.076c2.955,1.273,8.82-0.364,9.909,2.775   C79.403,110.271,73.73,111.715,72.142,109.076z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M212.064,109.472c-8.314,3.577-17.038,6.745-25.765,9.91   c3.51-2.362,7.645-4.302,11.892-5.946C202.42,111.799,207.213,110.485,212.064,109.472z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M131.995,111.454c0.396,0,0.792,0,1.189,0   c-12.388,5.978-24.302,12.429-36.467,18.63C106.962,122.359,119.472,116.9,131.995,111.454z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M212.46,113.833c-7.406,3.825-17.087,5.374-24.179,9.513   c0.474-3.463,6.699-4.147,10.702-5.549c4.21-1.475,8.76-3.003,12.288-4.36C211.912,113.324,211.954,113.811,212.46,113.833z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M357.14,114.229c1.228,0.409,1.34,3.424,0.792,4.36   C356.753,118.05,357.236,115.85,357.14,114.229z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M65.799,114.625c0.264,0,0.528,0,0.793,0c3.741,0.059,8.101,1.114,11.891,1.585   c1.615,0.201,4.444-1.039,5.153,1.189C78.325,116.735,70.465,117.041,65.799,114.625z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M360.311,117.4c1.095,0.031,1.408,4.391,0,4.36   C360.614,120.032,359.821,118.088,360.311,117.4z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M211.667,118.192c0.488,0.173,0.814,0.507,0.793,1.189   c-10.668,2.94-19.159,8.06-30.521,10.306C191.419,125.426,202.144,122.41,211.667,118.192z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M130.41,118.589c-11.271,5.773-22.366,11.723-33.692,17.441   C106.722,128.99,118.007,123.231,130.41,118.589z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M67.781,120.967c3.712-1.364,8.562,1.092,12.684,1.189   c2.107,0.05,4.803-1.272,5.549,1.189C79.647,122.843,73.356,122.263,67.781,120.967z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M213.253,123.346c-9.135,3.153-17.624,6.952-26.558,10.306   C193.889,128.806,204.015,124.83,213.253,123.346z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M131.599,124.535c-11.782,5.658-23.563,11.318-34.089,18.233   c2.655-3.122,6.933-6.15,11.495-8.72c6.333-3.567,14.045-6.265,21.405-9.513C130.806,124.535,131.202,124.535,131.599,124.535z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M357.932,124.535c1.152,0.007,0.938,2.24,0.396,2.775   C357.618,126.454,357.632,125.489,357.932,124.535z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M87.997,130.48c-5.457-0.225-9.381-1.981-15.459-1.585   c0.825-1.269,2.909-1.059,5.946-0.793C81.725,128.386,86.509,129.017,87.997,130.48z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M211.271,127.706c-8.692,4.128-18.667,9.073-27.746,11.495   C192.529,135.125,201.058,130.573,211.271,127.706z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M137.148,128.895c-1.279,1.861-4.895,1.94-7.135,2.774   c-10.631,3.96-20.84,10.789-30.521,15.855c1.84-2.666,5.161-4.23,7.928-5.946C115.649,136.478,125.978,131.439,137.148,128.895z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M355.158,130.877c2.03-0.166,1.202,4.144,0.793,5.153   C355.312,134.686,355.138,132.878,355.158,130.877z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M358.329,130.877c0.898,0.667,1.897,5.372,0,5.153   C358.329,134.312,358.329,132.594,358.329,130.877z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M89.582,136.823c-4.728-0.557-8.561-2.01-14.27-1.586   C79.202,133.498,86.897,134.724,89.582,136.823z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M45.188,135.237c0.431,0.098,0.269,0.788,0.793,0.793   c5.298,21.75,12.124,42.603,18.233,63.817c1.948,6.766,5.108,14.059,3.964,21.405c-6.442-16.68-9.451-36.793-16.648-52.719   C50.065,157.044,46.523,145.535,45.188,135.237z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M135.166,135.633c-11.797,5.116-23.531,12.407-34.485,17.044   C111.2,146.282,122.997,139.059,135.166,135.633z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M140.319,139.201c-9.812,5.499-21.25,9.935-30.917,15.459   c-2.813,1.607-5.009,4.521-8.324,4.757c1.648-2.184,4.908-2.756,6.342-5.153C119.173,150.029,127.698,142.567,140.319,139.201z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M355.951,139.994c1.433-0.375,0.553,1.561,0.793,2.378   C355.311,142.748,356.191,140.811,355.951,139.994z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M352.78,140.787c1.368,0.855,0.838,5.354,0.793,6.342   C352.421,146.056,352.269,142.24,352.78,140.787z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M81.655,141.976c3.211,1.148,8.821-0.102,10.306,2.774   C88.964,143.386,83.526,144.464,81.655,141.976z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M143.887,141.976c-13.945,6.667-27.743,13.481-40.035,21.801   c2.808-3.88,7.601-5.716,11.495-8.324c8.413-5.634,17.821-9.313,27.747-13.477C143.358,141.976,143.622,141.976,143.887,141.976z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M82.051,145.543c-2.221-0.818-4.859-1.218-7.531-1.585   C76.123,142.456,81.656,143.259,82.051,145.543z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M356.347,143.165c1.232,0.088,0.67,1.973,0.793,3.171   C355.933,146.214,355.769,143.859,356.347,143.165z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M189.47,144.354c-0.14,5.279-3.571,10.696-4.756,16.251   c-1.287-0.23-1.844,0.27-2.775,0.396C183.193,155.765,184.171,146.862,189.47,144.354z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M145.869,145.146c0.487,0.173,0.814,0.507,0.792,1.189   c-14.935,6.073-27.499,14.518-41.224,21.801C117.298,158.856,131.709,152.127,145.869,145.146z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M182.732,148.318c0.884,0.406,0.313,2.653-0.793,2.378   C181.713,149.413,182.06,148.702,182.732,148.318z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M353.176,148.318c1.202-0.013,0.987,1.391,1.188,2.378   C352.946,150.926,353.16,149.523,353.176,148.318z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M180.354,149.507c2.029,1.457,1.554,4.764,0.396,6.738   c-1.02-1.358-0.743-4.014-1.982-5.153C178.895,150.162,179.995,150.205,180.354,149.507z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M82.051,150.696c3.594-0.683,9.114,0.132,12.288,1.189   C91.771,153.083,85.495,151.251,82.051,150.696z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M178.372,151.489c0.543,3.583,2.758,5.881,1.189,9.513   C178.156,159.295,174.531,152.206,178.372,151.489z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M177.975,161.398c-0.66,0-1.321,0-1.981,0   c-0.741-2.826-1.579-5.556-2.378-8.324C177.191,152.416,176.368,158.845,177.975,161.398z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M268.747,166.948c-1.69,0.423-1.99,2.237-3.964,2.378   c1.053-16.904-14.208-13.353-28.539-10.702c-28.847,5.335-61.679,10.375-91.564,15.459c-12.975,2.207-25.871,5.25-37.656,6.342   c-9.808,0.909-17.909-4.167-27.747-2.378c-0.499-1.415,1.719-2.487,2.378-2.775c3.296-1.439,10.851-1.712,15.855-2.378   c21.572-2.87,43.96-5.465,66.989-8.324c31.113-3.862,60.971-9.072,88.393-11.495C262.57,152.219,269.288,156.85,268.747,166.948z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M172.426,153.867c1.643,1.925,1.821,5.314,2.775,7.928   c-0.793,0-1.585,0-2.378,0c-0.235-2.803-1.354-4.724-1.982-7.135C171.579,154.605,172.165,154.399,172.426,153.867z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M350.401,154.263c1.419,0.167,1.116,2.056,1.189,3.567   C349.999,157.837,350.489,155.762,350.401,154.263z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M172.03,162.191c-0.661,0-1.321,0-1.982,0   c-0.326-2.184-1.315-3.706-1.585-5.946C171.337,154.045,171.224,159.882,172.03,162.191z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M169.255,162.587c-0.792,0-1.585,0-2.378,0   c-0.682-1.168-0.481-3.218-1.585-3.964C167.732,154.826,168.614,160.093,169.255,162.587z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M163.309,159.812c0.366,1.819-0.992,1.915-0.792,3.568   c-2.626,0.148-4.587,0.962-7.531,0.792C157.625,162.584,160.181,160.913,163.309,159.812z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M164.895,160.209c0.673,0.565,1.371,2.15,0.793,2.775   c-0.528,0-1.057,0-1.585,0C164.389,162.082,164.456,160.959,164.895,160.209z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M350.797,160.209c1.931,0.698,1.317,5.417,1.189,5.946   C350.358,165.406,351.587,161.797,350.797,160.209z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M234.261,162.191c-0.415,1.562-1.702,1.115-2.774,0.793   C231.87,162.177,233.009,162.127,234.261,162.191z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M230.297,162.984c0.027,1.265-2.491,1.028-2.774,0.792   C227.579,162.643,229.176,163.052,230.297,162.984z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M226.73,163.776c-0.382,0.807-1.521,0.856-2.774,0.793   C224.004,163.38,226.205,163.298,226.73,163.776z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M84.429,163.776c4.844,0.441,9.937,0.634,12.685,3.171   C93.226,165.55,87.703,165.788,84.429,163.776z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M220.388,164.173c1.024,1.309-3.132,1.621-5.153,1.982   c-35.942,6.413-74.838,12.081-109.797,19.423c-8.012-1.616-15.139-4.46-24.576-3.567c7.511-3.851,16.129,2.593,24.576,1.981   c8.753-0.633,18.519-3.12,28.54-4.756C161.722,174.705,194.158,168.651,220.388,164.173z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M231.09,164.569c-0.056,1.134-1.653,0.725-2.774,0.792   C228.372,164.228,229.969,164.637,231.09,164.569z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M227.126,165.362c-0.044,1.013-1.327,0.787-2.378,0.793   C224.737,164.983,226.583,164.813,227.126,165.362z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M240.604,164.966c0.212,1.038-2.905,1.964-2.775,0.396   C238.759,165.236,239.317,164.736,240.604,164.966z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M223.163,165.362c2.062,0.624-1.304,2.13-1.981,1.189   C220.99,165.303,222.999,166.254,223.163,165.362z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M237.037,165.758c-0.382,0.946-2.309,1.54-3.172,0.793   C233.954,165.318,235.838,165.881,237.037,165.758z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M246.153,165.758c0.379,1.12-2.578,1.958-2.378,0.396   C244.708,166.164,244.942,165.472,246.153,165.758z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M220.388,166.551c-0.056,1.134-1.653,0.725-2.774,0.792   C217.663,166.155,219.863,166.073,220.388,166.551z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M229.901,166.551c0.793,0,1.586,0,2.379,0c0.375,1.432-1.562,0.553-2.379,0.792   C229.901,167.08,229.901,166.815,229.901,166.551z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M242.982,166.551c-0.049,1.189-2.249,1.271-2.774,0.792   C240.262,166.21,241.861,166.619,242.982,166.551z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M215.235,166.948c1.114,1.633-2.91,1.657-4.756,1.981   c-23.979,4.223-50.973,8.953-75.313,13.477c-9.26,1.722-18.859,3.95-27.747,4.757c-9.149,0.831-17.439-4.428-26.161-2.775   c3.774-2.519,8.363-0.831,12.288,0c3.725,0.789,7.651,2.109,11.495,1.982c8.452-0.279,18.001-3.174,27.351-4.756   c26.385-4.465,57.241-9.888,82.447-14.666C214.971,166.948,215.103,166.948,215.235,166.948z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M229.109,167.344c-0.045,1.013-1.327,0.787-2.379,0.793   C226.718,166.965,228.566,166.794,229.109,167.344z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M239.415,167.344c-0.056,1.134-1.653,0.725-2.774,0.793   C236.689,166.947,238.889,166.865,239.415,167.344z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M225.145,167.74c0.029,1.352-1.469,1.174-2.775,1.189   C222.439,167.677,223.938,167.855,225.145,167.74z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M235.054,168.929c-1.494-0.305-1.895,0.484-3.171,0.396   C231.737,167.875,235.333,166.989,235.054,168.929z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M87.204,168.137c1.951,0.824,5.878-0.33,6.342,1.982   C91.529,169.361,87.978,170.138,87.204,168.137z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M220.388,168.533c-1.471,2.246-4.536,1.594-6.738,1.982   c-24.729,4.355-52.196,9.454-77.691,13.873c-9.436,1.636-18.915,4.209-28.143,5.153c-8.555,0.875-16.628-3.975-24.972-3.171   c8.841-2.24,14.619,2.808,24.972,1.982c8.941-0.713,18.214-3.256,27.747-4.756c26.537-4.178,59.594-10.454,84.033-15.062   C219.86,168.533,220.124,168.533,220.388,168.533z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M268.747,168.533c0.265,0,0.528,0,0.793,0   c4.977,73.878,10.089,150.575,15.459,225.541c1.322,18.469,2.515,37.269,3.964,55.891c0.435,5.589,1.892,12.572-3.567,15.854   c-6.849-95.252-14.023-199.265-20.216-294.907C266.576,170.326,267.581,169.349,268.747,168.533z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M230.297,168.929c-0.124,1.33-1.796,1.111-3.171,1.189   C227.25,168.79,228.922,169.008,230.297,168.929z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M224.749,169.722c0.895,1.675-1.694,1.113-1.982,1.189   c-7.657,2.013-17.399,3.244-25.765,4.756c-19.017,3.438-38.525,7.025-58.664,10.702c-9.879,1.804-20.161,4.319-29.729,5.153   c-9.139,0.797-16.938-2.999-25.368-3.171c8.207-1.812,15.868,3.07,24.179,2.378c9.319-0.776,19.12-3.259,28.936-5.153   C164.738,180.1,196.826,175.161,224.749,169.722z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M349.212,173.686c1.437,0.28,0.546,2.889,0.793,4.36   C348.939,177.475,348.69,174.596,349.212,173.686z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M53.512,176.064c3.552,11.942,8.068,25.704,11.495,38.449   c0.979,3.641,3.777,8.933,0.396,11.892C61.355,209.21,54.989,194.916,53.512,176.064z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M166.084,208.171c2.471-8.76,5.767-16.695,7.928-25.765   c1.028,0.072,2.655-1.267,3.171-0.396c-2.942,7.194-3.697,17.218-7.531,23.386C168.884,206.631,167.769,208.054,166.084,208.171z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M168.462,183.199c0.528,0,1.057,0,1.585,0   c0.605,1.619,1.345,4.16,0,5.549C169.212,187.36,168.282,184.323,168.462,183.199z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M167.273,183.596c0.995,3.732,3.132,7.144,1.189,10.702   c-1.942-2.682-1.982-7.267-3.568-10.306C166.107,184.279,166.061,183.308,167.273,183.596z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M163.706,183.992c1.351,4.469,5.309,10.841,2.775,15.459   c-1.574-4.9-3.175-9.773-4.36-15.062C162.748,184.355,163.632,184.579,163.706,183.992z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M159.345,184.785c0.396,0,0.793,0,1.189,0   c1.976,5.498,6.057,12.868,4.36,19.423C162.875,197.903,160.812,191.642,159.345,184.785z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M157.363,185.181c0.641-0.112,0.683,0.375,1.189,0.396   c0.879,8.182,6.9,16.406,4.756,23.783C161.097,201.956,156.531,193.026,157.363,185.181z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M82.051,185.974c0.238,0.907-2.743,1.44-2.378,0   C80.599,185.852,81.31,185.198,82.051,185.974z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M262.008,189.145c1.069-0.049,1.416,4.082,0,3.964   C262.008,191.788,262.008,190.466,262.008,189.145z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M155.778,189.542c1.954,2.963,2.381,7.765,3.567,11.891   c1.083,3.769,4.407,8.252,1.586,10.703c-2.891-5.169-2.837-13.283-6.342-17.837C155.405,193.133,155.281,191.026,155.778,189.542z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M83.24,191.523c0.3,3.964-1.91,7.824-3.171,11.495   c-9.49,27.628-19.231,56.795-28.539,84.826c-1.924,0.718-2.699,2.586-4.757,3.171c11.669-30.641,20.206-64.522,32.503-95.924   C79.965,193.332,80.333,190.436,83.24,191.523z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M259.63,192.316c1.25-0.51,1.25,3.285,0,2.775   C259.63,194.166,259.63,193.241,259.63,192.316z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M54.701,193.505c1.799,3.607,3.537,11.245,5.549,18.234   c2.318,8.05,7.063,15.301,3.171,21.008c-2.877-10.731-5.595-21.623-9.513-31.314c0.999,7.347,4.715,16.776,7.135,24.972   c1.499,5.079,3.544,9.057,0.396,12.685c-3.165-10.445-5.282-21.936-9.513-31.314c1.238,7.18,4.513,16.148,6.739,24.575   c1.211,4.588,3.872,8.817,0.792,12.288c-2.659-10.289-5.472-20.424-8.72-30.125c0.927,8.418,4.693,18.086,7.135,26.954   c0.702,2.548,2.473, [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M262.405,193.505c0.907,0.331,1.085,2.436,0.396,3.171   C261.594,196.645,261.872,194.084,262.405,193.505z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M154.192,195.091c0.461-0.064,0.705,0.087,0.793,0.396   c0.413,2.965,1.804,6.299,2.774,9.513c0.917,3.038,2.871,6.896,0.396,8.721c-1.731-4.215-2.378-9.513-4.36-13.477   c-1.048,4.556,5.006,11.097,1.982,15.062c-2.189-2.303-1.933-7.052-3.567-9.91c-1.554,3.38,4.419,9.406,0.396,11.495   c-0.317-1.929-0.694-3.798-1.585-5.153c-1.626,1.931,2.7,5.748-0.396,6.738c-1.536,0.215-0.343-2.3-1.585-2.378   c-1.113,0.759,0.544,2.067,0.396,3.1 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M260.026,196.676c1.433-0.375,0.554,1.561,0.793,2.378   C259.345,198.962,259.708,197.649,260.026,196.676z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M224.352,199.847c-0.031,1.207-2.592,0.929-3.171,0.396   C221.901,199.725,223.573,199.115,224.352,199.847z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M262.801,199.451c0.866,0.059,0.851,0.999,0.792,1.982   C262.221,201.71,262.172,200.043,262.801,199.451z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M405.499,199.847c1.825,0.157,1.522,2.442,1.585,4.36   C405.946,203.363,405.659,201.668,405.499,199.847z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M257.251,201.433c1.489,0.625,1.05,3.179,1.189,5.153   C256.678,206.235,257.427,203.371,257.251,201.433z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M260.026,201.433c1.271-0.111,1.441,1.736,0.793,2.378   C259.806,203.767,260.033,202.484,260.026,201.433z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M215.631,201.829c7.803,0.522,17.696-1.048,24.18,0.793   c-13.197-0.629-31.501,0.82-46.773,0c-6.049-0.325,2.546-0.788,3.568-0.793C203.303,201.793,209.574,201.856,215.631,201.829z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M244.963,201.829c0.407,1.332-1.232,0.617-1.981,0.793   C242.575,201.29,244.214,202.005,244.963,201.829z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M262.801,202.622c0.461-0.065,0.705,0.087,0.792,0.396   c5.027,77.348,11.592,158.016,16.252,235.848c-1.853-9.326-1.879-19.215-2.378-28.937c-1.426-27.799-4.302-57.768-6.343-87.204   c-2.738-39.502-5.752-79.352-8.323-118.914C262.801,203.415,262.801,203.018,262.801,202.622z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M202.551,204.208c-0.678,1.189-1.442,0.44-2.774,0.396   C199.987,203.249,201.686,203.997,202.551,204.208z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M408.669,203.811c1.798,0.977,1.725,3.825,1.981,6.342   C409.233,208.797,409.203,206.052,408.669,203.811z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M260.422,204.208c1.167,0.936,1.219,4.693,0.793,5.946   C259.63,209.492,260.765,206.111,260.422,204.208z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M225.937,206.189c-0.157,1.692-3.321,0.378-4.756,0.792   C221.338,205.29,224.502,206.604,225.937,206.189z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M401.931,206.982c1.251-0.51,1.251,3.285,0,2.775   C401.931,208.832,401.931,207.907,401.931,206.982z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M258.044,207.378c1.47,2.098,0.567,6.567,1.189,9.513   C257.197,215.57,258.075,209.404,258.044,207.378z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M396.778,208.171c1.632,2.729,0.911,7.809,1.982,11.099   C396.228,217.667,396.92,210.856,396.778,208.171z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M325.429,210.946c-16.834,0.21-34.542-0.454-50.736,0.396   c3.246-2.149,8.154-1.189,12.684-1.189C300.062,210.153,316.832,209.399,325.429,210.946z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M329.79,210.946c-0.925,0-1.85,0-2.774,0   C327.097,209.795,330.133,209.13,329.79,210.946z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M352.78,211.739c-19.002,2.092-44.25-0.236-62.629,1.189   c2.396-2.157,7.566-1.189,11.892-1.189C319.42,211.739,342.478,211.574,352.78,211.739z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M286.98,212.135c-0.103,0.722-3.283,1.585-3.171,0   C284.386,211.552,286.404,211.552,286.98,212.135z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M402.328,212.531c1.781,1.521,0.919,5.687,1.585,8.324   C402.381,219.083,402.694,215.468,402.328,212.531z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M304.025,213.721c-0.059,0.867-0.999,0.851-1.982,0.792   C301.765,213.141,303.432,213.092,304.025,213.721z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M368.635,213.324c-19.688,1.786-45.357,0.232-61.836,1.189   c-0.243-0.353-0.479-0.709,0-0.792C322.58,212.878,348.438,213.531,368.635,213.324z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M254.874,214.117c1.837-0.251,1.004,2.167,1.188,3.568   C254.727,217.435,255.03,215.546,254.874,214.117z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M261.215,214.117c0.337-0.073,0.374,0.155,0.396,0.396   c5.252,75.029,10.594,144.96,15.062,219.199C270.665,364.256,265.758,287.602,261.215,214.117z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M324.24,216.099c-1.188,0-2.378,0-3.567,0   C321.103,215.225,324.482,214.122,324.24,216.099z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M390.833,214.91c2.336,2.843,1.889,10.496,1.981,14.27   C391.237,225.339,391.629,219.53,390.833,214.91z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M340.492,217.288c1.057,0,2.114,0,3.171,0c0.242,1.563-2.176,0.466-3.171,0.792   C340.492,217.816,340.492,217.552,340.492,217.288z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M407.876,217.288c1.543,1.503-0.223,3.748,0.793,5.946   C406.736,223.065,407.402,218.589,407.876,217.288z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M258.441,217.685c0.461-0.065,0.705,0.087,0.793,0.396   c5.005,61.739,8.497,123.714,13.08,184.714c-2.308-2.978-1.359-7.211-1.585-10.702c-3.624-55.953-8.429-117.265-12.288-173.219   C258.441,218.477,258.441,218.081,258.441,217.685z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M255.667,219.667c1.013,0.044,0.786,1.327,0.792,2.378   C255.027,222.42,255.906,220.483,255.667,219.667z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M385.679,220.855c2.09,7.644,1.992,16.55,3.567,25.369   C386.147,239.934,386.058,228.548,385.679,220.855z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M403.913,223.234c1.859,1.536,0.086,5.651,0.793,7.531   C402.487,230.388,403.603,224.848,403.913,223.234z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M399.156,224.026c0.396,0,0.793,0,1.189,0c0.262,3.306-0.524,7.66,0.396,10.306   C398.575,234.117,399.413,227.474,399.156,224.026z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M256.062,224.819c0.891,0.325,1.85,2.618,0,2.378   C256.063,226.405,256.062,225.612,256.062,224.819z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M379.337,227.198c2.196,2.068,2.061,8.46,1.981,11.495   C379.891,235.628,380.264,230.762,379.337,227.198z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M253.288,228.783c1.908,0.724,0.772,2.309,1.189,4.756   C252.945,233.089,253.406,230.647,253.288,228.783z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M393.607,230.765c1.448,2.119,1.639,5.496,1.586,9.116   C394.067,237.649,393.216,233.212,393.607,230.765z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M256.458,231.558c0.461-0.064,0.706,0.087,0.793,0.396   c3.823,56.247,8.201,117.722,11.892,175.201c-5.809-56.197-8.388-117.786-12.685-174.408   C256.458,232.35,256.458,231.954,256.458,231.558z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M160.931,233.54c-0.661,0-1.321,0-1.982,0   C158.951,232.333,161.274,231.9,160.931,233.54z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M401.931,233.936c0.063-0.465,0.723-0.334,1.188-0.396   c0.205,1.009,0.676,1.537-0.792,1.586C402.361,234.563,402.393,234.002,401.931,233.936z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M374.184,233.936c2.184,6.141,3.102,13.547,3.567,21.404   C375.952,249.07,374.876,239.999,374.184,233.936z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M135.562,235.522c-1.189,0-2.378,0-3.567,0   C132.355,234.342,135.709,233.891,135.562,235.522z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M183.128,235.522c-13.506,0.015-30.368-0.012-45.188,0   C150.938,234.215,169.718,234.207,183.128,235.522z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M188.678,234.729c-0.044,1.013-1.328,0.786-2.378,0.793   C185.924,234.089,187.86,234.968,188.678,234.729z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M254.081,235.125c0.973,0.266,1.214,2.307,0.793,2.774   C253.74,237.844,254.149,236.247,254.081,235.125z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M149.436,237.9c-0.9-0.289-3.093,0.714-2.775-0.793   C147.582,236.819,149.623,236.104,149.436,237.9z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M210.083,237.107c-18.669,1.872-39.755,0.122-56.683,0.793   c-0.674,0.146-0.748-0.31-0.793-0.793C173.3,236.412,191.226,236.581,210.083,237.107z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M215.631,237.107c0.51,1.251-3.284,1.251-2.774,0   C213.565,237.109,215.163,236.04,215.631,237.107z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M168.858,239.089c0.176,1.001-3.438,1.43-3.171,0   C166.594,238.836,168.079,238.303,168.858,239.089z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M235.847,239.089c-19.086,1.834-41.616,0.275-62.232,0.792   C190.18,237.959,216.083,239.637,235.847,239.089z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M241,239.881c-0.66,0-1.32,0-1.981,0C239.02,238.674,241.343,238.242,241,239.881   z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M254.477,239.089c1.069-0.049,1.416,4.082,0,3.964   C254.899,241.303,253.693,239.99,254.477,239.089z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M367.842,239.089c2.606,2.252,1.146,7.613,2.378,11.891   C367.638,248.806,368.503,243.184,367.842,239.089z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M190.66,241.071c0.792,0,1.585,0,2.378,0c0.375,1.433-1.561,0.553-2.378,0.793   C190.66,241.599,190.66,241.335,190.66,241.071z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M225.937,243.449c-1.473,1.422-4.429,0.7-6.342,0.396   C220.27,242.418,224.643,242.981,225.937,243.449z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M313.934,245.828c-0.66,0-1.321,0-1.981,0   C311.955,244.621,314.278,244.188,313.934,245.828z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M243.775,245.035c0.793,0,1.585,0,2.378,0c0.376,1.433-1.562,0.553-2.378,0.793   C243.775,245.563,243.775,245.299,243.775,245.035z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M276.674,245.035c11.23,0,22.462,0,33.692,0   c-6.83,1.424-17.802,0.793-26.558,0.793C281.123,245.828,277.958,246.716,276.674,245.035z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M363.085,245.431c0.641-0.111,0.683,0.375,1.189,0.396   c0.63,8.354,2.983,14.985,3.171,23.782C365.11,262.433,364.566,253.464,363.085,245.431z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M381.715,245.431c2.041,2.584,1.492,7.757,1.586,12.288   C381.842,254.784,381.788,248.445,381.715,245.431z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M332.96,246.621c0.321,0.075,0.396,0.397,0.793,0.396c0,0.265,0,0.529,0,0.793   c-0.919,0.127-1.521-0.063-1.982-0.396C331.861,246.842,332.955,247.275,332.96,246.621z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M251.703,247.809c1.04,0.597,1.467,3.299,0.792,4.36   C251.316,251.63,251.798,249.431,251.703,247.809z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M255.27,248.206c3.954,45.576,6.437,94.813,9.909,139.923   c-2.035-4.182-1.479-10.211-1.981-16.252c-3.201-38.433-5.517-82.515-8.324-122.481   C254.839,248.833,254.808,248.272,255.27,248.206z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M286.98,248.999c-0.289,1.354-2.869-0.112-4.756,0.396   C282.51,248.044,286.097,248.503,286.98,248.999z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M298.079,250.584c0.925,0,1.851,0,2.775,0c0.317,1.507-1.875,0.504-2.775,0.792   C298.079,251.113,298.079,250.848,298.079,250.584z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M358.725,250.584c1.639,0.272,1.433,2.189,1.586,3.171   c1.103,7.053,2.14,15.248,2.378,22.197C360.581,268.284,359.599,259.488,358.725,250.584z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M323.448,252.169c0.375,1.433-1.562,0.553-2.379,0.793   C321.114,251.95,322.396,252.175,323.448,252.169z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M252.099,254.547c1.105-0.275,1.677,1.973,0.792,2.379   C251.459,257.301,252.338,255.365,252.099,254.547z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M371.013,254.944c1.997,4.03,1.23,8.396,1.981,13.478   C370.931,265.568,371.017,258.546,371.013,254.944z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M353.968,258.116c2.041,5.755,2.542,13.05,3.964,19.422   C355.292,272.383,354.542,265.338,353.968,258.116z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M252.495,259.701c0.461-0.064,0.706,0.088,0.793,0.396   c2.619,37.782,4.771,74.381,7.531,111.383c-2.386-8.646-2.073-18.11-2.774-27.35c-2.101-27.684-3.922-56.484-5.55-83.24   C252.495,260.494,252.495,260.097,252.495,259.701z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M38.449,304.888c-1.102-7.487-3.298-17.313-7.135-23.387   c2.131-6.589,3.64-13.801,5.549-20.611c3.398,8.493,4.973,18.81,8.324,27.351c-0.992,0.989-0.215,3.749-1.982,3.963   c-2.299-7.874-4.067-16.279-7.135-23.386c1.075,8.307,4.752,17.444,7.135,25.765c-2.302,5.361-3.857,11.47-5.946,17.044   c-2.563-6.949-3.765-15.261-6.738-21.801c0.957,7.5,4.082,16.266,6.342,23.783c-1.968,3.449-2.027,8.808-4.756,11.495   c-0.886-5.192-2.155-10 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M349.609,260.89c1.624,3.793,0.971,9.863,1.981,14.27   C349.093,272.478,349.798,264.567,349.609,260.89z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M250.117,263.665c3.236,32.164,4.557,61.207,6.738,92.357   c-1.979-3.1-1.282-7.24-1.585-10.703c-2.272-25.932-3.429-54.022-5.55-80.465C249.686,264.292,249.655,263.731,250.117,263.665z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M345.645,267.628c0.64-0.111,0.683,0.375,1.188,0.396   c1.09,8.027,3.064,15.169,5.153,22.197C347.472,285.091,347.258,275.66,345.645,267.628z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M95.528,268.025c1.727,5.145,1.899,11.842,3.171,17.44   C95.973,281.569,95.511,273.349,95.528,268.025z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M99.888,269.214c1.896,3.389,1.809,8.761,2.774,13.08   C100.58,279.221,99.938,273.05,99.888,269.214z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M119.708,269.61c1.605,4.077,1.612,9.751,2.378,14.667   C120.202,280.719,119.335,274.111,119.708,269.61z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M340.492,269.61c0.641-0.111,0.683,0.375,1.189,0.396   c1.526,9.976,4.203,20.893,5.549,29.729c-3.48-0.04-2.735-4.136-3.171-6.342c-1.339-6.789-3.428-14.172-3.964-22.594   C339.984,270.16,340.47,270.117,340.492,269.61z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M105.438,270.006c1.627,2.602,1.284,7.173,1.982,10.703   C106.005,278.052,105.117,273.117,105.438,270.006z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M131.599,270.006c1.706,1.994,1.498,5.902,1.982,9.117   C131.952,277.265,131.58,272.209,131.599,270.006z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M175.201,270.403c1.838,2.224,0.793,6.383,1.982,9.91   C175.364,278.385,175.054,272.99,175.201,270.403z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M188.678,270.799c1.18,1.493,0.704,5.872,1.585,8.721   C188.372,278.182,188.269,273.138,188.678,270.799z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M212.46,270.799c1.272,4.139,1.035,10.564,1.982,16.648   C211.669,284.254,212.294,275.617,212.46,270.799z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M225.937,270.799c0.979,1.952,0.949,7.586,1.189,9.91   C224.879,278.81,225.135,273.681,225.937,270.799z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M239.415,270.799c2.035,2.854,1.404,8.373,1.981,12.685   C239.753,280.471,239.362,274.198,239.415,270.799z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M110.194,271.196c2.281,1.947,1.35,7.106,2.378,10.306   C110.411,279.435,111.043,274.575,110.194,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M137.544,271.196c0.396,0,0.793,0,1.189,0   c-0.334,4.518,1.139,10.424,1.982,15.062C137.899,283.155,137.935,275.444,137.544,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M161.724,271.196c1.835,4.508,1.779,10.905,3.171,15.855   C162.307,283.542,161.646,276.056,161.724,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M168.462,271.196c1.605,3.283,1.699,8.078,2.378,12.288   C168.828,280.608,168.561,275.986,168.462,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M194.624,271.196c1.051,3.428,0.899,10.812,1.982,15.459   C194.478,283.21,194.033,276.045,194.624,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M206.515,271.196c0.396,0,0.792,0,1.188,0c-1.305,3.324,0.551,8.574-0.396,11.495   C205.733,279.75,205.662,274.439,206.515,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M219.199,271.196c1.487,3.799,0.923,9.647,1.586,14.27   C218.744,282.45,218.27,274.661,219.199,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M330.186,271.196c1.953,3.9,1.046,8.213,1.981,13.081   C329.998,281.425,330.57,275.833,330.186,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M335.338,271.196c1.918,2.478,1.547,9.241,1.586,12.288   C335.708,280.305,335.408,274.213,335.338,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M376.167,271.196c0.337-0.073,0.374,0.154,0.396,0.396   c0.338-0.073,0.374,0.154,0.396,0.396c0.772,23.556,3.254,45.335,4.36,69.366c0.129,2.794,1.146,6.602-2.378,7.531   c-1.482-25.222-3.364-50.734-4.757-75.312C375.241,273.177,375.492,271.974,376.167,271.196z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M125.256,271.592c1.678,3.872,1.823,9.276,2.775,13.873   c-1.656-0.797-1.611-3.728-1.982-5.945C125.591,276.785,124.789,273.949,125.256,271.592z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M149.04,271.592c1.637,3.411,1.34,10.779,1.982,13.873   C149.197,282.242,148.9,275.467,149.04,271.592z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M280.638,271.592c1.559,2.802,0.6,8.121,1.586,11.495   C280.085,281.091,280.331,274.727,280.638,271.592z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M91.96,271.989c1.331,1.048,0.841,3.916,1.189,5.945   C91.221,277.475,91.481,273.647,91.96,271.989z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M181.146,271.989c1.838,1.465,1.187,5.419,1.585,8.324   C180.841,278.901,181.667,274.772,181.146,271.989z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M307.196,271.989c1.282,1.063,1.499,4.97,1.189,6.342   C306.849,277.356,307.268,274.426,307.196,271.989z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M233.073,272.385c1.999,3.021,0.653,9.388,1.981,13.08   C232.542,283.192,233.164,275.769,233.073,272.385z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M285.395,272.385c0.396,0,0.793,0,1.188,0c-0.716,5.354,0.583,11.73,1.982,16.251   C284.95,284.926,285.73,278.918,285.395,272.385z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M290.547,272.782c1.548,1.228,0.776,4.772,1.586,6.738   C290.328,278.731,289.954,274.681,290.547,272.782z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M296.494,272.782c1.426,4.286,1.196,11.255,2.774,15.854   C296.473,285.466,296.196,277.731,296.494,272.782z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M319.88,272.782c0.396,0,0.792,0,1.188,0c0.015,2.893,0.565,5.248,0.793,7.928   C319.755,279.512,320.694,275.271,319.88,272.782z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M201.362,273.178c2.277,4.114,0.284,10.457,1.982,14.666   C200.402,285.476,202,276.538,201.362,273.178z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M301.25,273.574c2.521,3.426,1.051,10.842,2.775,15.062   C300.88,285.835,302.442,278.329,301.25,273.574z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M313.934,273.574c1.66,3.493,1.217,9.089,2.378,13.081   C313.857,284.146,313.765,277.416,313.934,273.574z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M114.554,275.16c2.116,2.376,1.808,7.177,2.775,10.702   C115.376,283.323,115.077,279.129,114.554,275.16z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M143.49,275.556c1.479,2.655,1.487,8.767,1.982,11.099   C143.41,284.519,143.136,278.825,143.49,275.556z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M34.089,276.746c3.451,5.666,4.595,13.639,6.738,20.611   c-2.236-2.445-2.929-6.482-3.964-9.909C35.788,283.886,34.956,280.222,34.089,276.746z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M371.806,277.141c2.253,25.702,3.916,48.865,4.756,73.331   c-2.464-1.198-1.752-4.955-1.981-7.531c-1.808-20.272-2.549-43.37-4.36-65.007C370.807,277.728,371.219,277.348,371.806,277.141z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M325.033,279.124c0.396,0,0.793,0,1.189,0c-0.809,2.733,0.682,5.33,0.793,8.324   C324.953,286.075,325.159,282.433,325.033,279.124z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M369.031,279.917c2.292,22.657,3.959,47.937,4.757,69.763   c-2.209-0.717-1.38-4.915-1.585-7.928c-1.332-19.534-3.276-41.748-3.964-60.646C368.609,280.815,368.839,280.384,369.031,279.917z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M308.385,282.294c1.706,1.2,1.032,4.781,1.585,7.135   C308.192,288.487,308.116,283.993,308.385,282.294z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M366.256,283.484c0.461-0.064,0.706,0.087,0.793,0.396   c1.72,21.271,3.365,44.729,4.36,65.402c-2.573-0.81-2.198-4.689-2.379-6.738c-1.081-12.332-1.673-26.297-2.378-41.224   c-0.269-5.676-1.711-12.529-0.793-16.648C365.749,284.033,366.235,283.991,366.256,283.484z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M109.401,283.88c1.174,1.023-0.552,2.483,0.396,3.567   C108.285,287.632,109.047,284.351,109.401,283.88z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M89.979,284.277c0.625,0.828,0.275,2.632,0.793,3.567   c-1.155,0.066-5.088,0.133-6.342,0C85.828,286.203,87.633,284.97,89.979,284.277z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M226.333,284.277c1.245,0.505,1.402,3.655,0.793,4.756   C225.814,288.366,226.246,285.195,226.333,284.277z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M336.924,286.258c1.066,3.668,2.104,10.643,1.981,14.666   C337.3,297.22,336.45,290.73,336.924,286.258z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M363.878,286.655c2.74,19.834,3.016,41.147,4.757,61.836   c-4.651-17.245-4.344-42.75-5.55-60.25C362.796,287.159,363.874,287.443,363.878,286.655z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M244.171,291.412c0,1.188,0,2.378,0,3.567   c-62.317,1.282-127.22-1.579-196.209-1.982c2.694-5.46,9.284-4.239,18.233-3.964C119.541,290.677,182.583,289.829,244.171,291.412z   "/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M361.104,289.429c2.27,9.226,1.973,21.018,2.774,31.711   C362.055,311.141,359.56,299.625,361.104,289.429z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M328.997,292.6c0.64,1.466-2.057,2.58-2.774,3.964   c-15.747,1.146-29.874-0.422-46.377,0c-0.495-0.883-0.954-4.47,0.396-4.756C296.936,292.736,315.137,291.787,328.997,292.6z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M331.375,294.979c0.645,8.483,6.306,23.876-1.188,28.539   C331.328,315.659,323.539,299.405,331.375,294.979z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M28.143,297.753c2.803,6.313,4.394,13.84,6.342,21.008   C31.248,313.137,29.63,303.811,28.143,297.753z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M70.556,297.753c0.153,1.607-2.47,0.437-3.567,0.793   C66.835,296.939,69.458,298.11,70.556,297.753z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M72.142,298.15c0.095-0.573,3.262-0.922,2.774,0.396   C73.863,298.542,72.652,298.696,72.142,298.15z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M76.501,297.753c1.142,0.048,2.595-0.217,3.171,0.396   C79.479,298.698,76.099,299.112,76.501,297.753z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M325.826,300.924c-16.399-0.061-30.827-0.165-45.98-0.793   c0-0.396,0-0.792,0-1.188c0.321-0.075,0.396-0.398,0.793-0.396c9.389,0.446,25.581,0.501,36.07,0.793   C319.611,299.419,323.857,297.976,325.826,300.924z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M75.312,301.321c-1.068,0.913-3.823,0.141-5.549,0.396   C70.08,300.168,74.338,300.946,75.312,301.321z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M82.844,300.924c-2.36,1.803-4.383,0.804-7.135,0.793   C76.701,300.067,80.588,301.311,82.844,300.924z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M85.619,300.924c0.925,0,1.85,0,2.774,0   C88.747,302.731,85.395,302.38,85.619,300.924z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M326.222,302.907c-2.257,2.149-7.684,1.188-11.892,1.188   c-11.05,0-23.279-0.053-34.089-1.188c0.064-0.461-0.088-0.706-0.396-0.793c0.176-0.353,0.349-0.709,0.793-0.793   c14.098,0.748,24.01-0.441,40.827,0.396C322.898,301.789,325.49,300.87,326.222,302.907z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M84.826,304.492c0.55-0.903,2.759-0.147,3.964-0.396   C88.887,305.619,85.384,304.852,84.826,304.492z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M95.528,304.095c0.242,1.563-2.176,0.467-3.171,0.793   C92.445,303.656,94.33,304.218,95.528,304.095z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M97.114,304.095c1.321,0,2.642,0,3.963,0   C100.958,305.948,96.921,305.472,97.114,304.095z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M326.222,305.681c0.009,2.779-3.738,1.541-5.153,1.585   c-12.767,0.405-29.055-0.49-40.827-1.188c0-0.396,0-0.793,0-1.189C291.955,304.721,313.011,304.275,326.222,305.681z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M338.51,304.492c-0.946,1.696-2.067,3.218-3.964,3.964   C335.616,306.882,336.24,304.864,338.51,304.492z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M340.095,304.492c1.251,2.104-3.477,4.936-5.152,6.738   C336.199,308.523,338.79,307.15,340.095,304.492z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M342.474,304.888c0.947,1.18-1.561,3.271-2.775,4.757   c-1.354,1.654-2.738,3.719-4.36,4.36C337.151,310.4,340.439,308.271,342.474,304.888z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M26.161,305.285c1.154,0.695,1.509,2.19,1.585,3.964   C26.385,308.761,26.376,306.919,26.161,305.285z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M101.474,307.663c-0.206,1.323-3.567,0.9-4.36,0.396   C98.332,307.471,100.219,307.114,101.474,307.663z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M107.023,307.663c0.407,1.332-1.232,0.617-1.982,0.793   C104.634,307.124,106.274,307.838,107.023,307.663z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M113.365,307.663c0.375,1.433-1.561,0.554-2.378,0.793   C111.031,307.443,112.314,307.669,113.365,307.663z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M118.122,307.663c1.057,0,2.114,0,3.171,0   C121.762,309.395,117.652,309.395,118.122,307.663z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M326.619,309.249c-0.552,2.205-3.801,1.149-5.153,1.189   c-12.971,0.377-28.396-0.463-40.827-0.793c0-0.396,0-0.793,0-1.189c-0.064-0.461,0.088-0.705,0.396-0.793   c11.985,0.171,21.04,0.396,35.277,0.396C319.969,308.059,324.498,307.133,326.619,309.249z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M327.412,313.212c-11.951,0.578-34.739,1.192-46.773-0.793   c0-0.396,0-0.793,0-1.189c0.321-0.075,0.395-0.397,0.793-0.396c10.162,0.362,22.645,0.396,35.674,0.396   C320.555,311.23,325.892,309.812,327.412,313.212z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M113.762,312.419c-3.434-0.154-4.955,0.104-6.739-0.396   C107.294,311.078,113.236,310.298,113.762,312.419z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M24.972,312.419c0.766,0.659,1.427,2.735,0.792,3.567   C24.785,315.542,24.299,313.291,24.972,312.419z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M327.412,315.194c0.032,0.628-0.191,1.513,0.396,1.586   c-17.073,1.865-30.721,0.242-46.772,0c0-0.793,0-1.586,0-2.378C298.027,314.439,312.228,314.456,327.412,315.194z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M103.852,315.987c-1.057,0-2.114,0-3.171,0   C100.624,314.305,103.779,314.566,103.852,315.987z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M112.572,315.194c0.242,1.563-2.176,0.467-3.171,0.793   C109.49,314.754,111.374,315.317,112.572,315.194z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M123.671,315.194c-0.531,2.181-2.012,0.596-3.567,0.793   C120.243,314.672,122.388,315.365,123.671,315.194z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M133.581,316.383c-1.318-0.399-4.312,0.877-4.36-0.793   C130.254,315.32,133.745,314.329,133.581,316.383z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M327.807,320.347c-0.621,2.226-3.641,1.142-5.152,1.189   c-13.594,0.431-26.662-0.924-41.224-0.396c0.28-1.47-0.678-1.701-0.396-3.171c11.702,1.316,27.016-0.893,42.413,0.396   C324.563,318.458,328.354,317.36,327.807,320.347z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M99.888,319.158c-0.287,1.352-3.874,0.893-4.757,0.396   C95.638,318.423,98.87,318.527,99.888,319.158z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M105.438,318.761c0.631,1.458-3.016,1.854-2.775,0.396   C103.914,319.352,104.062,318.444,105.438,318.761z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M110.59,319.158c-0.674,1.318-2.574,0.496-3.567,0.396   C107.377,318.581,109.796,318.48,110.59,319.158z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M22.594,319.554c2.699,4.172,3.729,10.013,5.153,15.459   C24.916,330.973,24.165,324.854,22.594,319.554z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M328.204,323.518c-0.716,2.191-4.007,1.192-5.549,1.189   c-10.929-0.02-30.653-0.173-41.224-1.189c0-0.264,0-0.528,0-0.793c-0.064-0.46,0.087-0.705,0.396-0.792   c13.334,0.678,26.117-0.283,41.62,0.396C324.762,322.386,327.558,321.395,328.204,323.518z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M79.276,323.122c-0.652,1.711-2.944,1.076-3.964,0.793   C75.517,322.534,77.902,323.333,79.276,323.122z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M86.808,323.122c0.621,1.362-2.654,1.882-2.378,0.396   C84.898,323.062,85.831,323.07,86.808,323.122z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M95.131,323.518c-0.204,1.382-2.589,0.581-3.963,0.793   C91.935,322.485,93.942,323.405,95.131,323.518z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M99.492,323.518c1.057,0,2.114,0,3.171,0c0.242,1.563-2.176,0.467-3.171,0.793   C99.492,324.046,99.492,323.783,99.492,323.518z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M281.431,325.897c0.176-0.354,0.348-0.709,0.793-0.793   c10.937,0.029,22.119-0.187,32.503,0.396c0.708-0.112,0.813,0.374,0.396,0.396c-10.416,0.449-23.374,0.13-33.296,0.792   C281.892,326.228,281.74,325.984,281.431,325.897z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M60.646,327.482c1.057,0,2.114,0,3.171,0c0.242,1.563-2.176,0.467-3.171,0.793   C60.646,328.01,60.646,327.747,60.646,327.482z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M68.574,327.878c-0.422,0.899-2.492,0.151-3.568,0.396   C64.822,326.762,68.103,327.524,68.574,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M74.52,327.878c-0.85,1.49-2.183,0.141-3.964,0.396   C70.69,326.984,73.808,327.365,74.52,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M76.501,327.482c12.781-0.089,22.171,0.184,29.729,0.396   c-7.924,1.828-20.788-0.138-28.936,0.793C77.037,328.268,76.383,328.261,76.501,327.482z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M300.854,327.482c0.487,0.173,0.813,0.508,0.792,1.189   c-6.654,5.765-11.59,13.249-18.233,19.026C288.24,339.972,295.473,334.654,300.854,327.482z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M284.206,327.878c1.05,1.076-0.843,2.573-1.981,2.774   C282.766,329.61,283.892,329.151,284.206,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M288.566,327.878c-1.878,2.35-3.273,5.184-6.342,6.342   C283.749,331.517,285.42,328.961,288.566,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M291.737,327.878c-2.494,3.848-5.58,7.104-9.117,9.909   C285.036,333.862,287.828,330.311,291.737,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M294.908,327.878c-3.351,5.105-7.887,9.025-11.892,13.477   c1.555-4.788,7.883-8.236,10.307-13.477C293.851,327.878,294.379,327.878,294.908,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M298.475,327.878c-4.77,5.933-9.869,11.535-15.459,16.648   C287.642,338.45,292.15,332.254,298.475,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M303.628,327.878c-5.038,7.779-13.16,15.908-20.216,22.99   C289.562,342.616,296.952,335.604,303.628,327.878z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M36.071,331.842c-4.055,13.843-10.141,29.312-15.062,43.998   c-2.264,6.755-2.882,14.888-8.72,17.441c6.557-20.793,13.881-40.82,20.612-61.439C33.957,331.842,35.014,331.842,36.071,331.842z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M18.233,342.941c2.801,2.484,2.975,7.596,3.964,11.892   C19.775,351.97,19.813,346.646,18.233,342.941z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M12.684,374.652c1.408,0.045,1.595,1.312,1.585,2.774   C12.872,377.371,13.141,375.648,12.684,374.652z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M260.819,376.237c1.134,0.056,0.726,1.653,0.793,2.774   C260.001,379.384,260.238,376.865,260.819,376.237z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M260.819,380.201c1.507-0.317,0.504,1.874,0.793,2.774   C260.478,382.92,260.887,381.322,260.819,380.201z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M261.215,384.958c1.189,0.049,1.271,2.249,0.793,2.774   C260.875,387.676,261.284,386.079,261.215,384.958z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M264.783,390.903c1.685,0.298,1.046,2.918,1.189,4.757   C263.872,395.778,265.122,392.546,264.783,390.903z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M265.179,396.056c1.134,0.056,0.725,1.653,0.793,2.774   C264.465,399.149,265.468,396.957,265.179,396.056z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M265.576,403.984c1.58-0.259,1.136,1.507,1.189,2.774   C265.414,406.789,265.591,405.29,265.576,403.984z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M271.521,405.172c0.396,0,0.793,0,1.189,0c-0.399,1.319,0.877,4.312-0.793,4.36   C272.113,407.752,271.716,406.563,271.521,405.172z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M268.747,409.136c1.708-0.069,1.368,3.397,0.793,4.36   C268.102,413.216,268.993,410.608,268.747,409.136z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M272.314,412.308c1.607-0.154,0.437,2.47,0.793,3.567   C271.644,415.081,271.983,413.384,272.314,412.308z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M269.143,414.686c1.15,0.082,1.815,3.118,0,2.774   C269.143,416.536,269.143,415.611,269.143,414.686z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M272.314,416.272c1.51,0.207,1.102,2.334,1.189,3.963   C271.804,420.216,272.447,417.857,272.314,416.272z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M269.54,419.443c1.105-0.275,1.677,1.972,0.793,2.378   C268.9,422.197,269.78,420.259,269.54,419.443z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M273.107,423.803c1.115,0.116,1.699,3.234,0,2.774   C273.107,425.653,273.107,424.728,273.107,423.803z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M269.936,424.595c1.222,0.017,1.417,2.104,0.793,2.775   C269.595,427.315,270.003,425.717,269.936,424.595z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M276.674,436.09c1.207,0.031,0.929,2.592,0.396,3.171   C276.406,438.688,275.91,436.903,276.674,436.09z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M276.674,440.451c0.396,0,0.793,0,1.189,0c0,0.661,0,1.321,0,1.982   C276.625,442.614,276.596,441.585,276.674,440.451z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M279.449,440.451c1.59,0.405,1.158,2.494,0.793,3.964   C278.861,444.21,279.661,441.825,279.449,440.451z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M277.071,444.018c1.62,2.765,1.102,6.58,1.585,11.099   C276.833,451.969,277.359,449.098,277.071,444.018z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M279.845,446.792c1.368-0.129,1.45,2.071,0.793,2.775   C279.504,449.512,279.914,447.915,279.845,446.792z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M280.242,449.964c1.513,0.204,0.521,2.914,1.189,3.964   C279.493,454.149,280.484,451.439,280.242,449.964z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M281.035,459.081c1.381,0.204,0.581,2.59,0.793,3.964   C279.962,463.381,280.548,459.857,281.035,459.081z"/>
-	<path fill-rule="evenodd" clip-rule="evenodd" d="M162.12,0.071c2.003,0.375,1.43,3.327,2.774,4.36   c3.65-0.373,9.454-1.626,13.081,0c5.252,2.354,9.229,16.07,11.495,21.801c9.206,23.274,17.663,51.148,23.783,75.312   c20.503-5.115,44.334-8.184,69.366-11.099c18.095-2.106,35.729-4.4,53.908-6.738c11.781-1.516,24.675-5,29.332,5.153   c3.208,6.992,1.764,17.803,2.379,26.161c1.859,25.282,3.176,50.008,5.152,73.727c7.085,0.352,13.992,0.31,23.387,0.793   c5.339,0.274,11.62,0.449,14.27,3.171c2.631,2.7 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M44.791,294.979c62.928,1.305,115.348,1.633,176.787,2.774   c8,0.148,15.881-0.089,23.386,1.189c-54.311,2.113-111.522-1.322-162.913-0.793c46.341,2.132,98.26,1.811,146.662,2.378   c2.604,0.031,4.709-0.081,7.928,0c1.503,0.038,8.611-0.51,8.72,1.586c0.104,1.979-6.136,0.82-7.531,0.793   c-50.062-1.003-101.92-1.092-147.454-1.586c39.596,2.682,83.294,0.693,117.725,1.982c12.548,0.469,21.963,0.237,33.692,0.792   c0.95,0.045,3.752-0.979 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#4E8ABE" d="M141.905,166.155c2.214-2.41,6.478-2.771,8.72-5.153   c-3.167,0.14-7.398,2.641-9.513,5.153c-3.489,0.342-6.665,0.999-10.306,1.189c5.711-4.33,11.951-8.132,19.026-11.099   c-12.311,1.166-16.753,13.636-32.503,12.684c10.001-6.118,20.2-12.039,30.521-17.837c-7.843,2.126-13.428,6.824-21.404,11.099   c-7.463,4-12.219,9.044-23.783,8.721c-6.669-22.795-12.894-46.035-20.215-68.178c12.039-8.573,26.462-14.761,40.828-21.008   c-15.036,3.726 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M361.104,99.959c-2.876,0.295-5.866,0.476-8.324,1.189   c-1.26-8.771-12.406-4.685-21.405-3.171c-38.083,6.409-78.691,13.684-114.95,18.63c0.996-1.957,3.935-1.73,5.55-1.982   c30.588-4.761,63.445-10.396,93.942-15.855c-32.956,3.644-66.957,11.791-99.889,15.459c3.433-2.349,7.875-2.119,11.892-2.775   c28.623-4.674,59.482-9.377,87.601-14.666c-32.802,3.799-67.009,11.738-100.285,15.062c34.409-7.115,70.557-11.695,106.23-18.234   c-4.22 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M366.256,189.145c-2.148-0.899-1.106-4.866-1.188-6.739   c-0.837-19.032-2.763-40.234-4.36-58.665c0.189,22.1,3.221,42.386,3.171,65.8c-2.234-1.118-1.062-4.161-1.189-5.946   c-0.901-12.712-2.515-30.434-3.171-45.584c-1.502,15.423,2.437,34.823,1.981,51.133c-3.176-0.387-1.864-5.013-1.981-7.135   c-0.536-9.687-1.393-21.534-2.378-30.521c-0.266,9.693,0.652,20.844,1.188,30.521c0.11,1.992,1.498,6.625-0.396,7.531   c-2.383-0.494-1.453-3 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#4E8ABE" d="M178.768,6.81c-1.155,0.149-2.695-0.556-4.756,0   c-18.563,5.007-37.796,13.08-56.683,20.612c-9.172,3.657-18.497,7.57-27.351,11.495c-8.814,3.907-19.045,6.367-24.179,14.27   c3.892,18.306,10.618,33.777,15.062,51.53c-2.521,0.274-3.821-0.671-6.342-0.396c1.26,1.514,4.426,1.123,6.738,1.585   c5.671,17.055,10.605,34.846,15.459,52.719c-6.546-0.324-11.937-1.804-18.63-1.982c5.226,2.173,12.698,2.101,19.026,3.171   c1.209,3.679,2.813,6. [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M262.801,170.515c-1.466,0.56-5.868,0.428-8.324,1.189   c-3.771-6.438-13.758-2.479-22.99-0.792c-30.13,5.502-58.971,9.757-89.186,15.458c-12.074,2.279-24.338,5.725-35.278,6.342   c-9.697,0.547-17.108-4.266-27.35-2.775c-0.397-3.566-2.016-5.912-2.378-9.513c8.938-2.83,17.071,2.055,26.161,2.378   c5.459,0.194,12.379-1.656,19.026-2.774c17.688-2.977,37.388-6.225,55.097-9.117c26.347-4.303,51.296-7.854,73.331-12.288   C258.389,157.119 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1E5C8" d="M262.008,172.101c0.265,0,0.528,0,0.793,0   c7.112,98.459,14.013,196.625,20.215,295.701c-3.073-1.022-6.807-1.385-9.909-2.379c-6.235-39.806-12.683-81.163-19.819-121.688   c-3.3-18.741-2.246-39.873-5.152-61.043c-0.882,10.159,1.64,25.019,1.981,37.656c-7.744-25.332-1.188-57.714,0-84.43   c0.973-21.869,3.489-42.888,3.964-62.628C256.304,172.475,259.785,172.916,262.008,172.101z M262.008,193.109   c1.416,0.118,1.069-4.013,0-3.964C26 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#4E8ABE" d="M251.703,191.523c-0.328,4.297-0.396,8.853-1.189,12.685   c-13.436-0.301-28.368-0.089-42.017,0c13.072,1.769,28.725,0.11,42.413,0.792c-2.006,2.153-6.183,1.189-9.91,1.189   c-3.71,0-7.844,0-11.099,0c5.041,2.358,15.571-0.773,20.612,1.585c-0.854,1.717-4.187-0.509-6.738,0.792   c1.021,1.856,5.563,0.101,6.738,0.793c-0.932,11.104-1.342,20.509-2.378,31.71c-16.252,0-32.504,0-48.755,0   c14.308,2.095,33.409-0.248,48.755,1.189c-3.992,2 [...]
-	<path fill-rule="evenodd" clip-rule="evenodd" fill="#4E8ABE" d="M334.546,302.907c-1.419-3.206-1.021-8.229-2.775-11.099   c-16.888-1.715-22.872-0.533-38.845-1.189c0.151-3.806-0.475-4.538-0.396-7.928c-2.494,1.071-0.461,5.704-0.396,7.928   c-3.039,0-6.078,0-9.117,0c-0.824-1.421,0.362-4.854-1.188-5.55c-1.428,1.456,0.951,4.57,0,5.55   c-3.698,0.776-2.594-3.292-2.775-5.946c-0.324-4.742-1.171-10.662-1.188-14.666c14.027,0.189,27.41,0.636,40.431,0   c8.051-0.393,19.604,0.691,24.972-3.171c2.743-1 [...]
-</g>
-</svg>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="16"
+   height="12"
+   viewBox="0 0 16 12"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="furniture11.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="26.715378"
+     inkscape:cx="-4.9497073"
+     inkscape:cy="9.6317591"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <path
+     d="M 4,1 C 3,1 2,2 2,3 4,3 5,4.5760463 5,6 l 6,0 C 11,4.4818344 12,3 14,3 14,2 13,1 12,1 Z M 2,4 C 1,4 1,5 1,5 1,5.5181656 1.481834,6 2,6 l 0,3 c 0,0.645252 0.423351,1 1,1 l 0.5,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 5,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 0.5,0 c 0.509491,0 1,-0.48425 1,-1 l 0,-3 c 0.494613,0 1,-0.3876224 1,-1 0,0 0,-1 -1,-1 -1,0 -2,1 -2,3 L 4,7 C 4,5 3,4 2,4 Z"
+     id="furniture"
+     style="fill:#ac39ac;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/shop/groceries/apple.png b/images/presets/shop/groceries/apple.png
deleted file mode 100644
index 11056fd..0000000
Binary files a/images/presets/shop/groceries/apple.png and /dev/null differ
diff --git a/images/presets/shop/groceries/bakery.png b/images/presets/shop/groceries/bakery.png
deleted file mode 100644
index 8d117eb..0000000
Binary files a/images/presets/shop/groceries/bakery.png and /dev/null differ
diff --git a/images/presets/shop/groceries/bakery.svg b/images/presets/shop/groceries/bakery.svg
new file mode 100644
index 0000000..b5bf5e9
--- /dev/null
+++ b/images/presets/shop/groceries/bakery.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="475.56583"
+   height="356.73929"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bakery.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1.3034483"
+     inkscape:cx="131.79004"
+     inkscape:cy="185.49309"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1" />
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="6.1230318e-014 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7157"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:72.95391083;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 146.74208,0.01051084 c -20.77687,0.25561 -41.59817,5.17325996 -60.831968,14.93463016 -0.21623,0.0997 -0.41765,0.21597 -0.63307,0.31653 -0.2841,0.14603 -0.57989,0.25469 -0.86327,0.40286 l 0,0.0288 C 3.1199118,54.297151 -20.156725,156.35335 17.625212,231.56914 70.098492,341.38312 204.34899,378.92718 311.94373,344.25505 c 98.6607,-27.23883 180.9134,-124.36181 160.4825,-234.0621 -0.1271,-0.6821 -0.2103,-1.36002 -0.3453,-2.04308 l -0.0576,0 C 460.52403,31.919551 382.30553,-13.835079 [...]
+     id="path7219"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="scccccccccccssccccccccccccccsscccsscccs" />
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-590.06266,-153.85606)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g3338"
+     transform="matrix(1.3973279,-0.2437849,0.2437849,1.3973279,-238.86341,-176.73262)" />
+  <path
+     style="fill:#d45500;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:72.95391083;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 146.74209,0.01051785 c -20.77687,0.25561 -41.59817,5.17326005 -60.831973,14.93463015 -0.21623,0.0997 -0.41765,0.21597 -0.63307,0.31653 -0.2841,0.14604 -0.57989,0.25469 -0.86327,0.40286 l 0,0.0288 C 3.1199118,54.297138 -20.156729,156.35334 17.625217,231.56914 70.098497,341.38311 204.349,378.92717 311.94378,344.25505 410.60444,317.01622 492.8571,219.89323 472.42624,110.19294 c -0.12703,-0.6821 -0.2103,-1.36002 -0.34531,-2.04308 l -0.0575,0 C 460.52403,31.919538 382.3055,-13.83509 [...]
+     id="path7165"
+     sodipodi:nodetypes="ccsccccsccccccccssccsccsccsccccccssccsccsccsccsccsccsccccccsscccssccssccccccccccccccsccsccssccsccsccsccsccsccccccssccsccccssccsccccssccsccsccsccccsccsccsccccssccsccccssccccccssccsccsccsccccccssccsc"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/shop/groceries/butcher.png b/images/presets/shop/groceries/butcher.png
deleted file mode 100644
index 5c0af98..0000000
Binary files a/images/presets/shop/groceries/butcher.png and /dev/null differ
diff --git a/images/presets/shop/groceries/butcher.svg b/images/presets/shop/groceries/butcher.svg
new file mode 100644
index 0000000..a70ec94
--- /dev/null
+++ b/images/presets/shop/groceries/butcher.svg
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 16 16"
+   sodipodi:docname="Fleischkeule4.svg"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="16"
+   height="16">
+  <defs
+     id="defs6">
+    <linearGradient
+       id="linearGradient4165"
+       y2="266.73999"
+       gradientUnits="userSpaceOnUse"
+       x2="1007.2"
+       y1="334.89001"
+       x1="1081.6"
+       inkscape:collect="always"
+       gradientTransform="matrix(0.01481741,0.00414641,-0.00320023,0.01919839,-3.6022037,-4.9309007)">
+      <stop
+         id="stop3872"
+         style="stop-color:#98726d"
+         offset="0" />
+      <stop
+         id="stop3874"
+         style="stop-color:#d5a28c"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4167"
+       y2="478.92001"
+       gradientUnits="userSpaceOnUse"
+       x2="291.82999"
+       gradientTransform="matrix(0.01481741,0.00414641,-0.00320023,0.01919839,2.1498555,-3.0277592)"
+       y1="604.5"
+       x1="386.70999"
+       inkscape:collect="always">
+      <stop
+         id="stop3811"
+         style="stop-color:#cc4930"
+         offset="0" />
+      <stop
+         id="stop3813"
+         style="stop-color:#f5730b"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="namedview4"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     guidetolerance="10"
+     pagecolor="#ffffff"
+     gridtolerance="10"
+     inkscape:window-maximized="1"
+     inkscape:zoom="45.254834"
+     objecttolerance="10"
+     borderopacity="1"
+     inkscape:current-layer="svg2"
+     inkscape:cx="3.5342567"
+     inkscape:cy="6.5615648"
+     inkscape:window-y="-8"
+     inkscape:window-x="-8"
+     inkscape:window-width="1680"
+     showgrid="false"
+     inkscape:pageopacity="0"
+     inkscape:window-height="988" />
+  <path
+     id="path2987"
+     sodipodi:nodetypes="scccccccsssccccccccs"
+     style="fill:#feebd7;fill-opacity:1;stroke:#5d2e31;stroke-width:0.17200001;stroke-miterlimit:4;stroke-dasharray:none"
+     inkscape:connector-curvature="0"
+     d="M 13.709371,0.09887655 C 13.343606,0.01251099 12.694884,0.46205327 12.545384,1.2726626 l 0.05656,0.3875643 c 0.07138,0.1699462 0.11874,0.332848 0.375229,0.5546031 l -0.684899,0.6692472 c -0.09925,0.1469063 -0.181079,0.4472552 -0.255969,0.8087261 0.0059,-0.3667357 -0.02717,-0.4998844 -0.09606,-0.4180904 -3.6103684,2.9825613 -7.4451851,6.9031891 -9.9339385,8.7942471 -0.077882,0.0149 -0.2097346,0.147814 -0.2677559,0.200681 -0.2847619,0.259439 -0.1781564,0.89456 0.2380091,1.418542 0. [...]
+  <path
+     id="path3762"
+     sodipodi:nodetypes="cccc"
+     style="fill:none;stroke:#000000;stroke-width:0.07592262;stroke-linecap:round;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     d="m 1.8468245,12.184594 c 0.2128261,0.149314 0.3824338,0.382988 0.5022346,0.610017 L 2.266311,12.204164 c 1.259207,0.531037 1.3431462,1.642417 1.0365582,1.933244" />
+  <path
+     id="path3764"
+     sodipodi:nodetypes="ccc"
+     style="fill:none;stroke:#000000;stroke-width:0.05521645;stroke-linecap:round;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     d="m 2.2436467,12.158799 0.6419554,-0.681082 c 1.1225943,0.107333 1.4102653,1.397929 1.2956961,1.555857" />
+  <path
+     d="m 1.8089241,12.692015 c 0.026489,0.03532 0.053817,0.06937 0.082034,0.102379 0.00385,0.0037 0.00788,0.0071 0.011542,0.0111 0.014793,0.01614 0.00539,0.009 0.019801,0.02311 0.010926,0.01066 0.020886,0.01628 0.031119,0.02862 0.022064,0.02794 0.048569,0.04833 0.072596,0.07286 0.015592,0.02164 0.029746,0.04604 0.04828,0.06359 0.018547,0.01716 0.036581,0.03251 0.058171,0.04289 0.025192,0.0072 0.046826,0.02521 0.070623,0.03737 0.025108,0.0097 0.050702,0.024 0.077196,0.02313 0.012392,2.02 [...]
+     inkscape:connector-curvature="0"
+     style="opacity:0.61338004;fill:#918070;stroke:#563c15;stroke-width:0.03796131;stroke-linecap:round;stroke-linejoin:round"
+     id="path3974" />
+  <path
+     d="m 2.8682087,13.922605 c 0.041158,10e-4 0.081525,-0.0073 0.1226938,-0.0063 0.028776,-0.0034 0.057065,-0.01159 0.08487,-0.02171 0.053984,-0.01227 -0.028085,0.0058 0.027303,-0.0045 0.00471,-8.81e-4 0.018519,-0.0056 0.013987,-0.0037 -0.064291,0.02678 -0.1288735,0.05237 -0.1933343,0.07846 -0.0043,0.0017 0.00856,-0.0037 0.012858,-0.0054 0.073036,-0.02993 0.1460962,-0.05976 0.2191441,-0.08964 0.027429,-0.01346 0.05735,-0.01492 0.085038,-0.02618 0.079175,-0.02285 0.024033,-0.0074 -0.1818 [...]
+     inkscape:connector-curvature="0"
+     style="opacity:0.61338004;fill:#918070;stroke:#563c15;stroke-width:0.03796131;stroke-linecap:round;stroke-linejoin:round"
+     id="path3972" />
+  <path
+     sodipodi:start="0"
+     sodipodi:end="6.2632451"
+     sodipodi:cx="8.7228003"
+     sodipodi:cy="8.4703512"
+     transform="matrix(0.74736022,0.66441907,-0.46800001,0.88372846,0,0)"
+     sodipodi:open="true"
+     d="M 9.333039,8.4703512 A 0.61023879,0.32280037 0 0 1 8.7258423,8.7931476 0.61023879,0.32280037 0 0 1 8.1125918,8.4735695 0.61023879,0.32280037 0 0 1 8.7136744,8.1475869 0.61023879,0.32280037 0 0 1 9.3329177,8.4639149"
+     sodipodi:type="arc"
+     style="fill:#b78d77"
+     sodipodi:ry="0.32280037"
+     sodipodi:rx="0.61023879"
+     id="path3766-1" />
+  <path
+     sodipodi:start="0"
+     sodipodi:end="6.2632451"
+     sodipodi:cx="8.724968"
+     sodipodi:cy="8.4709959"
+     transform="matrix(0.74736022,0.66441907,-0.46799999,0.88372847,0,0)"
+     sodipodi:open="true"
+     d="M 9.1971479,8.4709959 A 0.47217995,0.24977079 0 0 1 8.7273218,8.7207636 0.47217995,0.24977079 0 0 1 8.2528115,8.4734861 0.47217995,0.24977079 0 0 1 8.7179067,8.221253 0.47217995,0.24977079 0 0 1 9.197054,8.4660158"
+     sodipodi:type="arc"
+     style="fill:#fef1e3;stroke:#000000;stroke-width:0.05602323;stroke-linecap:round;stroke-linejoin:round"
+     sodipodi:ry="0.24977079"
+     sodipodi:rx="0.47217995"
+     id="path3766" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#6d4d1a;stroke:#563c15;stroke-width:0.03667407"
+     sodipodi:nodetypes="cccc"
+     d="M 13.623927,3.1588342 9.6474048,7.1499269 13.761993,2.8329659 c 0.0055,0.073268 0.166515,0.05555 -0.138786,0.3255257 z"
+     id="path3878" />
+  <path
+     inkscape:connector-curvature="0"
+     style="opacity:0.84386998;fill:url(#linearGradient4165)"
+     sodipodi:nodetypes="ccccccc"
+     d="M 15.949514,2.0465907 C 15.498708,2.5889245 14.039049,2.0231074 13.734125,2.3851708 13.109916,2.6546321 8.7077109,9.0471263 7.5435849,8.184053 l 0.095336,1.2395074 2.211763,-1.4937497 C 11.455539,5.8940882 12.934861,4.1451422 14.214891,2.8522196 15.491135,3.850814 16.01217,2.644818 15.94952,2.0465523 Z"
+     id="path3860" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#6d4d1a;stroke:#563c15;stroke-width:0.03209801"
+     sodipodi:nodetypes="cccc"
+     d="M 11.529219,4.0768955 8.1147395,7.7180961 11.774662,3.9814115 c -0.06539,-0.1059274 -0.14353,-0.1044874 -0.245289,0.095489 z"
+     id="path3878-2" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#6d4d1a;stroke:#563c15;stroke-width:0.01832841"
+     sodipodi:nodetypes="cccc"
+     d="m 13.691853,2.0256562 -1.868124,2.2582355 2.002537,-2.3216945 c -0.036,-0.061154 -0.07886,-0.058145 -0.134425,0.063512 z"
+     id="path3878-2-71" />
+  <path
+     d="m 3.227568,13.119542 c 0.046557,-0.006 0.093257,-0.0108 0.1396687,-0.0186 0.031949,-0.0054 0.065903,-0.0052 0.096624,-0.01861 0.023178,-0.0057 0.044259,-0.01592 0.06814,-0.01614 0.067089,-0.02626 0.1906902,-0.07469 -0.1866889,0.07627 -0.00333,0.0013 0.00642,-0.0035 0.00961,-0.0053 0.0098,-0.0056 0.019736,-0.01007 0.029467,-0.01583 0.4954555,-0.205444 0.096853,-0.04003 0.020521,-0.0089 -0.0037,0.0015 0.00733,-0.0033 0.010886,-0.0053 0.013409,-0.0076 0.025709,-0.01754 0.037979,-0.0 [...]
+     inkscape:connector-curvature="0"
+     style="opacity:0.61338004;fill:#918070;stroke:#563c15;stroke-width:0.03796131;stroke-linecap:round;stroke-linejoin:round"
+     id="path3964" />
+  <path
+     d="m 3.833582,11.912289 c -0.023428,0.04759 -0.047952,0.09447 -0.073832,0.139904 -0.017907,0.03213 -0.038907,0.06075 -0.060166,0.0891 -0.01687,0.02433 -0.036911,0.04422 -0.055827,0.0657 -0.016635,0.02187 -0.03628,0.03921 -0.052689,0.06132 -0.018204,0.02065 -0.031198,0.04739 -0.047132,0.07073 -0.020384,0.02939 -0.043341,0.05626 -0.067961,0.07958 -0.020902,0.01459 -0.038499,0.03539 -0.057819,0.05297 -0.015734,0.01859 -0.031235,0.03744 -0.047252,0.05568 -0.017544,0.01507 -0.030955,0.03 [...]
+     inkscape:connector-curvature="0"
+     style="opacity:0.61338004;fill:#918070;stroke:#563c15;stroke-width:0.03796131;stroke-linecap:round;stroke-linejoin:round"
+     id="path3966" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:url(#linearGradient4167);stroke:#861c00;stroke-width:0.09662879;stroke-linecap:round;stroke-linejoin:round"
+     sodipodi:nodetypes="cccccssscccsccccccccc"
+     d="M 0.76097975,8.2032421 C 1.7889833,6.6810517 2.880242,5.3413337 4.2849505,4.9053424 6.2777288,4.3736173 8.2040069,5.245631 9.6604604,4.6294709 c 0.2716618,0.1542678 0.3633816,0.2581794 0.3665076,0.3372986 0.211447,0.018396 0.402988,0.068954 0.559458,0.1761163 0,0 0.177022,0.2060306 0.22849,0.2595579 0.05147,0.053528 0.244879,0.3423853 0.261267,0.4252167 0.01639,0.082838 0.09406,0.613186 0.05276,0.6798709 -0.04132,0.066683 -0.05723,0.4339076 -0.05723,0.4339076 -0.05407,0.2845325 - [...]
+     id="path3791" />
+  <path
+     inkscape:connector-curvature="0"
+     style="opacity:0.57248996;fill:#4f1a00"
+     sodipodi:nodetypes="cccccccccccccc"
+     d="m 5.6798798,12.024857 -0.068383,3.580289 0.8937484,-0.923605 c 0.5004505,-0.5108 0.9794096,-0.991103 0.9583645,-1.492387 0.4592995,-0.600259 1.0105356,-1.171315 1.5926,-1.76487 0.5945905,-1.014332 0.9014372,-2.1767013 1.2894212,-3.2972758 0.219699,-0.1732583 0.554869,-0.3142036 0.602615,-0.5356 0.09941,-0.6934925 0.190755,-1.353577 0.162687,-1.51941 C 10.786812,6.4020449 10.630962,7.0702603 10.064736,6.9138205 9.8792798,7.0222331 9.4944338,7.93065 9.2011057,8.4718404 8.8796767,9. [...]
+     id="path4108" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#fbf1b8;fill-opacity:1"
+     sodipodi:nodetypes="ccccccc"
+     d="M 0.69470716,8.4193044 C 2.1168595,7.0680339 3.5196786,8.5183544 4.2499149,9.8249717 4.9760579,11.091019 5.9475594,11.741086 5.9910442,12.151014 6.2127494,12.571389 5.965298,13.697954 5.7818871,15.398337 5.2970284,15.932269 5.1463638,16.060001 3.9032855,15.889857 1.9758193,15.098469 0.5839924,13.566668 0.06710569,10.82571 0.06636608,10.018751 0.07754688,9.3727261 0.69471356,8.419266 Z"
+     id="path3976" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#bb2a00"
+     sodipodi:nodetypes="ccccccc"
+     d="m 1.0428643,9.0413177 c 1.1967754,-1.1224535 2.3819291,0.090451 2.9998058,1.1816873 0.6143045,1.057402 1.4344073,1.601989 1.4717221,1.943798 0.1876065,0.351034 -0.019132,1.289459 -0.1709491,2.706439 C 4.9355436,15.316984 4.8087311,15.42304 3.7604425,15.277726 2.134039,14.612622 0.95814232,13.331717 0.51773682,11.045565 0.46806607,10.50621 0.39830686,9.9785128 1.0429036,9.0412687 Z"
+     id="path3976-2" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#8b2a00"
+     sodipodi:nodetypes="cscccc"
+     d="M 5.5533262,12.2798 C 4.8471602,13.064744 3.9310018,13.706912 2.5138502,13.310345 2.0952437,13.193205 1.290615,12.693298 0.93592116,12.484692 1.5237244,13.90734 2.5098235,14.785881 3.7633741,15.298563 4.8116656,15.443861 4.9384279,15.337546 5.3463275,14.893805 5.4864211,13.586253 5.6726743,12.686984 5.553305,12.279834 Z"
+     id="path3976-2-6" />
+  <path
+     sodipodi:start="0"
+     sodipodi:end="6.2632451"
+     sodipodi:cx="10.469936"
+     sodipodi:cy="6.2929349"
+     transform="matrix(0.6566302,0.75421269,-0.45895038,0.8884619,0,0)"
+     sodipodi:open="true"
+     d="M 12.772916,6.2929349 A 2.3029799,1.2391648 0 0 1 10.481417,7.5320843 2.3029799,1.2391648 0 0 1 8.1670709,6.3052893 2.3029799,1.2391648 0 0 1 10.435496,5.0539086 2.3029799,1.2391648 0 0 1 12.772458,6.2682273"
+     sodipodi:type="arc"
+     style="opacity:0.64683999;fill:#4f1a00"
+     sodipodi:ry="1.2391648"
+     sodipodi:rx="2.3029799"
+     id="path4106" />
+  <path
+     id="path4087"
+     sodipodi:nodetypes="cccccccccccc"
+     style="fill:#ffffff"
+     inkscape:connector-curvature="0"
+     d="m 3.0880572,11.475178 -0.6548289,0.667694 0.07612,0.539685 -0.520927,-0.497879 -0.1909834,0.239988 0.073003,0.558382 0.2998728,0.46538 0.408643,0.446905 0.5279044,0.274878 0.3824343,-0.02991 0.8369719,-1.262262 C 4.435534,12.495983 3.8595981,11.406658 3.0880648,11.475206 Z" />
+  <g
+     style="stroke:#5d2e31;stroke-width:4.4000001"
+     id="g4033"
+     transform="matrix(0.01481741,0.00414641,-0.00320023,0.01919839,2.4798473,-3.3077058)">
+    <path
+       d="m 196.88,726.94 -35.796,42.68 10.326,24.782 -35.796,-17.898 c -45.239,30.281 66.517,108.79 117.71,77.099 L 293.25,786.83 c 9.6031,-45.858 -78.644,-74.406 -96.373,-59.889 z"
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#5d2e31;stroke-width:4.4000001"
+       sodipodi:nodetypes="ccccccc"
+       id="path4027" />
+    <path
+       d="m 136.3,776.51 48.875,-45.433 6.1954,2.0651"
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#5d2e31;stroke-width:4.4000001"
+       id="path4029" />
+    <path
+       d="m 255.76,848.53 c 10.88,-33.77 -47.1,-77.07 -93.99,-78.22"
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#5d2e31;stroke-width:4.4000001"
+       sodipodi:nodetypes="cc"
+       id="path4031" />
+  </g>
+  <metadata
+     id="metadata75">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/shop/groceries/deli.png b/images/presets/shop/groceries/deli.png
deleted file mode 100644
index b2090d7..0000000
Binary files a/images/presets/shop/groceries/deli.png and /dev/null differ
diff --git a/images/presets/shop/groceries/deli.svg b/images/presets/shop/groceries/deli.svg
new file mode 100644
index 0000000..eb52d38
--- /dev/null
+++ b/images/presets/shop/groceries/deli.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 16 16"
+   version="1.0"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="deli3.svg"
+   width="16"
+   height="16">
+  <defs
+     id="defs58" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview56"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="45.254834"
+     inkscape:cx="5.6196101"
+     inkscape:cy="9.5097198"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4133" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata54">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2010-04-15T15:08:15</dc:date>
+        <dc:description />
+        <dc:source>https://openclipart.org/detail/48169/lobster-by-hextrust</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>hextrust</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>crustacean</rdf:li>
+            <rdf:li>delicious</rdf:li>
+            <rdf:li>fish</rdf:li>
+            <rdf:li>healthy</rdf:li>
+            <rdf:li>kitchen</rdf:li>
+            <rdf:li>snack</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <path
+     style="fill:#ac39ac;fill-opacity:1;stroke:none;stroke-width:21.26000023;stroke-linecap:round"
+     d="M 11.198257,9.127432e-5 C 10.447709,0.00609127 9.7158365,0.27545127 8.996028,0.71528127 8.6227401,0.97456127 8.3530706,1.3318113 8.4872617,1.7408313 c 0.2130866,0.64981 1.0766814,1.31138 1.3699743,1.01646 l 0.025902,-0.0231 c 0.039283,0.0258 0.0863,0.0471 0.142021,0.0628 1.090453,0.31146 2.674088,0.26504 3.51506,-1.39471 -1.22924,0.97662 -2.067449,1.11641 -2.578397,0.55555 -0.03714,-0.0324 -0.07394,-0.0622 -0.110435,-0.0893 l 0.20744,-0.2791195 c 0.7389,-0.47939 1.540197,-0.50363 [...]
+     id="path3301"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccscccccccccsccccccccsccccscccccccsccccccccssccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
+</svg>
diff --git a/images/presets/shop/groceries/farm.svg b/images/presets/shop/groceries/farm.svg
new file mode 100644
index 0000000..060224b
--- /dev/null
+++ b/images/presets/shop/groceries/farm.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="12.54946"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="apple.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="41.710345"
+     inkscape:cx="0.97905447"
+     inkscape:cy="8.4831399"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4201" />
+  </sodipodi:namedview>
+  <g
+     id="g3338"
+     transform="matrix(0.04772602,-0.00832652,0.00832652,0.04772602,-9.8931,-3.92511)" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path6571"
+     d="m 12.54946,1.24301 c 0,0 -0.9764,5.34442 -4.76925,3.33284 -6.6e-4,0.003 0.0908,-4.36172995 4.76925,-3.33284 z"
+     style="fill:#009100;fill-opacity:1"
+     sodipodi:nodetypes="ccc" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path6573"
+     d="M 6.16561,7.04786 C 6.82104,6.39948 7.74229,5.61528 8.736,5.61528 c 2.00506,0 3.63659,1.62448 3.63659,3.63305 0,0.074 0,0.13743 -0.004,0.21496 l -0.007,0 c -0.0634,0.78581 -0.31362,1.76191 -0.90563,2.9741 0,0 -1.01838,1.94867 -1.83591,2.84372 l -0.074,0.0705 C 9.15139,15.74981 8.59462,16 7.99205,16 7.25205,16 6.59662,15.64057 6.19843,15.0838 l -0.0106,0 C 5.78964,15.64057 5.13421,16 4.3942,16 3.78458,16 3.23487,15.75333 2.83668,15.35161 l -0.074,-0.0705 C 1.9522,14.38606 0.92677, [...]
+     style="fill:#ff0000;fill-opacity:1"
+     sodipodi:nodetypes="csscccccsccscccccssc" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#009100;fill-opacity:1"
+     d="m 0.56464106,0.04697604 c 0,0 0.74802014,5.01014976 4.28647864,3.29890476 3.663e-4,0.0022 0.00419,-3.80803669 -4.28647864,-3.29890476 z"
+     id="path10957"
+     sodipodi:nodetypes="ccc" />
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#722a00;fill-opacity:1;stroke:none;stroke-width:4.83599997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 5.71287,6.09502 c 0,0 0.26571,-3.9979 -0.55861,-5.11601995 -0.82432,-1.11812 2.53688,0 2.53688,0 C 7.10465,2.90508 7.23332,7.02891 5.71287,6.09502 Z"
+     id="path10959"
+     sodipodi:nodetypes="cscc" />
+</svg>
diff --git a/images/presets/shop/groceries/greengrocer.png b/images/presets/shop/groceries/greengrocer.png
deleted file mode 100644
index 6a8fc4d..0000000
Binary files a/images/presets/shop/groceries/greengrocer.png and /dev/null differ
diff --git a/images/presets/shop/groceries/greengrocer.svg b/images/presets/shop/groceries/greengrocer.svg
new file mode 100644
index 0000000..9272cc6
--- /dev/null
+++ b/images/presets/shop/groceries/greengrocer.svg
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="greengrocer.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs11">
+    <linearGradient
+       id="linearGradient850"
+       y2="191.32001"
+       gradientUnits="userSpaceOnUse"
+       y1="339.76999"
+       gradientTransform="scale(1.533,0.65232)"
+       x2="312.91"
+       x1="62.832001">
+      <stop
+         id="stop830"
+         style="stop-color:#ffffff;stop-opacity:.525"
+         offset="0" />
+      <stop
+         id="stop831"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient854"
+       y2="332.17001"
+       gradientUnits="userSpaceOnUse"
+       x2="370.89999"
+       gradientTransform="scale(1.2211,0.81893)"
+       y1="332.17001"
+       x1="109.53">
+      <stop
+         id="stop856"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop857"
+         style="stop-color:#5f0e00;stop-opacity:.41667"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="34.03125"
+     inkscape:cx="5.2466663"
+     inkscape:cy="7.564758"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4201" />
+  </sodipodi:namedview>
+  <g
+     id="g4152"
+     transform="matrix(0.6971837,0,0,0.64415306,0.03590025,1.2887395e-4)">
+    <g
+       transform="matrix(0.04772602,-0.00832652,0.00832652,0.04772602,-9.8931,-3.92511)"
+       id="g3338" />
+    <path
+       sodipodi:nodetypes="ccc"
+       style="fill:#009100;fill-opacity:1"
+       d="m 12.54946,1.24301 c 0,0 -0.9764,5.34442 -4.76925,3.33284 -6.6e-4,0.003 0.0908,-4.36172995 4.76925,-3.33284 z"
+       id="path6571"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="csscccccsccscccccssc"
+       style="fill:#ff0000;fill-opacity:1"
+       d="M 6.16561,7.04786 C 6.82104,6.39948 7.74229,5.61528 8.736,5.61528 c 2.00506,0 3.63659,1.62448 3.63659,3.63305 0,0.074 0,0.13743 -0.004,0.21496 l -0.007,0 c -0.0634,0.78581 -0.31362,1.76191 -0.90563,2.9741 0,0 -1.01838,1.94867 -1.83591,2.84372 l -0.074,0.0705 C 9.15139,15.74981 8.59462,16 7.99205,16 7.25205,16 6.59662,15.64057 6.19843,15.0838 l -0.0106,0 C 5.78964,15.64057 5.13421,16 4.3942,16 3.78458,16 3.23487,15.75333 2.83668,15.35161 l -0.074,-0.0705 C 1.9522,14.38606 0.9267 [...]
+       id="path6573"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path10957"
+       d="m 0.56464106,0.04697604 c 0,0 0.74802014,5.01014976 4.28647864,3.29890476 3.663e-4,0.0022 0.00419,-3.80803669 -4.28647864,-3.29890476 z"
+       style="fill:#009100;fill-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cscc"
+       id="path10959"
+       d="m 5.71287,6.09502 c 0,0 0.26571,-3.9979 -0.55861,-5.11601995 -0.82432,-1.11812 2.53688,0 2.53688,0 C 7.10465,2.90508 7.23332,7.02891 5.71287,6.09502 Z"
+       style="fill:#722a00;fill-opacity:1;stroke:none;stroke-width:4.83599997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g845"
+     transform="matrix(0.03655311,0,0,0.03377273,-0.89620056,2.9752221)">
+    <path
+       id="path847"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc"
+       style="fill:#ffe200;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linejoin:round"
+       d="M 388.75,93.75 C 370,76.25 420,63.75 426.25,70 c 10,5 -8.75,8.75 -7.5,17.5 1.25,8.75 0,55 10,57.5 10,2.5 22.5,11.25 22.5,23.75 C 482.5,246.25 360,458.75 70,352.5 65,348.75 37.5,317.5 32.5,310 30,301.25 26.25,280 41.25,272.5 170,238.75 318.75,305 386.25,153.75 c 11.25,-26.25 2.5,-60 2.5,-60 z" />
+    <path
+       id="path849"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc"
+       style="fill:url(#linearGradient850);fill-rule:evenodd;stroke-width:1pt"
+       d="m 43.75,290 2.5,-12.5 C 138.75,242.5 310,316.25 392.5,157.5 351.25,270 278.75,338.75 43.75,290 Z" />
+    <path
+       id="path851"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc"
+       style="fill:#442400;fill-rule:evenodd;stroke-width:1pt"
+       d="m 386.15,89.136 c 2.92,-17.6 29.12,-18.073 36.45,-18.944 11.98,1.566 -15.49,21.444 -36.45,18.944 z" />
+    <path
+       id="path852"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc"
+       style="fill:#442400;fill-rule:evenodd;stroke-width:1pt"
+       d="m 32.518,305.14 c -0.933,-18.37 -1.866,-24.43 8.743,-30.49 4.617,6.93 3.75,28.37 -8.743,30.49 z" />
+    <path
+       id="path853"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc"
+       style="fill:url(#linearGradient854);fill-rule:evenodd;stroke-width:1pt"
+       d="M 133.75,366.25 C 352.5,421.25 426.74,283.13 440,250 c 22.5,-40 8.75,-85 8.75,-85 -1.25,135 -142.5,243.75 -315,201.25 z" />
+  </g>
+</svg>
diff --git a/images/presets/shop/groceries/pastry.svg b/images/presets/shop/groceries/pastry.svg
new file mode 100644
index 0000000..d84eed0
--- /dev/null
+++ b/images/presets/shop/groceries/pastry.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg4395"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="cake5.svg"
+   inkscape:export-filename="E:\Casey's Documents\Dropbox\comic\ggo15\cake.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <title
+     id="title2986">Cake</title>
+  <defs
+     id="defs4397" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="45.254834"
+     inkscape:cx="8.4389692"
+     inkscape:cy="7.8688133"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     fit-margin-top="2"
+     fit-margin-left="2"
+     fit-margin-right="2"
+     fit-margin-bottom="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1018"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4139" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4400">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Cake</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Casey Leonard</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-249.77932,-560.05786)">
+    <path
+       style="fill:#5a3216;fill-opacity:1;stroke:#0c0800;stroke-width:0.58682603;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 264.54725,564.77062 c 0.60865,0 0.94075,-0.11108 0.93866,0.91051 l -0.0179,8.72654 c -0.002,0.87839 -0.44133,1.33204 -1.11545,1.33204 l -13.41784,0 c -0.67411,0 -0.77938,0.21184 -0.78589,-0.66652 l -0.0761,-10.25207 c 0,0 10.86094,-0.0505 14.47453,-0.0505 z"
+       id="rect3160"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ssssssccs" />
+    <path
+       style="fill:#ffe680;fill-opacity:1;stroke:#0c0800;stroke-width:0.57370043;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 262.19456,571.43578 c 0.57153,0 1.03161,0.17862 1.03161,0.4005 l 0,2.25795 c 0,0.22188 -0.4601,0.39953 -1.03161,0.4005 l -12.01574,0.0201 c 0,0 -0.0476,-2.25849 -0.0476,-3.06633 0,0 8.99978,-0.0128 12.06335,-0.0128 z"
+       id="rect3160-1-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="csssccc" />
+    <path
+       style="fill:#ffe680;fill-opacity:1;stroke:#0c0800;stroke-width:0.58644468;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 262.20558,566.34711 c 0.57483,0 1.03756,0.18557 1.03756,0.41609 l 0,2.34581 c 0,0.23052 -0.46274,0.4151 -1.03756,0.41611 l -12.08515,0.0209 c 0,0 -0.0478,-2.34639 -0.0478,-3.18566 0,0 9.05176,-0.0133 12.13302,-0.0133 z"
+       id="rect3160-1-7-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="csssccc" />
+    <path
+       style="fill:#5a3216;fill-opacity:1;stroke:#0c0800;stroke-width:0.68468547;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 250.12167,564.63757 10.24272,-4.1736 c 0,0 0.28532,-0.50151 2.69822,1.31047 1.77832,1.33544 2.163,2.94496 2.163,2.94496 z"
+       id="path3242"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccscc" />
+  </g>
+</svg>
diff --git a/images/presets/shop/groceries/seafood.png b/images/presets/shop/groceries/seafood.png
deleted file mode 100644
index 0df5f4a..0000000
Binary files a/images/presets/shop/groceries/seafood.png and /dev/null differ
diff --git a/images/presets/shop/groceries/seafood.svg b/images/presets/shop/groceries/seafood.svg
new file mode 100644
index 0000000..388b623
--- /dev/null
+++ b/images/presets/shop/groceries/seafood.svg
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="7.2469721"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="seafood.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="58.987335"
+     inkscape:cx="4.8254106"
+     inkscape:cy="4.032757"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4165" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2918"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective5519"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-552.95702,-431.48182)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <path
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cscccccsssscccccssccssscccssssssccssscs"
+     id="path1932"
+     d="m 7.3814438,0 c -0.005,1.4e-4 -0.008,0.001 -0.0118,0.003 -0.0536,0.0212 -0.33864,0.33604 -0.63334,0.70078 l -0.53675,0.6625 -0.3882,0.0292 c -1.77552,0.21512 -3.22299,0.94254 -4.5555,2.11235 -0.27624996,0.29195 -1.31719996,1.26139 -1.25300996,1.49632 0.0221,0.0235 0.26955,-0.006 0.54221,0.0292 0.51097996,0.0659 1.29400996,0.16586 1.28945996,0.27247 -0.002,0.0554 -0.44174,0.10848 -1.24480996,0.21051 -0.68848,0.0875 -0.68221,0.23236 0.0201,0.48024 0.84062996,0.29673 1.94556996,0.48 [...]
+     style="fill:#ac39ac;fill-opacity:1" />
+  <path
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccscsc"
+     id="path5541"
+     d="m 3.7608338,5.17347 c -0.9141,-1.28578 -0.73338,0.0215 -0.33145,-0.89494 l 2.15143,-1.65527 c 4.8494802,-1.30214 -1.76693,1.42552 1.4814,0.77527 -0.0268,0.0291 0.11774,0.20373 0.32037,0.38979 0.20264,0.18605 0.35288,0.43335 0.33106,0.5473 -2.24274,1.23943 0.27339,3.03816 -1.78956,2.90429 -1.00992,-0.0655 -2.64077,-1.9389 -2.16325,-2.06644 z"
+     style="fill:#ac39ac;fill-opacity:1" />
+</svg>
diff --git a/images/presets/shop/hairdresser.svg b/images/presets/shop/hairdresser.svg
index 5ffc35e..a292403 100644
--- a/images/presets/shop/hairdresser.svg
+++ b/images/presets/shop/hairdresser.svg
@@ -9,67 +9,48 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="423.36899"
-   height="585.67322"
+   version="1.1"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
    id="svg2"
-   sodipodi:version="0.32"
    inkscape:version="0.91 r13725"
-   version="1.0"
-   sodipodi:docname="hairdresser3.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\hairdresser.png"
-   inkscape:export-xdpi="2.4587088"
-   inkscape:export-ydpi="2.4587088">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-  </defs>
+   sodipodi:docname="hairdresser11.svg">
   <sodipodi:namedview
-     id="base"
      pagecolor="#ffffff"
      bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:zoom="0.7"
-     inkscape:cx="-185.2181"
-     inkscape:cy="289.93333"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="1400"
-     inkscape:window-height="964"
-     inkscape:window-x="0"
-     inkscape:window-y="29"
-     inkscape:window-maximized="0"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0" />
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="20.85965"
+     inkscape:cx="-9.11251"
+     inkscape:cy="8.2639056"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
   <metadata
-     id="metadata7">
+     id="metadata8">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
         <cc:license
            rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Ulf Lamping</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:title></dc:title>
       </cc:Work>
       <cc:License
          rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
@@ -82,132 +63,11 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     inkscape:label="Ebene 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-186.88541,-124.96056)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
-       id="rect4152"
-       width="423.36899"
-       height="585.67322"
-       x="186.88541"
-       y="124.96056" />
-    <g
-       transform="matrix(0.984863,-0.1733347,0.1733347,0.984863,-63.954713,95.523647)"
-       id="g3167">
-      <ellipse
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         id="path2383"
-         cx="497.14285"
-         cy="642.36218"
-         rx="37.142857"
-         ry="64.285713" />
-      <path
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
-         id="path3155"
-         sodipodi:nodetypes="cccc"
-         inkscape:connector-curvature="0" />
-      <ellipse
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         id="path3157"
-         cx="497.14285"
-         cy="642.36218"
-         rx="37.142857"
-         ry="64.285713" />
-      <path
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
-         id="path3159"
-         sodipodi:nodetypes="cccc"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       id="g3183"
-       transform="matrix(-0.984863,-0.1733347,-0.1733347,0.984863,1029.3244,95.523647)">
-      <ellipse
-         id="path3185"
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         cx="497.14285"
-         cy="642.36218"
-         rx="37.142857"
-         ry="64.285713" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3187"
-         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         inkscape:connector-curvature="0" />
-      <ellipse
-         id="path3189"
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         cx="497.14285"
-         cy="642.36218"
-         rx="37.142857"
-         ry="64.285713" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3191"
-         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         inkscape:connector-curvature="0" />
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       id="path3193"
-       d="m 237.76218,165.86094 0,493.00252"
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:41.75354004;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       inkscape:connector-curvature="0" />
-    <rect
-       y="160.92047"
-       x="239.98688"
-       height="20.026224"
-       width="91.454796"
-       id="rect3195"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:25.68806267;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <rect
-       y="155.21933"
-       x="277.14285"
-       height="0"
-       width="20"
-       id="rect3197"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <rect
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:25.68806267;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect3217"
-       width="91.454796"
-       height="20.026224"
-       x="239.98688"
-       y="258.06329" />
-    <rect
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:25.68806267;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect3233"
-       width="91.454796"
-       height="20.026224"
-       x="239.98688"
-       y="355.20615" />
-    <rect
-       y="452.34903"
-       x="239.98688"
-       height="20.026224"
-       width="91.454796"
-       id="rect3235"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:25.68806267;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <rect
-       y="549.49188"
-       x="239.98688"
-       height="20.026224"
-       width="91.454796"
-       id="rect3237"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:25.68806267;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <rect
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:25.68806267;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect3239"
-       width="91.454796"
-       height="20.026224"
-       x="239.98688"
-       y="646.63477" />
-  </g>
+  <defs
+     id="defs6" />
+  <path
+     d="M 5,1.0000003 5,10.53125 C 4.580263,10.212414 4.064535,10 3.5,10 2.12521,10 1,11.12521 1,12.5 1,13.87479 2.12521,15 3.5,15 4.702941,15 5.703332,14.136374 5.9375,13 l 0.125,0 C 6.296668,14.136374 7.297059,15 8.5,15 9.87479,15 11,13.87479 11,12.5 11,11.12521 9.87479,10 8.5,10 7.935465,10 7.419737,10.212414 7,10.53125 L 7,1.0000003 Z m 4,0 0,2 4,0 L 13,4 9,4 l 0,1 4,0 0,1 -4,0 0,1 4,0 0,1 -4,0 0,1 4,0 0,6 2,0 0,-11.9999997 c 0,-1 -1,-2 -2,-2 z M 3.5,11 C 4.334349,11 5,11.665651 5,12 [...]
+     id="hairdresser"
+     style="fill:#ac39ac;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/images/presets/shop/hardware.png b/images/presets/shop/hardware.png
deleted file mode 100644
index e567323..0000000
Binary files a/images/presets/shop/hardware.png and /dev/null differ
diff --git a/images/presets/shop/hardware.svg b/images/presets/shop/hardware.svg
new file mode 100644
index 0000000..4ebcda8
--- /dev/null
+++ b/images/presets/shop/hardware.svg
@@ -0,0 +1,847 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="452.03513"
+   height="482.26544"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="hardware.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="0.46083856"
+     inkscape:cx="60.367001"
+     inkscape:cy="355.62805"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1" />
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4904"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 16 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       style="overflow:visible"
+       id="Arrow2Lend"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         id="path4137"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow1Mend"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Mend">
+      <path
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         id="path4125"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="TriangleOutL"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="TriangleOutL">
+      <path
+         transform="scale(0.8,0.8)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+         id="path4214"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow1Lend"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         id="path4119"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Tail"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Tail">
+      <g
+         transform="scale(-1.2,-1.2)"
+         id="g4152">
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none"
+           d="M -3.8048674,-3.9585227 0.54352094,0"
+           id="path4154"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none"
+           d="M -1.2866832,-3.9585227 3.0617053,0"
+           id="path4156"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none"
+           d="M 1.3053582,-3.9585227 5.6537466,0"
+           id="path4158"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none"
+           d="M -3.8048674,4.1775838 0.54352094,0.21974226"
+           id="path4160"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none"
+           d="M -1.2866832,4.1775838 3.0617053,0.21974226"
+           id="path4162"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none"
+           d="M 1.3053582,4.1775838 5.6537466,0.21974226"
+           id="path4164"
+           inkscape:connector-curvature="0" />
+      </g>
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow1Sstart"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Sstart">
+      <path
+         transform="matrix(0.2,0,0,0.2,1.2,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         id="path4128"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow1Send"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send">
+      <path
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         id="path4131"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="SemiCircleOut"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="SemiCircleOut">
+      <path
+         transform="matrix(0.6,0,0,0.6,4.2752958,0.4580676)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
+         d="m -2.5,-0.80913858 c 0,2.75999998 -2.24,4.99999998 -5,4.99999998 l 0,-10 c 2.76,0 5,2.24 5,5.00000002 z"
+         id="path4235"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Send"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Send">
+      <path
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         id="path4149"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="TriangleOutS"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="TriangleOutS">
+      <path
+         transform="scale(0.2,0.2)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+         id="path4220"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="CurveIn"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="CurveIn">
+      <path
+         transform="scale(0.6,0.6)"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
+         d="m 4.625493,-5.0456926 c -2.76,0 -5.00000002,2.24 -5.00000002,5.00000002 0,2.75999998 2.24000002,4.99999998 5.00000002,4.99999998"
+         id="path4238"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="InfiniteLineStart"
+       inkscape:stockid="InfiniteLineStart"
+       style="overflow:visible">
+      <g
+         transform="translate(-13,0)"
+         id="g4298">
+        <circle
+           cx="3"
+           cy="0"
+           r="0.80000001"
+           id="circle4300" />
+        <circle
+           cx="6.5"
+           cy="0"
+           r="0.80000001"
+           id="circle4302" />
+        <circle
+           cx="10"
+           cy="0"
+           r="0.80000001"
+           id="circle4304" />
+      </g>
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="StopS"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="StopS">
+      <path
+         transform="scale(0.2,0.2)"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         d="M 0,5.65 0,-5.65"
+         id="path4229"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Sstart"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         id="path4146"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DiamondS"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DiamondS">
+      <path
+         transform="scale(0.2,0.2)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 Z"
+         id="path4202"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="RazorWire"
+       inkscape:stockid="RazorWire">
+       style="overflow:visible">
+      <path
+   d="m 0.02272727,-0.74009011 0,1.4375 -7.78124997,2.31250001 18.4374997,0 -7.1874997,-2.31250001 0,-1.4375 7.2499997,-2.15624999 -18.4687497,0 7.74999997,2.15624999 z"
+   style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.1pt"
+   transform="scale(0.8,0.8)"
+   id="path4286"
+   inkscape:connector-curvature="0" />
+</marker>
+    <inkscape:perspective
+       id="perspective5233"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 16 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective5412"
+       inkscape:persp3d-origin="250 : 166.66667 : 1"
+       inkscape:vp_z="500 : 250 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 250 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective5571"
+       inkscape:persp3d-origin="202.85715 : 136.19048 : 1"
+       inkscape:vp_z="405.71429 : 204.28572 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 204.28572 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6552"
+       inkscape:persp3d-origin="64 : 42.666667 : 1"
+       inkscape:vp_z="128 : 64 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 64 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8761"
+       inkscape:persp3d-origin="238.5 : 114.33333 : 1"
+       inkscape:vp_z="477 : 171.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 171.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10479"
+       inkscape:persp3d-origin="52.830002 : 33.539668 : 1"
+       inkscape:vp_z="105.66 : 50.309502 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 50.309502 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowStart">
+      <path
+         id="path1968"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowEnd">
+      <path
+         id="path1965"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective10853"
+       inkscape:persp3d-origin="223.9745 : 153.55566 : 1"
+       inkscape:vp_z="447.94901 : 230.3335 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 230.3335 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <filter
+       y="0"
+       x="0"
+       filterUnits="userSpaceOnUse"
+       id="ShadowBlur">
+      <feGaussianBlur
+         id="feGaussianBlur6"
+         stdDeviation="2"
+         in="SourceGraphic" />
+    </filter>
+    <clipPath
+       id="clipoutline2"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         d="m 55.8,12 0.76,0.16 c 8.84,-2.94 28.68,8.64 24.26,18.96 -1.12,1.62 -0.93,4.5 0.42,6.31 L 56.43,62.25 c -1.39,-1.39 -4.48,-1.36 -5.9,0 L 9.5,101.63 c -3.74,3.59 -0.8,6.64 0.78,8.25 l 7.36,7.36 c 1.61,1.6 5.86,3.76 8.88,0.56 L 65.24,76.99 c 1.35,-1.42 1.36,-4.47 0,-5.87 0,0 0.01,-0.02 0,-0.02 L 90.15,46.2 c 2.63,2.37 5.113827,2.574854 7.47,1.93 4.55057,-1.245432 7.08725,3.206643 9.81,6.46 l -1.23,1.21 c -1.82,1.84 -1.65,4.94 0.39,6.98 2.04,2.04 5.15,2.21 6.97,0.39 l 8.14,-8.13  [...]
+         id="outline2"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipoutline1"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         d="m 22.42,17.2 12.96,12.95 -2.5,8.78 -8.78,2.5 -12.96,-12.96 -5.86,5.86 14.89,21.46 17.56,-3.34 61.63,65.62 c 9.44,9.51 22.17,-4.75 13.34,-12.87 L 46.85,42.92 50.86,25.16 28.72,10.89 22.42,17.2 Z m 81.06,91.97 c 1.68,-1.68 4.4,-1.68 6.08,0 1.68,1.68 1.68,4.4 0,6.08 -1.68,1.67 -4.4,1.67 -6.08,0 -1.68,-1.68 -1.68,-4.4 0,-6.08 z"
+         id="outline1"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-0.30267,-3.20138)"
+       y2="86.68"
+       x2="84.300003"
+       y1="66.199997"
+       x1="73.879997"
+       id="lgdg"
+       xlink:href="#BlackTransparent" />
+    <linearGradient
+       gradientTransform="matrix(0.26,0,0,0.26,-106.57,101.57)"
+       gradientUnits="userSpaceOnUse"
+       y2="-241.2"
+       x2="655.41998"
+       y1="-137.5"
+       x1="550.96002"
+       id="lg55"
+       xlink:href="#WhiteTransparent" />
+    <linearGradient
+       gradientTransform="matrix(0.2,0,0,0.2,-80.94,88.3)"
+       gradientUnits="userSpaceOnUse"
+       y2="-186.25999"
+       x2="607.65997"
+       y1="-252.60001"
+       x1="646.23999"
+       id="lg51"
+       xlink:href="#WhiteTransparent" />
+    <linearGradient
+       y2="6037.5259"
+       x2="2375.4978"
+       y1="6145.3076"
+       x1="2482.957"
+       id="lg19"
+       xlink:href="#BlackTransparent"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       spreadMethod="pad"
+       gradientTransform="matrix(0.0775,0.0775,-0.36,0.36,78.84,-44.8)"
+       gradientUnits="userSpaceOnUse"
+       y2="124"
+       x2="626.09998"
+       y1="124"
+       x1="577.03003"
+       id="lg16"
+       xlink:href="#WhiteTransparent" />
+    <linearGradient
+       gradientTransform="matrix(0.3,0.3,-0.09,0.09,78.84,-44.8)"
+       gradientUnits="userSpaceOnUse"
+       y2="368.26999"
+       x2="146.14999"
+       y1="288.57001"
+       x1="146.14999"
+       id="lg12"
+       xlink:href="#WhiteTransparent" />
+    <linearGradient
+       gradientTransform="matrix(0.33,0.33,-0.0944,0.0944,9.03,-48.1)"
+       gradientUnits="userSpaceOnUse"
+       y2="-1.72"
+       x2="258.95999"
+       y1="62.740002"
+       x1="258.95999"
+       id="lg09"
+       xlink:href="#WhiteTransparent" />
+    <linearGradient
+       spreadMethod="pad"
+       gradientTransform="matrix(0.0998,0.0998,-0.28,0.28,78.84,-44.8)"
+       gradientUnits="userSpaceOnUse"
+       y2="286.56"
+       x2="419.88"
+       y1="286.56"
+       x1="543.09998"
+       id="lg05"
+       xlink:href="#BlackTransparent" />
+    <linearGradient
+       gradientTransform="matrix(0.0807,0.0775,-0.35,0.36,77.14,-45.89)"
+       gradientUnits="userSpaceOnUse"
+       y2="254.83"
+       x2="615.59003"
+       y1="254.36"
+       x1="512.70001"
+       id="lg02"
+       xlink:href="#WhiteTransparent" />
+    <linearGradient
+       gradientTransform="matrix(0.1,0.1,-0.22,0.2,75.6,-33.53)"
+       gradientUnits="userSpaceOnUse"
+       y2="118.3"
+       x2="638.29999"
+       y1="69.989998"
+       x1="637.03003"
+       id="lg1999"
+       xlink:href="#WhiteTransparent" />
+    <linearGradient
+       id="BlackTransparent">
+      <stop
+         id="stop4625"
+         offset="0"
+         style="stop-color: black; stop-opacity: 1;" />
+      <stop
+         id="stop4627"
+         offset="1"
+         style="stop-color: black; stop-opacity: 0;" />
+    </linearGradient>
+    <linearGradient
+       id="WhiteTransparent">
+      <stop
+         id="stop4620"
+         offset="0"
+         style="stop-color: white; stop-opacity: 1;" />
+      <stop
+         id="stop4622"
+         offset="1"
+         style="stop-color: white; stop-opacity: 0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective4693"
+       inkscape:persp3d-origin="64 : 42.666667 : 1"
+       inkscape:vp_z="128 : 64 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 64 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#BlackTransparent"
+       id="linearGradient4756"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(5.1645214,0,0,5.1645214,646.72889,-106.63978)"
+       x1="73.879997"
+       y1="66.199997"
+       x2="84.300003"
+       y2="86.68" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#BlackTransparent"
+       id="linearGradient4765"
+       gradientUnits="userSpaceOnUse"
+       x1="2482.957"
+       y1="6145.3076"
+       x2="2375.4978"
+       y2="6037.5259" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4767"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.0775,0.0775,-0.36,0.36,78.84,-44.8)"
+       spreadMethod="pad"
+       x1="577.03003"
+       y1="124"
+       x2="626.09998"
+       y2="124" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4769"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3,0.3,-0.09,0.09,78.84,-44.8)"
+       x1="146.14999"
+       y1="288.57001"
+       x2="146.14999"
+       y2="368.26999" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4771"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.33,0.33,-0.0944,0.0944,9.03,-48.1)"
+       x1="258.95999"
+       y1="62.740002"
+       x2="258.95999"
+       y2="-1.72" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#BlackTransparent"
+       id="linearGradient4773"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.0998,0.0998,-0.28,0.28,78.84,-44.8)"
+       spreadMethod="pad"
+       x1="543.09998"
+       y1="286.56"
+       x2="419.88"
+       y2="286.56" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4775"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.0807,0.0775,-0.35,0.36,77.14,-45.89)"
+       x1="512.70001"
+       y1="254.36"
+       x2="615.59003"
+       y2="254.83" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4777"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1,0.1,-0.22,0.2,75.6,-33.53)"
+       x1="637.03003"
+       y1="69.989998"
+       x2="638.29999"
+       y2="118.3" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4780"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5164521,0.5164521,-1.1361947,1.0329043,1038.7299,-263.27259)"
+       x1="637.03003"
+       y1="69.989998"
+       x2="638.29999"
+       y2="118.3" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4784"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4167769,0.4002504,-1.8075825,1.8592277,1046.6832,-327.10608)"
+       x1="512.70001"
+       y1="254.36"
+       x2="615.59003"
+       y2="254.83" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#BlackTransparent"
+       id="linearGradient4787"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5154192,0.5154192,-1.446066,1.446066,1055.4629,-321.47675)"
+       spreadMethod="pad"
+       x1="543.09998"
+       y1="286.56"
+       x2="419.88"
+       y2="286.56" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4791"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7042921,1.7042921,-0.4875308,0.4875308,694.92767,-338.51967)"
+       x1="258.95999"
+       y1="62.740002"
+       x2="258.95999"
+       y2="-1.72" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4794"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5493564,1.5493564,-0.4648069,0.4648069,1055.4629,-321.47675)"
+       x1="146.14999"
+       y1="288.57001"
+       x2="146.14999"
+       y2="368.26999" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#WhiteTransparent"
+       id="linearGradient4798"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4002504,0.4002504,-1.8592277,1.8592277,1055.4629,-321.47675)"
+       spreadMethod="pad"
+       x1="577.03003"
+       y1="124"
+       x2="626.09998"
+       y2="124" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#BlackTransparent"
+       id="linearGradient4801"
+       gradientUnits="userSpaceOnUse"
+       x1="2482.957"
+       y1="6145.3076"
+       x2="2375.4978"
+       y2="6037.5259"
+       gradientTransform="matrix(5.1645214,0,0,5.1645214,648.29204,-90.106189)" />
+  </defs>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-580.59487,-80.247836)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="spanner"
+     transform="matrix(-2.39037,-2.47827,2.47827,-2.39037,357.94548,571.51656)"
+     style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.34710145;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
+    <use
+       height="580"
+       width="580"
+       y="0"
+       x="0"
+       xlink:href="#outline1"
+       class="outline-big"
+       id="use4649"
+       style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.34710145;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <use
+       height="580"
+       width="580"
+       y="0"
+       x="0"
+       xlink:href="#outline1"
+       class="outline-small"
+       id="use4651"
+       style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.34710145;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <use
+       height="580"
+       width="580"
+       y="0"
+       x="0"
+       xlink:href="#outline1"
+       class="aluminium4"
+       id="use4653"
+       style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.34710145;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <use
+       height="580"
+       width="580"
+       y="0"
+       x="0"
+       class="stroke-highlight"
+       xlink:href="#outline1"
+       clip-path="url(#clipoutline1)"
+       style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.34710145;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="use4655" />
+    <path
+       class="high-specularity"
+       style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.34710145;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 24.33,15.4 37.78,28.78 34.45,40.47 23.5,43.74 9.9319417,30 5.2,34.54 19.4,54.48 38.3,50.34 100.8,116.7 c 7.5,8.3 20.2,-2.67 11.14,-11.6 L 45.04,42 48.9,24.83 28.94,10.8 24.33,15.4 Z m 79.97,93.3 c 1.67,-1.67 4.63,-2 6.3,-0.3 1.7,1.67 3.06,4.63 0.65,7.84 -2,2 -5.2,1.92 -7.2,-0.24 -1.68,-1.68 -1.45,-5.6 0.25,-7.3 z"
+       id="path4657"
+       inkscape:connector-curvature="0" />
+    <path
+       class="specularity"
+       style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.34710145;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 24.2,15.42 47.67,39.07 50.89,25.2 28.79,10.8 24.2,15.42 Z"
+       id="path4659"
+       inkscape:connector-curvature="0" />
+  </g>
+  <use
+     id="use4686"
+     clip-path="url(#clipoutline2)"
+     xlink:href="#outline2"
+     class="stroke-highlight"
+     x="0"
+     y="0"
+     width="580"
+     height="580"
+     transform="matrix(2.7849965,-2.7934095,2.7934095,2.7849965,-188.92372,204.96628)"
+     style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:2.53515434;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+</svg>
diff --git a/images/presets/shop/hearing_aids.png b/images/presets/shop/hearing_aids.png
deleted file mode 100644
index 1355859..0000000
Binary files a/images/presets/shop/hearing_aids.png and /dev/null differ
diff --git a/images/presets/shop/hearing_aids.svg b/images/presets/shop/hearing_aids.svg
new file mode 100644
index 0000000..8383df9
--- /dev/null
+++ b/images/presets/shop/hearing_aids.svg
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="hearing_aids6.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="41.710344"
+     inkscape:cx="1.5725807"
+     inkscape:cy="8.516066"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4194" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="6.1230318e-014 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3826"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3855"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3909"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3950"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3972"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3994"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4016"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4837"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4971"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6216"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6764"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6817"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.79354273,1.2601716)"
+       xlink:href="#linearGradient829"
+       id="radialGradient874"
+       cx="180.2453"
+       cy="198.41902"
+       r="101.58017"
+       fx="180.2453"
+       fy="198.41902" />
+    <linearGradient
+       id="linearGradient829">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0.341667;"
+         offset="0.0000000"
+         id="stop830" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1.0000000"
+         id="stop831" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.007004,0.99304475)"
+       xlink:href="#linearGradient829"
+       id="radialGradient832"
+       cx="360.85147"
+       cy="167.47372"
+       r="46.394722"
+       fx="360.85147"
+       fy="167.47372" />
+    <linearGradient
+       id="linearGradient6826">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0.341667;"
+         offset="0.0000000"
+         id="stop6828" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1.0000000"
+         id="stop6830" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.74491357,1.3424376)"
+       xlink:href="#linearGradient855"
+       id="linearGradient850"
+       x1="465.29425"
+       y1="248.24467"
+       x2="463.27057"
+       y2="405.76871"
+       spreadMethod="pad" />
+    <linearGradient
+       id="linearGradient855">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="0.0000000"
+         id="stop856" />
+      <stop
+         style="stop-color: rgb(255, 166, 23); stop-opacity: 0.733333;"
+         offset="1.0000000"
+         id="stop857" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.4586159,0.68558144)"
+       xlink:href="#linearGradient855"
+       id="linearGradient854"
+       x1="157.80582"
+       y1="120.96176"
+       x2="155.40575"
+       y2="231.6349" />
+    <linearGradient
+       id="linearGradient6837">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="0.0000000"
+         id="stop6839" />
+      <stop
+         style="stop-color: rgb(255, 166, 23); stop-opacity: 0.733333;"
+         offset="1.0000000"
+         id="stop6841" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective6928"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10781"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10806"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10878"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10919"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <clipPath
+       id="clipoutline2"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 55.8,12 0.76,0.16 c 8.84,-2.94 28.68,8.64 24.26,18.96 -1.12,1.62 -0.93,4.5 0.42,6.31 L 56.43,62.25 c -1.39,-1.39 -4.48,-1.36 -5.9,0 L 9.5,101.63 c -3.74,3.59 -0.8,6.64 0.78,8.25 l 7.36,7.36 c 1.61,1.6 5.86,3.76 8.88,0.56 L 65.24,76.99 c 1.35,-1.42 1.36,-4.47 0,-5.87 0,0 0.01,-0.02 0,-0.02 L 90.15,46.2 c 2.63,2.37 5.113827,2.574854 7.47,1.93 4.55057,-1.245432 7.08725,3.206643 9.81,6.46 l -1.23,1.21 c -1.82,1.84 -1.65,4.94 0.39,6.98 2.04,2.04 5.15,2.21 6.97,0.39 l 8.14,-8.13  [...]
+         id="outline2" />
+    </clipPath>
+  </defs>
+  <g
+     id="g1327"
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     transform="matrix(0.02775633,0,0,0.02770795,-0.04729685,-0.0472)">
+    <path
+       d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.40799999"
+       id="path1329"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-536.27327,-597.30675)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g3338"
+     transform="matrix(0.0387847,-0.00675478,0.00676658,0.03871709,-5.1842732,-1.60393)"
+     style="fill:#000000" />
+  <path
+     id="path619"
+     d="M 8.0113242,8.01928"
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <path
+     id="path621"
+     d="M 8.0113242,8.01928"
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <path
+     id="path623"
+     d="M 8.0113242,8.01928"
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <path
+     id="path625"
+     d="m 7.7880704,5.09113 0.293326,0 c 1.6361054,0.003 2.5747476,1.55843 2.5812656,2.61093 -0.0065,0.20497 -0.05703,0.38066 -0.290066,0.37578 C 9.8820902,8.08284 10.058086,7.29537 9.6539479,6.62515 9.4632861,6.29493 8.8489319,5.69791 8.1482094,5.70279 l -0.257475,0 C 7.5159297,5.69779 6.8086886,5.91427 6.3344786,6.62515 5.7429385,7.48408 6.1307801,8.11363 5.6337561,8.11037 5.5571651,8.11337 5.3371713,8.09087 5.3404306,7.73622 5.3632446,6.12086 6.8461691,5.09439 7.7880704,5.09113 l 0,0 z"
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <path
+     id="path627"
+     d="m 8.0113242,14.0236 c 0.6143542,0.007 1.0885641,-0.61491 1.0950825,-1.04275 l 0,-0.8882 C 9.0998867,10.27395 11.013024,9.55655 11.006505,7.73622 11.013005,6.03139 9.4698045,4.74301 8.0113242,4.74626 6.8021702,4.74326 5.9775992,5.52222 5.6663479,5.92565 4.7309647,7.08064 5.2687288,8.18195 4.6071161,8.18195 4.4197136,8.18195 4.2339407,8.07621 4.2323112,7.70206 4.2029782,5.89637 5.6956806,3.98169 8.0488044,3.97844 c 1.8968398,0.003 3.7627166,1.51287 3.7627166,3.82773 0,2.14405 -1.88 [...]
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <rect
+     id="rect629"
+     height="2.9321175"
+     width="1.0739818"
+     transform="matrix(0.70652334,-0.70768974,0.70892131,0.70528758,0,0)"
+     y="10.403077"
+     x="-4.1216631"
+     style="fill:#000000" />
+  <path
+     id="path633"
+     d="m 7.1182774,8.5106272 c 0.00391,-0.259632 0.2053278,-0.462648 0.4614992,-0.460704 0.248349,-0.0024 0.4497656,0.203028 0.4614991,0.460704 -0.011736,0.240108 -0.2131501,0.44508 -0.4614991,0.435312 -0.2561714,0.0096 -0.4575883,-0.195204 -0.4614992,-0.435312 l 0,0 z"
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <path
+     id="path635"
+     d="m 1.0893936,14.525352 c -0.011736,-0.24402 0.1955503,-0.447036 0.4399885,-0.435324 0.2561711,-0.01368 0.4575884,0.191304 0.4614992,0.435324 -0.00391,0.257676 -0.2053281,0.458736 -0.4614992,0.460692 -0.2444382,-0.0024 -0.4517215,-0.204972 -0.4399885,-0.460692 l 0,0 z"
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <path
+     id="path637"
+     d="m 3.096483,12.525942 c 0,-0.255732 0.2033726,-0.458748 0.4614991,-0.460704 0.2405274,0.0036 0.4478109,0.204972 0.4360773,0.460704 0.011736,0.245964 -0.1955499,0.447024 -0.4360773,0.460692 C 3.2998556,12.972954 3.096483,12.771906 3.096483,12.525942 l 0,0 z"
+     inkscape:connector-curvature="0"
+     style="fill:#000000" />
+  <path
+     id="path639"
+     d="m 9.3624511,3.0050313 c 1.6198099,0.40994 2.9185909,1.63325 3.4253929,3.21282 l 0.598058,-0.1887 c -0.578503,-1.77966 -2.023947,-3.16077 -3.8507146,-3.62114 l -0.1711068,0.61491 0,-0.0179 -0.00163,0 z"
+     inkscape:connector-curvature="0"
+     style="clip-rule:evenodd;fill:#000000;fill-rule:evenodd" />
+  <path
+     id="path641"
+     d="M 10.313345,1.2058894 10.482822,0.59097935 C 12.746318,1.1587094 14.55679,2.8619194 15.275438,5.0661594 l -0.63391,0.20497 c -0.648576,-1.98788 -2.28794,-3.54143 -4.328183,-4.06524 l 0,0 z"
+     inkscape:connector-curvature="0"
+     style="clip-rule:evenodd;fill:#000000;fill-rule:evenodd" />
+</svg>
diff --git a/images/presets/shop/kitchen.png b/images/presets/shop/kitchen.png
deleted file mode 100644
index ba2e3d7..0000000
Binary files a/images/presets/shop/kitchen.png and /dev/null differ
diff --git a/images/presets/shop/kitchen.svg b/images/presets/shop/kitchen.svg
new file mode 100644
index 0000000..cf13651
--- /dev/null
+++ b/images/presets/shop/kitchen.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2380"
+   sodipodi:docname="kitchen4.svg"
+   viewBox="0 0 16 16"
+   sodipodi:version="0.32"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:version="0.91 r13725"
+   width="16"
+   height="16">
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:zoom="43.85808"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="4.3702499"
+     inkscape:cy="4.2052563"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     inkscape:window-maximized="1" />
+  <g
+     id="layer1"
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     transform="translate(0,-146)">
+    <path
+       sodipodi:nodetypes="ccccccccccccccccc"
+       style="fill:#ffffff"
+       d="m 11.637686,147.84089 c -0.471062,-1.19032 -2.2445493,-0.70114 -3.2984803,-0.86197 -0.871987,-0.13302 -1.656705,-0.68741 -2.526724,-0.88115 -1.644784,-0.36622 -4.016301,0.32743 -4.94488504,1.56172 -0.945922,1.25768 -1.041755,3.05217 -0.653493,4.47179 0.142778,0.52206 0.474119,0.98832 0.622255,1.51069 0.27382904,0.9658 0.38401404,2.20924 0.32452404,3.20314 -0.05521,0.92077 -1.35311904,2.39658 -0.71884004,3.26254 0.372256,0.50921 1.18633804,0.77129 1.79096404,1.01444 1.639692,0.6 [...]
+       id="path4138"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path3"
+       d="M 11.637686,147.84089 C 11.166623,146.65057 9.3931357,147.13975 8.3392054,146.97892 7.4672186,146.8459 6.6825,146.29151 5.8124808,146.09777 c -1.6447841,-0.36622 -4.016301,0.32743 -4.94488467,1.56172 -0.94592158,1.25768 -1.04175448,3.05217 -0.65349237,4.47179 0.14277712,0.52206 0.47411819,0.98832 0.62225409,1.51069 0.27382975,0.9658 0.38401445,2.20924 0.32452395,3.20314 -0.055208,0.92077 -1.35311877,2.39658 -0.71883927,3.26254 0.37225523,0.50921 1.18633717,0.77129 1.79096397,1. [...]
+       style="fill:#000000"
+       sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+       inkscape:connector-curvature="0" />
+  </g>
+  <metadata
+     id="metadata6">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2008-05-26T12:09:59</dc:date>
+        <dc:description />
+        <dc:source>https://openclipart.org/detail/17057/toque-by-jean_victor_balin</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>jean_victor_balin</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>hat</rdf:li>
+            <rdf:li>kitchen</rdf:li>
+            <rdf:li>outline</rdf:li>
+            <rdf:li>toque</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/shop/library.png b/images/presets/shop/library.png
deleted file mode 100644
index a7536b8..0000000
Binary files a/images/presets/shop/library.png and /dev/null differ
diff --git a/images/presets/shop/marketplace.png b/images/presets/shop/marketplace.png
deleted file mode 100644
index a73c447..0000000
Binary files a/images/presets/shop/marketplace.png and /dev/null differ
diff --git a/images/presets/shop/marketplace.svg b/images/presets/shop/marketplace.svg
new file mode 100644
index 0000000..66bc76c
--- /dev/null
+++ b/images/presets/shop/marketplace.svg
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="marketplace2.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs11">
+    <linearGradient
+       id="linearGradient850"
+       y2="191.32001"
+       gradientUnits="userSpaceOnUse"
+       y1="339.76999"
+       gradientTransform="scale(1.533,0.65232)"
+       x2="312.91"
+       x1="62.832001">
+      <stop
+         id="stop830"
+         style="stop-color:#ffffff;stop-opacity:.525"
+         offset="0" />
+      <stop
+         id="stop831"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient854"
+       y2="332.17001"
+       gradientUnits="userSpaceOnUse"
+       x2="370.89999"
+       gradientTransform="scale(1.2211,0.81893)"
+       y1="332.17001"
+       x1="109.53">
+      <stop
+         id="stop856"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop857"
+         style="stop-color:#5f0e00;stop-opacity:.41667"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="41.710345"
+     inkscape:cx="9.5931941"
+     inkscape:cy="6.6604531"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4201" />
+  </sodipodi:namedview>
+  <g
+     id="g4152"
+     transform="matrix(0.43132129,0,0,0.43132129,3.8252212,4.9436861)">
+    <g
+       transform="matrix(0.04772602,-0.00832652,0.00832652,0.04772602,-9.8931,-3.92511)"
+       id="g3338" />
+    <path
+       sodipodi:nodetypes="ccc"
+       style="fill:#009100;fill-opacity:1"
+       d="m 12.54946,1.24301 c 0,0 -0.9764,5.34442 -4.76925,3.33284 -6.6e-4,0.003 0.0908,-4.36172995 4.76925,-3.33284 z"
+       id="path6571"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="csscccccsccscccccssc"
+       style="fill:#ff0000;fill-opacity:1"
+       d="M 6.16561,7.04786 C 6.82104,6.39948 7.74229,5.61528 8.736,5.61528 c 2.00506,0 3.63659,1.62448 3.63659,3.63305 0,0.074 0,0.13743 -0.004,0.21496 l -0.007,0 c -0.0634,0.78581 -0.31362,1.76191 -0.90563,2.9741 0,0 -1.01838,1.94867 -1.83591,2.84372 l -0.074,0.0705 C 9.15139,15.74981 8.59462,16 7.99205,16 7.25205,16 6.59662,15.64057 6.19843,15.0838 l -0.0106,0 C 5.78964,15.64057 5.13421,16 4.3942,16 3.78458,16 3.23487,15.75333 2.83668,15.35161 l -0.074,-0.0705 C 1.9522,14.38606 0.9267 [...]
+       id="path6573"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path10957"
+       d="m 0.56464106,0.04697604 c 0,0 0.74802014,5.01014976 4.28647864,3.29890476 3.663e-4,0.0022 0.00419,-3.80803669 -4.28647864,-3.29890476 z"
+       style="fill:#009100;fill-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cscc"
+       id="path10959"
+       d="m 5.71287,6.09502 c 0,0 0.26571,-3.9979 -0.55861,-5.11601995 -0.82432,-1.11812 2.53688,0 2.53688,0 C 7.10465,2.90508 7.23332,7.02891 5.71287,6.09502 Z"
+       style="fill:#722a00;fill-opacity:1;stroke:none;stroke-width:4.83599997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+  </g>
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#aa4400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.17200001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4159"
+     width="1"
+     height="13.000006"
+     x="1"
+     y="3"
+     ry="0" />
+  <rect
+     ry="0"
+     y="3"
+     x="14"
+     height="13.000007"
+     width="0.99999106"
+     id="rect4161"
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#aa4400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.17200001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.17200001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:au [...]
+     id="rect4165"
+     width="2"
+     height="3"
+     x="0.00042934637"
+     y="1.0004294"
+     ry="1"
+     inkscape:tile-cx="1.0004293"
+     inkscape:tile-cy="2.5004294"
+     inkscape:tile-w="2"
+     inkscape:tile-h="3"
+     inkscape:tile-x0="0.00042934637"
+     inkscape:tile-y0="1.0004294" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     id="use4169"
+     style="fill:#ff0000" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     transform="translate(2,0)"
+     id="use4171"
+     style="fill:#ffe500;fill-opacity:1" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     transform="translate(4,0)"
+     id="use4173"
+     style="fill:#ff0000" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     transform="translate(6,0)"
+     id="use4175"
+     style="fill:#ffe500;fill-opacity:1" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     transform="translate(8,0)"
+     id="use4177"
+     style="fill:#ff0000" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     transform="translate(10,0)"
+     id="use4179"
+     style="fill:#ffe500;fill-opacity:1" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     transform="translate(12,0)"
+     id="use4181"
+     style="fill:#ff0000" />
+  <use
+     x="0"
+     y="0"
+     inkscape:tiled-clone-of="#rect4165"
+     xlink:href="#rect4165"
+     transform="translate(14,0)"
+     id="use4183"
+     style="fill:#ffe500;fill-opacity:1" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#aa4400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.17200001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4163"
+     width="16"
+     height="2"
+     x="0"
+     y="0" />
+  <g
+     id="g845"
+     transform="matrix(0.02235904,0,0,0.02235904,3.2011451,6.9133298)">
+    <path
+       id="path847"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc"
+       style="fill:#ffe200;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linejoin:round"
+       d="M 388.75,93.75 C 370,76.25 420,63.75 426.25,70 c 10,5 -8.75,8.75 -7.5,17.5 1.25,8.75 0,55 10,57.5 10,2.5 22.5,11.25 22.5,23.75 C 482.5,246.25 360,458.75 70,352.5 65,348.75 37.5,317.5 32.5,310 30,301.25 26.25,280 41.25,272.5 170,238.75 318.75,305 386.25,153.75 c 11.25,-26.25 2.5,-60 2.5,-60 z" />
+    <path
+       id="path849"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc"
+       style="fill:url(#linearGradient850);fill-rule:evenodd;stroke-width:1pt"
+       d="m 43.75,290 2.5,-12.5 C 138.75,242.5 310,316.25 392.5,157.5 351.25,270 278.75,338.75 43.75,290 Z" />
+    <path
+       id="path851"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc"
+       style="fill:#442400;fill-rule:evenodd;stroke-width:1pt"
+       d="m 386.15,89.136 c 2.92,-17.6 29.12,-18.073 36.45,-18.944 11.98,1.566 -15.49,21.444 -36.45,18.944 z" />
+    <path
+       id="path852"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc"
+       style="fill:#442400;fill-rule:evenodd;stroke-width:1pt"
+       d="m 32.518,305.14 c -0.933,-18.37 -1.866,-24.43 8.743,-30.49 4.617,6.93 3.75,28.37 -8.743,30.49 z" />
+    <path
+       id="path853"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc"
+       style="fill:url(#linearGradient854);fill-rule:evenodd;stroke-width:1pt"
+       d="M 133.75,366.25 C 352.5,421.25 426.74,283.13 440,250 c 22.5,-40 8.75,-85 8.75,-85 -1.25,135 -142.5,243.75 -315,201.25 z" />
+  </g>
+</svg>
diff --git a/images/presets/shop/mobile_phone.png b/images/presets/shop/mobile_phone.png
deleted file mode 100644
index 2fac6d5..0000000
Binary files a/images/presets/shop/mobile_phone.png and /dev/null differ
diff --git a/images/presets/shop/mobile_phone.svg b/images/presets/shop/mobile_phone.svg
new file mode 100644
index 0000000..9971c69
--- /dev/null
+++ b/images/presets/shop/mobile_phone.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="10"
+   height="16"
+   viewBox="0 0 10 16"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="mobile_phone.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview6"
+     showgrid="true"
+     inkscape:zoom="29.5"
+     inkscape:cx="0.066779783"
+     inkscape:cy="5.0294079"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4134"
+       originx="1"
+       originy="0" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rende [...]
+     id="rect4136"
+     width="6"
+     height="9"
+     x="2.000001"
+     y="5"
+     ry="0" />
+  <path
+     d="M 4,1 C 3.517164,1 3,1.3876224 3,2 L 3,3 C 1.8815,3.0818 1,3.90528 1,5 l 0,8 c 0,1.1488 0.803333,2 2,2 l 4,0 c 1.196667,0 2,-0.8512 2,-2 L 9,5 C 9,3.8512 8.196667,3 7,3 L 5,3 5,2 C 5,1.3640694 4.482836,1 4,1 Z M 2,5 8,5 8,12 2,12 2,5 Z m 2,8 2,0 0,1 -2,0 0,-1 z"
+     id="mobile-phone"
+     style="fill:#ac39ac;fill-opacity:1"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/shop/musical_instrument.png b/images/presets/shop/musical_instrument.png
deleted file mode 100644
index 1691434..0000000
Binary files a/images/presets/shop/musical_instrument.png and /dev/null differ
diff --git a/images/presets/shop/musical_instrument.svg b/images/presets/shop/musical_instrument.svg
new file mode 100644
index 0000000..0699526
--- /dev/null
+++ b/images/presets/shop/musical_instrument.svg
@@ -0,0 +1,413 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="15.999998"
+   height="15.999999"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="music7.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="29.493667"
+     inkscape:cx="7.8384908"
+     inkscape:cy="5.4100345"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4193" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="6.1230318e-014 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
+    <inkscape:perspective
+       id="perspective3452"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol-university">
+      <path
+         id="path4460"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4462"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
+      <path
+         id="path4464"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path4466"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4668"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3826"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3855"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3909"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3950"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3972"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3994"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4016"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4837"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4971"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6216"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6764"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6817"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.79354273,1.2601716)"
+       xlink:href="#linearGradient829"
+       id="radialGradient874"
+       cx="180.2453"
+       cy="198.41902"
+       r="101.58017"
+       fx="180.2453"
+       fy="198.41902" />
+    <linearGradient
+       id="linearGradient829">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0.341667;"
+         offset="0.0000000"
+         id="stop830" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1.0000000"
+         id="stop831" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.007004,0.99304475)"
+       xlink:href="#linearGradient829"
+       id="radialGradient832"
+       cx="360.85147"
+       cy="167.47372"
+       r="46.394722"
+       fx="360.85147"
+       fy="167.47372" />
+    <linearGradient
+       id="linearGradient6826">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0.341667;"
+         offset="0.0000000"
+         id="stop6828" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1.0000000"
+         id="stop6830" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.74491357,1.3424376)"
+       xlink:href="#linearGradient855"
+       id="linearGradient850"
+       x1="465.29425"
+       y1="248.24467"
+       x2="463.27057"
+       y2="405.76871"
+       spreadMethod="pad" />
+    <linearGradient
+       id="linearGradient855">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="0.0000000"
+         id="stop856" />
+      <stop
+         style="stop-color: rgb(255, 166, 23); stop-opacity: 0.733333;"
+         offset="1.0000000"
+         id="stop857" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.4586159,0.68558144)"
+       xlink:href="#linearGradient855"
+       id="linearGradient854"
+       x1="157.80582"
+       y1="120.96176"
+       x2="155.40575"
+       y2="231.6349" />
+    <linearGradient
+       id="linearGradient6837">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="0.0000000"
+         id="stop6839" />
+      <stop
+         style="stop-color: rgb(255, 166, 23); stop-opacity: 0.733333;"
+         offset="1.0000000"
+         id="stop6841" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective6928"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10781"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10806"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10878"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective10919"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-537.97727,-596.46273)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g3338"
+     transform="matrix(1.3973279,-0.2437849,0.2437849,1.3973279,-186.77802,-619.33929)" />
+  <path
+     style="opacity:1;fill:#ac39ac;fill-opacity:1;stroke:#da8dda;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1.0368432,2.5019965 14.0938398,0"
+     id="path10992"
+     inkscape:connector-curvature="0" />
+  <path
+     id="path10994"
+     d="m 1.0368432,5.4958218 14.0938398,0"
+     style="opacity:1;fill:#ac39ac;fill-opacity:1;stroke:#da8dda;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     inkscape:connector-curvature="0" />
+  <path
+     style="opacity:1;fill:#ac39ac;fill-opacity:1;stroke:#da8dda;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1.0368432,8.4896475 14.0938398,0"
+     id="path10996"
+     inkscape:connector-curvature="0" />
+  <path
+     id="path10998"
+     d="m 1.0368432,11.483473 14.0938398,0"
+     style="opacity:1;fill:#ac39ac;fill-opacity:1;stroke:#da8dda;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     inkscape:connector-curvature="0" />
+  <path
+     style="opacity:1;fill:#ac39ac;fill-opacity:1;stroke:#da8dda;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 1.0368432,14.477299 14.0938398,0"
+     id="path11004"
+     inkscape:connector-curvature="0" />
+  <g
+     id="g10985"
+     transform="matrix(0.03437867,0,0,0.03431875,-1.8253368,-1.7329967)"
+     style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-opacity:1">
+    <g
+       id="g10979"
+       style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-opacity:1">
+      <circle
+         style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="path10961"
+         transform="translate(76.719576,-6.1375661)"
+         cx="101.26984"
+         cy="408.14816"
+         r="52.169312" />
+      <path
+         style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         d="m 225.875,162.78125 c -2.61273,0.0409 -5.1927,1.15475 -7.0142,3.02829 -1.8215,1.87355 -2.86227,4.48387 -2.82955,7.09671 l 0,193.4375 c -9.518,-10.14902 -23.01953,-16.5 -38.03125,-16.5 -28.81232,0 -52.1875,23.34393 -52.1875,52.15625 0,28.81232 23.37518,52.1875 52.1875,52.1875 26.28278,0 53.24254,-16.72266 57.625,-48.71875 0.14129,-0.11507 0.46132,-5.4127 0.40625,-9.46875 l 0,-223.09375 c 0.0334,-2.66492 -1.05191,-5.32625 -2.93935,-7.20788 -1.88743,-1.88163 -4.55209,-2.9587 -7. [...]
+         id="path10963"
+         sodipodi:nodetypes="csccssscccsc"
+         inkscape:connector-curvature="0" />
+      <path
+         sodipodi:nodetypes="csccssscccsc"
+         id="path10975"
+         d="m 401.00727,92.19924 c -2.61273,0.04088 -5.1927,1.15475 -7.0142,3.02829 -1.8215,1.87355 -2.86227,4.48387 -2.82955,7.09671 l 0,193.4375 c -9.518,-10.14902 -23.01953,-16.5 -38.03125,-16.5 -28.81232,0 -52.1875,23.34393 -52.1875,52.15625 0,28.81232 23.37518,52.1875 52.1875,52.1875 26.28278,0 53.24254,-16.72266 57.625,-48.71875 0.14129,-0.11507 0.46132,-5.4127 0.40625,-9.46875 l 0,-223.09375 c 0.0334,-2.66492 -1.05191,-5.32625 -2.93935,-7.20788 -1.88743,-1.88163 -4.55209,-2.9587 - [...]
+         style="fill:#ac39ac;fill-opacity:1;stroke:#ac39ac;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ac39ac;stroke:#ac39ac;stroke-width:40;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+         d="M 227.85714,170.61905 398.9418,102.80424"
+         id="path10977"
+         sodipodi:nodetypes="cc"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/shop/paint.png b/images/presets/shop/paint.png
deleted file mode 100644
index 1038799..0000000
Binary files a/images/presets/shop/paint.png and /dev/null differ
diff --git a/images/presets/shop/paint.svg b/images/presets/shop/paint.svg
new file mode 100644
index 0000000..c29291c
--- /dev/null
+++ b/images/presets/shop/paint.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="paints.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="path4145"
+       cx="5"
+       cy="1041.3622"
+       rx="5"
+       ry="4.9999828" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffcc00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="path4145-81"
+       cx="8"
+       cy="1047.3622"
+       rx="5"
+       ry="4.9999828" />
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#006600;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="path4145-8"
+       cx="11"
+       cy="1041.3622"
+       rx="5"
+       ry="4.9999828" />
+  </g>
+</svg>
diff --git a/images/presets/shop/stationery.png b/images/presets/shop/stationery.png
deleted file mode 100644
index 5d0d4b5..0000000
Binary files a/images/presets/shop/stationery.png and /dev/null differ
diff --git a/images/presets/shop/stationery.svg b/images/presets/shop/stationery.svg
new file mode 100644
index 0000000..7867982
--- /dev/null
+++ b/images/presets/shop/stationery.svg
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="Layer_1"
+   space="preserve"
+   sodipodi:docname="ppc2.svg"
+   viewBox="0 0 16 16"
+   sodipodi:version="0.32"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="16"
+   height="16">
+  <defs
+     id="defs18" />
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     pagecolor="#ffffff"
+     inkscape:zoom="33.043713"
+     inkscape:window-x="-8"
+     borderopacity="1.0"
+     inkscape:current-layer="Layer_1"
+     inkscape:cx="6.9363423"
+     inkscape:cy="9.8921766"
+     inkscape:window-y="-8"
+     inkscape:window-height="988"
+     inkscape:pageopacity="0.0"
+     showgrid="true"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4146" />
+  </sodipodi:namedview>
+  <path
+     inkscape:connector-curvature="0"
+     d="M 9.9156798,0.87299003 C 8.163987,2.2779234 6.7100091,4.3875952 5.2475586,6.1456118 4.2554504,7.3384357 3.1150733,9.3212831 3.86595,11.021534 4.5792888,12.63663 7.2163596,12.130111 8.3307309,11.362285 9.6519727,10.453356 10.677853,9.0411532 11.732446,7.7991313 12.489442,6.9079858 13.910589,5.7059454 13.128176,4.3629313 12.416837,3.1420685 11.349183,2.5880395 10.213748,3.4785359 9.5719545,3.9816794 8.6029105,4.8298578 8.6715143,5.8066779 8.9808788,7.0912775 10.417912,4.8158384 10. [...]
+     style="fill:#5e5d5d"
+     id="path5" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 15.150283,2.5540293 C 14.163823,1.4344182 13.207488,-0.04801178 11.615831,0.11645747 10.618428,0.21952659 9.837309,1.0134444 9.1643324,1.7621884 8.2139984,2.8192311 7.2843751,3.8987309 6.3635773,4.9869279 5.9614858,5.4619026 5.5628068,5.9402524 5.1638925,6.4183426 4.3325268,7.3351905 4.0592882,8.190119 3.8254702,9.420458 3.3946663,11.685642 5.3101611,12.075202 6.8881673,11.843621 8.5643134,11.597371 9.7722354,9.9372315 10.867779,8.647829 11.520045,7.8798731 13.467429,6.2074013  [...]
+     style="fill:#7f7f7f;fill-opacity:1"
+     id="path7" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 8.6802222,0.83145084 C 7.9562927,-0.29140549 5.5238568,3.1242845 5.1165876,3.5752444 4.1547216,4.6403353 3.1514345,5.6584349 2.1941578,6.728848 1.2486485,7.7864099 0.52871993,8.5872077 0.46035143,10.132985 c -0.0317719,0.714474 0.0110613,1.433751 0.0897851,2.142903 0.0248292,0.222754 0.0130618,0.894131 0.17039172,1.068466 -0.0630732,-0.06945 0.0269473,-0.791581 0.0298892,-0.897247 0.0191808,-0.664756 0.0624848,-1.331331 0.16721453,-1.987001 C 1.1569806,8.9632672 1.9657529,7.901 [...]
+     style="fill:#e5e5e5"
+     id="path9" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 8.8553208,1.2611219 C 8.5147728,1.1718126 7.9040455,2.0789247 7.7042353,2.3076499 7.1379888,2.9550123 6.5803325,3.611721 6.003613,4.2480495 5.2905095,5.0349576 4.5444574,5.7844804 3.8287651,6.5686625 3.0956571,7.3717969 2.1583849,8.2307495 1.8694957,9.3668465 1.7444084,9.8590859 1.4042133,11.682656 1.8046574,12.122712 1.5010589,11.787803 1.973637,9.8871249 2.088369,9.522878 2.4312706,8.4344214 3.2974677,7.6789273 4.0043345,6.868264 4.5645796,6.2255747 9.1839839,1.7650442 8.8549 [...]
+     style="fill:#999898"
+     id="path11" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 14.996601,2.6072514 C 14.240311,1.5940845 13.274797,0.2573013 11.970265,0.23406531 10.316595,0.20433882 9.2312888,1.903162 8.1728126,3.070673 7.1344586,4.2163759 6.090927,5.364675 5.1345917,6.5952736 4.6389495,7.23303 4.2463896,7.8446946 4.0668193,8.6772958 3.9546761,9.1984829 4.0851764,10.068989 3.9286702,10.51203 4.0417547,10.192048 3.964443,9.6915012 4.0649365,9.3337449 4.3352333,8.3722424 4.8512331,7.4975827 5.4416027,6.7387136 6.4866641,5.3956995 7.7523639,4.3169786 8.8814 [...]
+     style="fill:#e5e5e5"
+     id="path13" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 13.290683,3.2439693 C 12.737381,2.2729907 12.167369,1.4524618 11.046996,1.8138528 10.03453,2.1407143 9.2624723,3.2586378 8.5440735,4.0346419 7.7203567,4.9247489 6.8634558,5.7855189 6.1090488,6.7496176 5.7635584,7.1911014 5.51762,7.6332342 5.3938272,8.2075135 5.3453455,8.4329935 5.0989365,9.4285062 5.280978,9.6313992 5.2313196,9.5763598 5.363232,8.9536613 5.3766468,8.8778523 5.4933792,8.2115376 5.7595575,7.7326686 6.1885963,7.2560064 7.1269275,6.2135024 8.0444304,5.1489308 8.975 [...]
+     style="fill:#999898"
+     id="path15" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 14.183122,5.0679293 c 0.532003,0.586871 -5.1153999,6.2668367 -5.5950384,6.7928267 -0.836308,0.916848 -1.5064605,1.875624 -2.7248555,2.133297 -0.6390866,0.135262 -1.2766435,0.265721 -1.9311454,0.21873 -0.1035529,-0.0077 -1.5849489,-0.230543 -1.5849489,-0.276106 0,0.263255 1.323007,0.508466 1.4756299,0.538192 0.7780595,0.151488 1.6561417,0.170051 2.4271407,-0.05128 1.0418841,-0.298693 1.696033,-1.143106 2.4137258,-1.961688 1.252991,-1.428689 2.4977448,-2.8537428 3.8615848,-4.1544 [...]
+     style="fill:#e5e5e5"
+     id="path17" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 15.871506,4.035291 c 0,1.387409 -0.767587,2.3452769 -1.593892,3.2662787 C 12.78751,8.9623586 11.264222,10.591214 9.7441114,12.218512 8.595144,13.449111 7.5609086,14.954257 5.9198292,15.360173 5.0828152,15.56722 4.2001437,15.597596 3.3491265,15.486608 3.2285108,15.470771 1.5243583,15.140016 1.5243583,15.094582 c 0,0.349319 1.7560467,0.663848 1.9615052,0.700065 0.9559823,0.167974 1.9605639,0.113973 2.8795966,-0.236124 1.302061,-0.496264 2.1063617,-1.531758 3.0697574,-2.556867 C 1 [...]
+     style="fill:#999898"
+     id="path19" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 11.707029,5.8303034 c 0,0.2163932 -0.254411,0.502105 -0.35867,0.658526 -0.525649,0.788336 -1.090248,1.5566813 -1.6707334,2.2959491 -0.5177649,0.6593049 -1.1121354,1.3778035 -1.8140599,1.7991665 -0.2076943,0.124617 -2.1400164,0.229763 -2.1400164,0.05218 0,-0.01077 1.7642839,-0.299471 1.990806,-0.46446 C 8.5592535,9.5562392 9.2036354,8.5373607 9.8930864,7.7313705 10.346248,7.2014862 10.802352,6.6712124 11.287168,6.176247 c 0.02601,-0.026481 0.419861,-0.3693094 0.419861,-0.3459436"
+     style="fill:#e5e5e5"
+     id="path21" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 13.211842,5.4730663 c 0,0.5819381 -0.624495,1.1427172 -0.960689,1.537729 -0.716752,0.8427264 -1.421618,1.7018089 -2.153196,2.5285686 -0.666505,0.7535471 -1.4427994,1.6661111 -2.3578311,2.0425601 -0.1805117,0.07425 -2.3360611,0.497042 -2.3360611,0.246249 0,0.117998 2.3688921,-0.643727 2.6174192,-0.799369 1.1414363,-0.714085 2.030697,-1.956107 2.929843,-2.9855001 0.60202,-0.6895506 1.195684,-1.3870196 1.789466,-2.0850079 0.04224,-0.049587 0.471049,-0.4774411 0.471049,-0.4852297"
+     style="fill:#999898"
+     id="path23" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 12.477322,4.0159493 C 11.929903,3.4103857 11.45403,3.1180536 10.700211,3.4874928 10.498048,3.586408 8.5931435,5.0549483 8.9385163,5.4504794 9.1022006,5.6374057 10.719863,3.8622543 10.901787,3.7372472 c 0.407151,-0.2794808 0.697335,-0.1574595 1.068831,0.1617433 0.09143,0.078275 0.941626,1.1229861 1.030352,1.0252392 0.134384,-0.1481132 -0.461987,-0.8400004 -0.523648,-0.9082804"
+     style="fill:#e5e5e5"
+     id="path25" />
+  <metadata
+     id="metadata16">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2009-04-30T08:04:27</dc:date>
+        <dc:description>Paperclip icon by Francesco 'Architetto' Rollandin.</dc:description>
+        <dc:source>https://openclipart.org/detail/25518/architetto----clips-by-anonymous-25518</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Anonymous</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>clip</rdf:li>
+            <rdf:li>icon</rdf:li>
+            <rdf:li>office</rdf:li>
+            <rdf:li>paper</rdf:li>
+            <rdf:li>paperclip</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/shop/tailor.svg b/images/presets/shop/tailor.svg
index 98194f4..ab3f57f 100644
--- a/images/presets/shop/tailor.svg
+++ b/images/presets/shop/tailor.svg
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://creativecommons.org/ns#"
@@ -8,269 +9,510 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="160.00000pt"
-   id="svg1"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/nicu/Desktop/camel"
-   sodipodi:docname="tailor.svg"
+   version="1.0"
+   width="464.89203"
+   height="464.95932"
+   id="svg2"
    sodipodi:version="0.32"
-   width="160.00000pt"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.map-icons\svg\shopping\tailor.png"
-   inkscape:export-xdpi="7.471417"
-   inkscape:export-ydpi="7.471417">
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="tailor34.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
   <metadata
-     id="metadata3">
+     id="metadata2975">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
-        <dc:title>t-shirt</dc:title>
-        <dc:description />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li />
-            <rdf:li>people</rdf:li>
-            <rdf:li>clothing</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:publisher>
-          <cc:Agent
-             rdf:about="http://www.openclipart.org">
-            <dc:title>Nicu Buculei</dc:title>
-          </cc:Agent>
-        </dc:publisher>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Nicu Buculei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:rights>
-          <cc:Agent>
-            <dc:title>Nicu Buculei</dc:title>
-          </cc:Agent>
-        </dc:rights>
-        <dc:date />
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
         <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-        <dc:language>en</dc:language>
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
       </cc:Work>
       <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
         <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
         <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
         <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
       </cc:License>
     </rdf:RDF>
   </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="0.90509664"
+     inkscape:cx="-40.591004"
+     inkscape:cy="103.71321"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1" />
   <defs
-     id="defs3">
+     id="defs4">
     <inkscape:perspective
        sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 100 : 1"
+       inkscape:vp_x="0 : 290 : 1"
        inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="200 : 100 : 1"
-       inkscape:persp3d-origin="100 : 66.666667 : 1"
-       id="perspective27" />
-    <sodipodi:namedview
-       bordercolor="#666666"
-       borderopacity="1.0"
-       id="namedview4258"
-       inkscape:cx="475.26707"
-       inkscape:cy="250.37448"
-       inkscape:pageopacity="0.0"
-       inkscape:pageshadow="2"
-       inkscape:window-height="739"
-       inkscape:window-width="1012"
-       inkscape:window-x="0"
-       inkscape:window-y="26"
-       inkscape:zoom="0.61399264"
-       pagecolor="#ffffff" />
-    <defs
-       id="defs48974" />
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective2441" />
     <inkscape:perspective
-       id="perspective10"
+       id="perspective2466"
        inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
        inkscape:vp_z="744.09448 : 526.18109 : 1"
        inkscape:vp_y="0 : 1000 : 0"
        inkscape:vp_x="0 : 526.18109 : 1"
        sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     bordercolor="#666666"
-     borderopacity="1.0"
-     id="base"
-     inkscape:cx="136.40832"
-     inkscape:cy="105.59459"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:window-height="964"
-     inkscape:window-width="1400"
-     inkscape:window-x="-4"
-     inkscape:window-y="-4"
-     inkscape:zoom="3.5"
-     pagecolor="#ffffff"
-     showgrid="false"
-     inkscape:current-layer="svg1" />
-  <g
-     id="g2776">
-    <path
-       d="M 7.7954843,97.974423 C 10.290914,101.81355 36.652504,113.09481 44.368044,110.75406 C 47.284684,107.83740 47.015394,94.483303 48.743004,91.066763 C 52.966024,104.35035 43.905434,176.72080 43.638884,188.04489 C 54.889704,195.91369 138.80798,195.06855 158.53939,190.38567 C 161.57065,186.08665 151.24785,122.39154 152.28354,93.254223 C 154.27906,96.173613 155.41755,103.83339 155.92932,107.10824 C 164.06882,109.44904 193.65360,102.73332 195.84116,99.087513 C 195.91708,91.794533 175. [...]
-       id="path2773"
-       sodipodi:nodetypes="ccccccccccccccc"
-       style="fill:#3c5889;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.7500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;" />
-    <path
-       d="M 83.031250,4.5937500 C 77.453404,12.463182 62.437934,15.158085 53.167383,21.490685 C 44.010674,27.093993 32.007139,30.442347 27.666035,41.250980 C 18.785770,59.284699 10.555505,76.491767 5.7812500,96.062500 C 8.8870275,105.39955 22.528072,106.92179 30.846025,110.68957 C 33.644061,111.42432 39.435242,113.05978 43.115415,112.20193 C 46.081301,109.55837 46.936179,104.42150 48.433036,95.540179 C 52.511675,112.83820 43.036832,161.40210 41.815119,188.58266 C 49.433004,194.91429 64.4 [...]
-       id="path909"
-       sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
-       style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.7500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;" />
-  </g>
-  <g
-     id="g3615"
-     transform="matrix(0.445330,0.000000,0.000000,0.445330,77.48423,30.03762)">
-    <g
-       id="g1108"
-       transform="matrix(0.192029,0.000000,0.000000,0.192029,10.17587,51.14223)">
-      <path
-         d="M 281.59307,73.122280 C 289.29251,73.122280 294.53956,67.133790 294.53956,52.590450 C 294.53956,45.290240 292.48635,33.769600 282.04933,33.769600 C 272.75298,33.769600 268.76066,43.807390 268.76066,53.331870 C 268.76066,62.856340 271.84044,73.122280 281.53605,73.122280 L 281.59307,73.122280 M 281.76417,65.479910 C 279.19769,65.479910 277.82889,60.917210 277.94297,53.217810 C 277.88593,46.430910 279.19769,41.411990 281.76417,41.411990 C 284.44471,41.411990 285.35725,46.430910  [...]
-         id="path5010"
-         style="font-size:54.000000;font-style:normal;font-variant:normal;font-weight:800;font-stretch:condensed;fill:#000000;fill-opacity:0.20000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Myriad Pro Black Cond;text-anchor:start;writing-mode:lr;" />
-      <path
-         d="M 278.23347,69.704248 C 285.93291,69.704248 291.17996,63.715755 291.17996,49.172417 C 291.17996,41.872203 289.12675,30.351569 278.68973,30.351569 C 269.39338,30.351569 265.40106,40.389360 265.40106,49.913838 C 265.40106,59.438309 268.48084,69.704248 278.17645,69.704248 L 278.23347,69.704248 M 278.40457,62.061874 C 275.83809,62.061874 274.46929,57.499178 274.58337,49.799772 C 274.52633,43.012880 275.83809,37.993957 278.40457,37.993957 C 281.08511,37.993957 281.99765,43.012880  [...]
-         id="path48984"
-         style="font-size:54.000000;font-style:normal;font-variant:normal;font-weight:800;font-stretch:condensed;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Myriad Pro Black Cond;text-anchor:start;writing-mode:lr;" />
-    </g>
-    <g
-       id="g1092"
-       transform="matrix(5.915837e-2,0.000000,0.000000,5.915837e-2,85.92543,66.21956)">
-      <path
-         d="M 296.77515,91.480067 C 292.39395,91.203657 288.27505,93.294297 285.80645,96.823867 L 176.33769,96.823867 C 169.39928,96.823867 163.80645,102.38537 163.80645,109.32387 L 163.80645,132.57387 L 48.712696,173.57387 C 42.176676,175.90237 38.790386,183.03777 41.118946,189.57387 L 116.77520,401.94887 C 119.10376,408.48477 126.23919,411.87117 132.77520,409.54257 L 297.46265,350.88627 L 451.58765,392.51127 C 458.28595,394.32087 465.12185,390.39707 466.93145,383.69887 L 525.74395,166. [...]
-         id="path910"
-         style="fill-opacity:0.20161290;fill-rule:evenodd;stroke-width:1.0000000pt;" />
+    <inkscape:perspective
+       id="perspective3333"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3401"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3464"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3581"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4312"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 225 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8860"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8887"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective4904" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       id="perspective4668" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective4471" />
+    <symbol
+       id="symbol-university"
+       viewBox="244.5 110 489 219.9">
       <path
-         d="M 289.13776,11.141406 C 282.19933,11.141406 276.61353,16.727213 276.61353,23.665638 L 276.61353,249.10181 C 276.61353,256.04023 282.19933,261.62604 289.13776,261.62604 L 514.57393,261.62604 C 521.51235,261.62604 527.09816,256.04023 527.09816,249.10181 L 527.09816,23.665638 C 527.09816,16.727213 521.51235,11.141406 514.57393,11.141406 L 289.13776,11.141406 z "
-         id="rect911"
-         style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;"
-         transform="matrix(0.965391,0.260807,-0.260807,0.965391,0.000000,0.000000)" />
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         id="path4460"
+         inkscape:connector-curvature="0" />
       <path
-         d="M 310.90331,38.364491 C 305.39329,38.364491 300.95743,42.800352 300.95743,48.310369 L 300.95743,227.33617 C 300.95743,232.84619 305.39329,237.28205 310.90331,237.28205 L 489.92911,237.28205 C 495.43912,237.28205 499.87498,232.84619 499.87498,227.33617 L 499.87498,48.310369 C 499.87498,42.800352 495.43912,38.364491 489.92911,38.364491 L 310.90331,38.364491 z "
-         id="rect912"
-         style="fill:#f3e533;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:0.79413080pt;"
-         transform="matrix(0.965391,0.260807,-0.260807,0.965391,0.000000,0.000000)" />
+         d="M 94,176 73,215"
+         id="path4462"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
       <path
-         d="M 153.28592,91.074089 C 146.34750,91.074089 140.76169,96.659896 140.76169,103.59832 L 140.76169,329.03449 C 140.76169,335.97292 146.34750,341.55872 153.28592,341.55872 L 378.72209,341.55872 C 385.66052,341.55872 391.24632,335.97292 391.24632,329.03449 L 391.24632,103.59832 C 391.24632,96.659896 385.66052,91.074089 378.72209,91.074089 L 153.28592,91.074089 z "
-         id="rect913"
-         style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;" />
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         id="path4464"
+         inkscape:connector-curvature="0" />
       <path
-         d="M 175.05156,118.29723 C 169.54154,118.29723 165.10568,122.73310 165.10568,128.24311 L 165.10568,307.26891 C 165.10568,312.77893 169.54154,317.21479 175.05156,317.21479 L 354.07736,317.21479 C 359.58738,317.21479 364.02324,312.77893 364.02324,307.26891 L 364.02324,128.24311 C 364.02324,122.73310 359.58738,118.29723 354.07736,118.29723 L 175.05156,118.29723 z "
-         id="rect914"
-         style="fill:#ff7f00;fill-rule:evenodd;stroke-width:0.79413080pt;" />
+         ill="none"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         id="path4466"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       id="perspective3452" />
+    <inkscape:perspective
+       id="perspective9479"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9690"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective9819" />
+    <inkscape:perspective
+       id="perspective9817"
+       inkscape:persp3d-origin="30 : 20 : 1"
+       inkscape:vp_z="60 : 30 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 30 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <symbol
+       viewBox="244.5 110 489 219.9"
+       id="symbol9807">
       <path
-         d="M -32.155801,166.71382 C -39.094218,166.71382 -44.680019,172.29962 -44.680019,179.23804 L -44.680019,404.67401 C -44.680019,411.61243 -39.094218,417.19823 -32.155801,417.19823 L 193.28017,417.19823 C 200.21858,417.19823 205.80439,411.61243 205.80439,404.67401 L 205.80439,179.23804 C 205.80439,172.29962 200.21858,166.71382 193.28017,166.71382 L -32.155801,166.71382 z "
-         id="rect915"
-         style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999866pt;"
-         transform="matrix(0.942003,-0.335604,0.335604,0.942003,0.000000,0.000000)" />
+         id="path9809"
+         d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z"
+         inkscape:connector-curvature="0" />
       <path
-         d="M -10.390225,193.93687 C -15.900234,193.93687 -20.336090,198.37273 -20.336090,203.88274 L -20.336090,382.90835 C -20.336090,388.41836 -15.900234,392.85422 -10.390225,392.85422 L 168.63539,392.85422 C 174.14540,392.85422 178.58125,388.41836 178.58125,382.90835 L 178.58125,203.88274 C 178.58125,198.37273 174.14540,193.93687 168.63539,193.93687 L -10.390225,193.93687 z "
-         id="rect916"
-         style="fill:#bf0000;fill-rule:evenodd;stroke-width:0.79413080pt;"
-         transform="matrix(0.942003,-0.335604,0.335604,0.942003,0.000000,0.000000)" />
-    </g>
-    <g
-       id="g3612">
+         id="path9811"
+         d="M 94,176 73,215"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:20" />
       <path
-         d="M 137.86172,98.940798 C 137.86172,98.597796 137.81755,98.323413 137.72923,98.117602 C 137.64090,97.909520 137.52469,97.805486 137.38057,97.805486 C 137.23801,97.805486 137.12255,97.908384 137.03423,98.114179 C 136.94745,98.319974 136.90406,98.595508 136.90406,98.940798 C 136.90406,99.288375 136.94745,99.565045 137.03423,99.770840 C 137.12255,99.976651 137.23801,100.07955 137.38057,100.07955 C 137.52469,100.07955 137.64090,99.976651 137.72923,99.770840 C 137.81755,99.562758 13 [...]
-         id="path2369"
-         style="font-size:12.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:0.20000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans Mono;text-anchor:start;writing-mode:lr;" />
+         id="path9813"
+         d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z"
+         inkscape:connector-curvature="0" />
       <path
-         d="M 137.28099,98.258217 C 137.28099,97.915215 137.23682,97.640832 137.14850,97.435021 C 137.06017,97.226939 136.94396,97.122905 136.79984,97.122905 C 136.65728,97.122905 136.54182,97.225803 136.45350,97.431598 C 136.36672,97.637393 136.32333,97.912927 136.32333,98.258217 C 136.32333,98.605794 136.36672,98.882464 136.45350,99.088259 C 136.54182,99.294070 136.65728,99.396967 136.79984,99.396967 C 136.94396,99.396967 137.06017,99.294070 137.14850,99.088259 C 137.23682,98.880177 13 [...]
-         id="text1744"
-         style="font-size:12.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans Mono;text-anchor:start;writing-mode:lr;" />
-    </g>
+         id="path9815"
+         d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29"
+         ill="none"
+         inkscape:connector-curvature="0"
+         style="stroke:#000000;stroke-width:20" />
+    </symbol>
+    <inkscape:perspective
+       id="perspective9805"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9803"
+       inkscape:persp3d-origin="6 : 4 : 1"
+       inkscape:vp_z="12 : 6 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 6 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective9801"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 16 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9799" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9797" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9795" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 225 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="450 : 225 : 1"
+       inkscape:persp3d-origin="225 : 150 : 1"
+       id="perspective9793" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9791" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9789" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9787" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9785" />
+    <inkscape:perspective
+       id="perspective9783"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 290 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <defs
+       id="defs48974" />
+    <sodipodi:namedview
+       pagecolor="#ffffff"
+       inkscape:zoom="0.61399264"
+       inkscape:window-y="26"
+       inkscape:window-x="0"
+       inkscape:window-width="1012"
+       inkscape:window-height="739"
+       inkscape:pageshadow="2"
+       inkscape:pageopacity="0.0"
+       inkscape:cy="250.37448"
+       inkscape:cx="475.26707"
+       id="namedview4258"
+       borderopacity="1.0"
+       bordercolor="#666666" />
+    <inkscape:perspective
+       id="perspective11483"
+       inkscape:persp3d-origin="100 : 66.666667 : 1"
+       inkscape:vp_z="200 : 100 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 100 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective12684"
+       inkscape:persp3d-origin="180 : 66.666667 : 1"
+       inkscape:vp_z="360 : 100 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 100 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-1274.9916,-109.29196)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g9828"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-1935.2895,45.550109)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect9830"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect9832"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <g
+     id="g3219"
+     transform="matrix(2.8815995,0,0,3.5487324,-191.08733,-1938.2597)"
+     style="fill:#3d5889;fill-opacity:1;stroke:#000000;stroke-width:1.73248327;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
+    <path
+       sodipodi:nodetypes="ccccccccccc"
+       id="path2427"
+       d="m 67.613793,570.41735 c 24.468075,-13.10042 45.356037,-11.77452 66.041377,-23.06206 11.09637,2.43104 19.357,1.4592 26.99311,-0.26207 23.42862,10.78637 44.02825,12.51579 66.04138,23.5862 -1.82964,11.55946 -5.85886,21.54778 -12.57932,29.6138 -8.15361,-4.36994 -15.86829,-6.10632 -23.32413,-6.28966 l -0.52414,78.62069 c -32.1215,5.98273 -59.34716,3.39775 -85.95862,-0.26207 l -0.26207,-78.09655 c -9.370679,-0.2722 -16.500436,3.19047 -23.848277,6.28966 -7.067215,-9.63539 -10.36885,-1 [...]
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3199"
+       d="m 71.282759,569.10701 c 2.214678,10.74851 6.083496,20.78686 13.627586,29.35172"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3203"
+       d="m 105.35172,668.16908 c 28.12874,4.60443 56.25747,5.59295 84.38621,-0.26207"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="czc"
+       id="path3205"
+       d="m 133.3931,547.61736 c -0.22816,2.3247 1.69237,12.73282 13.88965,13.36551 11.93593,0.61914 14.27527,-11.53603 13.88966,-13.10345"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 128.21194,550.41871 c -0.22816,2.3247 4.57424,15.11165 18.34482,15.46206 14.03248,0.35707 19.77872,-14.68086 19.39311,-16.24828"
+       id="path3207"
+       sodipodi:nodetypes="czc"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3209"
+       d="m 134.52279,552.33459 c 8.53814,2.23324 16.08174,1.75419 25.31809,-0.20185"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3213"
+       d="m 104.16182,558.28077 c 2.57594,9.88539 6.83803,21.48891 -0.26207,35.37931"
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 190.37521,558.48262 c -2.57594,9.88539 -6.83803,21.48891 0.26207,35.37931"
+       id="path3215"
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#3d5889;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.73248327;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 223.28276,568.84494 c -2.21468,10.74851 -6.0835,20.78686 -13.62759,29.35172"
+       id="path3217"
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0" />
   </g>
   <g
      id="g2546"
-     transform="matrix(0.7515689,0.9386509,-0.9386509,0.7515689,-43.774405,79.124311)">
+     transform="matrix(1.7637447,2.7127555,-2.2027795,2.1720777,-114.10258,180.41427)">
     <g
        id="g3167"
-       transform="matrix(0.2747478,-4.8355285e-2,4.8355285e-2,0.2747478,-68.316528,-171.9058)">
-      <path
-         d="M 534.28571,642.36218 A 37.142857,64.285713 0 1 1 460,642.36218 A 37.142857,64.285713 0 1 1 534.28571,642.36218 z"
-         sodipodi:ry="64.285713"
-         sodipodi:rx="37.142857"
-         sodipodi:cy="642.36218"
-         sodipodi:cx="497.14285"
+       transform="matrix(0.2747478,-0.04835528,0.04835528,0.2747478,-68.316528,-171.9058)">
+      <ellipse
+         ry="64.285713"
+         rx="37.142857"
+         cy="642.36218"
+         cx="497.14285"
          id="path2383"
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         sodipodi:type="arc" />
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
       <path
+         inkscape:connector-curvature="0"
          sodipodi:nodetypes="cccc"
          id="path3155"
-         d="M 500,578.07647 L 465.71429,112.36218 L 460,600.93361 L 500,578.07647 z"
+         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
          style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="M 534.28571,642.36218 A 37.142857,64.285713 0 1 1 460,642.36218 A 37.142857,64.285713 0 1 1 534.28571,642.36218 z"
-         sodipodi:ry="64.285713"
-         sodipodi:rx="37.142857"
-         sodipodi:cy="642.36218"
-         sodipodi:cx="497.14285"
+      <ellipse
+         ry="64.285713"
+         rx="37.142857"
+         cy="642.36218"
+         cx="497.14285"
          id="path3157"
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         sodipodi:type="arc" />
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
       <path
+         inkscape:connector-curvature="0"
          sodipodi:nodetypes="cccc"
          id="path3159"
-         d="M 500,578.07647 L 465.71429,112.36218 L 460,600.93361 L 500,578.07647 z"
+         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
          style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     </g>
     <g
-       transform="matrix(-0.2747478,-4.8355285e-2,-4.8355285e-2,0.2747478,236.6762,-171.9058)"
+       transform="matrix(-0.2747478,-0.04835528,-0.04835528,0.2747478,236.6762,-171.9058)"
        id="g3183">
-      <path
-         sodipodi:type="arc"
+      <ellipse
+         ry="64.285713"
+         rx="37.142857"
+         cy="642.36218"
+         cx="497.14285"
          style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         id="path3185"
-         sodipodi:cx="497.14285"
-         sodipodi:cy="642.36218"
-         sodipodi:rx="37.142857"
-         sodipodi:ry="64.285713"
-         d="M 534.28571,642.36218 A 37.142857,64.285713 0 1 1 460,642.36218 A 37.142857,64.285713 0 1 1 534.28571,642.36218 z" />
+         id="path3185" />
       <path
+         inkscape:connector-curvature="0"
          style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="M 500,578.07647 L 465.71429,112.36218 L 460,600.93361 L 500,578.07647 z"
+         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
          id="path3187"
          sodipodi:nodetypes="cccc" />
-      <path
-         sodipodi:type="arc"
+      <ellipse
+         ry="64.285713"
+         rx="37.142857"
+         cy="642.36218"
+         cx="497.14285"
          style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         id="path3189"
-         sodipodi:cx="497.14285"
-         sodipodi:cy="642.36218"
-         sodipodi:rx="37.142857"
-         sodipodi:ry="64.285713"
-         d="M 534.28571,642.36218 A 37.142857,64.285713 0 1 1 460,642.36218 A 37.142857,64.285713 0 1 1 534.28571,642.36218 z" />
+         id="path3189" />
       <path
+         inkscape:connector-curvature="0"
          style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="M 500,578.07647 L 465.71429,112.36218 L 460,600.93361 L 500,578.07647 z"
+         d="M 500,578.07647 465.71429,112.36218 460,600.93361 500,578.07647 Z"
          id="path3191"
          sodipodi:nodetypes="cccc" />
     </g>
   </g>
-  <rect
-     y="-143.82388"
-     x="26.839664"
-     height="0"
-     width="5.579412"
-     id="rect3197"
-     style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5.57941198;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
   <path
-     style="fill:none;fill-rule:evenodd;stroke:#efeb00;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-     d="M 191.14286,154.28572 C 191.14286,154.28572 158.94854,133.46013 154.28571,128.28572 C 149.62289,123.11131 127.03797,128.75119 119.42857,129.71429 C 111.81916,130.67738 100.93288,142.6351 98.285713,149.14286 C 95.638543,155.65063 96.409243,164.06359 100.57143,170.28572 C 104.73361,176.50785 114.44891,183.33626 121.14285,182.00001 C 127.8368,180.66375 135.43084,176.05619 136.28571,170.85715 C 137.14059,165.6581 133.57065,156.53689 130,153.71429 C 126.42935,150.8917 121.02564,150.43 [...]
+     inkscape:connector-curvature="0"
+     style="fill:none;fill-rule:evenodd;stroke:#efeb00;stroke-width:13.10885239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+     d="m 431.7275,362.90182 c 0,0 -76.05961,-60.59153 -87.07563,-75.64633 -11.01599,-15.05483 -64.37323,1.35426 -82.35057,4.15637 -17.97735,2.8021 -43.69637,37.59277 -49.95035,56.52692 -6.25397,18.93419 -4.43319,43.41148 5.40005,61.51461 9.83322,18.10312 32.78577,37.97021 48.60033,34.08243 15.81456,-3.88782 33.75561,-17.29341 35.77524,-32.41987 2.01967,-15.1265 -6.41436,-41.66443 -14.85008,-49.87671 -8.43572,-8.21225 -21.20208,-9.54941 -28.3502,-4.15639"
      id="path3330"
      sodipodi:nodetypes="czzzzzzzz" />
 </svg>
diff --git a/images/presets/shop/travel.png b/images/presets/shop/travel.png
deleted file mode 100644
index 63b9411..0000000
Binary files a/images/presets/shop/travel.png and /dev/null differ
diff --git a/images/presets/shop/travel_agency.svg b/images/presets/shop/travel_agency.svg
new file mode 100644
index 0000000..8c5fb6c
--- /dev/null
+++ b/images/presets/shop/travel_agency.svg
@@ -0,0 +1,324 @@
+<?xml version="1.0"?>
+<svg
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:cc="http://creativecommons.org/ns#"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:dc="http://purl.org/dc/elements/1.1/"
+    xmlns:svg="http://www.w3.org/2000/svg"
+    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+    xmlns:ns1="http://sozi.baierouge.fr"
+    id="svg8806"
+    viewBox="0 0 482.35 402.78"
+    version="1.1"
+  >
+  <defs
+      id="defs8808"
+    >
+    <filter
+        id="filter9479"
+        height="2.8437"
+        width="1.0243"
+        y="-.92185"
+        x="-.012158"
+        color-interpolation-filters="sRGB"
+      >
+      <feGaussianBlur
+          id="feGaussianBlur9481"
+          stdDeviation="2.2619444"
+      />
+    </filter
+    >
+    <filter
+        id="filter9563"
+        height="1.7799"
+        width="1.5543"
+        y="-.38996"
+        x="-.27713"
+        color-interpolation-filters="sRGB"
+      >
+      <feGaussianBlur
+          id="feGaussianBlur9565"
+          stdDeviation="4.8408367"
+      />
+    </filter
+    >
+    <filter
+        id="filter9651"
+        height="1.8081"
+        width="1.0907"
+        y="-.40405"
+        x="-.045333"
+        color-interpolation-filters="sRGB"
+      >
+      <feGaussianBlur
+          id="feGaussianBlur9653"
+          stdDeviation="8.3536643"
+      />
+    </filter
+    >
+    <linearGradient
+        id="linearGradient9680"
+        y2="506.98"
+        gradientUnits="userSpaceOnUse"
+        x2="377.6"
+        y1="309.9"
+        x1="377.6"
+      >
+      <stop
+          id="stop9676"
+          stop-color="#08a"
+          offset="0"
+      />
+      <stop
+          id="stop9678"
+          stop-color="#19c5f0"
+          offset="1"
+      />
+    </linearGradient
+    >
+    <linearGradient
+        id="linearGradient9692"
+        y2="190.4"
+        gradientUnits="userSpaceOnUse"
+        x2="381.13"
+        y1="105.55"
+        x1="381.13"
+      >
+      <stop
+          id="stop9688"
+          stop-color="#56b8ff"
+          offset="0"
+      />
+      <stop
+          id="stop9690"
+          stop-color="#4e6f86"
+          stop-opacity=".95536"
+          offset="1"
+      />
+    </linearGradient
+    >
+  </defs
+  >
+  <g
+      id="layer1"
+      transform="translate(-143.24 -121.51)"
+    >
+    <path
+        id="path8825"
+        d="m566.7 186.66s-177.79-19.193-368.71 3.0305c-38.386 6.0609-41.416 42.426-41.416 42.426-8.0812 125.26-1.0102 239.41-1.0102 239.41 4.2065 24.078 28.471 40.325 34.345 40.406 156.78 2.1752 391.94 1.0102 391.94 1.0102 33.335-6.0609 36.365-36.365 36.365-36.365 3.0305-140.92-5.4426-247.49-6.0609-252.54-3.4271-27.952-45.457-37.376-45.457-37.376z"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path8827"
+        d="m197.48 196.76c189.4-19.698 369.72-1.5152 369.72-1.5152 41.921 4.5457 42.426 35.355 42.426 35.355 9.5964 172.23 7.0771 235.72 6.0609 242.94-3.3069 23.493-33.678 39.457-33.678 39.457"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path8829"
+        d="m163.93 490.93c-9.2857-16.071-6.0714-32.857-6.0714-32.857-6.4286-134.64 3.5714-228.21 3.5714-228.21 3.5714-29.286 37.5-33.214 37.5-33.214"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path8831"
+        d="m431.79 179.51c6.8828-9.4441-1.1563-20.082-18.319-9.8835s-51.904 3.3804-58.734-1.5451c-10.374-7.4818-21.795 2.9171-14.375 11.429"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path8833"
+        d="m338.21 170.58 8.2143-29.286 79.643-0.71428 6.4286 26.786"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path8835"
+        d="m333.57 179.15c-7.8571-2.5-8.2143-7.5-8.2143-7.5l10-46.786c53.571-5.7143 99.286-1.0714 99.286-1.0714l9.6428 47.5c-3.5714 5.7143-8.5714 7.5-8.5714 7.5"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path8837"
+        d="m230.68 511.58-43-0.52503-5-2.9216c-11.601-6.7784-21.462-20.131-23.474-31.784-1.0293-5.9615-3.0914-83.023-3.0257-113.07 0.0876-39.995 3.6316-117.79 6.066-133.15 2.333-14.721 11.422-24.546 27.806-30.057 8.2075-2.7606 34.703-5.3302 88.628-8.5953 35.939-2.176 136.87-3.0282 180.16-1.5212 38.674 1.3464 74.205 3.413 98.838 5.7486 9.35 0.88654 18.195 1.6607 19.655 1.7203s2.4756 0.39746 2.2569 0.75075c-0.58711 0.94849 4.4954 2.0291 5.7891 1.2308 0.72115-0.44501 0.82248-0.22195 0.28996 [...]
+        fill="url(#linearGradient9680)"
+    />
+    <path
+        id="path8839"
+        filter="url(#filter9563)"
+        d="m193.17 206.43c-0.16571 0.0818-0.35594 0.0783-0.53655 0.0928-0.23745 0.0198-0.47473 0.0415-0.71208 0.0624-0.30437 0.0269-0.60897 0.0508-0.91364 0.0738-0.3676 0.0276-0.73546 0.0514-1.1034 0.0743-0.40389 0.0633-0.80911 0.0858-1.2069 0.18379-0.44486 0.0777-0.87518 0.21669-1.3017 0.36185-0.5307 0.19276-1.0641 0.37701-1.5976 0.56184-0.56576 0.18381-1.1147 0.41368-1.6751 0.61276-6.5618 2.4542 16.228-6.1771 11.191-4.3046-0.58762 0.2149-1.161 0.46606-1.7375 0.70874-0.57652 0.25755-1.1 [...]
+        fill="#fff"
+        transform="matrix(1.3673 0 0 1 -60.131 0)"
+    />
+    <path
+        id="path9423"
+        filter="url(#filter9479)"
+        fill="#fff"
+        d="m161.5 226.75c239-13.25 446.5 0 446.5 0"
+    />
+    <path
+        id="path9425"
+        opacity=".56195"
+        d="m314.36 232.35c-61.303-0.5789-142.17 7.612-147.16-1.8849l-3.9106-7.4402 2.0918-4.1751c4.7864-9.5536 14.611-16.801 27.479-20.27 10.417-2.8089 71.01-7.3056 126.75-9.4063 22.696-0.85536 113.65-0.86406 136-0.013 43.748 1.6662 95.648 4.7699 111.25 6.653 17.489 2.1109 29.434 8.2426 36.428 18.7 2.3982 3.5856 2.5563 20.952 1.966 22.055-2.3856 4.4564-26.277-2.0128-62.644-1.3217-62.599 1.1896-168.2-2.3292-228.25-2.8963z"
+        transform="matrix(1 0 0 .73963 0 49.25)"
+        filter="url(#filter9651)"
+        fill="#fff"
+    />
+    <path
+        id="path9655"
+        d="m201.17 512.49c3.6579 11.536 28.109 17.884 35.781-0.11335"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path9657"
+        opacity=".56195"
+        d="m214.99 522.25c-5.9308-1.3056-10.542-4.3769-12.585-8.3829l-0.74577-1.4618 8.0486 0.23424c4.4267 0.12883 12.17 0.23424 17.206 0.23424h9.1579l-0.79915 1.4219c-1.2095 2.152-4.3885 5.1087-6.808 6.3318-3.9299 1.9867-9.0304 2.6009-13.474 1.6225z"
+        fill="#fff"
+    />
+    <path
+        id="path9659"
+        fill="#035c72"
+        d="m216.95 522.62c-2.5495-0.32675-4.8962-1.0084-7.1235-2.0691-3.5929-1.7111-6.1908-4.0614-7.6105-6.8852-0.65155-1.296-0.90959-1.205 3.1403-1.1076 5.6219 0.13513 20.328 0.31823 25.75 0.3206 2.7328 0.001 4.9688 0.0352 4.9688 0.0756 0 0.18704-0.98391 1.8017-1.6211 2.6603-2.9186 3.9329-7.0178 6.2886-12.104 6.9559-1.5054 0.1975-4.0622 0.22093-5.3998 0.0495z"
+    />
+    <path
+        id="path9661"
+        d="m539.17 512.49c3.6579 11.536 27.953 18.165 35.625 0.1679"
+        stroke="#000"
+        stroke-width="1px"
+        fill="none"
+    />
+    <path
+        id="path9665"
+        d="m555.63 523.12c-7.0984-0.74205-12.989-3.9196-15.588-9.7503 2.6924-0.0476 4.2662 0.4155 6.2911 0.18511 9.2851 0.19952 18.137-0.18316 27.422-0.038-3.448 8.0403-10.59 10.455-18.125 9.6032z"
+        fill="#035c72"
+    />
+    <path
+        id="path9668"
+        fill="#136478"
+        d="m155.59 460.8c-0.2773-0.84873-1.1296-25.363-1.8211-52.375-0.64041-25.02-0.32108-96.395 0.53017-118.5 1.3108-34.038 2.7004-58.401 3.5362-62 1.5685-6.7537 4.5646-13.575 8.2363-18.752 3.0503-4.3009 9.0666-9.8206 13.599-12.477 8.2919-4.8593 12.636-5.8661 35.655-8.2625 104.1-10.838 222.93-11.799 335-2.7086l16.25 1.318 6.6544 2.199c21.821 7.2109 35.655 19.284 38.024 33.183 2.1176 12.428 5.3916 82.597 6.5788 141 0.69152 34.017 0.6567 46.138-0.13179 45.875-0.46232-0.15375-0.65383-2.47 [...]
+    />
+    <path
+        id="path9670"
+        fill="#136478"
+        d="m590.58 509.15c0-0.35957 2.3477-2.5806 5.217-4.9356 5.4778-4.4959 12.362-12.044 15.258-16.729 0.94178-1.5238 2.4076-4.6909 3.2574-7.0378 2.6093-7.2062 4.2264-5.812 2.0091 1.7321-1.801 6.128-5.8242 13.105-10.108 17.528-4.9482 5.1099-15.634 11.563-15.634 9.4421z"
+    />
+    <path
+        id="path9672"
+        fill="#136478"
+        d="m615.87 475.7c0.90226-4.9289 1.5204-28.243 1.3647-51.469l-0.1016-15.156h1.1449l0.003 15.906c0.003 14.889-0.45732 51.037-0.65302 51.254-0.0486 0.054-0.24491-0.0318-0.43624-0.19059-0.26779-0.22224-0.4201-0.20167-0.66165 0.0894-0.52369 0.63101-0.81994 0.43618-0.66058-0.43442z"
+    />
+    <path
+        id="path9682"
+        fill="#4d4d4d"
+        d="m340.26 178.45c-1.8932-2.0955-2.1884-5.1757-0.76358-7.9686 1.4088-2.7615 4.0503-4.2454 7.5917-4.2648 2.4357-0.0134 3.5375 0.33297 7.514 2.3618 12.412 6.3329 35.9 8.7033 50.16 5.0622 1.65-0.4213 5.8625-2.1179 9.361-3.7703 7.9028-3.7325 11.654-4.527 15.12-3.203 2.8961 1.106 4.2643 3.1213 4.2658 6.2836 0.0005 1.2375-0.39231 3.0187-0.87313 3.9582l-0.87423 1.7082-31.5-0.0555c-17.325-0.0305-37.76 0.10079-45.412 0.29179-12.04 0.30056-14.003 0.24626-14.59-0.40362z"
+    />
+    <path
+        id="path9684"
+        fill="url(#linearGradient9692)"
+        d="m333.51 179.02c0-0.23323-0.90791-0.83348-2.0176-1.3339-2.2837-1.0298-5.4801-4.3028-5.487-5.6185-0.005-0.87313 9.5347-46.223 9.79-46.542 0.4318-0.53907 23.657-2.1094 38.838-2.626 13.822-0.47035 21.398-0.47181 34.192-0.007 15.476 0.56276 25.03 1.1683 25.361 1.6076 0.24473 0.32473 9.3335 45.636 9.3289 46.508-0.009 1.7733-7.4091 7.9353-9.5293 7.9353-1.175 0-1.1888-0.13614-0.20647-2.0357 1.0271-1.9861 1.0469-5.5928 0.0434-7.8659-0.44885-1.0166-2.2712-7.8983-4.0497-15.293-1.7785-7.3 [...]
+    />
+  </g
+  >
+  <metadata
+    >
+    <rdf:RDF
+      >
+      <cc:Work
+        >
+        <dc:format
+          >image/svg+xml</dc:format
+        >
+        <dc:type
+            rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+        />
+        <cc:license
+            rdf:resource="http://creativecommons.org/licenses/publicdomain/"
+        />
+        <dc:publisher
+          >
+          <cc:Agent
+              rdf:about="http://openclipart.org/"
+            >
+            <dc:title
+              >Openclipart</dc:title
+            >
+          </cc:Agent
+          >
+        </dc:publisher
+        >
+        <dc:title
+          >suitcase</dc:title
+        >
+        <dc:date
+          >2013-07-28T07:52:50</dc:date
+        >
+        <dc:description
+          >A blue suitcase, ready for traveling.</dc:description
+        >
+        <dc:source
+          >https://openclipart.org/detail/181231/suitcase-by-cprostire-181231</dc:source
+        >
+        <dc:creator
+          >
+          <cc:Agent
+            >
+            <dc:title
+              >cprostire</dc:title
+            >
+          </cc:Agent
+          >
+        </dc:creator
+        >
+        <dc:subject
+          >
+          <rdf:Bag
+            >
+            <rdf:li
+              >bag</rdf:li
+            >
+            <rdf:li
+              >baggage</rdf:li
+            >
+            <rdf:li
+              >luggage</rdf:li
+            >
+            <rdf:li
+              >travel</rdf:li
+            >
+          </rdf:Bag
+          >
+        </dc:subject
+        >
+      </cc:Work
+      >
+      <cc:License
+          rdf:about="http://creativecommons.org/licenses/publicdomain/"
+        >
+        <cc:permits
+            rdf:resource="http://creativecommons.org/ns#Reproduction"
+        />
+        <cc:permits
+            rdf:resource="http://creativecommons.org/ns#Distribution"
+        />
+        <cc:permits
+            rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
+        />
+      </cc:License
+      >
+    </rdf:RDF
+    >
+  </metadata
+  >
+</svg
+>
diff --git a/images/presets/shop/vacuum_cleaner.png b/images/presets/shop/vacuum_cleaner.png
deleted file mode 100644
index 8bd24d4..0000000
Binary files a/images/presets/shop/vacuum_cleaner.png and /dev/null differ
diff --git a/images/presets/shop/vacuum_cleaner.svg b/images/presets/shop/vacuum_cleaner.svg
new file mode 100644
index 0000000..c512e99
--- /dev/null
+++ b/images/presets/shop/vacuum_cleaner.svg
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="vc11.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="4.8221796"
+     inkscape:cy="6.4319254"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       ry="0"
+       y="1049.3622"
+       x="3"
+       height="3.0002842"
+       width="5.0000014"
+       id="rect4234"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#368500;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+    <image
+       y="1043.3622"
+       x="-3"
+       id="image4142"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAADJklEQVR42q3UXUiTYRQH8ENdSBcl
+aEJmZTeWEmSm87O6yM/5bZtWmm6mczo/c1PIzW1uUxdMNCytEdpNV2q2mYoWbpkXwcAL8VsUCi8K
+ioiUQMTTeV54ZVBaQQd+/z17eXf2nmcPg3+phMQkR5ZI/OWY30lfAu5Y/BWRSNxisVjwYVcXhgoE
+IgLuWPxRVHSM2Gw2Y5gg3GIwGLclUqmagDsW+6Ly12p1WHi76DkBvV7/o0yhsBJwx2JPVAdrau4s
+qVR167Q+RKChQb2mVKleEXDHYk/5BZKnWq0Wvbx9zhEg7LqDmi0TcMfit+LiEyR6fRPGxsVLCfAU
+5eW9Wp1ug4A7Fr+gCqRxdtLS0y0E3BVIpLomgwEBwBP2KU9xdk6/orzic2VlFd7KL5iprKyeLJGX
+Tl6NjbtBIDkltcBoMuHhI54BBHhc8HyP+13u6+tDh8OB4uzsJ6VlCkt7e8fW8tISFstKnASCQy7G
+mpqbMfhCyBUCPC54Xkd9NIODg2iz25FGGK6qqn7W2tr6dXFxEWntJOwLg0z0RPEJidcJ8HYXEZFR
+qUVFxWiz2XF2dhbn5+dxZmaGrblX2jMXASov2iM29l0CPC6ofJuaDNs3c/M2R0ZGdlZWlrG7uxvV
+Gg06nU6uaYNavUCA6oBOp98qr6iwEuBxUVpWZqNGHwPOBqqnpqZ2Ojruo9VqxcbGRhwbG0Maja2X
+CDAaTeOHWqVylAAPzgQGyQz0qJFR0TRhUg7dyDVppg0dGhriRpubm0OD0bjOnoZAXX392wa1ZoEA
+D2Ql8m06gN8ICMIjHnR2diJrbLPZcHx8HKenp7nRWlpaPwGAB4HaWuVjOgIbBHggTEl5x0ahRqtd
+9BdhMjWjy+VCs/neGvtM/8AArq6uYltb2wYBKm9hcsqbYpkMaSvkBBhWHiJxtpK6vhYKk112+xDX
+qKend5N+7vnR0VHuvdFoeu/vf1quVKrWXw4P48SEA3t6e9l5s5+/EJIJFLt8T5wKSEwSfk/PyMTc
+3DyUy0vxmkiEmVlZGB1zqS00LPyFRFpI18SYlp7BjgBmZGZhaJjgEVD8Fz8Bpq4K/DfDjvEAAAAA
+SUVORK5CYII=
+"
+       style="image-rendering:optimizeSpeed"
+       preserveAspectRatio="none"
+       height="1.1111112"
+       width="1" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#368500;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4145"
+       width="5"
+       height="8.0000172"
+       x="3"
+       y="1043.3622"
+       ry="1.8305558" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c8c4b7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4147"
+       width="3"
+       height="2"
+       x="4"
+       y="1049.3622"
+       ry="0.46876737" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c8c4b7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4149"
+       width="1"
+       height="2"
+       x="4"
+       y="1044.3622"
+       ry="0.46876699" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c8c4b7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shap [...]
+       id="rect4151"
+       width="1"
+       height="2"
+       x="6"
+       y="1044.3622"
+       ry="0.46876699" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#808080;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 5.555839,1047.7849 C 3,1049.3622 1.1339286,1049.2818 1.615255,1045.3984 2,1042.3622 5.979695,1038.4254 10.985443,1037.4343"
+       id="path4209"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#808080;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 12.494924,1050.3464 -1.505077,-12.8895"
+       id="path4230"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 9,1052.3622 7,0 -1,-1 -2,-1 -1,0 -2,1 -1,1"
+       id="path4232"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+  </g>
+</svg>
diff --git a/images/presets/shop/variety_store.png b/images/presets/shop/variety_store.png
deleted file mode 100644
index 236ea02..0000000
Binary files a/images/presets/shop/variety_store.png and /dev/null differ
diff --git a/images/presets/shop/variety_store.svg b/images/presets/shop/variety_store.svg
new file mode 100644
index 0000000..23a210c
--- /dev/null
+++ b/images/presets/shop/variety_store.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="variety_store2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="18.890625"
+     inkscape:cx="12.5525"
+     inkscape:cy="4.2233815"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <circle
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffcc00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.1249274;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;s [...]
+       id="path4145"
+       cx="8"
+       cy="1044.3622"
+       r="7.4375362" />
+    <g
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4147">
+      <path
+         d="m 8.6945188,1040.8537 q -1.1150488,0 -1.871689,0.5376 -0.4513293,0.3186 -0.816375,0.9026 -0.3716829,0.604 -0.4380549,1.1483 l 4.5265671,0 -0.1792043,0.8894 -4.4535579,0 q -0.00664,0.1393 -0.00664,0.2654 0,0.5111 0.00664,0.6107 l 4.2743537,0 -0.1858415,0.8893 -3.9491311,0 q 0.2787622,1.52 1.3407134,2.1571 0.7632775,0.458 1.6526616,0.458 1.2411555,0 1.9380611,-0.6504 l 0,1.3672 q -0.8296495,0.385 -1.831866,0.385 -3.0000122,0 -4.0553262,-2.4956 -0.2123902,-0.5044 -0.3650457,-1.2 [...]
+         style=""
+         id="path4152" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/shop/vehicle.svg b/images/presets/shop/vehicle.svg
index 37885af..019a6f3 100644
--- a/images/presets/shop/vehicle.svg
+++ b/images/presets/shop/vehicle.svg
@@ -8,7 +8,7 @@
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    version="1.1"
-   height="12.8"
+   height="13"
    width="16"
    id="svg2"
    sodipodi:version="0.32"
@@ -52,9 +52,9 @@
      bordercolor="#666666"
      pagecolor="#ffffff"
      id="base"
-     inkscape:zoom="30.16"
-     inkscape:cx="7.6295494"
-     inkscape:cy="12.161979"
+     inkscape:zoom="60.32"
+     inkscape:cx="6.2286371"
+     inkscape:cy="8.1428152"
      inkscape:window-x="-8"
      inkscape:window-y="-8"
      inkscape:current-layer="svg2"
@@ -71,27 +71,27 @@
        originy="1.3053417e-005" />
   </sodipodi:namedview>
   <rect
-     style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.02941835;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+     style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.02964734;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
      id="rect4135"
-     width="15.970582"
-     height="12.770582"
-     x="0.014709175"
-     y="0.014709175" />
+     width="15.970353"
+     height="12.970353"
+     x="0.01482367"
+     y="0.014824027" />
   <path
      style="fill:#000000;fill-rule:evenodd;stroke:none"
      id="Car"
-     d="m 0.80590777,7.2573175 c -0.036385,-2.68144 -0.1818775,-0.37415 1.43425303,-4.34954 1.1692315,-2.70222001 -0.01558,-1.97470001 6.0332315,-2.07343001 5.3836597,0.10912 4.2975727,-0.67036 5.5343587,2.19815001 1.548585,3.67399 1.429066,1.75124 1.418673,4.14687 -0.05719,2.62947 0.914593,1.95392 -7.2336427,2.04226 -8.08588703,-0.10913 -7.12971203,0.57682 -7.18687353,-1.96431 z m 1.63692603,-2.5879 1.106864,-2.55672 c 0.2065205,-0.45415 0.1406285,-0.38711 0.6235895,-0.38974 l 7.7386717 [...]
+     d="m 0.80590777,7.4573173 c -0.036385,-2.68144 -0.1818775,-0.37415 1.43425303,-4.34954 1.1692315,-2.70222 -0.01558,-1.9747 6.0332315,-2.07343 5.3836597,0.10912 4.2975727,-0.67036 5.5343587,2.19815 1.548585,3.67399 1.429066,1.75124 1.418673,4.14687 -0.05719,2.6294697 0.914593,1.95392 -7.2336427,2.04226 -8.08588703,-0.10913 -7.12971203,0.57682 -7.18687353,-1.96431 z m 1.63692603,-2.5879 1.106864,-2.55672 c 0.2065205,-0.45415 0.1406285,-0.38711 0.6235895,-0.38974 l 7.7386717,-8.3e-4 c  [...]
      inkscape:connector-curvature="0" />
   <circle
      style="fill:#ffffff;fill-opacity:1;stroke:none"
      r="1.0108"
-     cy="6.5822749"
+     cy="6.7822747"
      cx="2.6805849"
      id="LeftLamp" />
   <circle
      style="fill:#ffffff;fill-opacity:1;stroke:none"
      r="1.0108"
-     cy="6.5822749"
+     cy="6.7822747"
      cx="13.320568"
      id="RightLamp" />
 </svg>
diff --git a/images/presets/shop/video.png b/images/presets/shop/video.png
deleted file mode 100644
index d94ee66..0000000
Binary files a/images/presets/shop/video.png and /dev/null differ
diff --git a/images/presets/shop/video.svg b/images/presets/shop/video.svg
new file mode 100644
index 0000000..4074b74
--- /dev/null
+++ b/images/presets/shop/video.svg
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   sodipodi:docname="cd7.svg"
+   viewBox="0 0 128 128"
+   version="1.1"
+   inkscape:version="0.91 r13725">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3818"
+       y2="1052.8"
+       gradientUnits="userSpaceOnUse"
+       x2="129.15"
+       gradientTransform="matrix(1.221957,0,0,1.221957,-12.830549,-217.09451)"
+       y1="920.22"
+       x1="-3.4015"
+       inkscape:collect="always">
+      <stop
+         id="stop3814"
+         style="stop-color:#4d4d4d"
+         offset="0" />
+      <stop
+         id="stop3822"
+         style="stop-color:#808080"
+         offset=".23980" />
+      <stop
+         id="stop3820"
+         style="stop-color:#cccccc"
+         offset=".49761" />
+      <stop
+         id="stop3824"
+         style="stop-color:#808080"
+         offset=".75054" />
+      <stop
+         id="stop3816"
+         style="stop-color:#4d4d4d"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3832"
+       y2="1038.4"
+       gradientUnits="userSpaceOnUse"
+       x2="114.75"
+       gradientTransform="matrix(1.221957,0,0,1.221957,-12.830549,-217.09451)"
+       y1="934.61"
+       x1="11"
+       inkscape:collect="always">
+      <stop
+         id="stop3836"
+         style="stop-color:#cccccc"
+         offset="0" />
+      <stop
+         id="stop3838"
+         style="stop-color:#2639c2;stop-opacity:1"
+         offset="0.27036104" />
+      <stop
+         id="stop3840"
+         style="stop-color:#7c82f1;stop-opacity:1"
+         offset=".49761" />
+      <stop
+         id="stop3842"
+         style="stop-color:#2f48e2;stop-opacity:1"
+         offset="0.7199809" />
+      <stop
+         id="stop3844"
+         style="stop-color:#8a89ff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3916"
+       y2="1048.7"
+       gradientUnits="userSpaceOnUse"
+       x2="120.5"
+       gradientTransform="matrix(1.221957,0,0,1.221957,-12.830549,-217.09451)"
+       y1="931.49"
+       x1="9.75"
+       inkscape:collect="always">
+      <stop
+         id="stop3920"
+         style="stop-color:#cccccc"
+         offset="0" />
+      <stop
+         id="stop3922"
+         style="stop-color:#e6e6e6"
+         offset=".23980" />
+      <stop
+         id="stop3924"
+         style="stop-color:#6e6e6e;stop-opacity:1"
+         offset=".49761" />
+      <stop
+         id="stop3926"
+         style="stop-color:#cccccc"
+         offset=".75054" />
+      <stop
+         id="stop3928"
+         style="stop-color:#cccccc"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3936"
+       y2="1041.2"
+       gradientUnits="userSpaceOnUse"
+       x2="101.5"
+       gradientTransform="matrix(1.221957,0,0,1.221957,-12.830549,-217.09451)"
+       y1="939.5"
+       x1="22.5"
+       inkscape:collect="always">
+      <stop
+         id="stop3940"
+         style="stop-color:#4d4d4d"
+         offset="0" />
+      <stop
+         id="stop3942"
+         style="stop-color:#808080"
+         offset=".23980" />
+      <stop
+         id="stop3944"
+         style="stop-color:#b3b3b3"
+         offset=".49761" />
+      <stop
+         id="stop3946"
+         style="stop-color:#808080"
+         offset=".75054" />
+      <stop
+         id="stop3948"
+         style="stop-color:#4d4d4d"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:guide-bbox="true"
+     pagecolor="#ffffff"
+     inkscape:window-height="988"
+     inkscape:window-maximized="1"
+     inkscape:zoom="4"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="28.523604"
+     inkscape:cy="57.085975"
+     showguides="true"
+     inkscape:window-y="-8"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px">
+    <inkscape:grid
+       id="grid4400"
+       enabled="true"
+       visible="true"
+       snapvisiblegridlinesonly="true"
+       type="xygrid"
+       empspacing="5" />
+  </sodipodi:namedview>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(0 -924.36)">
+    <path
+       id="path3782"
+       style="opacity:0.45673002;fill:url(#linearGradient3916);fill-rule:evenodd"
+       d="m 73.011933,988.35389 c 0,4.97715 -4.03478,9.01193 -9.011933,9.01193 -4.977153,0 -9.011933,-4.03478 -9.011933,-9.01193 0,-4.97715 4.03478,-9.01193 9.011933,-9.01193 4.977153,0 9.011933,4.03478 9.011933,9.01193 z m 15.274463,0 c 0,13.41341 -10.87334,24.28641 -24.286396,24.28641 -13.413056,0 -24.286396,-10.8735 -24.286396,-24.28641 0,-13.41293 10.87334,-24.2864 24.286396,-24.2864 13.413056,0 24.286396,10.87334 24.286396,24.2864 z"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path3784"
+       style="fill:url(#linearGradient3832);fill-rule:evenodd"
+       d="m 88.286396,988.35389 c 0,13.41341 -10.87334,24.28641 -24.286396,24.28641 -13.413056,0 -24.286396,-10.8735 -24.286396,-24.28641 0,-13.41293 10.87334,-24.2864 24.286396,-24.2864 13.413056,0 24.286396,10.87334 24.286396,24.2864 z m 39.102624,10e-6 c 0,35.0091 -28.379951,63.389 -63.38902,63.389 -35.009069,0 -63.38902148,-28.3799 -63.38902148,-63.389 0,-35.00907 28.37995248,-63.38902 63.38902148,-63.38902 35.009069,0 63.38902,28.37995 63.38902,63.38902 z"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path3792"
+       sodipodi:nodetypes="csssccsssc"
+       style="color:#000000;text-indent:0;text-transform:none;block-progression:tb;fill:url(#linearGradient3818);fill-rule:evenodd"
+       d="m 64,924.36 c -35.338998,0 -64,28.661 -64,64 0,35.339 28.661002,64 64,64 35.338998,0 64,-28.661 64,-64 0,-35.339 -28.661002,-64 -64,-64 z m 0,1.22196 c 34.679141,0 62.77804,28.0989 62.77804,62.77804 0,34.6791 -28.098899,62.778 -62.77804,62.778 -34.679141,0 -62.778043,-28.0989 -62.778043,-62.778 0,-34.67914 28.098902,-62.77804 62.778043,-62.77804 z"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path3798"
+       style="color:#000000;text-indent:0;text-transform:none;block-progression:tb;fill:url(#linearGradient3936)"
+       d="m 64,963.46263 c -13.743351,0 -24.897375,11.15414 -24.897375,24.89737 0,13.7432 11.154146,24.8974 24.897375,24.8974 13.743229,0 24.897375,-11.1542 24.897375,-24.8974 0,-13.74323 -11.154146,-24.89737 -24.897375,-24.89737 z m 0,1.22195 c 13.082272,0 23.675418,10.59266 23.675418,23.67542 0,13.0828 -10.592657,23.6754 -23.675418,23.6754 -13.082761,0 -23.675418,-10.5926 -23.675418,-23.6754 0,-13.08276 10.592657,-23.67542 23.675418,-23.67542 z m 0,14.05251 c -5.307326,0 -9.622912,4.31 [...]
+       inkscape:connector-curvature="0" />
+  </g>
+  <metadata
+     id="metadata35">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2010-09-06T16:13:50</dc:date>
+        <dc:description>CD icon</dc:description>
+        <dc:source>https://openclipart.org/detail/83899/cd-icon-by-jhnri4</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>jhnri4</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>black and white</rdf:li>
+            <rdf:li>cd</rdf:li>
+            <rdf:li>compact disc</rdf:li>
+            <rdf:li>how i did it</rdf:li>
+            <rdf:li>icon</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/shop/video_games.png b/images/presets/shop/video_games.png
deleted file mode 100644
index 1b7fd8a..0000000
Binary files a/images/presets/shop/video_games.png and /dev/null differ
diff --git a/images/presets/shop/video_games.svg b/images/presets/shop/video_games.svg
new file mode 100644
index 0000000..7fb2b17
--- /dev/null
+++ b/images/presets/shop/video_games.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   x="0px"
+   y="0px"
+   width="16"
+   height="7"
+   viewBox="0 0 16 7"
+   enable-background="new 0 0 580 580"
+   xml:space="preserve"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="games10.svg"><metadata
+   id="metadata19"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title><cc:license
+         rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><defs
+   id="defs17">
+	
+</defs><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1680"
+   inkscape:window-height="988"
+   id="namedview15"
+   showgrid="true"
+   fit-margin-top="0"
+   fit-margin-left="0"
+   fit-margin-right="0"
+   fit-margin-bottom="0"
+   showguides="false"
+   inkscape:zoom="52.082758"
+   inkscape:cx="6.4820567"
+   inkscape:cy="4.1340648"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="Layer_2_1_"><inkscape:grid
+     type="xygrid"
+     id="grid4171" /></sodipodi:namedview>
+
+<g
+   id="Layer_2_1_"
+   transform="translate(34.40678,-597.87627)"
+   style="fill:#008080">
+	
+<g
+   id="g9"
+   style="fill:#c8beb7;fill-opacity:1"
+   transform="matrix(0.03805278,0,0,0.03995343,-37.441946,583.09974)">
+		<path
+   d="m 412.636,369.844 c -5.094,0 -10.078,0.459 -14.933,1.293 l -215.406,0 c -4.855,-0.834 -9.839,-1.293 -14.933,-1.293 -48.382,0 -87.602,39.219 -87.602,87.602 0,48.383 39.22,87.602 87.602,87.602 34.259,0 63.903,-19.676 78.303,-48.332 l 88.666,0 c 14.4,28.656 44.045,48.332 78.304,48.332 48.381,0 87.601,-39.219 87.601,-87.602 0,-48.383 -39.221,-87.602 -87.602,-87.602 z"
+   id="path11"
+   inkscape:connector-curvature="0"
+   style="fill:#c8beb7;fill-opacity:1"
+   sodipodi:nodetypes="sccsssccsss" />
+		
+	</g><circle
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f81615;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:a [...]
+   id="path4173-0"
+   cx="-19.906384"
+   cy="601.39709"
+   r="0.62329501" /><circle
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#02bf02;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:a [...]
+   id="path4173-3"
+   cx="-23.887184"
+   cy="601.39709"
+   r="0.62329501" /><circle
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1716f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:a [...]
+   id="path4173-7"
+   cx="-21.887184"
+   cy="599.39709"
+   r="0.62329501" /><circle
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f8f715;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:a [...]
+   id="path4173-0-7"
+   cx="-21.887184"
+   cy="603.39709"
+   r="0.62329501" /><rect
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:a [...]
+   id="rect4217"
+   width="1"
+   height="3.2"
+   x="-31.40678"
+   y="599.77661"
+   ry="0.5333333" /><rect
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:a [...]
+   id="rect4219"
+   width="3.2"
+   height="1"
+   x="-32.506779"
+   y="600.87671"
+   ry="0.5" /></g>
+</svg>
\ No newline at end of file
diff --git a/images/presets/sightseeing/arts_centre.svg b/images/presets/sightseeing/arts_centre.svg
new file mode 100644
index 0000000..8332922
--- /dev/null
+++ b/images/presets/sightseeing/arts_centre.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="arts_centre.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a95400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4156"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622"
+       ry="2.0000174" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fe0004;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4158"
+       width="3"
+       height="3"
+       x="2"
+       y="1047.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e5ee51;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4160"
+       width="3"
+       height="3"
+       x="1"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cf5555;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4162"
+       width="3"
+       height="3"
+       x="1"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ec38d5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4164"
+       width="3"
+       height="3"
+       x="6"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0e0ef7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4166"
+       width="3"
+       height="3"
+       x="11"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#16d41a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4168"
+       width="3"
+       height="3"
+       x="12"
+       y="1043.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a2b5f2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4170"
+       width="3"
+       height="3"
+       x="10"
+       y="1047.3622" />
+  </g>
+</svg>
diff --git a/images/presets/sightseeing/palaeontological_site.png b/images/presets/sightseeing/palaeontological_site.png
deleted file mode 100644
index 59154bc..0000000
Binary files a/images/presets/sightseeing/palaeontological_site.png and /dev/null differ
diff --git a/images/presets/sightseeing/palaeontological_site.svg b/images/presets/sightseeing/palaeontological_site.svg
new file mode 100644
index 0000000..efbfc68
--- /dev/null
+++ b/images/presets/sightseeing/palaeontological_site.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 95.701 86.146"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ammonoid2.svg">
+  <defs
+     id="defs9" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="5.6568543"
+     inkscape:cx="51.783795"
+     inkscape:cy="26.270164"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <path
+     style="fill:#eddbd0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 9,80.708504 25.125,-5.9375 4.625,-2.25 1.375,-1.3125 2.375,-0.0625 0.1875,-6.25 -4.8125,-5.375 -29.0625,20.5 0.3125,0.875"
+     id="path4147"
+     inkscape:connector-curvature="0" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 58.945,45.634 4.1613,-1.3666 m -5.2024,-0.56332 2.7234,-5.388 m -5.177,4.4425 c 0,0 0.34285,-4.8026 -0.41417,-5.7204 m -1.0297,6.5207 c 0,0 -2.6256,-2.8511 -4.2967,-3.9631 m 3.2243,6.0896 c 0,0 -4.4409,-1.1026 -5.5935,-1.6573 m 6.0234,3.3001 c 0,0 -3.1633,1.9778 -5.0744,3.2252 m 6.6793,-1.601 c 0,0 -1.2796,4.5279 -2.1716,5.9571 m 6.69325,-6.0304 c 0,0 2.9482,5.7063 2.6799,7.0422 m 0.3584,-9.8108 c 0,0 5.8584,2.6903 6.9116,3.7862 m -60.8665,30.8302 c 0,0 -0.53627,-6.0618 6.5616, [...]
+     style="fill:#eddbd0;stroke:#000000;stroke-width:1px;fill-opacity:1"
+     id="path3133"
+     sodipodi:nodetypes="cccccccccccccccccccsccscssscssccccccccccccccccccscccccscccsccsccscccccccccccccccccsccccccscscccccssssc" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2013-01-27T07:14:26</dc:date>
+        <dc:description />
+        <dc:source>https://openclipart.org/detail/174552/ammonite-by-gosc-174552</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Gosc</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>Ammonit</rdf:li>
+            <rdf:li>Ammonshorn</rdf:li>
+            <rdf:li>Fossil</rdf:li>
+            <rdf:li>Paläontologie</rdf:li>
+            <rdf:li>ammonite</rdf:li>
+            <rdf:li>animal</rdf:li>
+            <rdf:li>biology</rdf:li>
+            <rdf:li>black and white</rdf:li>
+            <rdf:li>cephalopoda</rdf:li>
+            <rdf:li>ceratite</rdf:li>
+            <rdf:li>contour</rdf:li>
+            <rdf:li>evolution</rdf:li>
+            <rdf:li>extinct</rdf:li>
+            <rdf:li>fossil</rdf:li>
+            <rdf:li>geology</rdf:li>
+            <rdf:li>line art</rdf:li>
+            <rdf:li>outline</rdf:li>
+            <rdf:li>palaeontology</rdf:li>
+            <rdf:li>paleontology</rdf:li>
+            <rdf:li>shell</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/sport/10pin.svg b/images/presets/sport/10pin.svg
index daa7fcb..d1cec80 100644
--- a/images/presets/sport/10pin.svg
+++ b/images/presets/sport/10pin.svg
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://creativecommons.org/ns#"
@@ -8,12 +9,12 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="417.09787"
-   height="459.65884"
+   width="16"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docname="10pin.svg"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="10pin2.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape"
    inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.map-icons\svg\sports\10pin.png"
    inkscape:export-xdpi="3.1295931"
@@ -36,16 +37,27 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="0.43901235"
-     inkscape:cx="414.18729"
-     inkscape:cy="526.18109"
+     inkscape:zoom="28.09679"
+     inkscape:cx="3.3226787"
+     inkscape:cy="10.083274"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
-     showgrid="false"
+     showgrid="true"
      inkscape:window-width="1400"
      inkscape:window-height="964"
      inkscape:window-x="-4"
-     inkscape:window-y="-4" />
+     inkscape:window-y="-4"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4144"
+       originx="-1.1132812e-006"
+       originy="-6.6597403e-007" />
+  </sodipodi:namedview>
   <metadata
      id="metadata7">
     <rdf:RDF>
@@ -55,10 +67,11 @@
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
         <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title></dc:title>
       </cc:Work>
       <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
         <cc:permits
            rdf:resource="http://creativecommons.org/ns#Reproduction" />
         <cc:permits
@@ -72,38 +85,23 @@
      inkscape:label="Ebene 1"
      inkscape:groupmode="layer"
      id="layer1"
-     transform="translate(-767.63214,154.11418)">
+     transform="translate(-767.63214,-289.54467)">
     <rect
        style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect3183"
-       width="417.09787"
-       height="459.65884"
+       width="16"
+       height="16"
        x="767.63214"
-       y="-154.11418" />
-    <g
-       id="g3193"
-       transform="translate(670.82396,-457.84588)">
-      <path
-         sodipodi:nodetypes="czzzzzzzcc"
-         id="path2383"
-         d="M 331.94786,761.34772 C 331.94786,761.34772 365.72933,682.89892 364.0866,643.46646 C 362.44387,604.03401 323.28255,544.14307 324.4488,511.20944 C 325.61505,478.27582 348.38424,455.79306 342.30367,436.45548 C 336.2231,417.1179 319.47696,400.16516 302.66586,400.16516 C 285.85477,400.16516 271.9654,417.11791 265.88483,436.45548 C 259.80426,455.79305 282.57345,478.27582 283.7397,511.20944 C 284.90595,544.14307 245.74463,604.03401 244.1019,643.46646 C 242.45917,682.89892 273.38388 [...]
-         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.01541185;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <rect
-         y="500.23621"
-         x="284.65128"
-         height="38.222721"
-         width="38.880768"
-         id="rect3155"
-         style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
+       y="289.5285" />
     <g
        id="g3197"
-       transform="translate(804.07762,-457.84588)">
+       transform="matrix(0.04078562,0,0,0.04078562,767.78237,274.24304)">
       <path
          style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.01541185;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="M 331.94786,761.34772 C 331.94786,761.34772 365.72933,682.89892 364.0866,643.46646 C 362.44387,604.03401 323.28255,544.14307 324.4488,511.20944 C 325.61505,478.27582 348.38424,455.79306 342.30367,436.45548 C 336.2231,417.1179 319.47696,400.16516 302.66586,400.16516 C 285.85477,400.16516 271.9654,417.11791 265.88483,436.45548 C 259.80426,455.79305 282.57345,478.27582 283.7397,511.20944 C 284.90595,544.14307 245.74463,604.03401 244.1019,643.46646 C 242.45917,682.89892 273.38388 [...]
+         d="m 331.94786,761.34772 c 0,0 33.78147,-78.4488 32.13874,-117.88126 -1.64273,-39.43245 -40.80405,-99.32339 -39.6378,-132.25702 1.16625,-32.93362 23.93544,-55.41638 17.85487,-74.75396 -6.08057,-19.33758 -22.82671,-36.29032 -39.63781,-36.29032 -16.81109,0 -30.70046,16.95275 -36.78103,36.29032 -6.08057,19.33757 16.68862,41.82034 17.85487,74.75396 1.16625,32.93363 -37.99507,92.82457 -39.6378,132.25702 -1.64273,39.43246 29.28198,117.88126 29.28198,117.88126 l 58.56398,0 z"
          id="path3199"
-         sodipodi:nodetypes="czzzzzzzcc" />
+         sodipodi:nodetypes="czzzzzzzcc"
+         inkscape:connector-curvature="0" />
       <rect
          style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect3201"
@@ -113,20 +111,24 @@
          y="500.23621" />
     </g>
     <g
-       id="g3203"
-       transform="translate(537.57029,-457.84588)">
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4146" />
+    <g
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4146-7"
+       transform="matrix(1.0297514,0,0,1,-23.436212,0.03559125)">
       <path
-         sodipodi:nodetypes="czzzzzzzcc"
-         id="path3205"
-         d="M 331.94786,761.34772 C 331.94786,761.34772 365.72933,682.89892 364.0866,643.46646 C 362.44387,604.03401 323.28255,544.14307 324.4488,511.20944 C 325.61505,478.27582 348.38424,455.79306 342.30367,436.45548 C 336.2231,417.1179 319.47696,400.16516 302.66586,400.16516 C 285.85477,400.16516 271.9654,417.11791 265.88483,436.45548 C 259.80426,455.79305 282.57345,478.27582 283.7397,511.20944 C 284.90595,544.14307 245.74463,604.03401 244.1019,643.46646 C 242.45917,682.89892 273.38388 [...]
-         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.01541185;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <rect
-         y="500.23621"
-         x="284.65128"
-         height="38.222721"
-         width="38.880768"
-         id="rect3207"
-         style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+         d="m 772.18408,297.95572 q 0,-2.2522 0.60425,-3.41187 0.61035,-1.15966 1.79443,-1.15966 1.04981,0 1.65406,0.93994 0.73242,1.13525 0.73242,3.63159 0,2.23999 -0.60425,3.40576 -0.60425,1.15967 -1.79443,1.15967 -1.04981,0 -1.72119,-1.02539 -0.66529,-1.02539 -0.66529,-3.54004 z m 0.92163,0 q 0,2.17895 0.41504,2.92358 0.42114,0.73853 1.07422,0.73853 0.61646,0 1.03149,-0.75073 0.41504,-0.75074 0.41504,-2.91138 0,-2.18506 -0.42114,-2.92358 -0.41504,-0.73853 -1.08032,-0.73853 -0.61035,0  [...]
+         id="path4199"
+         inkscape:connector-curvature="0" />
+    </g>
+    <g
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4146-7-1">
+      <path
+         d="m 770.7179,302.49756 -0.90332,0 0,-7.00073 q -0.31128,0.36621 -0.83619,0.75073 -0.5249,0.37842 -0.96435,0.57373 l 0,-1.06201 q 0.74463,-0.42725 1.31225,-1.0437 0.57373,-0.61646 0.80567,-1.2024 l 0.58594,0 0,8.98438 z"
+         style=""
+         id="path4196" />
     </g>
   </g>
 </svg>
diff --git a/images/presets/sport/9pin.svg b/images/presets/sport/9pin.svg
new file mode 100644
index 0000000..1de5252
--- /dev/null
+++ b/images/presets/sport/9pin.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="9pin3.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="C:\Dokumente und Einstellungen\ulfl\Eigene Dateien\osm\svn.map-icons\svg\sports\10pin.png"
+   inkscape:export-xdpi="3.1295931"
+   inkscape:export-ydpi="3.1295931"
+   version="1.0">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="28.09679"
+     inkscape:cx="5.2878667"
+     inkscape:cy="7.5259114"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4144"
+       originx="-1.1132812e-006"
+       originy="-6.6597403e-007" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:title />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-767.63214,-289.54467)">
+    <rect
+       style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3183"
+       width="16"
+       height="16"
+       x="767.63214"
+       y="289.5285" />
+    <g
+       id="g3197"
+       transform="matrix(0.04078562,0,0,0.04078562,767.78237,274.24304)">
+      <path
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.01541185;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 331.94786,761.34772 c 0,0 33.78147,-78.4488 32.13874,-117.88126 -1.64273,-39.43245 -40.80405,-99.32339 -39.6378,-132.25702 1.16625,-32.93362 23.93544,-55.41638 17.85487,-74.75396 -6.08057,-19.33758 -22.82671,-36.29032 -39.63781,-36.29032 -16.81109,0 -30.70046,16.95275 -36.78103,36.29032 -6.08057,19.33757 16.68862,41.82034 17.85487,74.75396 1.16625,32.93363 -37.99507,92.82457 -39.6378,132.25702 -1.64273,39.43246 29.28198,117.88126 29.28198,117.88126 l 58.56398,0 z"
+         id="path3199"
+         sodipodi:nodetypes="czzzzzzzcc"
+         inkscape:connector-curvature="0" />
+      <rect
+         style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect3201"
+         width="38.880768"
+         height="38.222721"
+         x="284.65128"
+         y="500.23621" />
+    </g>
+    <g
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4146">
+      <path
+         d="m 769.68704,300.62961 1.13593,-0.11791 q 0.27198,1.70974 1.5999,1.70974 0.59196,0 1.07194,-0.36848 0.48797,-0.37585 0.82394,-1.32652 0.33599,-0.95068 0.33599,-2.21825 l 0,-0.2653 q -0.36799,0.65589 -0.99194,1.03911 -0.62397,0.38322 -1.27193,0.38322 -1.17592,0 -2.03187,-0.94331 -0.84795,-0.95067 -0.84795,-2.59409 0,-1.695 0.87994,-2.66779 0.88795,-0.98015 2.15188,-0.98015 0.89594,0 1.67189,0.54535 0.77596,0.54535 1.19993,1.60657 0.42397,1.06121 0.42397,3.05837 0,2.22561 -0.455 [...]
+         id="path4193"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/sport/athletics.png b/images/presets/sport/athletics.png
deleted file mode 100644
index 62ac5b7..0000000
Binary files a/images/presets/sport/athletics.png and /dev/null differ
diff --git a/images/presets/sport/athletics.svg b/images/presets/sport/athletics.svg
new file mode 100644
index 0000000..1a30a09
--- /dev/null
+++ b/images/presets/sport/athletics.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="300px"
+   height="300px"
+   viewBox="0 0 300 300"
+   enable-background="new 0 0 300 300"
+   xml:space="preserve"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="athl1.svg"><metadata
+   id="metadata15"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title><cc:license
+         rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><defs
+   id="defs13" /><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1680"
+   inkscape:window-height="988"
+   id="namedview11"
+   showgrid="false"
+   inkscape:zoom="0.78666667"
+   inkscape:cx="150"
+   inkscape:cy="148.72881"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="Layer_1" />
+<rect
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.87050295;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-r [...]
+   id="rect4143"
+   width="300"
+   height="300"
+   x="0"
+   y="-5.0625194e-014"
+   ry="1.5324984" /><path
+   d="M108.422,50.727c10.115-4.038,21.298-1.269,30.866,2.97c10.676,5.017,21.583,12.316,25.963,23.775  c1.965,4.676,0.675,10.132-2.701,13.797c-2.656,2.269-6.434,1.636-9.617,1.315c-7.225-1.551-11.648-7.978-17.263-12.188  c-4.867-4.284-10.048-8.922-16.636-10.107c-5.877-0.971-10.982,2.918-14.749,6.952c-5.669,6.993-9.25,15.397-12.042,23.882  c-1.814,7.4-5.674,14.461-5.209,22.271c-0.552-7.204-2.607-14.216-2.804-21.455c-0.368-9.334,0.816-18.72,3.16-27.745  C91.689,64.522,98.333,54.949,108.422,50.727z"
+   id="path3" />
+<path
+   d="M200.646,56.913c7.323-0.85,15.021,2.023,19.936,7.537c3.334,4.104,5.573,9.274,5.537,14.615  c-0.646,6.494-3.914,12.911-9.367,16.643c-6.428,4.556-15.215,5.505-22.448,2.347c-10.746-4.083-17.004-17.916-11.48-28.365  C185.931,62.582,193.096,57.957,200.646,56.913z"
+   id="path5" />
+<path
+   d="M276.883,94.662c0.434-0.024,0.871-0.035,1.313-0.027c-0.185,3.852,0.819,7.701,0.184,11.538  c-1.017,6.596-3.673,12.791-6.55,18.764c-6.32,14.098-18.271,25.74-32.761,31.219c-6.652,2.346-14.544,2.166-20.538-1.839  c-9.694-6.33-17.318-15.983-20.652-27.126c-2.111-6.018-2.184-13.245,1.445-18.699c1.814-2.39,4.266-5.059,7.545-4.88  c3.388,0.313,6.416,2.348,8.462,5c4.817,6.323,5.825,14.547,9.796,21.298c3.322,4.354,8.694,9.526,14.633,6.979  c7.157-3.026,13.181-8.173,19-13.22c7.358-6.328,12.47 [...]
+   id="path7" />
+<path
+   d="M98.081,135.092c4.257-3.605,10.544-3.255,15.495-1.452c4.974,2.115,10.214,3.749,14.755,6.757  c7.051,4.518,13.789,9.584,19.817,15.404c6.811,5.506,13.136,11.648,18.556,18.54c4,4.705,8.176,10.202,7.861,16.718  c-2.955,9.494-11.091,16.436-19.554,21.081c-11.224,5.707-23.743,7.972-35.739,11.474c-5.188,1.675-10.634,2.285-16.029,2.865  c-6.109,0.33-12.251,1.591-18.356,0.51c3.912-2.844,8.648-4.108,12.948-6.214c12.347-5.33,23.968-12.164,35.998-18.153  c5.096-2.467,10.087-5.611,13.001-10.634c [...]
+   id="path9" />
+</svg>
\ No newline at end of file
diff --git a/images/presets/sport/beachvolleyball.png b/images/presets/sport/beachvolleyball.png
deleted file mode 100644
index fe38173..0000000
Binary files a/images/presets/sport/beachvolleyball.png and /dev/null differ
diff --git a/images/presets/sport/beachvolleyball.svg b/images/presets/sport/beachvolleyball.svg
new file mode 100644
index 0000000..cc207ab
--- /dev/null
+++ b/images/presets/sport/beachvolleyball.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="300px"
+   height="300px"
+   viewBox="0 0 300 300"
+   enable-background="new 0 0 300 300"
+   xml:space="preserve"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="beach20.svg"><metadata
+   id="metadata21"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+   id="defs19" /><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1680"
+   inkscape:window-height="988"
+   id="namedview17"
+   showgrid="false"
+   inkscape:zoom="0.78666667"
+   inkscape:cx="150"
+   inkscape:cy="148.72881"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="Layer_1" />
+<rect
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering: [...]
+   id="rect4149"
+   width="300"
+   height="300"
+   x="0"
+   y="-1.7704588e-014" /><path
+   d="M158.015,90.235c7.93,0.652,15.503-2.004,23.092-3.838c13.753-3.912,27.212-8.763,40.831-13.091  c9.385-2.418,18.693-5.129,28.021-7.758c1.673-0.637,3.976-1.013,4.556-2.989c-0.359-0.052-1.079-0.157-1.436-0.209  c-30.713,1.351-61.404,3.526-91.908,7.403c-4.012,0.409-7.951,1.786-11.105,4.342c-2.246,2.093-2.718,5.283-3.396,8.119  C149.099,86.256,152.871,90.454,158.015,90.235z"
+   id="path3" />
+<path
+   d="M9.179,86.175c22.338,7.548,45.028,14.051,67.874,19.883c7.774,2.057,15.523,4.28,23.429,5.78  c4.386,0.495,9.672,1.132,13.183-2.155c1.962-1.943,4.091-4.672,2.681-7.546c-1.105-6.248-7.27-9.483-12.916-10.75  c-10.313-2.084-20.86-2.778-31.357-3.181c-19.098-0.365-38.139-1.754-57.16-3.451C13.038,84.83,10.041,83.864,9.179,86.175z"
+   id="path5" />
+<path
+   d="M263.098,157.891c-24.264-14.021-49.325-28.505-77.45-32.753c-5.638,1.092-12.622,7.199-9.257,13.451  c3.99,6.581,11.367,10.007,18.139,13.044c25.248,9.953,51.404,17.342,77.564,24.467c9.319,2.795,18.711,5.371,27.906,8.563v-5.268  C287.727,172.179,275.201,165.396,263.098,157.891z"
+   id="path7" />
+<path
+   d="M155.6,148.993c-0.971,4.487,2.152,8.407,4.981,11.508c6.313,6.301,14.192,10.685,21.877,15.077  c24.391,13.918,50.074,25.34,75.158,37.916c7.303,3.225,13.989,7.75,21.411,10.703c0.611,0.01,1.841,0.024,2.453,0.035  c-1.391-2.531-4.258-3.47-6.271-5.361c-4.025-3.695-8.359-7.023-12.512-10.565c-17.086-13.982-33.314-29.016-50.99-42.269  c-13.835-10.505-28.967-19.396-45.344-25.302C162.202,142.438,157.031,144.207,155.6,148.993z"
+   id="path9" />
+<path
+   d="M260.915,261.795c-4.382-0.614-8.55-2.242-12.86-3.218c-3.133,1.372-6.318,2.646-9.267,4.396  c-2.407,1.293-4.915,2.984-7.794,2.583c-10.353-0.845-19.371-7.423-29.905-7.37c-15.578,0.378-30.785,4.221-46.054,6.957  c-7.446,0.842-13.695-4.236-20.829-5.251c-11.03-0.706-21.202,5.989-32.267,4.54c-5.692-0.674-11.398-1.223-17.089-1.902  c-8.586-1.524-16.891,3.955-25.448,1.789c-5.956-2.053-11.779-5.245-18.276-4.925c-4.475,0.565-8.631,2.704-13.158,2.978  c-5.793-0.18-11.034-3.271-16.816-3.555c-3 [...]
+   id="path11" />
+<path
+   d="M22.785,82.937c10.198,0,18.465-8.267,18.465-18.464c0-10.198-8.267-18.465-18.465-18.465  c-10.197,0-18.464,8.267-18.464,18.465C4.321,74.67,12.588,82.937,22.785,82.937z M22.785,52.008  c6.873,0,12.465,5.592,12.465,12.465s-5.592,12.464-12.465,12.464s-12.464-5.591-12.464-12.464S15.912,52.008,22.785,52.008z"
+   id="path13" />
+<circle
+   cx="114.966"
+   cy="64.349"
+   r="21.875"
+   id="circle15" />
+</svg>
\ No newline at end of file
diff --git a/images/presets/sport/centre.png b/images/presets/sport/centre.png
deleted file mode 100644
index 7b1ed83..0000000
Binary files a/images/presets/sport/centre.png and /dev/null differ
diff --git a/images/presets/sport/chess.png b/images/presets/sport/chess.png
deleted file mode 100644
index 5d9770f..0000000
Binary files a/images/presets/sport/chess.png and /dev/null differ
diff --git a/images/presets/sport/chess.svg b/images/presets/sport/chess.svg
new file mode 100644
index 0000000..1331352
--- /dev/null
+++ b/images/presets/sport/chess.svg
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="chess.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-4.0420854"
+     inkscape:cy="7.1721423"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4134"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4136"
+       width="2"
+       height="2"
+       x="0"
+       y="1050.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4138"
+       width="2"
+       height="2"
+       x="0"
+       y="1046.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4140"
+       width="2"
+       height="2"
+       x="0"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4142"
+       width="2"
+       height="2"
+       x="0"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4144"
+       width="2"
+       height="2"
+       x="2"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4146"
+       width="2"
+       height="2"
+       x="2"
+       y="1040.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4148"
+       width="2"
+       height="2"
+       x="2"
+       y="1044.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4150"
+       width="2"
+       height="2"
+       x="2"
+       y="1048.3622" />
+    <rect
+       y="1050.3622"
+       x="4"
+       height="2"
+       width="2"
+       id="rect4152"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1046.3622"
+       x="4"
+       height="2"
+       width="2"
+       id="rect4154"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1042.3622"
+       x="4"
+       height="2"
+       width="2"
+       id="rect4156"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1038.3622"
+       x="4"
+       height="2"
+       width="2"
+       id="rect4158"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1036.3622"
+       x="6"
+       height="2"
+       width="2"
+       id="rect4160"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1040.3622"
+       x="6"
+       height="2"
+       width="2"
+       id="rect4162"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1044.3622"
+       x="6"
+       height="2"
+       width="2"
+       id="rect4164"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1048.3622"
+       x="6"
+       height="2"
+       width="2"
+       id="rect4166"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1050.3622"
+       x="8"
+       height="2"
+       width="2"
+       id="rect4168"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1046.3622"
+       x="8"
+       height="2"
+       width="2"
+       id="rect4170"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1042.3622"
+       x="8"
+       height="2"
+       width="2"
+       id="rect4172"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1038.3622"
+       x="8"
+       height="2"
+       width="2"
+       id="rect4174"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1036.3622"
+       x="10"
+       height="2"
+       width="2"
+       id="rect4176"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1040.3622"
+       x="10"
+       height="2"
+       width="2"
+       id="rect4178"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1044.3622"
+       x="10"
+       height="2"
+       width="2"
+       id="rect4180"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       y="1048.3622"
+       x="10"
+       height="2"
+       width="2"
+       id="rect4182"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4184"
+       width="2"
+       height="2"
+       x="12"
+       y="1050.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4186"
+       width="2"
+       height="2"
+       x="12"
+       y="1046.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4188"
+       width="2"
+       height="2"
+       x="12"
+       y="1042.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4190"
+       width="2"
+       height="2"
+       x="12"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4192"
+       width="2"
+       height="2"
+       x="14"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4194"
+       width="2"
+       height="2"
+       x="14"
+       y="1040.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4196"
+       width="2"
+       height="2"
+       x="14"
+       y="1044.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4198"
+       width="2"
+       height="2"
+       x="14"
+       y="1048.3622" />
+  </g>
+</svg>
diff --git a/images/presets/sport/dog_racing.svg b/images/presets/sport/dog_racing.svg
new file mode 100644
index 0000000..7bc02c1
--- /dev/null
+++ b/images/presets/sport/dog_racing.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="14"
+   viewBox="0 0 16 14"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="dog_racing.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="-1.7365394"
+     inkscape:cy="6.983858"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1038.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4142"
+       width="16"
+       height="14"
+       x="0"
+       y="1038.3622"
+       ry="0" />
+    <g
+       id="layer1-35"
+       inkscape:label="Layer 1"
+       transform="matrix(0.08016301,0,0,0.08016301,-25.997934,999.69178)"
+       style="fill:#000000">
+      <path
+         sodipodi:nodetypes="ccccccccscscccccccccssccccccccccccccccccccccccsccccsccccsccc"
+         inkscape:connector-curvature="0"
+         id="path7356"
+         d="m 478.66596,493.02539 c -2.2115,5.15789 -4.448,11.38492 -5.88841,16.78946 -4.17194,0.46355 -6.25567,7.30997 -12.93377,13.88487 l -4.18357,4.87825 -6.97005,5.57679 c -3.486,4.87995 -27.18983,10.45646 -36.94967,11.15361 -8.36559,1.39427 -37.64271,3.48644 -42.5226,6.27535 -8.36564,0 -6.27365,-0.69763 -11.1536,-4.18357 -2.78853,0 -4.18355,5.5e-4 -4.18355,2.09177 0,1.39472 2.78924,2.79087 4.18355,4.88213 0,2.09128 0.69468,2.08989 0.69468,4.87825 0,0.69765 -2.08938,2.78792 -2.78645 [...]
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/sport/equestrian.svg b/images/presets/sport/equestrian.svg
new file mode 100644
index 0000000..6373801
--- /dev/null
+++ b/images/presets/sport/equestrian.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   xml:space="preserve"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="equestrian3.svg"><metadata
+   id="metadata17"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title><cc:license
+         rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><defs
+   id="defs15">
+	
+	
+	
+	
+</defs><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1680"
+   inkscape:window-height="988"
+   id="namedview13"
+   showgrid="true"
+   inkscape:zoom="30.565246"
+   inkscape:cx="14.720185"
+   inkscape:cy="7.0643046"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="Layer_1"><inkscape:grid
+     type="xygrid"
+     id="grid4149" /></sodipodi:namedview>
+<path
+   inkscape:connector-curvature="0"
+   id="path7"
+   d="M 1.652496,-4.6e-7 C 0.741342,-4.6e-7 0,0.74236954 0,1.6545495 L 0,14.34546 C 0,15.25871 0.741342,16 1.652496,16 l 12.691768,0 C 15.258523,16 16,15.25871 16,14.34546 L 16,1.6545495 C 16,0.74236954 15.258658,-4.6e-7 14.344264,-4.6e-7 l -12.691768,0 z"
+   style="fill:#ffffff;stroke:none;stroke-opacity:1" /><path
+   inkscape:connector-curvature="0"
+   id="path9"
+   d="m 9.8380057,3.0283979 c 0.6174873,0 1.1169763,-0.4874454 1.1169763,-1.0876954 0,-0.6051684 -0.499646,-1.09246587 -1.1169763,-1.09246587 -0.6137158,0 -1.1121051,0.48745687 -1.1121051,1.09246587 0,0.60025 0.4983893,1.0876954 1.1121051,1.0876954 z"
+   style="fill:#000000;stroke:none;stroke-opacity:1" /><path
+   inkscape:connector-curvature="0"
+   id="path11"
+   d="m 13.611819,6.1118426 -1.014553,-0.1941 -0.590563,1.17362 c 0.09598,0.0221 0.195055,0.0327 0.296294,0.0327 0.629709,1.4e-4 1.156963,-0.42801 1.308822,-1.01219 z m -12.6059548,1.98146 c 0,-0.77828 0.7683797,-1.41092 1.5467077,-1.41092 l 2.968607,0 1.3147918,-2.9597492 C 7.0513217,3.2378532 7.4508278,2.7581931 7.9479879,2.9459675 8.4442639,3.1334081 8.5960648,3.1514423 8.5613024,3.680762 l -0.00845,0.1286664 0.8397503,0.3891499 C 9.6033007,4.3390878 9.7798459,4.5903589 9.6403855,4.80 [...]
+   style="fill:#000000;stroke:none;stroke-opacity:1"
+   sodipodi:nodetypes="ccccccsscssscccccccccccccsccssscccccccccsssccccccs" />
+<path
+   inkscape:connector-curvature="0"
+   id="path11-8"
+   d="m 10.764184,9.1499062 2.348999,2.0399618 0.116732,2.122986 c 0.01916,0.348525 0.0074,0.694714 -0.308916,0.842234 -0.316364,0.147541 -0.821499,0.04246 -0.840943,-0.306047 L 11.97763,12.013101 9.6092971,9.6753199 C 10.001075,9.4543662 10.355997,9.2888636 10.764184,9.1499062 Z"
+   style="fill:#000000;stroke:none;stroke-opacity:1"
+   sodipodi:nodetypes="ccsssccc" /></svg>
\ No newline at end of file
diff --git a/images/presets/sport/field_hockey.png b/images/presets/sport/field_hockey.png
deleted file mode 100644
index 0a5a90f..0000000
Binary files a/images/presets/sport/field_hockey.png and /dev/null differ
diff --git a/images/presets/sport/field_hockey.svg b/images/presets/sport/field_hockey.svg
new file mode 100644
index 0000000..5b145bc
--- /dev/null
+++ b/images/presets/sport/field_hockey.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2235"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="hockey11.svg">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview12"
+     showgrid="true"
+     inkscape:zoom="35.600469"
+     inkscape:cx="8.5920906"
+     inkscape:cy="6.6071664"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2235"
+     showguides="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4141" />
+  </sodipodi:namedview>
+  <defs
+     id="defs2237">
+    <clipPath
+       id="clip0">
+      <rect
+         width="300"
+         height="300"
+         x="0"
+         y="0"
+         id="rect2240" />
+    </clipPath>
+  </defs>
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4144"
+     width="16"
+     height="16"
+     x="0"
+     y="0"
+     ry="0.082081132" />
+  <rect
+     width="1.3367677"
+     height="1.2943861"
+     ry="0.64719307"
+     x="13.808522"
+     y="13.847457"
+     style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.20000005;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="rect2258" />
+  <path
+     d="m 10.209686,2.0275115 a 1.174315,1.1628816 0 0 1 -2.3486298,0 1.174315,1.1628816 0 1 1 2.3486298,0 z"
+     style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.20000005;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="path2236"
+     inkscape:connector-curvature="0" />
+  <path
+     d="M 1.7975139,7.002025 C 1.9285004,7.0386586 2.2470665,7.1578128 2.3774937,7.1973308 2.1217576,7.7963584 1.754179,8.3462916 1.6084044,8.9957794 1.6290618,9.1646852 1.7204259,9.3104885 1.7926814,9.4589611 1.7132942,9.5717061 1.4453306,9.6038831 1.3624063,9.7137361 1.2042574,9.4297651 0.9733711,9.137049 1.0441554,8.7826029 1.1955026,8.1438222 1.5388359,7.5903526 1.7975139,7.002025 Z"
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2261"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccc" />
+  <path
+     d="m 4.6118657,13.298673 c 0.3474261,0.360979 0.6909546,0.729097 1.0690461,1.048324 0.2013033,0.157215 0.4608293,0.05505 0.6857229,0.119981 0.098932,0.07265 0.154792,0.200106 0.2281818,0.30228 -0.3258838,0.08113 -0.8342396,0.439529 -1.1368457,0.186361 -0.4627114,-0.313443 -0.8151793,-0.788772 -1.230331,-1.173039 0.081585,-0.102135 0.302495,-0.382551 0.3842259,-0.484319 z"
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2265"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccc" />
+  <path
+     d="M 4.8529265,7.01628 C 4.8552489,6.56055 5.2214725,6.1462 5.5692928,6.11582 5.7039665,6.10402 5.8055662,6.31507 5.9230622,6.41602 6.1736734,6.34172 6.4679084,6.22542 6.7019084,6.40382 7.1480532,6.69967 7.301897,7.27903 7.4487751,7.78449 7.6400499,8.5314 7.9139759,9.2842 7.8261593,10.07492 7.6503283,10.79087 7.4795564,11.673037 7.022058,12.228937 6.5848932,12.756087 6,13.272321 5.4265747,13.45412 6.0531825,12.56955 6.6708448,11.59895 6.8247803,10.47147 6.9408551,9.64947 6.5349635,8 [...]
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2257"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccccccccccccc" />
+  <path
+     d="m 7.1569009,3.19159 c 0.2012023,-0.0826 0.44511,0.0168 0.5323867,0.22286 0.2343305,0.46363 0.087294,1.01604 0.1378691,1.51419 C 7.9349546,5.68952 8.0740095,6.48337 8.5201642,7.10832 8.2249323,6.26271 8.059076,5.31061 8.3412207,4.43397 8.4226988,4.25451 8.4938287,4.04553 8.726963,4.00142 9.0155506,3.94682 9.2902095,4.20854 9.2604014,4.53328 9.204377,5.49955 8.9227143,6.53889 9.326715,7.45852 c 0.935336,2.00332 1.448649,3.490664 2.393012,5.489304 0.03258,0.0779 0.0809,0.16713 0.167 [...]
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2253"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccscccccccccccccc" />
+</svg>
diff --git a/images/presets/sport/fishing.png b/images/presets/sport/fishing.png
deleted file mode 100644
index 17adad4..0000000
Binary files a/images/presets/sport/fishing.png and /dev/null differ
diff --git a/images/presets/sport/fishing.svg b/images/presets/sport/fishing.svg
new file mode 100644
index 0000000..27962a3
--- /dev/null
+++ b/images/presets/sport/fishing.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="fishing3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="16.025251"
+     inkscape:cy="6.9996474"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4164"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#2182e5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4145"
+       width="13"
+       height="2.0000174"
+       x="0"
+       y="1050.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#45d749;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-renderi [...]
+       id="rect4147"
+       width="4"
+       height="4.0000172"
+       x="13"
+       y="1049.3622"
+       ry="1.0000174" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#b3b3b3;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 5.50005,1038.8551 0,6"
+       id="path4151"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 16,1049.3622 -10.5,-10.5"
+       id="path4149"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <g
+       id="g4159"
+       transform="matrix(1.5803571,0,0,1.390625,10.321428,-418.25086)">
+      <circle
+         r="1"
+         cy="1053.3622"
+         cx="-3"
+         id="path4153"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rend [...]
+      <path
+         sodipodi:nodetypes="cccc"
+         inkscape:connector-curvature="0"
+         id="path4155"
+         d="m -4,1053.3622 c 0.060588,-0.2728 -0.088712,-0.822 1,-2 1.0623837,1.2458 0.9362314,1.6739 1,2 z"
+         style="fill:#008080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#008080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m -4,1055.3622 1,-2 1,2 z"
+         id="path4157"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/sport/fitness_centre.png b/images/presets/sport/fitness_centre.png
deleted file mode 100644
index a9389db..0000000
Binary files a/images/presets/sport/fitness_centre.png and /dev/null differ
diff --git a/images/presets/sport/fitness_centre.svg b/images/presets/sport/fitness_centre.svg
new file mode 100644
index 0000000..84612c3
--- /dev/null
+++ b/images/presets/sport/fitness_centre.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg:svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="15.999998"
+   height="15.999999"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="gym1.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview16"
+     showgrid="false"
+     inkscape:zoom="20.442701"
+     inkscape:cx="9.2043352"
+     inkscape:cy="8.3044065"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <svg:metadata
+     id="metadata2975">
+    <RDF>
+      <Work
+         about="">
+        <format>image/svg+xml</format>
+        <type
+           resource="http://purl.org/dc/dcmitype/StillImage" />
+        <license
+           resource="http://web.resource.org/cc/PublicDomain" />
+        <language>en</language>
+      </Work>
+    </RDF>
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </svg:metadata>
+  <svg:defs
+     id="defs4" />
+  <svg:g
+     id="g1327"
+     style="fill:#ffffff;stroke:none"
+     transform="matrix(0.02775633,0,0,0.02770795,-0.04729679,-0.04722666)">
+    <svg:path
+       d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z"
+       style="fill:#ffffff;stroke:none;stroke-width:3.40799999"
+       id="path1329"
+       inkscape:connector-curvature="0" />
+  </svg:g>
+  <svg:ellipse
+     cx="3.3785875"
+     cy="13.721684"
+     style="fill:#000000"
+     id="circle2531"
+     rx="0.915959"
+     ry="0.91436243" />
+  <svg:ellipse
+     cx="11.844255"
+     cy="13.001286"
+     style="fill:#000000"
+     id="circle2533"
+     rx="1.6376237"
+     ry="1.6347692" />
+  <svg:path
+     d="m 11.481693,10.763833 -0.009,10e-4 -8.3720898,1.43899 c -0.73518,0.13471 -1.26727,0.77277 -1.26727,1.51751 0,0.85052 0.69319,1.5425 1.54519,1.5425 l 8.4656898,0 c 1.24995,0 2.26686,-1.01514 2.26686,-2.26291 0,-1.24777 -1.01691,-2.26291 -2.26686,-2.26291 -0.18267,-3e-5 -0.33408,0.0212 -0.36258,0.0254 z m 0.0574,0.38361 c 0.0145,-0.002 0.1467,-0.0212 0.30516,-0.0212 1.03567,0 1.87827,0.8411 1.87827,1.87499 0,0.49994 -0.19563,0.97056 -0.55083,1.32514 -0.35519,0.35458 -0.82664,0.5498 [...]
+     style="fill:#000000"
+     id="path2535"
+     inkscape:connector-curvature="0" />
+  <svg:path
+     d="m 7.4962632,3.4792433 c -0.1035,-0.26009 -0.39719,-0.38786 -0.65824,-0.28794 l -1.26374,0.50099 c -0.0267,0.006 -0.0533,0.0133 -0.0795,0.0237 -0.13301,0.0528 -0.23132,0.15506 -0.28261,0.27717 -0.0537,0.121 -0.0607,0.26256 -0.008,0.39525 0.0104,0.0262 0.0232,0.0505 0.0372,0.0739 l 0.50245,1.26137 c 0.10639,0.2581 0.40102,0.38362 0.66154,0.28027 0.26052,-0.10332 0.38854,-0.39653 0.28842,-0.6571 l -0.34362,-0.86382 0.86519,-0.34341 c 0.25855,-0.10621 0.38429,-0.40033 0.28075,-0.66042 z"
+     style="fill:#000000"
+     id="path2537"
+     inkscape:connector-curvature="0" />
+  <svg:path
+     d="m 9.7024832,9.0014133 c -0.0162,-0.0281 -0.035,-0.0538 -0.0549,-0.0782 l -0.78403,-1.35658 c -0.16451,-0.277 -0.52185,-0.37132 -0.80205,-0.21003 -0.28017,0.16123 -0.3774,0.51728 -0.21966,0.79813 l 0.53639,0.9291 -0.93048,0.5359 c -0.27745,0.16422 -0.37193,0.5209097 -0.21036,0.8006497 0.16154,0.27971 0.51815,0.3768 0.79952,0.21931 l 1.35939,-0.7820897 c 0.0294,-0.0111 0.0585,-0.024 0.0867,-0.0402 0.14297,-0.0823 0.23817,-0.21537 0.27639,-0.36325 0.0411,-0.14707 0.0255,-0.30989 -0. [...]
+     style="fill:#000000"
+     id="path2539"
+     inkscape:connector-curvature="0" />
+  <svg:ellipse
+     cx="9.2857227"
+     cy="1.9501376"
+     style="fill:#000000"
+     id="circle2541"
+     rx="1.2212787"
+     ry="1.2191499" />
+  <svg:path
+     d="m 11.124043,4.5049633 c -0.13225,-0.23582 -0.42977,-0.32091 -0.66698,-0.19202 l -0.7847498,0.43837 -0.57034,-1.01671 c -0.0402,-0.17725 -0.16118,-0.33366 -0.34118,-0.41116 -0.297,-0.12787 -0.64104,0.007 -0.77235,0.30118 l -3.08084,7.1304197 c -0.12907,0.29875 0.009,0.64535 0.30818,0.77416 0.29926,0.12885 0.64647,-0.009 0.77554,-0.30764 l 2.68784,-6.2224597 0.3334,0.59481 c 0.009,0.0247 0.0196,0.0491 0.0328,0.0729 0.0676,0.12045 0.17822,0.20141 0.30188,0.23488 0.1229,0.0359 0.2595 [...]
+     style="fill:#000000"
+     id="path2543"
+     inkscape:connector-curvature="0" />
+</svg:svg>
diff --git a/images/presets/sport/ice_hockey.png b/images/presets/sport/ice_hockey.png
deleted file mode 100644
index 163e8fe..0000000
Binary files a/images/presets/sport/ice_hockey.png and /dev/null differ
diff --git a/images/presets/sport/ice_hockey.svg b/images/presets/sport/ice_hockey.svg
new file mode 100644
index 0000000..238bccb
--- /dev/null
+++ b/images/presets/sport/ice_hockey.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2235"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="hockey9.svg">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview12"
+     showgrid="true"
+     inkscape:zoom="50.346667"
+     inkscape:cx="6.2913433"
+     inkscape:cy="10.337779"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2235"
+     showguides="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4141" />
+  </sodipodi:namedview>
+  <defs
+     id="defs2237">
+    <clipPath
+       id="clip0">
+      <rect
+         width="300"
+         height="300"
+         x="0"
+         y="0"
+         id="rect2240" />
+    </clipPath>
+  </defs>
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="rect4144"
+     width="16"
+     height="16"
+     x="0"
+     y="0"
+     ry="0.082081132" />
+  <rect
+     width="1.3157005"
+     height="0.84495389"
+     ry="0.11105929"
+     x="13.857678"
+     y="14.086217"
+     style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.20000005;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="rect2258" />
+  <path
+     d="m 10.209686,2.0275115 a 1.174315,1.1628816 0 0 1 -2.3486298,0 1.174315,1.1628816 0 1 1 2.3486298,0 z"
+     style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.20000005;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="path2236"
+     inkscape:connector-curvature="0" />
+  <path
+     d="M 1.7975139,7.002025 C 1.9285004,7.0386586 2.2470665,7.1578128 2.3774937,7.1973308 2.1217576,7.7963584 1.754179,8.3462916 1.6084044,8.9957794 1.6290618,9.1646852 1.7204259,9.3104885 1.7926814,9.4589611 1.7132942,9.5717061 1.4453306,9.6038831 1.3624063,9.7137361 1.2042574,9.4297651 0.9733711,9.137049 1.0441554,8.7826029 1.1955026,8.1438222 1.5388359,7.5903526 1.7975139,7.002025 Z"
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2261"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccc" />
+  <path
+     d="m 4.6118657,13.298673 c 0.3474261,0.360979 0.6909546,0.729097 1.0690461,1.048324 0.2013033,0.157215 0.4608293,0.05505 0.6857229,0.119981 0.098932,0.07265 0.154792,0.200106 0.2281818,0.30228 -0.3258838,0.08113 -0.8342396,0.439529 -1.1368457,0.186361 -0.4627114,-0.313443 -0.8151793,-0.788772 -1.230331,-1.173039 0.081585,-0.102135 0.302495,-0.382551 0.3842259,-0.484319 z"
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2265"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccc" />
+  <path
+     d="M 4.8529265,7.01628 C 4.8552489,6.56055 5.2214725,6.1462 5.5692928,6.11582 5.7039665,6.10402 5.8055662,6.31507 5.9230622,6.41602 6.1736734,6.34172 6.4679084,6.22542 6.7019084,6.40382 7.1480532,6.69967 7.301897,7.27903 7.4487751,7.78449 7.6400499,8.5314 7.9139759,9.2842 7.8261593,10.07492 7.6503283,10.79087 7.4795564,11.673037 7.022058,12.228937 6.5848932,12.756087 6,13.272321 5.4265747,13.45412 6.0531825,12.56955 6.6708448,11.59895 6.8247803,10.47147 6.9408551,9.64947 6.5349635,8 [...]
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2257"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccccccccccccc" />
+  <path
+     d="m 7.1569009,3.19159 c 0.2012023,-0.0826 0.44511,0.0168 0.5323867,0.22286 0.2343305,0.46363 0.087294,1.01604 0.1378691,1.51419 C 7.9349546,5.68952 8.0740095,6.48337 8.5201642,7.10832 8.2249323,6.26271 8.059076,5.31061 8.3412207,4.43397 8.4226988,4.25451 8.4938287,4.04553 8.726963,4.00142 9.0155506,3.94682 9.2902095,4.20854 9.2604014,4.53328 9.204377,5.49955 8.9227143,6.53889 9.326715,7.45852 c 0.935336,2.00332 1.448649,3.490664 2.393012,5.489304 0.03258,0.0779 0.0809,0.16713 0.167 [...]
+     style="fill:#050505;fill-rule:nonzero;stroke:none"
+     id="path2253"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccscccccccccccccc" />
+</svg>
diff --git a/images/presets/sport/ice_skating.svg b/images/presets/sport/ice_skating.svg
new file mode 100644
index 0000000..33ffdf3
--- /dev/null
+++ b/images/presets/sport/ice_skating.svg
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="300px"
+   height="300px"
+   viewBox="0 0 300 300"
+   enable-background="new 0 0 300 300"
+   xml:space="preserve"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="is2.svg"><metadata
+   id="metadata76"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+   id="defs74">
+	<defs
+   id="defs5">
+		<rect
+   height="300"
+   width="300"
+   id="SVGID_1_" />
+	</defs>
+	<clipPath
+   id="SVGID_2_">
+		<use
+   id="use9"
+   overflow="visible"
+   xlink:href="#SVGID_1_" />
+	</clipPath>
+	
+
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+	</defs><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1680"
+   inkscape:window-height="988"
+   id="namedview72"
+   showgrid="true"
+   inkscape:zoom="1.5733333"
+   inkscape:cx="84.642626"
+   inkscape:cy="96.385487"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="Layer_1"><inkscape:grid
+     type="xygrid"
+     id="grid4206" /></sodipodi:namedview>
+<rect
+   style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering: [...]
+   id="rect4204"
+   width="300"
+   height="300"
+   x="0"
+   y="-1.0685897e-015" /><path
+   stroke-miterlimit="10"
+   d="m 177.674,7.913 c 7.322,-0.845 15.018,2.038 19.925,7.555 3.139,3.83 5.17,8.563 5.552,13.52 -0.25,8.892 -6.073,17.573 -14.627,20.443 -7.661,2.973 -16.822,1.364 -23.079,-3.932 -7.173,-5.995 -10.104,-17.092 -5.304,-25.433 3.191,-6.815 10.226,-11.127 17.533,-12.153 z"
+   id="path12"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 177.674,7.913 c 7.322,-0.845 15.018,2.038 19.925,7.555 3.139,3.83 5.17,8.563 5.552,13.52 -0.25,8.892 -6.073,17.573 -14.627,20.443 -7.661,2.973 -16.822,1.364 -23.079,-3.932 -7.173,-5.995 -10.104,-17.092 -5.304,-25.433 3.191,-6.815 10.226,-11.127 17.533,-12.153 z"
+   id="path14"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 43.813,25.835 c 29.426,2.921 58.877,6.049 88.004,11.274 6.189,0.81 12.321,2.167 18.328,3.837 5.32,1.519 8.843,8.105 6.037,13.135 -2.229,4.947 -8.131,6.951 -13.226,6.274 C 131.228,59.271 119.821,55.964 108.56,52.653 92.783,47.6 77.126,42.021 62.144,34.915 56.094,31.776 49.532,29.561 43.813,25.835 Z"
+   id="path16"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 43.813,25.835 c 29.426,2.921 58.877,6.049 88.004,11.274 6.189,0.81 12.321,2.167 18.328,3.837 5.32,1.519 8.843,8.105 6.037,13.135 -2.229,4.947 -8.131,6.951 -13.226,6.274 C 131.228,59.271 119.821,55.964 108.56,52.653 92.783,47.6 77.126,42.021 62.144,34.915 56.094,31.776 49.532,29.561 43.813,25.835 Z"
+   id="path18"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 45.751,50.92 c 1.891,-2.616 5.073,-3.747 8.187,-3.945 7.739,-0.978 14.65,3.344 21.077,7.01 7.732,3.958 14.192,9.851 21.192,14.906 9.005,7.623 17.703,15.611 26.582,23.385 4.475,4.525 9.811,9.857 9.04,16.807 -1.772,9.09 -7.403,16.74 -12.907,23.949 -3.793,5.48 -7.801,10.809 -11.497,16.356 -3.578,5.332 -8.33,9.7 -12.639,14.415 -4.703,4.75 -9.04,9.905 -14.356,14.004 7.365,-16.395 14.759,-32.786 21.974,-49.253 2.519,-5.946 6.109,-11.405 8.159,-17.551 -9.063,-5.439 -19.116,-8.976 -28.15 [...]
+   id="path20"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 45.751,50.92 c 1.891,-2.616 5.073,-3.747 8.187,-3.945 7.739,-0.978 14.65,3.344 21.077,7.01 7.732,3.958 14.192,9.851 21.192,14.906 9.005,7.623 17.703,15.611 26.582,23.385 4.475,4.525 9.811,9.857 9.04,16.807 -1.772,9.09 -7.403,16.74 -12.907,23.949 -3.793,5.48 -7.801,10.809 -11.497,16.356 -3.578,5.332 -8.33,9.7 -12.639,14.415 -4.703,4.75 -9.04,9.905 -14.356,14.004 7.365,-16.395 14.759,-32.786 21.974,-49.253 2.519,-5.946 6.109,-11.405 8.159,-17.551 -9.063,-5.439 -19.116,-8.976 -28.15 [...]
+   id="path22"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 267.691,109.908 c 7.31,-0.828 14.985,2.04 19.891,7.541 3.33,4.099 5.56,9.26 5.541,14.592 -0.654,6.746 -4.172,13.381 -9.959,17.073 -7.916,5.301 -19.038,4.983 -26.641,-0.758 -7.947,-5.78 -11.426,-17.553 -6.37,-26.316 3.201,-6.808 10.236,-11.107 17.538,-12.132 z"
+   id="path24"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 267.691,109.908 c 7.31,-0.828 14.985,2.04 19.891,7.541 3.33,4.099 5.56,9.26 5.541,14.592 -0.654,6.746 -4.172,13.381 -9.959,17.073 -7.916,5.301 -19.038,4.983 -26.641,-0.758 -7.947,-5.78 -11.426,-17.553 -6.37,-26.316 3.201,-6.808 10.236,-11.107 17.538,-12.132 z"
+   id="path26"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 133.73,127.862 c 32.258,3.069 64.523,6.753 96.395,12.688 5.19,1.434 11.641,1.372 15.184,6.083 3.413,4.305 1.73,10.91 -2.811,13.695 -4.848,3.309 -10.977,1.904 -16.383,1.207 -13.436,-2.538 -26.635,-6.254 -39.509,-10.847 -13.579,-4.617 -26.915,-9.967 -39.795,-16.287 -4.326,-2.248 -9.03,-3.785 -13.081,-6.539 z"
+   id="path28"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 133.73,127.862 c 32.258,3.069 64.523,6.753 96.395,12.688 5.19,1.434 11.641,1.372 15.184,6.083 3.413,4.305 1.73,10.91 -2.811,13.695 -4.848,3.309 -10.977,1.904 -16.383,1.207 -13.436,-2.538 -26.635,-6.254 -39.509,-10.847 -13.579,-4.617 -26.915,-9.967 -39.795,-16.287 -4.326,-2.248 -9.03,-3.785 -13.081,-6.539 z"
+   id="path30"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 138.528,150.43 c 5.431,-2.564 11.943,-1.797 17.285,0.666 21.877,10.123 38.971,27.549 56.946,43.139 4.476,4.554 9.804,9.845 9.106,16.814 -2.239,11.547 -10.627,20.245 -16.938,29.705 -4.852,6.223 -8.634,13.271 -14.277,18.861 -6.721,6.715 -12.721,14.215 -20.199,20.125 7.48,-16.607 14.957,-33.232 22.275,-49.92 2.419,-5.688 5.963,-10.889 7.781,-16.822 -9,-5.469 -19.046,-8.939 -28.041,-14.418 -5.865,-3.549 -12.131,-6.395 -17.895,-10.112 -2.287,9.644 -2.021,20.596 -8.326,28.772 -2.126,3. [...]
+   id="path32"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 138.528,150.43 c 5.431,-2.564 11.943,-1.797 17.285,0.666 21.877,10.123 38.971,27.549 56.946,43.139 4.476,4.554 9.804,9.845 9.106,16.814 -2.239,11.547 -10.627,20.245 -16.938,29.705 -4.852,6.223 -8.634,13.271 -14.277,18.861 -6.721,6.715 -12.721,14.215 -20.199,20.125 7.48,-16.607 14.957,-33.232 22.275,-49.92 2.419,-5.688 5.963,-10.889 7.781,-16.822 -9,-5.469 -19.046,-8.939 -28.041,-14.418 -5.865,-3.549 -12.131,-6.395 -17.895,-10.112 -2.287,9.644 -2.021,20.596 -8.326,28.772 -2.126,3. [...]
+   id="path34"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 63.379,184.381 c 19.081,-0.001 38.161,-0.001 57.242,0 -0.003,1.998 -0.003,3.999 -0.006,6.001 -19.076,-0.003 -38.152,-0.003 -57.228,0.001 -0.006,-2.003 -0.007,-4.004 -0.008,-6.002 z"
+   id="path36"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 63.379,184.38136 c 19.081,-0.001 38.161,-0.001 57.242,0 -0.003,2.97036 -0.003,5.94517 -0.006,8.92146 -19.076,-0.004 -38.152,-0.004 -57.228,0.001 -0.006,-2.97778 -0.007,-5.95259 -0.008,-8.92295 z"
+   id="path38"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 25.639,202.824 c 2.714,-0.006 5.428,-0.006 8.142,-0.012 0.032,2.332 0.042,4.667 0.043,7.004 -2.737,0.004 -5.473,0.003 -8.209,-0.003 0.003,-2.332 0.007,-4.661 0.024,-6.989 z"
+   id="path40"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 25.639,202.824 c 2.714,-0.006 5.428,-0.006 8.142,-0.012 0.032,2.332 0.042,4.667 0.043,7.004 -2.737,0.004 -5.473,0.003 -8.209,-0.003 0.003,-2.332 0.007,-4.661 0.024,-6.989 z"
+   id="path42"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 61.64,202.822 c 2.709,-0.003 5.419,-0.004 8.13,-0.014 0.042,2.334 0.054,4.67 0.055,7.008 -2.738,0.004 -5.475,0.003 -8.211,-0.004 0.003,-2.332 0.008,-4.662 0.026,-6.99 z"
+   id="path44"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 61.64,202.822 c 2.709,-0.003 5.419,-0.004 8.13,-0.014 0.042,2.334 0.054,4.67 0.055,7.008 -2.738,0.004 -5.475,0.003 -8.211,-0.004 0.003,-2.332 0.008,-4.662 0.026,-6.99 z"
+   id="path46"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 97.639,202.822 c 2.71,-0.003 5.42,-0.004 8.131,-0.014 0.042,2.334 0.054,4.67 0.055,7.008 -2.737,0.004 -5.474,0.003 -8.21,-0.004 0.002,-2.332 0.006,-4.662 0.024,-6.99 z"
+   id="path48"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 97.639,202.822 c 2.71,-0.003 5.42,-0.004 8.131,-0.014 0.042,2.334 0.054,4.67 0.055,7.008 -2.737,0.004 -5.474,0.003 -8.21,-0.004 0.002,-2.332 0.006,-4.662 0.024,-6.99 z"
+   id="path50"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 241.64,202.821 c 2.708,-0.002 5.418,-0.003 8.13,-0.013 0.041,2.334 0.053,4.67 0.055,7.008 -2.738,0.004 -5.476,0.003 -8.211,-0.004 0.001,-2.333 0.006,-4.662 0.026,-6.991 z"
+   id="path52"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 241.64,202.821 c 2.708,-0.002 5.418,-0.003 8.13,-0.013 0.041,2.334 0.053,4.67 0.055,7.008 -2.738,0.004 -5.476,0.003 -8.211,-0.004 0.001,-2.333 0.006,-4.662 0.026,-6.991 z"
+   id="path54"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 277.639,202.822 c 2.711,-0.003 5.422,-0.004 8.136,-0.012 0.036,2.333 0.046,4.668 0.05,7.006 -2.739,0.003 -5.475,0.003 -8.209,-0.004 -10e-4,-2.332 0.003,-4.662 0.023,-6.99 z"
+   id="path56"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 277.639,202.822 c 2.711,-0.003 5.422,-0.004 8.136,-0.012 0.036,2.333 0.046,4.668 0.05,7.006 -2.739,0.003 -5.475,0.003 -8.209,-0.004 -10e-4,-2.332 0.003,-4.662 0.023,-6.99 z"
+   id="path58"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 169.641,202.819 c 2.711,0 5.422,-10e-4 8.137,-0.008 0.035,2.333 0.044,4.666 0.049,7.003 -2.74,0.005 -5.477,0.006 -8.212,-0.002 0,-2.333 0.006,-4.664 0.026,-6.993 z"
+   id="path60"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 169.641,202.819 c 2.711,0 5.422,-10e-4 8.137,-0.008 0.035,2.333 0.044,4.666 0.049,7.003 -2.74,0.005 -5.477,0.006 -8.212,-0.002 0,-2.333 0.006,-4.664 0.026,-6.993 z"
+   id="path62"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 44.144,218.895 c 1.982,-0.753 3.959,-1.518 5.924,-2.312 6.609,17.909 13.199,35.825 19.844,53.722 -1.919,0.771 -3.893,1.411 -5.933,1.776 -6.481,-17.776 -13.318,-35.423 -19.835,-53.186 z"
+   id="path64"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 44.144,218.895 c 1.982,-0.753 3.959,-1.518 5.924,-2.312 6.609,17.909 13.199,35.825 19.844,53.722 -1.919,0.771 -3.893,1.411 -5.933,1.776 -6.481,-17.776 -13.318,-35.423 -19.835,-53.186 z"
+   id="path66"
+   inkscape:connector-curvature="0" /><path
+   stroke-miterlimit="10"
+   d="m 153.379,286.381 c 19.08,-0.002 38.16,0 57.242,0 -0.004,1.997 -0.005,3.998 -0.006,6.001 -19.077,-0.003 -38.152,-0.003 -57.229,0 -0.005,-2.003 -0.007,-4.004 -0.007,-6.001 z"
+   id="path68"
+   inkscape:connector-curvature="0"
+   style="fill:none;stroke:#000000;stroke-width:0.1;stroke-miterlimit:10" /><path
+   d="m 153.379,286.38137 c 19.08,-0.003 38.16,0 57.242,0 -0.004,2.81946 -0.005,5.64457 -0.006,8.47251 -19.077,-0.004 -38.152,-0.004 -57.229,0 -0.005,-2.82794 -0.007,-5.65305 -0.007,-8.47251 z"
+   id="path70"
+   inkscape:connector-curvature="0" />
+</svg>
\ No newline at end of file
diff --git a/images/presets/sport/karting.png b/images/presets/sport/karting.png
deleted file mode 100644
index f1849bd..0000000
Binary files a/images/presets/sport/karting.png and /dev/null differ
diff --git a/images/presets/sport/karting.svg b/images/presets/sport/karting.svg
new file mode 100644
index 0000000..4fb67b3
--- /dev/null
+++ b/images/presets/sport/karting.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="karting3.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="44.8"
+     inkscape:cx="7.5678948"
+     inkscape:cy="9.2837864"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4159"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622"
+       ry="0" />
+    <circle
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4145"
+       cx="2.5"
+       cy="1049.8622"
+       r="1.35" />
+    <circle
+       r="1.35"
+       cy="1049.8622"
+       cx="13.5"
+       id="circle4147"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 5,1049.9162 6,0"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4151"
+       d="m 4.4317892,1048.1412 c 1.579027,-1.744 4.1558688,-1.4873 6.5682108,0.221"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 4.9462241,1042.0382 c 1.579027,1.744 3.259133,2.5472 4.9610679,2.904"
+       id="path4153"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4155"
+       width="2"
+       height="5.0001249"
+       x="1"
+       y="1042.3622"
+       ry="1" />
+    <circle
+       r="1.35"
+       cy="1038.8622"
+       cx="4.5"
+       id="circle4157"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+  </g>
+</svg>
diff --git a/images/presets/sport/motor.png b/images/presets/sport/motor.png
deleted file mode 100644
index 2f34f0b..0000000
Binary files a/images/presets/sport/motor.png and /dev/null differ
diff --git a/images/presets/sport/motor.svg b/images/presets/sport/motor.svg
new file mode 100644
index 0000000..e48fba4
--- /dev/null
+++ b/images/presets/sport/motor.svg
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg3419"
+   sodipodi:docname="gear23.svg"
+   viewBox="0 0 16 16"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   width="16"
+   height="16">
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:window-y="-8"
+     fit-margin-left="0"
+     pagecolor="#ffffff"
+     fit-margin-top="0"
+     inkscape:window-maximized="1"
+     inkscape:zoom="30.733071"
+     inkscape:window-x="-8"
+     inkscape:window-height="988"
+     showgrid="true"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="4.4158384"
+     inkscape:cy="5.1790307"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4147" />
+  </sodipodi:namedview>
+  <g
+     id="layer1"
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     transform="translate(-263.31,-702.69)">
+    <path
+       id="path3243"
+       style="color:#000000;fill:#502d16;stroke:#a05a2c;stroke-width:0.23241474"
+       inkscape:connector-curvature="0"
+       d="m 273.79564,708.31969 c -0.10816,0.008 -0.21329,0.0242 -0.31957,0.0363 l -0.006,0 -0.25419,1.38723 c -0.41436,0.0944 -0.80413,0.25448 -1.15483,0.47209 l -1.14101,-0.82072 c -0.30826,0.23931 -0.58876,0.51843 -0.83521,0.82072 l 0.79166,1.15483 c -0.24036,0.36733 -0.42113,0.78679 -0.52293,1.22742 -1e-5,0.002 -1e-5,0.006 0,0.006 l -1.37999,0.21789 c -0.0251,0.20606 -0.0363,0.41903 -0.0363,0.63187 0,0.17416 0.004,0.34598 0.0218,0.51568 l 1.37998,0.24693 c 0.0982,0.47922 0.28459,0.92 [...]
+    <path
+       d="m 265.86604,703.04061 c -0.0831,0.0387 -0.161,0.0837 -0.24116,0.12559 l -0.005,9e-4 0.21955,1.17196 c -0.29847,0.20003 -0.55758,0.4445 -0.76843,0.72252 l -1.14925,-0.3021 c -0.17079,0.2823 -0.30763,0.58758 -0.41058,0.90087 l 0.97475,0.6716 c -0.0785,0.36277 -0.0941,0.74861 -0.0409,1.12724 6.3e-4,0.002 9.1e-4,0.005 9.1e-4,0.005 l -1.0231,0.59015 c 0.0414,0.17052 0.0981,0.34178 0.16259,0.50979 0.0532,0.13732 0.10856,0.27164 0.17355,0.40038 l 1.16398,-0.22351 c 0.22269,0.34849 0.5 [...]
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:#502d16;stroke:#a05a2c;stroke-width:0.19649233"
+       id="path4149" />
+  </g>
+  <metadata
+     id="metadata6">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2012-05-07T08:05:23</dc:date>
+        <dc:description>Tango Icon Gear / Shape</dc:description>
+        <dc:source>https://openclipart.org/detail/169903/gear-by-hank0071</dc:source>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>hank0071</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>gear</rdf:li>
+            <rdf:li>icon</rdf:li>
+            <rdf:li>system</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/images/presets/sport/pelota.png b/images/presets/sport/pelota.png
deleted file mode 100644
index 7df57a2..0000000
Binary files a/images/presets/sport/pelota.png and /dev/null differ
diff --git a/images/presets/sport/pelota.svg b/images/presets/sport/pelota.svg
new file mode 100644
index 0000000..1641e41
--- /dev/null
+++ b/images/presets/sport/pelota.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="pelota5.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="16"
+     inkscape:cx="14.496427"
+     inkscape:cy="11.827686"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4184"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path12"
+       d="m 13.02,1038.8442 c 0.1136,0.1466 0.03445,0.3313 0.01888,0.4953 -0.06949,0.352 -0.1392,0.7041 -0.212107,1.0554 -0.244266,0.9111 -0.858293,1.6577 -1.48272,2.3401 -0.253013,0.2253 -0.45552,0.5935 -0.835733,0.5964 -0.314453,0.043 -0.6135467,-0.2777 -0.51536,-0.5888 0.011627,-0.1353 0.1368,-0.204 0.234507,-0.2759 0.787093,-0.5619 1.53504,-1.2145 2.052106,-2.0414 0.268854,-0.5167 0.532907,-1.0364 0.740427,-1.5811 z" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path16"
+       d="m 2.6573333,1039.0191 c 0.3812267,-0.3828 0.9315734,-0.5339 1.4577067,-0.5614 0.04912,0.1037 0.093227,0.2125 0.077173,0.3299 -0.2098133,0.072 -0.4434133,0.091 -0.6236266,0.232 -0.3531734,0.2471 -0.46096,0.7027 -0.50992,1.1062 -0.086773,1.1676 0.26672,2.3208 0.7606933,3.3661 0.39824,0.2096 0.8558933,0.2538 1.2984533,0.2682 0.2251733,0.015 0.45424,0 0.6711467,-0.068 0.4786133,-0.1536 0.84176,-0.5318 1.3112533,-0.7051 0.2141867,-0.065 0.5072,-6e-4 0.5948267,0.2285 0.07376,0.1449 0 [...]
+    <path
+       style="fill:#ffffff"
+       inkscape:connector-curvature="0"
+       id="path20"
+       d="m 2.5871467,1039.6965 c 0.092693,-0.2519 0.2930666,-0.4346 0.4775466,-0.6196 -0.2677333,0.369 -0.3322133,0.8434 -0.3554133,1.2872 -0.018027,0.7173 0.1379733,1.4237 0.3288,2.1108 -0.2600533,-0.5521 -0.5044267,-1.1244 -0.5705067,-1.7371 -0.014187,-0.3499 -0.026933,-0.7141 0.1195734,-1.0413 z" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path24"
+       d="m 8.3061867,1039.7723 c 0.46336,-0.057 0.9576,0.1943 1.1611733,0.6196 0.3202667,0.5586 0.028427,1.342 -0.56544,1.5757 -0.3585067,0.1641 -0.7944,0.1116 -1.1155733,-0.112 -0.3914134,-0.2792 -0.5994667,-0.8191 -0.43472,-1.2812 0.1288,-0.4243 0.5152533,-0.7456 0.95456,-0.8021 z" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path28"
+       d="m 9.3057067,1046.4419 c 0.025013,-0.2115 0.20704,-0.3656 0.3981333,-0.4319 0.212,-0.014 0.422293,0.062 0.61424,0.1463 0.64912,0.3434 1.105867,1.0009 1.256427,1.7144 0.109066,0.4416 0.02315,0.9259 -0.24512,1.2951 -0.381014,0.4851 -0.875414,0.8893 -1.4507203,1.1202 -0.4252267,0.1909 -0.8802134,0.3027 -1.3335467,0.404 -0.2108267,0.053 -0.4222933,0.1388 -0.6439467,0.1122 0.4341334,-0.2874 0.9364267,-0.4432 1.4045334,-0.6634 0.5893333,-0.3008 1.1338663,-0.7903 1.3065603,-1.4505 0.10 [...]
+    <path
+       inkscape:connector-curvature="0"
+       id="path32"
+       d="m 7.84064,1046.7625 c 0.1577067,-0.3519 0.52992,-0.6799 0.9389333,-0.5674 0.097227,0.1271 0.2556267,0.2222 0.28128,0.3922 0.08112,0.2993 -5.866e-4,0.6085 -0.079413,0.8989 -0.10112,0.3382 -0.2344533,0.6676 -0.40432,0.9773 -0.3999467,0.8138 -0.91008,1.5835 -1.5705067,2.2098 -0.6192533,0.6097 -1.38256,1.0519 -2.18048,1.3844 -0.06448,0.021 -0.1309333,0.029 -0.1993066,0.023 0.28336,-0.2327 0.57248,-0.4588 0.8487466,-0.7001 0.5346667,-0.4874 0.93872,-1.0941 1.3317334,-1.6958 0.164426 [...]
+    <path
+       i:knockout="Off"
+       d="m 13.5,1037.3622 c 0.276125,0 0.5,0.2238 0.5,0.4999 0,0.2763 -0.223875,0.5001 -0.5,0.5001 -0.276125,0 -0.5,-0.2238 -0.5,-0.5001 0,-0.2761 0.223875,-0.4999 0.5,-0.4999"
+       id="path36"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="csssc" />
+  </g>
+</svg>
diff --git a/images/presets/sport/pitch.png b/images/presets/sport/pitch.png
deleted file mode 100644
index 7c2b618..0000000
Binary files a/images/presets/sport/pitch.png and /dev/null differ
diff --git a/images/presets/sport/pitch.svg b/images/presets/sport/pitch.svg
new file mode 100644
index 0000000..15ad89c
--- /dev/null
+++ b/images/presets/sport/pitch.svg
@@ -0,0 +1,649 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="pitch3.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient2189">
+      <stop
+         style="stop-color:#ffd52a;stop-opacity:1;"
+         offset="0"
+         id="stop2191" />
+      <stop
+         style="stop-color:#ff7f2a;stop-opacity:1;"
+         offset="1"
+         id="stop2193" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3851"
+       id="linearGradient3014"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4276173,0,0,0.4276173,123.92176,444.08246)"
+       x1="-746.70801"
+       y1="401.65866"
+       x2="-746.70801"
+       y2="273.72971" />
+    <linearGradient
+       id="linearGradient3851">
+      <stop
+         id="stop3853"
+         offset="0"
+         style="stop-color:#dcdcdc;stop-opacity:1;" />
+      <stop
+         id="stop3855"
+         offset="1"
+         style="stop-color:white;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3018"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <linearGradient
+       id="linearGradient3749">
+      <stop
+         id="stop3751"
+         offset="0"
+         style="stop-color:#722e00;stop-opacity:1;" />
+      <stop
+         style="stop-color:#722e00;stop-opacity:1;"
+         offset="0.5"
+         id="stop3813" />
+      <stop
+         id="stop3753"
+         offset="1"
+         style="stop-color:#722e00;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3020"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3022"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3024"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3026"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3028"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3030"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3032"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3034"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3036"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3038"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3040"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3042"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3044"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3749"
+       id="radialGradient3046"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.2,0,-52.03003)"
+       cx="-601.7984"
+       cy="260.15005"
+       fx="-601.7984"
+       fy="260.15005"
+       r="2.5253813" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3851"
+       id="linearGradient4373"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4276173,0,0,0.4276173,123.92176,444.08246)"
+       x1="-746.70801"
+       y1="401.65866"
+       x2="-746.70801"
+       y2="273.72971" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.678384"
+     inkscape:cx="9.9428946"
+     inkscape:cy="4.8381118"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#001a00;stroke-width:1.02298391;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;s [...]
+       id="rect4145"
+       width="14.977016"
+       height="14.977016"
+       x="0.51149195"
+       y="1036.8737"
+       ry="2.4885428" />
+    <g
+       i:dimmedPercent="50"
+       i:layer="yes"
+       i:rgbTrio="#4F008000FFFF"
+       id="Layer_1"
+       transform="matrix(0.08966889,0,0,0.09416287,2.0446982,1038.1613)">
+      <g
+         id="g7">
+        <path
+           style="clip-rule:evenodd;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="m 52.83,0.018 c 29.152,0 52.813,22.531 52.813,50.292 0,27.76 -23.66,50.292 -52.813,50.292 C 23.677,100.602 0.018,78.07 0.018,50.31 0.018,22.549 23.678,0.018 52.83,0.018"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path9" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="m 25.254,11.218 c -1.548,0.648 -2.664,1.332 -3.78,2.196 -1.116,0.756 -1.908,1.692 -2.664,2.664 -0.864,0.9 -1.584,1.872 -2.16,2.916 l 7.128,-1.836 0,0 c 0.468,-1.98 0.972,-3.96 1.476,-5.94 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path11" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 32.886,8.086 48.87,4.198 59.886,13.306 56.97,24.934 44.73,30.622 29.25,26.518 26.946,17.05 32.886,8.086 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path13" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 63.342,14.026 61.399,25.042 73.53,37.174 86.49,35.23 90.486,20.686 76.302,9.058 63.342,14.026 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path15" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 76.05,41.278 88.29,39.082 95.562,51.322 85.518,67.918 72.918,66.73 68.311,56.181 76.05,41.278 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path17" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 94.482,75.91 88.65,69.142 98.838,51.933 102.366,49.99 c 0.036,4.176 -0.288,7.703 -0.972,11.268 -0.828,3.527 -2.053,6.732 -3.276,9.324 -1.223,2.447 -2.34,4.176 -3.636,5.328 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path19" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 33.894,63.418 48.33,52.762 64.566,57.01 69.75,69.215 60.786,80.986 40.554,76.738 33.894,63.418 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path21" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="m 64.962,97.113 c -2.988,0.434 -6.012,0.756 -9.216,0.828 -3.312,0.072 -6.84,0 -10.044,-0.359 -3.42,-0.504 -6.588,-1.404 -9.36,-2.305 -2.772,-0.971 -4.896,-2.051 -6.768,-3.383 l -0.252,-4.861 9.576,-7.271 21.457,3.781 6.155,9.432 -1.548,4.138 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path23" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 14.31,43.726 27.522,30.298 41.814,34.294 45.45,49.774 30.546,61.295 17.586,60.934 14.31,43.726 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path25" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 9.45,71.123 C 8.298,71.59 7.218,70.365 6.066,67.846 4.806,65.11 3.114,59.602 2.538,55.498 1.998,51.357 2.034,47.326 2.79,43.258 l 7.524,2.412 3.996,16.705 -4.86,8.748 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path27" />
+      </g>
+    </g>
+    <g
+       id="g3847"
+       transform="matrix(0.01884694,-5.6569909e-4,5.6569909e-4,0.01884694,14.404411,1042.6169)" />
+    <g
+       id="g4375"
+       transform="matrix(0.62498975,-0.53024588,0.53024588,0.62498975,-553.32203,400.19128)">
+      <g
+         id="g2983"
+         transform="matrix(0.07422743,0,0,0.07422743,25.346346,1003.6833)">
+        <path
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ad4700;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.00000048;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           d="m -154.88169,526.71821 c 42.59952,-0.90826 78.680414,29.96229 78.590875,47.4857 -0.08736,17.09691 -33.639665,46.6801 -77.239375,46.6801 -43.29428,0 -79.83533,-31.66156 -80.42352,-47.4857 -0.58819,-15.82412 36.47251,-45.77183 79.07202,-46.6801 z"
+           id="path1927"
+           sodipodi:nodetypes="czzzz"
+           inkscape:connector-curvature="0" />
+        <path
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#722e00;stroke-width:0.85523498;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           d="m -154.97557,545.09317 c 38.75501,-1.61118 78.153693,12.54824 78.684772,29.10969 0.531075,16.56145 -43.125432,31.09477 -78.985982,29.84028 -36.29251,-1.25669 -78.66157,-20.64544 -78.67692,-30.64587 -0.0154,-10.01263 40.22312,-26.69292 78.97813,-28.3041 z"
+           id="path2817"
+           sodipodi:nodetypes="czzzz"
+           inkscape:connector-curvature="0" />
+        <path
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4373);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           d="m -206.64649,541.9655 c 5.31638,10.96889 9.02803,36.91689 0.0693,63.21257 4.35714,2.7866 9.12327,5.22579 14.11079,7.4694 14.01257,-27.44141 7.74247,-69.75309 0.30459,-77.91935 -5.10842,2.07955 -9.82552,4.44124 -14.48471,7.23738 z"
+           id="rect2819"
+           sodipodi:nodetypes="ccccc"
+           inkscape:connector-curvature="0" />
+        <path
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3014);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           d="m -117.9519,614.55382 c 6.05822,-2.56898 11.74575,-5.57547 16.85603,-8.82714 12.408032,-19.52899 9.166278,-45.8891 0.93681,-62.71447 -5.14095,-3.4559 -10.94992,-6.62557 -17.25821,-9.22863 8.57786,13.87429 13.20948,56.96284 -0.53463,80.77024 z"
+           id="path2832"
+           sodipodi:nodetypes="ccccc"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#ececec;stroke-width:4.27617359;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m -176.45096,547.4503 c 12.94624,-2.90958 34.65289,-3.20703 48.11554,-1.05005"
+           id="path3729"
+           sodipodi:nodetypes="cc"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#722e00;stroke-width:0.47037905;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m -176.45096,547.4503 c 12.94624,-2.90958 34.65289,-3.20703 48.11554,-1.05005"
+           id="path3731"
+           sodipodi:nodetypes="cc"
+           inkscape:connector-curvature="0" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-375.12131,79.283681)"
+           id="path3757"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3018);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-375.88076,69.452588)"
+           id="path3761"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3020);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-370.31489,68.617109)"
+           id="path3765"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3022);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-368.6365,78.290924)"
+           id="path3769"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3024);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-361.83182,78.001727)"
+           id="path3773"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3026);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-363.34815,68.328724)"
+           id="path3777"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3028);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-356.21806,67.825205)"
+           id="path3781"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3030);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-355.02501,77.388524)"
+           id="path3785"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3032);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-348.16902,77.639535)"
+           id="path3789"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3034);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-348.92933,67.970424)"
+           id="path3793"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3036);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-348.87502,67.86275)"
+           id="path3797"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3038);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-341.53368,68.27818)"
+           id="path3801"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3040);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-341.52898,77.889392)"
+           id="path3805"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3042);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-333.9717,78.306019)"
+           id="path3809"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3044);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <ellipse
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3046);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           id="path3747"
+           transform="matrix(0.00400569,-0.7839546,0.7839546,0.00400569,-334.2488,69.125375)"
+           cx="-601.7984"
+           cy="260.15005"
+           rx="2.5253813"
+           ry="3.0304577" />
+        <path
+           transform="matrix(-0.03687439,-0.3597848,0.4276117,0.00218492,-314.06098,335.7153)"
+           sodipodi:open="true"
+           sodipodi:end="3.4375488"
+           sodipodi:start="5.8925783"
+           d="m -572.31596,276.19311 a 14.268405,4.2931485 0 0 1 -4.16257,4.95836 14.268405,4.2931485 0 0 1 -16.9778,0.24194 14.268405,4.2931485 0 0 1 -5.70138,-4.8178"
+           sodipodi:ry="4.2931485"
+           sodipodi:rx="14.268405"
+           sodipodi:cy="277.82773"
+           sodipodi:cx="-585.50964"
+           id="path3735"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.34341764;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           sodipodi:type="arc" />
+        <path
+           transform="matrix(-0.06198655,-0.3599131,0.4276117,0.00218492,-322.4983,335.02423)"
+           sodipodi:open="true"
+           sodipodi:end="3.4375488"
+           sodipodi:start="5.8925783"
+           d="m -572.31596,276.19311 a 14.268405,4.2931485 0 0 1 -4.16257,4.95836 14.268405,4.2931485 0 0 1 -16.9778,0.24194 14.268405,4.2931485 0 0 1 -5.70138,-4.8178"
+           sodipodi:ry="4.2931485"
+           sodipodi:rx="14.268405"
+           sodipodi:cy="277.82773"
+           sodipodi:cx="-585.50964"
+           id="path3737"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.34341764;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           sodipodi:type="arc" />
+        <path
+           transform="matrix(-0.06198655,-0.3599131,0.4276117,0.00218492,-315.90829,334.51797)"
+           sodipodi:open="true"
+           sodipodi:end="3.4375488"
+           sodipodi:start="5.8925783"
+           d="m -572.31596,276.19311 a 14.268405,4.2931485 0 0 1 -4.16257,4.95836 14.268405,4.2931485 0 0 1 -16.9778,0.24194 14.268405,4.2931485 0 0 1 -5.70138,-4.8178"
+           sodipodi:ry="4.2931485"
+           sodipodi:rx="14.268405"
+           sodipodi:cy="277.82773"
+           sodipodi:cx="-585.50964"
+           id="path3739"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.34341764;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           sodipodi:type="arc" />
+        <path
+           transform="matrix(-0.03687428,-0.3597848,0.4276117,0.00218492,-294.29091,334.19645)"
+           sodipodi:open="true"
+           sodipodi:end="3.4375488"
+           sodipodi:start="5.8925783"
+           d="m -572.31596,276.19311 a 14.268405,4.2931485 0 0 1 -4.16257,4.95836 14.268405,4.2931485 0 0 1 -16.9778,0.24194 14.268405,4.2931485 0 0 1 -5.70138,-4.8178"
+           sodipodi:ry="4.2931485"
+           sodipodi:rx="14.268405"
+           sodipodi:cy="277.82773"
+           sodipodi:cx="-585.50964"
+           id="path3741"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.34341764;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           sodipodi:type="arc" />
+        <path
+           transform="matrix(-0.01804007,-0.3596886,0.4276117,0.00218492,-276.13513,334.18122)"
+           sodipodi:open="true"
+           sodipodi:end="3.4375488"
+           sodipodi:start="5.8925783"
+           d="m -572.31596,276.19311 a 14.268405,4.2931485 0 0 1 -4.16257,4.95836 14.268405,4.2931485 0 0 1 -16.9778,0.24194 14.268405,4.2931485 0 0 1 -5.70138,-4.8178"
+           sodipodi:ry="4.2931485"
+           sodipodi:rx="14.268405"
+           sodipodi:cy="277.82773"
+           sodipodi:cx="-585.50964"
+           id="path3743"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.34341764;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           sodipodi:type="arc" />
+        <path
+           transform="matrix(0.00707235,-0.3595599,0.4276117,0.00218492,-254.41414,334.72417)"
+           sodipodi:open="true"
+           sodipodi:end="3.4375488"
+           sodipodi:start="5.8925783"
+           d="m -572.31596,276.19311 a 14.268405,4.2931485 0 0 1 -4.16257,4.95836 14.268405,4.2931485 0 0 1 -16.9778,0.24194 14.268405,4.2931485 0 0 1 -5.70138,-4.8178"
+           sodipodi:ry="4.2931485"
+           sodipodi:rx="14.268405"
+           sodipodi:cy="277.82773"
+           sodipodi:cx="-585.50964"
+           id="path3745"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.34341764;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           sodipodi:type="arc" />
+        <path
+           sodipodi:type="arc"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:5.34341764;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+           id="path3733"
+           sodipodi:cx="-585.50964"
+           sodipodi:cy="277.82773"
+           sodipodi:rx="14.268405"
+           sodipodi:ry="4.2931485"
+           d="m -572.31596,276.19311 a 14.268405,4.2931485 0 0 1 -4.16257,4.95836 14.268405,4.2931485 0 0 1 -16.9778,0.24194 14.268405,4.2931485 0 0 1 -5.70138,-4.8178"
+           sodipodi:start="5.8925783"
+           sodipodi:end="3.4375488"
+           sodipodi:open="true"
+           transform="matrix(0.00707235,-0.3595599,0.4276117,0.00218492,-247.07311,335.19365)" />
+        <path
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+           d="m -154.9375,524.71875 c -21.75575,0.46386 -41.97483,8.29278 -56.78125,18.0625 -7.40321,4.88486 -13.46085,10.27359 -17.6875,15.53125 -4.22665,5.25766 -6.70813,10.39775 -6.53125,15.15625 0.17468,4.69944 2.81593,9.89484 7.15625,15.28125 4.34032,5.38641 10.45116,10.92406 17.90625,15.96875 14.91019,10.08938 35.20907,18.15624 57.34375,18.15625 22.2522,0 41.89709,-7.53051 56.0625,-17.28125 14.165414,-9.75074 23.137168,-21.52417 23.1875,-31.375 0.02591,-5.07016 -2.457879,-10.59656  [...]
+           id="path2400"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/sport/rc_car.svg b/images/presets/sport/rc_car.svg
index f65fabc..14fcdd0 100644
--- a/images/presets/sport/rc_car.svg
+++ b/images/presets/sport/rc_car.svg
@@ -10,12 +10,12 @@
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    version="1.0"
-   width="518.46906"
-   height="311.08142"
+   width="16"
+   height="16"
    id="svg2"
    sodipodi:version="0.32"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="car.svg"
+   sodipodi:docname="rc_car5.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
   <metadata
      id="metadata11">
@@ -52,30 +52,34 @@
      bordercolor="#666666"
      pagecolor="#ffffff"
      id="base"
-     inkscape:zoom="1.0318841"
-     inkscape:cx="204.9649"
-     inkscape:cy="156.32021"
+     inkscape:zoom="33.020291"
+     inkscape:cx="6.8911862"
+     inkscape:cy="9.2616979"
      inkscape:window-x="-8"
      inkscape:window-y="-8"
      inkscape:current-layer="svg2"
-     showgrid="false"
+     showgrid="true"
      fit-margin-top="0"
      fit-margin-left="0"
      fit-margin-right="0"
      fit-margin-bottom="0"
-     inkscape:window-maximized="1" />
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4139" />
+  </sodipodi:namedview>
   <defs
      id="defs4" />
   <rect
      style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
      id="rect4138"
-     width="518.46906"
-     height="311.08142"
+     width="16"
+     height="16"
      x="0"
-     y="0" />
+     y="-0.0020000001" />
   <g
      id="layer1"
-     transform="matrix(-0.6874148,0,0,1,495.69993,23.231568)">
+     transform="matrix(-0.02121368,0,0,0.03086009,15.297342,7.1159688)">
     <path
        d="m 640.23853,222.03787 c 0,27.10477 -21.97275,49.07752 -49.07752,49.07752 -27.10477,0 -49.07752,-21.97275 -49.07752,-49.07752 0,-27.10477 21.97275,-49.07752 49.07752,-49.07752 27.10477,0 49.07752,21.97275 49.07752,49.07752 l 0,0 z"
        transform="matrix(1.079545,0,0,1.079545,-521.3741,-27.12071)"
@@ -104,4 +108,16 @@
        id="path26236"
        inkscape:connector-curvature="0" />
   </g>
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 7.1668715,7.3663586 C 5.9316807,2.9497725 5.894881,3.5765954 3.9567242,2.0605688"
+     id="path4141"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cc" />
+  <circle
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape [...]
+     id="path4143"
+     cx="3.6038802"
+     cy="1.9951195"
+     r="1.05" />
 </svg>
diff --git a/images/presets/sport/skating.png b/images/presets/sport/skating.png
deleted file mode 100644
index 1dc8090..0000000
Binary files a/images/presets/sport/skating.png and /dev/null differ
diff --git a/images/presets/sport/sports_centre.svg b/images/presets/sport/sports_centre.svg
new file mode 100644
index 0000000..7520d9f
--- /dev/null
+++ b/images/presets/sport/sports_centre.svg
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="sports_centre2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="63.356768"
+     inkscape:cx="2.0117159"
+     inkscape:cy="10.768635"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#13cc00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4147"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#cc4300;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4145"
+       width="12"
+       height="5.0000644"
+       x="2"
+       y="1045.3622"
+       ry="2.5000322" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4149"
+       width="1"
+       height="2"
+       x="5"
+       y="1044.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4182"
+       width="7"
+       height="6"
+       x="8"
+       y="1037.3622"
+       ry="2.0000174" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4184"
+       width="7"
+       height="4"
+       x="8"
+       y="1039.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4186"
+       width="1"
+       height="2"
+       x="13"
+       y="1041.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4188"
+       width="1"
+       height="1"
+       x="13"
+       y="1039.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4190"
+       width="1"
+       height="1"
+       x="11"
+       y="1039.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4192"
+       width="1"
+       height="1"
+       x="9"
+       y="1039.3622" />
+    <g
+       i:dimmedPercent="50"
+       i:layer="yes"
+       i:rgbTrio="#4F008000FFFF"
+       id="Layer_1"
+       transform="matrix(0.06509311,0,0,0.06509311,0.60336176,1037.134)">
+      <g
+         id="g7">
+        <path
+           style="clip-rule:evenodd;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="m 52.83,0.018 c 29.152,0 52.813,22.531 52.813,50.292 0,27.76 -23.66,50.292 -52.813,50.292 C 23.677,100.602 0.018,78.07 0.018,50.31 0.018,22.549 23.678,0.018 52.83,0.018"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path9" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="m 25.254,11.218 c -1.548,0.648 -2.664,1.332 -3.78,2.196 -1.116,0.756 -1.908,1.692 -2.664,2.664 -0.864,0.9 -1.584,1.872 -2.16,2.916 l 7.128,-1.836 0,0 c 0.468,-1.98 0.972,-3.96 1.476,-5.94 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path11" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 32.886,8.086 48.87,4.198 59.886,13.306 56.97,24.934 44.73,30.622 29.25,26.518 26.946,17.05 32.886,8.086 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path13" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 63.342,14.026 61.399,25.042 73.53,37.174 86.49,35.23 90.486,20.686 76.302,9.058 63.342,14.026 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path15" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 76.05,41.278 88.29,39.082 95.562,51.322 85.518,67.918 72.918,66.73 68.311,56.181 76.05,41.278 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path17" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 94.482,75.91 88.65,69.142 98.838,51.933 102.366,49.99 c 0.036,4.176 -0.288,7.703 -0.972,11.268 -0.828,3.527 -2.053,6.732 -3.276,9.324 -1.223,2.447 -2.34,4.176 -3.636,5.328 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path19" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 33.894,63.418 48.33,52.762 64.566,57.01 69.75,69.215 60.786,80.986 40.554,76.738 33.894,63.418 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path21" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="m 64.962,97.113 c -2.988,0.434 -6.012,0.756 -9.216,0.828 -3.312,0.072 -6.84,0 -10.044,-0.359 -3.42,-0.504 -6.588,-1.404 -9.36,-2.305 -2.772,-0.971 -4.896,-2.051 -6.768,-3.383 l -0.252,-4.861 9.576,-7.271 21.457,3.781 6.155,9.432 -1.548,4.138 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path23" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 14.31,43.726 27.522,30.298 41.814,34.294 45.45,49.774 30.546,61.295 17.586,60.934 14.31,43.726 Z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path25" />
+        <path
+           style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.036;stroke-miterlimit:10"
+           inkscape:connector-curvature="0"
+           d="M 9.45,71.123 C 8.298,71.59 7.218,70.365 6.066,67.846 4.806,65.11 3.114,59.602 2.538,55.498 1.998,51.357 2.034,47.326 2.79,43.258 l 7.524,2.412 3.996,16.705 -4.86,8.748 z"
+           i:knockout="Off"
+           stroke-miterlimit="10"
+           id="path27" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/images/presets/sport/stadium.png b/images/presets/sport/stadium.png
deleted file mode 100644
index e100dcf..0000000
Binary files a/images/presets/sport/stadium.png and /dev/null differ
diff --git a/images/presets/sport/stadium.svg b/images/presets/sport/stadium.svg
new file mode 100644
index 0000000..078dc6a
--- /dev/null
+++ b/images/presets/sport/stadium.svg
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="10.389996"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="stadium2.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <metadata
+     id="metadata2975">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="58.987336"
+     inkscape:cx="3.824291"
+     inkscape:cy="4.6134315"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     showgrid="true"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4339"
+       originx="0"
+       originy="4.7215628e-006" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4" />
+  <path
+     style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 0.48255,3.01814 1.45877,7.6027 5.26267,9.60068 10.91803,9.54188 14.31389,8.01476 15.61012,2.57649 13.29934,1.08804 7.77006,0.55841 1.53076,1.55443 Z"
+     id="path4476"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccccc" />
+  <g
+     id="layer3"
+     inkscape:label="Layout"
+     style="display:none;stroke:#757575;stroke-opacity:1"
+     transform="matrix(48.14969,0,0,48.14969,-571.71447,-509.00943)">
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4134"
+       width="10"
+       height="10"
+       x="1"
+       y="1" />
+    <rect
+       style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4136"
+       width="8"
+       height="8"
+       x="2"
+       y="2" />
+  </g>
+  <path
+     style="fill:#666666;fill-opacity:1;stroke:none;stroke-width:20;marker:none;enable-background:accumulate"
+     d="m 14.88429,7.00623 c -0.64534,1.12728 -3.48207,1.97593 -6.88472,1.97593 -3.40139,0 -6.238,-0.84752 -6.88472,-1.97418 -0.0513,0.12566 -0.0805,0.26054 -0.0805,0.40604 0,0.48497 0.3048872,0.9609667 0.6995372,1.2323167 0.39464,0.27135 0.9076,0.5174356 1.52581,0.6972156 1.2364,0.35957 2.89294,0.5892628 4.72289,0.5892628 1.82996,0 3.5358088,-0.2805511 4.7722088,-0.6401211 0.6182,-0.17978 1.183568,-0.39196 1.578218,-0.66331 0.39465,-0.27135 0.633266,-0.730394 0.633266,-1.215364 0,-0.146 [...]
+     id="path8348"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cscsscssssc" />
+  <path
+     style="fill:none;fill-opacity:1;stroke:#666666;stroke-width:0.85306829;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 0.46687279,2.61817 1.4507923,7.6779"
+     id="path8386"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cc" />
+  <path
+     sodipodi:nodetypes="cc"
+     inkscape:connector-curvature="0"
+     id="path8390"
+     d="M 15.54133,2.61817 14.61403,7.6779"
+     style="fill:none;fill-opacity:1;stroke:#666666;stroke-width:0.85306829;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  <path
+     style="fill:#1a1a1a;fill-opacity:1;stroke:#ffffff;stroke-width:0.05687122;stroke-opacity:1"
+     d="m 10.69543,7.77116 0,2.15731 c 0,0.23993 -0.30943,0.43309 -0.69379,0.43309 l -3.70298,0 c -0.38436,0 -0.69379,-0.19316 -0.69379,-0.43309 l 0,-2.15731 c 0.46851,-2.34615 5.10996,-2.01917 5.09056,0 z"
+     id="rect8396"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="csssscc" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 13.01518,0.93749 -0.50166,-0.0701 -0.99769,2.168 0.0185,0.0308 z M 9.95511,0.37049 9.55444,0.33409 9.40157,2.7714 9.45487,2.8023 Z m -6.75879,0.567 0.50166,-0.0701 0.99769,2.168 -0.0185,0.0308 z m 3.06007,-0.567 0.40067,-0.0364 0.15287,2.43731 -0.0533,0.0309 z"
+     style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3102628;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="path4477"
+     sodipodi:nodetypes="cccccccccccccccccccc" />
+  <path
+     id="path8448"
+     style="opacity:1;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.3102628;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 8.09677,2.74104 C 6.29251,2.76394 4.47399,2.9329 2.73892,3.43428 4.78623,3.93754 6.91541,4.03738 9.01873,3.97734 10.55258,3.91654 12.09656,3.76488 13.57485,3.34992 11.79351,2.88041 9.9364,2.73442 8.09677,2.74104 Z"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccc" />
+  <path
+     style="fill:#666666;fill-opacity:1;stroke:none;stroke-width:20;marker:none;enable-background:accumulate"
+     d="M 7.99918,0 C 5.89754,0 3.99615,0.23721 2.57618,0.63815 1.8662,0.83862 1.27701,1.0751 0.82377,1.37767 0.37053,1.68024 0,2.09657 0,2.63734 0,3.17812 0.37053,3.59445 0.82377,3.89702 1.27701,4.19959 1.8662,4.43773 2.57618,4.6382 c 1.41997,0.40094 3.32136,0.63815 5.423,0.63815 2.10165,0 4.00304,-0.23721 5.42301,-0.63815 0.70998,-0.20047 1.30086,-0.43861 1.7541,-0.74118 0.45324,-0.30257 0.82377,-0.7189 0.82377,-1.25968 0,-0.54077 -0.37053,-0.9571 -0.82377,-1.25967 C 14.72305,1.0751 14 [...]
+     id="path8399"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/sport/track.png b/images/presets/sport/track.png
deleted file mode 100644
index ed6d941..0000000
Binary files a/images/presets/sport/track.png and /dev/null differ
diff --git a/images/presets/sport/track.svg b/images/presets/sport/track.svg
new file mode 100644
index 0000000..68b84a9
--- /dev/null
+++ b/images/presets/sport/track.svg
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="track.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="9.1065878"
+     inkscape:cy="8.7107353"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#13cc00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="rect4147"
+       width="16"
+       height="16"
+       x="0"
+       y="1036.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#cc4300;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4145"
+       width="12"
+       height="5.0000644"
+       x="2"
+       y="1045.3622"
+       ry="2.5000322" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4149"
+       width="1"
+       height="2"
+       x="5"
+       y="1044.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4151"
+       width="1"
+       height="6"
+       x="5"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4153"
+       width="5"
+       height="3.0000174"
+       x="6"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4155"
+       width="1"
+       height="1"
+       x="6"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4157"
+       width="1"
+       height="1.0000174"
+       x="6"
+       y="1039.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4159"
+       width="1"
+       height="1"
+       x="7"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4161"
+       width="1"
+       height="1"
+       x="8"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4163"
+       width="1"
+       height="1"
+       x="8"
+       y="1039.3622"
+       ry="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4165"
+       width="1"
+       height="1"
+       x="9"
+       y="1038.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4167"
+       width="1"
+       height="1"
+       x="10"
+       y="1037.3622" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-render [...]
+       id="rect4169"
+       width="1"
+       height="1"
+       x="10"
+       y="1039.3622" />
+  </g>
+</svg>
diff --git a/images/presets/sport/volleyball.svg b/images/presets/sport/volleyball.svg
index 1a80f33..d7c3436 100644
--- a/images/presets/sport/volleyball.svg
+++ b/images/presets/sport/volleyball.svg
@@ -78,7 +78,7 @@
          style="stop-color:#002723;stop-opacity:1.0000000;" />
       <stop
          id="stop1883"
-         offset="1.0000000"
+         offset="0.98"
          style="stop-color:#000000;stop-opacity:0.49803922;" />
       <stop
          id="stop1881"
diff --git a/images/presets/transport/aerialway/magic_carpet.png b/images/presets/transport/aerialway/magic_carpet.png
deleted file mode 100644
index 0f2f8aa..0000000
Binary files a/images/presets/transport/aerialway/magic_carpet.png and /dev/null differ
diff --git a/images/presets/transport/aerialway/magic_carpet.svg b/images/presets/transport/aerialway/magic_carpet.svg
new file mode 100644
index 0000000..3bf5803
--- /dev/null
+++ b/images/presets/transport/aerialway/magic_carpet.svg
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="magic_carpet.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="1.3656622"
+     inkscape:cy="7.3365181"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4147"
+       originx="0"
+       originy="-2.9999632" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1033.3623)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.39170599;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M -1.324965,1048.2043 18.21529,1031.2968"
+       id="path4221"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223"
+       cx="2.5"
+       cy="1044.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-2"
+       cx="5.5"
+       cy="1041.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-1"
+       cx="11.5"
+       cy="1035.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-6"
+       cx="10.5"
+       cy="1039.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-7"
+       cx="7.5"
+       cy="1038.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0"
+       cx="6.5"
+       cy="1043.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-14"
+       cx="-0.5"
+       cy="1045.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-09"
+       cx="2.5"
+       cy="1047.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-8"
+       cx="15.5"
+       cy="1035.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-5"
+       cx="8.5"
+       cy="1041.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-1"
+       cx="2.5"
+       cy="1042.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-4"
+       cx="4.5"
+       cy="1045.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-12"
+       cx="0.5"
+       cy="1047.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-43"
+       cx="6.5"
+       cy="1040.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-7"
+       cx="9.5"
+       cy="1037.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-79"
+       cx="12.5"
+       cy="1037.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-435"
+       cx="12.5"
+       cy="1033.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-9"
+       cx="14.5"
+       cy="1033.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-3"
+       cx="13.5"
+       cy="1035.8623"
+       r="0.5" />
+    <circle
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="path4223-0-18"
+       cx="4.5"
+       cy="1040.8623"
+       r="0.5" />
+  </g>
+</svg>
diff --git a/images/presets/transport/airport/parking_position.png b/images/presets/transport/airport/parking_position.png
deleted file mode 100644
index 95f6944..0000000
Binary files a/images/presets/transport/airport/parking_position.png and /dev/null differ
diff --git a/images/presets/transport/airport/parking_position.svg b/images/presets/transport/airport/parking_position.svg
new file mode 100644
index 0000000..6c194bc
--- /dev/null
+++ b/images/presets/transport/airport/parking_position.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="15"
+   height="15"
+   viewBox="0 0 15 15"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="parking_position.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="44.8"
+     inkscape:cx="2.7871766"
+     inkscape:cy="8.2352363"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4147"
+       originx="0"
+       originy="-1.7382813e-005" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1037.3622)">
+    <rect
+       style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4153"
+       width="15"
+       height="15"
+       x="0"
+       y="1037.3622" />
+    <rect
+       style="opacity:1;fill:#ffde00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4149"
+       width="2.9999993"
+       height="8.9997768"
+       x="6"
+       y="1041.3622" />
+    <rect
+       style="opacity:1;fill:#ffde00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4151"
+       width="11"
+       height="2"
+       x="2"
+       y="1040.3622" />
+  </g>
+</svg>
diff --git a/images/presets/transport/airport/runway.png b/images/presets/transport/airport/runway.png
deleted file mode 100644
index 0a233dc..0000000
Binary files a/images/presets/transport/airport/runway.png and /dev/null differ
diff --git a/images/presets/transport/airport/runway.svg b/images/presets/transport/airport/runway.svg
new file mode 100644
index 0000000..97b36ac
--- /dev/null
+++ b/images/presets/transport/airport/runway.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="9"
+   viewBox="0 0 16 9"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="runway.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-6.7090936"
+     inkscape:cy="5.9735353"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4147"
+       originx="0"
+       originy="-2.9999632" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3623)">
+    <rect
+       style="opacity:1;fill:#999999;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4179"
+       width="16"
+       height="9.0000715"
+       x="0"
+       y="1040.3622"
+       ry="0" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4181"
+       width="2"
+       height="1.0000348"
+       x="12"
+       y="1044.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4183"
+       width="2"
+       height="1"
+       x="0"
+       y="1048.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4185"
+       width="2"
+       height="1"
+       x="0"
+       y="1046.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4187"
+       width="2"
+       height="1"
+       x="0"
+       y="1044.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4189"
+       width="2"
+       height="1"
+       x="0"
+       y="1042.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4191"
+       width="2"
+       height="1"
+       x="0"
+       y="1040.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4193"
+       width="2"
+       height="1"
+       x="4"
+       y="1044.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4195"
+       width="2"
+       height="1"
+       x="8"
+       y="1044.3622" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4197"
+       width="1"
+       height="1"
+       x="15"
+       y="1044.3622" />
+  </g>
+</svg>
diff --git a/images/presets/transport/airport/taxiway.png b/images/presets/transport/airport/taxiway.png
deleted file mode 100644
index c7bb38b..0000000
Binary files a/images/presets/transport/airport/taxiway.png and /dev/null differ
diff --git a/images/presets/transport/airport/taxiway.svg b/images/presets/transport/airport/taxiway.svg
new file mode 100644
index 0000000..a2fedd8
--- /dev/null
+++ b/images/presets/transport/airport/taxiway.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="9"
+   viewBox="0 0 16 9"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="taxiway.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-6.7090936"
+     inkscape:cy="5.9735353"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4147"
+       originx="0"
+       originy="-2.9999632" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3623)">
+    <rect
+       style="opacity:1;fill:#999999;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4179"
+       width="16"
+       height="9.0000715"
+       x="0"
+       y="1040.3622"
+       ry="0" />
+    <rect
+       style="opacity:1;fill:#ffde00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
+       id="rect4187"
+       width="16"
+       height="1.0000806"
+       x="0"
+       y="1044.3622" />
+  </g>
+</svg>
diff --git a/images/presets/transport/bus_small.png b/images/presets/transport/bus_small.png
deleted file mode 100644
index d2674eb..0000000
Binary files a/images/presets/transport/bus_small.png and /dev/null differ
diff --git a/images/presets/transport/bus_small.svg b/images/presets/transport/bus_small.svg
new file mode 100644
index 0000000..a52dcec
--- /dev/null
+++ b/images/presets/transport/bus_small.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="10"
+   height="12"
+   viewBox="0 0 10 12"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bus_small2.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="23.6"
+     inkscape:cx="-3.2150638"
+     inkscape:cy="8.5198152"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4135"
+       originx="-3"
+       originy="-2" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata9">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs7" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#344fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering [...]
+     id="rect4136"
+     width="10"
+     height="12"
+     x="0"
+     y="0"
+     ry="0" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering [...]
+     id="rect4137"
+     width="6"
+     height="7"
+     x="2"
+     y="2" />
+  <path
+     d="m 2,1 -1,1 0,8 0.65625,0 c 0,0 0.1011489,1 0.81275,1 0.6891295,0 0.781,-1 0.781,-1 l 3.5,0 c 0,0 0.1143421,1 0.781,1 0.816469,0 0.81275,-1 0.81275,-1 L 9,10 9,2 8,1 Z M 3,2 7,2 7,3 3,3 Z M 2,4 8,4 8,7 2,7 Z M 2,8 3,8 3,9 2,9 Z M 7,8 8,8 8,9 7,9 Z"
+     id="bus-stop"
+     style="fill:#000000;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/images/presets/transport/platform_bus.png b/images/presets/transport/platform_bus.png
deleted file mode 100644
index b52ab2b..0000000
Binary files a/images/presets/transport/platform_bus.png and /dev/null differ
diff --git a/images/presets/transport/platform_bus.svg b/images/presets/transport/platform_bus.svg
new file mode 100644
index 0000000..73bb9a8
--- /dev/null
+++ b/images/presets/transport/platform_bus.svg
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="16"
+   id="svg2103"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="platform_bus3.svg"
+   sodipodi:version="0.32"
+   width="16"
+   version="1.1">
+  <metadata
+     id="metadata3">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:title></dc:title>
+        <dc:description>EPS converted from  http://aiga.org</dc:description>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>symbol</rdf:li>
+            <rdf:li>mapsym</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://www.openclipart.org/">
+            <dc:title>Open Clip Art Library</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jean-Victor Balin</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>Jean-Victor Balin</dc:title>
+          </cc:Agent>
+        </dc:rights>
+        <dc:date />
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     bordercolor="#666666"
+     borderopacity="1.0"
+     id="base"
+     inkscape:current-layer="svg2103"
+     inkscape:cx="8.4220206"
+     inkscape:cy="9.8169408"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:zoom="27.786135"
+     pagecolor="#ffffff"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4161"
+       originx="20"
+       originy="20" />
+  </sodipodi:namedview>
+  <defs
+     id="defs2105">
+    <marker
+       id="ArrowEnd"
+       markerHeight="3"
+       markerUnits="strokeWidth"
+       markerWidth="4"
+       orient="auto"
+       refX="0"
+       refY="5"
+       viewBox="0 0 10 10">
+      <path
+         d="M 0,0 10,5 0,10 Z"
+         id="path2108"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       id="ArrowStart"
+       markerHeight="3"
+       markerUnits="strokeWidth"
+       markerWidth="4"
+       orient="auto"
+       refX="10"
+       refY="5"
+       viewBox="0 0 10 10">
+      <path
+         d="M 10,0 0,5 10,10 Z"
+         id="path2111"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:#000000;stroke:none"
+     id="path2115"
+     d="m 11.549987,4.2299936 c -1.014307,0 -2.4151114,0.311845 -2.9947441,0.5717158 C 7.9756102,5.0615802 7.5891883,5.321451 7.4684441,5.9711144 l -0.4346993,3.6016169 0,4.9627597 0.7486545,0 0,0.778257 c 0,0.948928 1.2905419,0.948928 1.2905419,0 l 0,-0.778257 2.3825568,0 0.0076,0 2.477045,0 0,0.778257 c 0,0.948928 1.290542,0.948928 1.290542,0 l 0,-0.778257 0.748655,0 0,-4.9627597 -0.4347,-3.6016169 C 15.423855,5.321451 15.037433,5.0615802 14.457801,4.8017094 13.878168,4.5418386 12.4773 [...]
+  <g
+     id="g2119"
+     style="fill:#ffffff"
+     transform="matrix(0.02519704,0,0,0.02711224,7.0337448,4.2299936)">
+    <g
+       id="g2121"
+       style="fill:#ffffff">
+      <path
+         d="m 296.8254,328.69639 c 13.568,0 24.568,-10.25901 24.568,-22.91073 0,-12.65172 -11,-22.91073 -24.568,-22.91073 -13.568,0 -24.569,10.25901 -24.569,22.91073 0,12.65172 11.001,22.91073 24.569,22.91073 z"
+         id="path2123"
+         style="fill:#ffffff;stroke:none"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 299.682,298.153"
+         id="path2125"
+         style="fill:#ffffff;stroke:none"
+         inkscape:connector-curvature="0" />
+    </g>
+    <g
+       id="g2127"
+       style="fill:#ffffff">
+      <path
+         d="m 58.912774,326.70524 c -13.568,0 -24.568,-9.96181 -24.568,-22.24703 0,-12.28521 11,-22.24702 24.568,-22.24702 13.568,0 24.569,9.96181 24.569,22.24702 0,12.28522 -11.001,22.24703 -24.569,22.24703 z"
+         id="path2129"
+         style="fill:#ffffff;stroke:none"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 55.342,298.153"
+         id="path2131"
+         style="fill:#ffffff;stroke:none"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+  <path
+     d="m 11.458647,5.7242305 -1.7924162,0 c -0.3622831,0 -0.3622831,-0.5847026 0,-0.5847026 l 1.7968262,0 1.883756,0 c 0.362283,0 0.362283,0.5847026 0,0.5847026 l -1.888166,0 z"
+     id="path2133"
+     style="fill:#ffffff;stroke:none"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 11.458647,6.3145724 -2.7690787,0 c -0.3826927,0 -0.4826745,0.2092252 -0.5291379,0.526601 L 7.8220846,9.4533835 C 7.7905379,9.7037651 7.8578392,9.952303 8.1793282,9.952303 l 3.2837288,0 3.370658,0 c 0.321489,0 0.388791,-0.2485379 0.357244,-0.4989195 L 14.852613,6.8411734 C 14.80615,6.5237976 14.706168,6.3145724 14.323475,6.3145724 l -2.864828,0 z"
+     id="path2135"
+     style="fill:#ffffff;stroke:none"
+     inkscape:connector-curvature="0" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rende [...]
+     id="rect4185"
+     width="5"
+     height="2"
+     x="0"
+     y="14" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rende [...]
+     id="rect4187"
+     width="7"
+     height="1"
+     x="0"
+     y="13" />
+</svg>
diff --git a/images/presets/transport/platform_rail.png b/images/presets/transport/platform_rail.png
deleted file mode 100644
index 2dfe687..0000000
Binary files a/images/presets/transport/platform_rail.png and /dev/null differ
diff --git a/images/presets/transport/platform_rail.svg b/images/presets/transport/platform_rail.svg
new file mode 100644
index 0000000..c6dfa45
--- /dev/null
+++ b/images/presets/transport/platform_rail.svg
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="16"
+   id="svg2217"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="platform_rail.svg"
+   sodipodi:version="0.32"
+   width="16"
+   version="1.1">
+  <metadata
+     id="metadata3">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:title></dc:title>
+        <dc:description>EPS converted from  http://aiga.org</dc:description>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>symbol</rdf:li>
+            <rdf:li>mapsym</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://www.openclipart.org/">
+            <dc:title>Open Clip Art Library</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jean-Victor Balin</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>Jean-Victor Balin</dc:title>
+          </cc:Agent>
+        </dc:rights>
+        <dc:date />
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     bordercolor="#666666"
+     borderopacity="1.0"
+     id="base"
+     inkscape:current-layer="svg2217"
+     inkscape:cx="16.42155"
+     inkscape:cy="6.5826012"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:zoom="45.254834"
+     pagecolor="#ffffff"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4158"
+       originx="18.426456"
+       originy="21.881379" />
+  </sodipodi:namedview>
+  <defs
+     id="defs2219">
+    <marker
+       id="ArrowEnd"
+       markerHeight="3"
+       markerUnits="strokeWidth"
+       markerWidth="4"
+       orient="auto"
+       refX="0"
+       refY="5"
+       viewBox="0 0 10 10">
+      <path
+         d="M 0,0 10,5 0,10 Z"
+         id="path2222"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       id="ArrowStart"
+       markerHeight="3"
+       markerUnits="strokeWidth"
+       markerWidth="4"
+       orient="auto"
+       refX="10"
+       refY="5"
+       viewBox="0 0 10 10">
+      <path
+         d="M 10,0 0,5 10,10 Z"
+         id="path2225"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <g
+     id="g4212"
+     transform="matrix(0.02327946,0,0,0.02714015,7.3460535,2.6849245)">
+    <g
+       id="g4200">
+      <g
+         id="g4189">
+        <g
+           id="g4179">
+          <path
+             inkscape:connector-curvature="0"
+             style="fill:#000000;stroke:none"
+             id="path2229"
+             d="m 196.05775,418.2374 0.0671,0 75.60036,0 55.22791,72.367 44.54661,0 -77.21144,-103.518 c 25.7461,-3.708 51.37472,-27.708 51.37472,-56.958 l 0,-213.858 c 0,-30.192005 -28.41782,-57.906005 -67.02466,-57.906005 l -82.26624,-0.048 0.003,0 -82.89836,0.048 c -38.606847,0 -67.024669,27.714 -67.024669,57.905995 l 0,213.858 c 0,29.25 25.628624,53.25 51.374724,56.958 l -77.211447,103.518 44.546615,0 55.227907,-72.367 75.60036,0 0.0671,0 z" />
+          <g
+             id="g2231"
+             transform="matrix(1.1188119,0,0,1,20.615738,18.940395)">
+            <path
+               inkscape:connector-curvature="0"
+               style="fill:#000000;stroke:none"
+               id="path2233"
+               d="m 134.768,33.184 c -9.165,0 -16.591,-7.428 -16.591,-16.593 0,-9.163 7.426,-16.591 16.591,-16.591 9.163,0 16.591,7.428 16.591,16.591 0,9.165 -7.428,16.593 -16.591,16.593 z" />
+            <path
+               inkscape:connector-curvature="0"
+               style="fill:#000000;stroke:none"
+               id="path2235"
+               d="m 178.854,33.184 c 9.165,0 16.591,-7.428 16.591,-16.593 C 195.445,7.428 188.019,0 178.854,0 c -9.163,0 -16.591,7.428 -16.591,16.591 0,9.165 7.428,16.593 16.591,16.593 z" />
+            <path
+               inkscape:connector-curvature="0"
+               style="fill:#ffffff;stroke:none"
+               id="path2237"
+               d="m 231.263,336.951 c 14.505,0 26.263,-11.759 26.263,-26.263 0,-14.505 -11.758,-26.263 -26.263,-26.263 -14.505,0 -26.263,11.758 -26.263,26.263 0,14.504 11.758,26.263 26.263,26.263 z" />
+            <path
+               inkscape:connector-curvature="0"
+               style="fill:#ffffff;stroke:none"
+               id="path2239"
+               d="m 156.811,198.014 0.06,0 71.751,0 c 16.5,0 30,-11.326 29.848,-29.826 l 0,-38.5 c 0,-16 -10.348,-29.962 -29.848,-29.962 l -71.751,0 -0.12,0 -71.751,0 c -19.5,0 -29.848,13.962 -29.848,29.962 l 0,38.5 C 55,186.688 68.5,198.014 85,198.014 l 71.751,0 0.06,0 z" />
+            <path
+               inkscape:connector-curvature="0"
+               style="fill:#ffffff;stroke:none"
+               id="path2241"
+               d="m 156.811,88.201 0.06,0 29.001,0 c 5.5,0 9.816,-4.513 9.816,-9.763 l 0,-17 c 0,-5.25 -4.566,-9.66 -9.816,-9.66 l -29.001,0 -0.06,0 -0.06,0 -29.001,0 c -5.25,0 -9.816,4.41 -9.816,9.66 l 0,17 c 0,5.25 4.316,9.763 9.816,9.763 l 29.001,0 0.06,0 z" />
+            <path
+               inkscape:connector-curvature="0"
+               style="fill:#ffffff;stroke:none"
+               id="path2243"
+               d="m 81.75,336.951 c -14.505,0 -26.263,-11.759 -26.263,-26.263 0,-14.505 11.758,-26.263 26.263,-26.263 14.505,0 26.263,11.758 26.263,26.263 0,14.504 -11.758,26.263 -26.263,26.263 z" />
+          </g>
+        </g>
+      </g>
+    </g>
+  </g>
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rende [...]
+     id="rect4185"
+     width="6"
+     height="2"
+     x="-3.1658161e-009"
+     y="14" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rende [...]
+     id="rect4187"
+     width="8"
+     height="1"
+     x="-3.1658161e-009"
+     y="13" />
+</svg>
diff --git a/images/presets/transport/railway_halt.svg b/images/presets/transport/railway_halt.svg
new file mode 100644
index 0000000..03e1435
--- /dev/null
+++ b/images/presets/transport/railway_halt.svg
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+   ***************************************************************************
+   Bundesanstalt fuer Strassenwesen
+   RWB-Symbol
+   Bezeichnung:
+   Bahnhof
+   Ausdehnung in cm:
+         X_min     X_max     Y_min     Y_max
+         0.00000  15.00000   0.00000  15.00000
+-->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   version="1.1"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="station3.svg">
+  <path
+     d="M 0,16 16,16 16,0 0,0 0,16 Z"
+     id="path4"
+     style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:0.25"
+     inkscape:connector-curvature="0" />
+  <metadata
+     id="metadata26">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs24" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview22"
+     showgrid="true"
+     inkscape:zoom="45.254834"
+     inkscape:cx="8.6012633"
+     inkscape:cy="5.9623606"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4151" />
+  </sodipodi:namedview>
+  <!--
+   ***************************************************************************
+-->
+  <!--
+      INHALT
+      Dach
+-->
+  <!--
+      ****       GLEIS     ******
+-->
+  <!--
+      ****      LOKOMOTIVE   ****
+-->
+  <!--
+      ****   SCHEINWERFER  ****
+-->
+  <!--
+      ****   FRONTSCHEIBE  ****
+-->
+  <!--
+      *****  INLAY STROMABNEHMER ****
+-->
+  <g
+     id="g4142"
+     transform="matrix(1.0308709,0,0,1.0490975,-0.9384079,-1.0939817)">
+    <path
+       style="fill:#000000;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0"
+       id="path8"
+       d="m 1.866667,15.36 0,-0.74667 1.013333,0 0,-0.53333 1.493333,0 0,0.53333 3.093334,0 0,-0.53333 1.493333,0 0,0.53333 1.813333,0 0,-2.142652 4.693334,0 0,2.889322 z"
+       sodipodi:nodetypes="ccccccccccccccc" />
+    <path
+       style="fill:#000000;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0"
+       id="path10"
+       d="M 3.36,13.81333 A 1.4933333,1.4933333 0 0 1 1.866795,12.30045 L 1.899715,9.78541 A 2.1333333,2.1333333 0 0 1 1.931945,9.44288 L 2.063603,8.69622 A 2.1333333,2.1333333 0 0 1 2.186534,8.26751 L 2.932849,6.42032 A 0.8,0.8 0 0 1 3.160366,6.10716 l 1e-6,10e-6 C 3.487211,5.83291 4.32,5.49333 5.644587,5.43299 l 5e-6,0 A 1.401056,1.401056 0 0 0 4.555639,4.41404 l -0.673527,0 A 0.15284267,0.15284267 0 0 1 3.749746,4.18477 0.15284267,0.15284267 0 0 1 3.882112,4.10837 l 4.075776,0 a 0.152 [...]
+    <path
+       style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0"
+       id="path12"
+       d="m 3.893333,12.26667 a 0.50666667,0.50666667 0 0 0 -0.76,-0.43879 0.50666667,0.50666667 0 0 0 0,0.87757 0.50666667,0.50666667 0 0 0 0.76,-0.43878 z" />
+    <path
+       style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0"
+       id="path14"
+       d="m 8.96,12.26667 a 0.50666667,0.50666667 0 0 0 -0.76,-0.43879 0.50666667,0.50666667 0 0 0 0,0.87757 0.50666667,0.50666667 0 0 0 0.76,-0.43878 z" />
+    <path
+       style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0"
+       id="path16"
+       d="m 6.426667,10.34667 a 0.50666667,0.50666667 0 0 0 -0.76,-0.43879 0.50666667,0.50666667 0 0 0 0,0.87757 0.50666667,0.50666667 0 0 0 0.76,-0.43878 z" />
+    <path
+       style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0"
+       id="path18"
+       d="M 4.266667,8.5919 3.121223,8.69212 A 0.32,0.32 0 0 1 2.796634,8.25346 L 3.278701,7.06031 A 0.8,0.8 0 0 1 3.695059,6.62916 l 2e-6,0 C 4.084843,6.45563 4.96,6.24 5.92,6.24 c 0.96,0 1.835157,0.21563 2.224939,0.38916 l 2e-6,0 A 0.8,0.8 0 0 1 8.561299,7.06031 L 9.043366,8.25346 A 0.32,0.32 0 0 1 8.718777,8.69212 L 7.573333,8.5919 C 7.148288,8.5547 6.453333,8.5333 5.92,8.5333 c -0.533333,0 -1.228288,0.0214 -1.653333,0.0586 z" />
+    <path
+       style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+       inkscape:connector-curvature="0"
+       id="path20"
+       d="m 5.3,4.41404 1.239999,0 A 1.7067413,1.7067413 0 0 0 5.919994,5.28462 l 1.1e-5,0 A 1.7067413,1.7067413 0 0 0 5.300001,4.41404 Z" />
+  </g>
+</svg>
diff --git a/images/presets/transport/railway_small.png b/images/presets/transport/railway_small.png
deleted file mode 100644
index 5a5efff..0000000
Binary files a/images/presets/transport/railway_small.png and /dev/null differ
diff --git a/images/presets/transport/station.png b/images/presets/transport/station.png
deleted file mode 100644
index f266594..0000000
Binary files a/images/presets/transport/station.png and /dev/null differ
diff --git a/images/presets/transport/station16.png b/images/presets/transport/station16.png
deleted file mode 100644
index 4fe1678..0000000
Binary files a/images/presets/transport/station16.png and /dev/null differ
diff --git a/images/presets/transport/stop_position.svg b/images/presets/transport/stop_position.svg
new file mode 100644
index 0000000..e0d5597
--- /dev/null
+++ b/images/presets/transport/stop_position.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="10"
+   height="10"
+   viewBox="0 0 10 10"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="stop_position2.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.4"
+     inkscape:cx="-14.653692"
+     inkscape:cy="4.1274819"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="-2.9999997"
+       originy="-3.0000175" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-2.9999996,-1039.3622)">
+    <ellipse
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.336766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;sha [...]
+       id="path4145"
+       cx="8"
+       cy="1044.3622"
+       rx="4.3316174"
+       ry="4.3316169" />
+  </g>
+</svg>
diff --git a/images/presets/transport/taxi.svg b/images/presets/transport/taxi.svg
index d2f63c4..5a05ca3 100644
--- a/images/presets/transport/taxi.svg
+++ b/images/presets/transport/taxi.svg
@@ -10,9 +10,9 @@
    height="16"
    id="svg2060"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="taxi4.svg"
+   sodipodi:docname="taxi2.svg"
    sodipodi:version="0.32"
-   width="13.752067"
+   width="14"
    inkscape:output_extension="org.inkscape.output.svg.inkscape"
    version="1.0">
   <metadata
@@ -68,17 +68,17 @@
      borderopacity="1.0"
      id="base"
      inkscape:current-layer="svg2060"
-     inkscape:cx="-0.13485797"
-     inkscape:cy="9.5157694"
+     inkscape:cx="7.282018"
+     inkscape:cy="6.2532427"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:window-height="988"
      inkscape:window-width="1680"
      inkscape:window-x="-8"
      inkscape:window-y="-8"
-     inkscape:zoom="19.647764"
+     inkscape:zoom="55.572269"
      pagecolor="#ffffff"
-     showgrid="false"
+     showgrid="true"
      fit-margin-top="0"
      fit-margin-left="0"
      fit-margin-right="0"
@@ -124,7 +124,7 @@
   <rect
      style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60000002;stroke-opacity:1"
      id="rect4167"
-     width="13.752067"
+     width="14"
      height="16"
      x="0"
      y="0" />
diff --git a/images/presets/transport/underground.png b/images/presets/transport/underground.png
deleted file mode 100644
index f869032..0000000
Binary files a/images/presets/transport/underground.png and /dev/null differ
diff --git a/images/presets/transport/underground.svg b/images/presets/transport/underground.svg
new file mode 100644
index 0000000..727884d
--- /dev/null
+++ b/images/presets/transport/underground.svg
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="16"
+   height="16"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="subway9.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs22">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 290 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="580 : 290 : 1"
+       inkscape:persp3d-origin="290 : 193.33333 : 1"
+       id="perspective24" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowStart">
+      <path
+         id="path3568"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="ArrowEnd">
+      <path
+         id="path3565"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2683"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2959">
+      <path
+         id="path2626"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker2956">
+      <path
+         id="path2623"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective2953"
+       inkscape:persp3d-origin="306.082 : 204.39034 : 1"
+       inkscape:vp_z="612.164 : 306.58551 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 306.58551 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="10"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3077">
+      <path
+         id="path3298"
+         d="M 10,0 0,5 10,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       viewBox="0 0 10 10"
+       refY="5"
+       refX="0"
+       orient="auto"
+       markerWidth="4"
+       markerUnits="strokeWidth"
+       markerHeight="3"
+       id="marker3074">
+      <path
+         id="path3295"
+         d="M 0,0 10,5 0,10 Z"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       id="perspective3071"
+       inkscape:persp3d-origin="180.936 : 163.92867 : 1"
+       inkscape:vp_z="361.87201 : 245.89301 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 245.89301 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3724"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7956"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8355"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:language>en</dc:language>
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="988"
+     inkscape:window-width="1680"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="true"
+     inkscape:zoom="64.000002"
+     inkscape:cx="3.7855051"
+     inkscape:cy="13.006906"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:current-layer="svg2"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4249" />
+  </sodipodi:namedview>
+  <path
+     inkscape:connector-curvature="0"
+     id="path1329"
+     style="fill:#3274d7;stroke:none;stroke-width:3.40799999;fill-opacity:1"
+     d="M 1.792253,0.00176061 C 0.64495383,0.00176061 0,0.59391061 0,1.8037806 L 0,14.275761 c 0,1.13171 0.57994055,1.72424 1.726228,1.72424 l 12.546522,0 c 1.146528,0 1.72725,-0.56291 1.72725,-1.72424 L 16,1.8037806 c 0,-1.18038999 -0.580722,-1.80201999 -1.763142,-1.80201999 -8e-5,0 -12.4485419,-0.004 -12.444605,0 z" />
+  <g
+     id="g2319"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2323"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g2325"
+     transform="translate(879.29125,-527.19488)">
+    <path
+       id="path2329"
+       style="fill:#ffffff;stroke:none"
+       d=""
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g4264"
+     transform="translate(5.9999998,1.9999615)">
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path8372"
+       d="m 2.478544,11.578874 0,-8.0822 5.0753842,0 0,8.0822"
+       style="fill:none;stroke:#ffffff;stroke-width:1.03557968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <rect
+       y="4.0554256"
+       x="2.8336146"
+       height="7.4207835"
+       width="4.292532"
+       id="rect8376"
+       style="opacity:0.2;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.10825205;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+  </g>
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#ffffff;stroke-width:1.23199999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 1.3929143,3.6254839 5.4931664,6.6274836 5.4809446,3.6150613"
+     id="path8395"
+     sodipodi:nodetypes="ccc" />
+  <path
+     inkscape:connector-curvature="0"
+     id="path8397"
+     d="M 1.3845781,3.5614666 5.4145178,6.6728413 2.4285614,7.6026197"
+     style="fill:none;stroke:#ffffff;stroke-width:1.23199999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="ccc" />
+</svg>
diff --git a/images/presets/vehicle/charging_station.png b/images/presets/vehicle/charging_station.png
deleted file mode 100644
index eba4caf..0000000
Binary files a/images/presets/vehicle/charging_station.png and /dev/null differ
diff --git a/images/presets/vehicle/charging_station.svg b/images/presets/vehicle/charging_station.svg
new file mode 100644
index 0000000..0b1e19e
--- /dev/null
+++ b/images/presets/vehicle/charging_station.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="16"
+   height="15"
+   viewBox="0 0 16 15"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="charging_station.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview6"
+     showgrid="true"
+     inkscape:zoom="41.7193"
+     inkscape:cx="5.8382121"
+     inkscape:cy="8.2184314"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4134" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <rect
+     style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rende [...]
+     id="rect4136"
+     width="5"
+     height="8"
+     x="2.0000002"
+     y="2.999999"
+     ry="0" />
+  <path
+     d="M 3.2,1 C 2.0344723,1 1,1.9950215 1,3.1995 L 1,14 8,14 8,6.125 C 8,6.125 8.875,6 8.875,7 l 0,4 c 0,2 1.864698,2.125 2.125,2.125 0.275652,0 2.125,-0.124975 2.125,-2.125 l 0,-4 c 0,0 1.687558,0.017377 1.675,-2.96875 l -0.85,0 0,-1.799625 C 13.95,1.6644667 13,1.6678829 13,2.200375 L 13,4 12,4 12,2.200375 c 0,-0.5461843 -0.95,-0.5451872 -0.95,0 L 11.05,4 10.2,4 c 0.01252,2.9863904 1.675,3 1.675,3 l 0,4 c 0,0.874159 -0.767136,0.875 -0.875,0.875 -0.107864,0 -0.875,-0.04279 -0.875,-0.87 [...]
+     id="charging-station"
+     style="fill:#008000;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="sscccsssscccssccsscccsssscsssccccccccc" />
+</svg>
diff --git a/images/presets/vehicle/restriction/turn_restrictions/no_left_turn_red.png b/images/presets/vehicle/restriction/turn_restrictions/no_left_turn_red.png
deleted file mode 100644
index b3f10b4..0000000
Binary files a/images/presets/vehicle/restriction/turn_restrictions/no_left_turn_red.png and /dev/null differ
diff --git a/images/presets/vehicle/restriction/turn_restrictions/no_left_turn_red.svg b/images/presets/vehicle/restriction/turn_restrictions/no_left_turn_red.svg
new file mode 100644
index 0000000..8437f0b
--- /dev/null
+++ b/images/presets/vehicle/restriction/turn_restrictions/no_left_turn_red.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="945.59998"
+   height="945.59998"
+   id="svg2"
+   xml:space="preserve"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="05.svg"
+   inkscape:export-filename="D:\Stefan\OSM\TestNew\05b.png"
+   inkscape:export-xdpi="3.0599999"
+   inkscape:export-ydpi="3.0599999"><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview28"
+     showgrid="false"
+     fit-margin-top="2.8"
+     fit-margin-left="2.8"
+     fit-margin-right="2.8"
+     fit-margin-bottom="2.8"
+     inkscape:zoom="0.48162828"
+     inkscape:cx="582.04249"
+     inkscape:cy="291.61426"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" /><metadata
+     id="metadata8"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs6" /><path
+     id="path14622"
+     d="m 942.8,472.8 c 0,-259.5738 -210.42618,-470 -470,-470 -259.5739,0 -470,210.4262 -470,470 0,259.5739 210.4261,470 470,470 259.57382,0 470,-210.4261 470,-470 z"
+     style="fill:#c50000;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" /><path
+     id="path15520"
+     d="m 106.8,472.8 c 0,-202.1362 163.8638,-366 366,-366 202.13621,0 366.00001,163.8638 366.00001,366 0,202.1362 -163.8638,366 -366.00001,366 -202.1362,0 -366,-163.8638 -366,-366 z"
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" /><path
+     sodipodi:nodetypes="ccccc"
+     inkscape:connector-curvature="0"
+     id="path3914"
+     d="m 121.0143,771.5526 53.033,53.033 650.53831,-650.5382 -53.033,-53.033 z"
+     style="fill:#c50000;fill-opacity:1;stroke:none" /><path
+     d="m 439.23834,204.28759 -108.74546,106.35929 112.61162,0.55608 c 139.01327,5.82455 173.51318,124.45698 178.82914,159.0014 l 0,276.14862 -76.79267,0 0,-264.76754 c 0,-12.80765 -11.61087,-82.73186 -97.98084,-97.27668 l -118.63824,0.29657 110.79225,108.36118 -95.40339,0 -147.40705,-144.20971 -0.37904,0 0.18952,-0.18536 -0.11365,-0.11115 0.22742,0 147.44495,-144.17264 95.36544,0 z"
+     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+     id="path1885"
+     inkscape:connector-curvature="0" /></svg>
\ No newline at end of file
diff --git a/images/presets/vehicle/restriction/turn_restrictions/no_right_turn_red.png b/images/presets/vehicle/restriction/turn_restrictions/no_right_turn_red.png
deleted file mode 100644
index 0d3f862..0000000
Binary files a/images/presets/vehicle/restriction/turn_restrictions/no_right_turn_red.png and /dev/null differ
diff --git a/images/presets/vehicle/restriction/turn_restrictions/no_right_turn_red.svg b/images/presets/vehicle/restriction/turn_restrictions/no_right_turn_red.svg
new file mode 100644
index 0000000..1fdea12
--- /dev/null
+++ b/images/presets/vehicle/restriction/turn_restrictions/no_right_turn_red.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="945.59998"
+   height="945.59998"
+   id="svg2"
+   xml:space="preserve"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="no_right_turn_red.svg"
+   inkscape:export-filename="D:\Stefan\OSM\TestNew\05b.png"
+   inkscape:export-xdpi="3.0599999"
+   inkscape:export-ydpi="3.0599999"><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview28"
+     showgrid="false"
+     fit-margin-top="2.8"
+     fit-margin-left="2.8"
+     fit-margin-right="2.8"
+     fit-margin-bottom="2.8"
+     inkscape:zoom="0.48162828"
+     inkscape:cx="228.03504"
+     inkscape:cy="289.53797"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" /><metadata
+     id="metadata8"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
+     id="defs6" /><path
+     id="path14622"
+     d="m 2.8,472.8 c 0,-259.5738 210.42618,-470 470,-470 259.5739,0 470,210.4262 470,470 0,259.5739 -210.4261,470 -470,470 -259.57382,0 -470,-210.4261 -470,-470 z"
+     style="fill:#c50000;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" /><path
+     id="path15520"
+     d="m 838.8,472.8 c 0,-202.1362 -163.8638,-366 -366,-366 -202.13621,0 -366.00001,163.8638 -366.00001,366 0,202.1362 163.8638,366 366.00001,366 202.1362,0 366,-163.8638 366,-366 z"
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" /><path
+     sodipodi:nodetypes="ccccc"
+     inkscape:connector-curvature="0"
+     id="path3914"
+     d="m 824.5857,771.5526 -53.033,53.033 -650.53831,-650.5382 53.033,-53.033 z"
+     style="fill:#c50000;fill-opacity:1;stroke:none" /><path
+     d="m 506.36166,204.28759 108.74546,106.35929 -112.61162,0.55608 c -139.01327,5.82455 -173.51318,124.45698 -178.82914,159.0014 l 0,276.14862 76.79267,0 0,-264.76754 c 0,-12.80765 11.61087,-82.73186 97.98084,-97.27668 l 118.63824,0.29657 -110.79225,108.36118 95.40339,0 147.40705,-144.20971 0.37904,0 -0.18952,-0.18536 0.11365,-0.11115 -0.22742,0 -147.44495,-144.17264 -95.36544,0 z"
+     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+     id="path1885"
+     inkscape:connector-curvature="0" /></svg>
\ No newline at end of file
diff --git a/images/presets/vehicle/restriction/turn_restrictions/no_straight_on_red.png b/images/presets/vehicle/restriction/turn_restrictions/no_straight_on_red.png
deleted file mode 100644
index 8c66af3..0000000
Binary files a/images/presets/vehicle/restriction/turn_restrictions/no_straight_on_red.png and /dev/null differ
diff --git a/images/presets/vehicle/restriction/turn_restrictions/no_straight_on_red.svg b/images/presets/vehicle/restriction/turn_restrictions/no_straight_on_red.svg
new file mode 100644
index 0000000..c7ec3b2
--- /dev/null
+++ b/images/presets/vehicle/restriction/turn_restrictions/no_straight_on_red.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="945.59998"
+   height="945.59998"
+   id="svg2"
+   xml:space="preserve"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="09.svg"
+   inkscape:export-filename="D:\Stefan\OSM\TestNew\06f.png"
+   inkscape:export-xdpi="3.0638299"
+   inkscape:export-ydpi="3.0638299"><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="988"
+     id="namedview28"
+     showgrid="false"
+     fit-margin-top="2.8"
+     fit-margin-left="2.8"
+     fit-margin-right="2.8"
+     fit-margin-bottom="2.8"
+     inkscape:zoom="0.68112525"
+     inkscape:cx="494.86123"
+     inkscape:cy="460.22583"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2"
+     showguides="true"
+     inkscape:guide-bbox="true" /><metadata
+     id="metadata8"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs6" /><path
+     id="path14622"
+     d="M 2.8,472.79998 C 2.8,213.22617 213.22618,2.8 472.8,2.8 c 259.5739,0 470,210.42617 470,469.99998 0,259.5739 -210.4261,470 -470,470 -259.57382,0 -470,-210.4261 -470,-470 z"
+     style="fill:#c50000;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" /><path
+     id="path15520"
+     d="m 838.8,472.79998 c 0,-202.13618 -163.8638,-365.99997 -366,-365.99997 -202.13621,0 -366.00001,163.86379 -366.00001,365.99997 0,202.1362 163.8638,366 366.00001,366 202.1362,0 366,-163.8638 366,-366 z"
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     inkscape:connector-curvature="0" /><path
+     sodipodi:nodetypes="ccccc"
+     inkscape:connector-curvature="0"
+     id="path3914"
+     d="m 824.5857,771.55258 -53.033,53.033 -650.53831,-650.5382 53.033,-53.033 z"
+     style="fill:#c50000;fill-opacity:1;stroke:none" /><path
+     style="fill:#000000"
+     inkscape:connector-curvature="0"
+     id="path10"
+     d="M 469.45662,144.70847 257.209,389.29898 l 0,112.346 167.42918,-195.36124 0,497.15472 87.27801,0 0,-497.15472 167.42881,195.36124 0,-112.346"
+     sodipodi:nodetypes="ccccccccc" /></svg>
\ No newline at end of file
diff --git a/josm-latest.jnlp b/josm-latest.jnlp
index c997ba6..737fd94 100644
--- a/josm-latest.jnlp
+++ b/josm-latest.jnlp
@@ -24,4 +24,4 @@
         <property name="java.util.Arrays.useLegacyMergeSort" value="true"/>
     </resources>
     <application-desc main-class="JOSM"/>
-</jnlp>
\ No newline at end of file
+</jnlp>
diff --git a/josm.jnlp b/josm.jnlp
index cda4ed0..f7239e8 100644
--- a/josm.jnlp
+++ b/josm.jnlp
@@ -24,4 +24,4 @@
         <property name="java.util.Arrays.useLegacyMergeSort" value="true"/>
     </resources>
     <application-desc main-class="JOSM"/>
-</jnlp>
\ No newline at end of file
+</jnlp>
diff --git a/optimize-images b/optimize-images
index b959f13..b55e5a2 100755
--- a/optimize-images
+++ b/optimize-images
@@ -1,6 +1,6 @@
 #!/bin/sh
 
 for x in $(find images/ -name "*.png"); do
-	echo "Processing ${x}"
-	optipng -o7 -quiet "${x}"
+    echo "Processing ${x}"
+    optipng -o7 -quiet "${x}"
 done
diff --git a/scripts/TagInfoExtract.groovy b/scripts/TagInfoExtract.groovy
index 810ecb3..190a915 100644
--- a/scripts/TagInfoExtract.groovy
+++ b/scripts/TagInfoExtract.groovy
@@ -31,7 +31,7 @@ import org.openstreetmap.josm.gui.mappaint.Environment
 import org.openstreetmap.josm.gui.mappaint.MultiCascade
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.IconReference
 import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.SimpleKeyValueCondition
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.SimpleKeyValueCondition
 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.GeneralSelector
 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser
 import org.openstreetmap.josm.gui.mappaint.styleelement.AreaElement
@@ -127,9 +127,8 @@ class TagInfoExtract {
             def c = env.mc.getCascade("default")
             def image = c.get("icon-image")
             if (image) {
-                if (image instanceof IconReference) {
-                    if (image.iconName != "misc/deprecated.png")
-                        return find_image_url(image.iconName)
+                if (image instanceof IconReference && !image.isDeprecatedIcon()) {
+                    return find_image_url(image.iconName)
                 }
             }
         }
@@ -370,7 +369,6 @@ class TagInfoExtract {
      * Initialize the script.
      */
     def init() {
-        Main.initApplicationPreferences()
         Main.determinePlatformHook()
         Main.pref.enableSaveOnPut(false)
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857"))
diff --git a/src/com/drew/imaging/ImageProcessingException.java b/src/com/drew/imaging/ImageProcessingException.java
index ebfa440..af03460 100755
--- a/src/com/drew/imaging/ImageProcessingException.java
+++ b/src/com/drew/imaging/ImageProcessingException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/imaging/PhotographicConversions.java b/src/com/drew/imaging/PhotographicConversions.java
index 913acac..07549da 100644
--- a/src/com/drew/imaging/PhotographicConversions.java
+++ b/src/com/drew/imaging/PhotographicConversions.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/imaging/jpeg/JpegMetadataReader.java b/src/com/drew/imaging/jpeg/JpegMetadataReader.java
index 31ee48a..220f05d 100644
--- a/src/com/drew/imaging/jpeg/JpegMetadataReader.java
+++ b/src/com/drew/imaging/jpeg/JpegMetadataReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -38,8 +38,10 @@ import com.drew.metadata.file.FileMetadataReader;
 //import com.drew.metadata.icc.IccReader;
 import com.drew.metadata.iptc.IptcReader;
 //import com.drew.metadata.jfif.JfifReader;
+//import com.drew.metadata.jfxx.JfxxReader;
 import com.drew.metadata.jpeg.JpegCommentReader;
 import com.drew.metadata.jpeg.JpegReader;
+//import com.drew.metadata.photoshop.DuckyReader;
 //import com.drew.metadata.photoshop.PhotoshopReader;
 //import com.drew.metadata.xmp.XmpReader;
 
@@ -54,10 +56,12 @@ public class JpegMetadataReader
             new JpegReader(),
             new JpegCommentReader(),
             //new JfifReader(),
+            //new JfxxReader(),
             new ExifReader(),
             //new XmpReader(),
             //new IccReader(),
             //new PhotoshopReader(),
+            //new DuckyReader(),
             new IptcReader()//,
             //new AdobeJpegReader()
     );
diff --git a/src/com/drew/imaging/jpeg/JpegProcessingException.java b/src/com/drew/imaging/jpeg/JpegProcessingException.java
index 78fd61a..e2009d6 100644
--- a/src/com/drew/imaging/jpeg/JpegProcessingException.java
+++ b/src/com/drew/imaging/jpeg/JpegProcessingException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/imaging/jpeg/JpegSegmentData.java b/src/com/drew/imaging/jpeg/JpegSegmentData.java
index 70695e5..0468073 100644
--- a/src/com/drew/imaging/jpeg/JpegSegmentData.java
+++ b/src/com/drew/imaging/jpeg/JpegSegmentData.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -51,7 +51,6 @@ public class JpegSegmentData
      * @param segmentType  the type of the segment being added
      * @param segmentBytes the byte array holding data for the segment being added
      */
-    @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
     public void addSegment(byte segmentType, @NotNull byte[] segmentBytes)
     {
         getOrCreateSegmentList(segmentType).add(segmentBytes);
@@ -206,7 +205,6 @@ public class JpegSegmentData
      * @param segmentType identifies the required segment
      * @param occurrence  the zero-based index of the segment occurrence to remove.
      */
-    @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
     public void removeSegmentOccurrence(@NotNull JpegSegmentType segmentType, int occurrence)
     {
         removeSegmentOccurrence(segmentType.byteValue, occurrence);
@@ -219,7 +217,6 @@ public class JpegSegmentData
      * @param segmentType identifies the required segment
      * @param occurrence  the zero-based index of the segment occurrence to remove.
      */
-    @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
     public void removeSegmentOccurrence(byte segmentType, int occurrence)
     {
         final List<byte[]> segmentList = _segmentDataMap.get(segmentType);
diff --git a/src/com/drew/imaging/jpeg/JpegSegmentReader.java b/src/com/drew/imaging/jpeg/JpegSegmentReader.java
index d8e6876..69402af 100644
--- a/src/com/drew/imaging/jpeg/JpegSegmentReader.java
+++ b/src/com/drew/imaging/jpeg/JpegSegmentReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -43,6 +43,11 @@ import java.util.Set;
 public class JpegSegmentReader
 {
     /**
+     * The 0xFF byte that signals the start of a segment.
+     */
+    private static final byte SEGMENT_IDENTIFIER = (byte) 0xFF;
+
+    /**
      * Private, because this segment crashes my algorithm, and searching for it doesn't work (yet).
      */
     private static final byte SEGMENT_SOS = (byte) 0xDA;
@@ -111,19 +116,14 @@ public class JpegSegmentReader
             // Find the segment marker. Markers are zero or more 0xFF bytes, followed
             // by a 0xFF and then a byte not equal to 0x00 or 0xFF.
 
-            final short segmentIdentifier = reader.getUInt8();
-
-            // We must have at least one 0xFF byte
-            if (segmentIdentifier != 0xFF)
-                throw new JpegProcessingException("Expected JPEG segment start identifier 0xFF, not 0x" + Integer.toHexString(segmentIdentifier).toUpperCase());
-
-            // Read until we have a non-0xFF byte. This identifies the segment type.
+            byte segmentIdentifier = reader.getInt8();
             byte segmentType = reader.getInt8();
-            while (segmentType == (byte)0xFF)
-                segmentType = reader.getInt8();
 
-            if (segmentType == 0)
-                throw new JpegProcessingException("Expected non-zero byte as part of JPEG marker identifier");
+            // Read until we have a 0xFF byte followed by a byte that is not 0xFF or 0x00
+            while (segmentIdentifier != SEGMENT_IDENTIFIER || segmentType == SEGMENT_IDENTIFIER || segmentType == 0) {
+            	segmentIdentifier = segmentType;
+            	segmentType = reader.getInt8();
+            }
 
             if (segmentType == SEGMENT_SOS) {
                 // The 'Start-Of-Scan' segment's length doesn't include the image data, instead would
diff --git a/src/com/drew/imaging/jpeg/JpegSegmentType.java b/src/com/drew/imaging/jpeg/JpegSegmentType.java
index d76414e..797fb01 100644
--- a/src/com/drew/imaging/jpeg/JpegSegmentType.java
+++ b/src/com/drew/imaging/jpeg/JpegSegmentType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -29,17 +29,22 @@ import java.util.List;
 /**
  * An enumeration of the known segment types found in JPEG files.
  *
+ * <ul>
+ *     <li>http://www.ozhiker.com/electronics/pjmt/jpeg_info/app_segments.html</li>
+ *     <li>http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/JPEG.html</li>
+ * </ul>
+ *
  * @author Drew Noakes https://drewnoakes.com
  */
 public enum JpegSegmentType
 {
-    /** APP0 JPEG segment identifier -- JFIF data (also JFXX apparently). */
+    /** APP0 JPEG segment identifier. Commonly contains JFIF, JFXX. */
     APP0((byte)0xE0, true),
 
-    /** APP1 JPEG segment identifier -- where Exif data is kept.  XMP data is also kept in here, though usually in a second instance. */
+    /** APP1 JPEG segment identifier. Commonly contains Exif. XMP data is also kept in here, though usually in a second instance. */
     APP1((byte)0xE1, true),
 
-    /** APP2 JPEG segment identifier. */
+    /** APP2 JPEG segment identifier. Commonly contains ICC. */
     APP2((byte)0xE2, true),
 
     /** APP3 JPEG segment identifier. */
@@ -63,7 +68,7 @@ public enum JpegSegmentType
     /** APP9 JPEG segment identifier. */
     APP9((byte)0xE9, true),
 
-    /** APPA (App10) JPEG segment identifier -- can hold Unicode comments. */
+    /** APPA (App10) JPEG segment identifier. Can contain Unicode comments, though {@link JpegSegmentType#COM} is more commonly used for comments. */
     APPA((byte)0xEA, true),
 
     /** APPB (App11) JPEG segment identifier. */
@@ -72,10 +77,10 @@ public enum JpegSegmentType
     /** APPC (App12) JPEG segment identifier. */
     APPC((byte)0xEC, true),
 
-    /** APPD (App13) JPEG segment identifier -- IPTC data in here. */
+    /** APPD (App13) JPEG segment identifier. Commonly contains IPTC, Photoshop data. */
     APPD((byte)0xED, true),
 
-    /** APPE (App14) JPEG segment identifier. */
+    /** APPE (App14) JPEG segment identifier. Commonly contains Adobe data. */
     APPE((byte)0xEE, true),
 
     /** APPF (App15) JPEG segment identifier. */
diff --git a/src/com/drew/imaging/jpeg/package.html b/src/com/drew/imaging/jpeg/package.html
index d65ff55..becfebb 100644
--- a/src/com/drew/imaging/jpeg/package.html
+++ b/src/com/drew/imaging/jpeg/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/imaging/package.html b/src/com/drew/imaging/package.html
index af33269..349a247 100644
--- a/src/com/drew/imaging/package.html
+++ b/src/com/drew/imaging/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/imaging/tiff/TiffDataFormat.java b/src/com/drew/imaging/tiff/TiffDataFormat.java
index 765cd71..dff2a5f 100644
--- a/src/com/drew/imaging/tiff/TiffDataFormat.java
+++ b/src/com/drew/imaging/tiff/TiffDataFormat.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/imaging/tiff/TiffHandler.java b/src/com/drew/imaging/tiff/TiffHandler.java
index 1e606a6..69382e7 100644
--- a/src/com/drew/imaging/tiff/TiffHandler.java
+++ b/src/com/drew/imaging/tiff/TiffHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@ package com.drew.imaging.tiff;
 import com.drew.lang.RandomAccessReader;
 import com.drew.lang.Rational;
 import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
 
 import java.io.IOException;
 import java.util.Set;
@@ -45,13 +46,16 @@ public interface TiffHandler
      */
     void setTiffMarker(int marker) throws TiffProcessingException;
 
-    boolean isTagIfdPointer(int tagType);
+    boolean tryEnterSubIfd(int tagId);
     boolean hasFollowerIfd();
 
     void endingIFD();
 
     void completed(@NotNull final RandomAccessReader reader, final int tiffHeaderOffset);
 
+    @Nullable
+    Long tryCustomProcessFormat(int tagId, int formatCode, long componentCount);
+
     boolean customProcessTag(int tagOffset,
                              @NotNull Set<Integer> processedIfdOffsets,
                              int tiffHeaderOffset,
diff --git a/src/com/drew/imaging/tiff/TiffProcessingException.java b/src/com/drew/imaging/tiff/TiffProcessingException.java
index 5d90c9c..5ad55a8 100644
--- a/src/com/drew/imaging/tiff/TiffProcessingException.java
+++ b/src/com/drew/imaging/tiff/TiffProcessingException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/imaging/tiff/TiffReader.java b/src/com/drew/imaging/tiff/TiffReader.java
index 497a64e..22fd1ae 100644
--- a/src/com/drew/imaging/tiff/TiffReader.java
+++ b/src/com/drew/imaging/tiff/TiffReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -109,6 +109,7 @@ public class TiffReader
                                   final int ifdOffset,
                                   final int tiffHeaderOffset) throws IOException
     {
+        Boolean resetByteOrder = null;
         try {
             // check for directories we've already visited to avoid stack overflows when recursive/cyclic directory structures exist
             if (processedIfdOffsets.contains(Integer.valueOf(ifdOffset))) {
@@ -126,6 +127,16 @@ public class TiffReader
             // First two bytes in the IFD are the number of tags in this directory
             int dirTagCount = reader.getUInt16(ifdOffset);
 
+            // Some software modifies the byte order of the file, but misses some IFDs (such as makernotes).
+            // The entire test image repository doesn't contain a single IFD with more than 255 entries.
+            // Here we detect switched bytes that suggest this problem, and temporarily swap the byte order.
+            // This was discussed in GitHub issue #136.
+            if (dirTagCount > 0xFF && (dirTagCount & 0xFF) == 0) {
+                resetByteOrder = reader.isMotorolaByteOrder();
+                dirTagCount >>= 8;
+                reader.setMotorolaByteOrder(!reader.isMotorolaByteOrder());
+            }
+
             int dirLength = (2 + (12 * dirTagCount) + 4);
             if (dirLength + ifdOffset > reader.getLength()) {
                 handler.error("Illegally sized IFD");
@@ -146,31 +157,32 @@ public class TiffReader
                 final int formatCode = reader.getUInt16(tagOffset + 2);
                 final TiffDataFormat format = TiffDataFormat.fromTiffFormatCode(formatCode);
 
+                // 4 bytes dictate the number of components in this tag's data
+                final long componentCount = reader.getUInt32(tagOffset + 4);
+
+                final long byteCount;
                 if (format == null) {
-                    // This error suggests that we are processing at an incorrect index and will generate
-                    // rubbish until we go out of bounds (which may be a while).  Exit now.
-                    handler.error("Invalid TIFF tag format code: " + formatCode);
-                    // TODO specify threshold as a parameter, or provide some other external control over this behaviour
-                    if (++invalidTiffFormatCodeCount > 5) {
-                        handler.error("Stopping processing as too many errors seen in TIFF IFD");
-                        return;
+                    Long byteCountOverride = handler.tryCustomProcessFormat(tagId, formatCode, componentCount);
+                    if (byteCountOverride == null) {
+                        // This error suggests that we are processing at an incorrect index and will generate
+                        // rubbish until we go out of bounds (which may be a while).  Exit now.
+                        handler.error(String.format("Invalid TIFF tag format code %d for tag 0x%04X", formatCode, tagId));
+                        // TODO specify threshold as a parameter, or provide some other external control over this behaviour
+                        if (++invalidTiffFormatCodeCount > 5) {
+                            handler.error("Stopping processing as too many errors seen in TIFF IFD");
+                            return;
+                        }
+                        continue;
                     }
-                    continue;
-                }
-
-                // 4 bytes dictate the number of components in this tag's data
-                final int componentCount = reader.getInt32(tagOffset + 4);
-                if (componentCount < 0) {
-                    handler.error("Negative TIFF tag component count");
-                    continue;
+                    byteCount = byteCountOverride;
+                } else {
+                    byteCount = componentCount * format.getComponentSizeBytes();
                 }
 
-                final int byteCount = componentCount * format.getComponentSizeBytes();
-
-                final int tagValueOffset;
+                final long tagValueOffset;
                 if (byteCount > 4) {
                     // If it's bigger than 4 bytes, the dir entry contains an offset.
-                    final int offsetVal = reader.getInt32(tagOffset + 8);
+                    final long offsetVal = reader.getUInt32(tagOffset + 8);
                     if (offsetVal + byteCount > reader.getLength()) {
                         // Bogus pointer offset and / or byteCount value
                         handler.error("Illegal TIFF tag pointer offset");
@@ -194,17 +206,23 @@ public class TiffReader
                     continue;
                 }
 
-                //
-                // Special handling for tags that point to other IFDs
-                //
-                if (byteCount == 4 && handler.isTagIfdPointer(tagId)) {
-                    final int subDirOffset = tiffHeaderOffset + reader.getInt32(tagValueOffset);
-                    processIfd(handler, reader, processedIfdOffsets, subDirOffset, tiffHeaderOffset);
-                } else {
-                    if (!handler.customProcessTag(tagValueOffset, processedIfdOffsets, tiffHeaderOffset, reader, tagId, byteCount)) {
-                        processTag(handler, tagId, tagValueOffset, componentCount, formatCode, reader);
+                // Some tags point to one or more additional IFDs to process
+                boolean isIfdPointer = false;
+                if (byteCount == 4 * componentCount) {
+                    for (int i = 0; i < componentCount; i++) {
+                        if (handler.tryEnterSubIfd(tagId)) {
+                            isIfdPointer = true;
+                            int subDirOffset = tiffHeaderOffset + reader.getInt32((int) (tagValueOffset + i * 4));
+                            processIfd(handler, reader, processedIfdOffsets, subDirOffset, tiffHeaderOffset);
+                        }
                     }
                 }
+
+                // If it wasn't an IFD pointer, allow custom tag processing to occur
+                if (!isIfdPointer && !handler.customProcessTag((int) tagValueOffset, processedIfdOffsets, tiffHeaderOffset, reader, tagId, (int) byteCount)) {
+                    // If no custom processing occurred, process the tag in the standard fashion
+                    processTag(handler, tagId, (int) tagValueOffset, (int) componentCount, formatCode, reader);
+                }
             }
 
             // at the end of each IFD is an optional link to the next IFD
@@ -228,6 +246,8 @@ public class TiffReader
             }
         } finally {
             handler.endingIFD();
+            if (resetByteOrder != null)
+                reader.setMotorolaByteOrder(resetByteOrder);
         }
     }
 
@@ -349,7 +369,7 @@ public class TiffReader
                 }
                 break;
             default:
-                handler.error(String.format("Unknown format code %d for tag %d", formatCode, tagId));
+                handler.error(String.format("Invalid TIFF tag format code %d for tag 0x%04X", formatCode, tagId));
         }
     }
 
diff --git a/src/com/drew/imaging/tiff/package.html b/src/com/drew/imaging/tiff/package.html
index ce5b2e6..e2d7bf7 100644
--- a/src/com/drew/imaging/tiff/package.html
+++ b/src/com/drew/imaging/tiff/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/BufferBoundsException.java b/src/com/drew/lang/BufferBoundsException.java
index b7ecab4..522995c 100755
--- a/src/com/drew/lang/BufferBoundsException.java
+++ b/src/com/drew/lang/BufferBoundsException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/ByteArrayReader.java b/src/com/drew/lang/ByteArrayReader.java
index 397d8ae..17750e3 100755
--- a/src/com/drew/lang/ByteArrayReader.java
+++ b/src/com/drew/lang/ByteArrayReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -21,10 +21,10 @@
 
 package com.drew.lang;
 
-import com.drew.lang.annotations.NotNull;
-
 import java.io.IOException;
 
+import com.drew.lang.annotations.NotNull;
+
 /**
  * Provides methods to read specific values from a byte array, with a consistent, checked exception structure for
  * issues.
@@ -39,8 +39,6 @@ public class ByteArrayReader extends RandomAccessReader
     @NotNull
     private final byte[] _buffer;
 
-    @SuppressWarnings({ "ConstantConditions" })
-    @com.drew.lang.annotations.SuppressWarnings(value = "EI_EXPOSE_REP2", justification = "Design intent")
     public ByteArrayReader(@NotNull byte[] buffer)
     {
         if (buffer == null)
@@ -73,7 +71,7 @@ public class ByteArrayReader extends RandomAccessReader
     {
         return bytesRequested >= 0
             && index >= 0
-            && (long)index + (long)bytesRequested - 1L < (long)_buffer.length;
+            && (long)index + (long)bytesRequested - 1L < _buffer.length;
     }
 
     @Override
diff --git a/src/com/drew/lang/CompoundException.java b/src/com/drew/lang/CompoundException.java
index a7ed181..3663c74 100644
--- a/src/com/drew/lang/CompoundException.java
+++ b/src/com/drew/lang/CompoundException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/DateUtil.java b/src/com/drew/lang/DateUtil.java
new file mode 100644
index 0000000..56484df
--- /dev/null
+++ b/src/com/drew/lang/DateUtil.java
@@ -0,0 +1,32 @@
+package com.drew.lang;
+
+/**
+ * @author Drew Noakes http://drewnoakes.com
+ */
+public class DateUtil
+{
+    private static int[] _daysInMonth365 = new int[] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
+
+    public static boolean isValidDate(int year, int month, int day)
+    {
+        if (year < 1 || year > 9999 || month < 0 || month > 11)
+            return false;
+
+        int daysInMonth = _daysInMonth365[month];
+        if (month == 1)
+        {
+            boolean isLeapYear = year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
+            if (isLeapYear)
+                daysInMonth++;
+        }
+
+        return day >= 1 && day <= daysInMonth;
+    }
+
+    public static boolean isValidTime(int hours, int minutes, int seconds)
+    {
+        return hours >= 0 && hours < 24
+            && minutes >= 0 && minutes < 60
+            && seconds >= 0 && seconds < 60;
+    }
+}
diff --git a/src/com/drew/lang/GeoLocation.java b/src/com/drew/lang/GeoLocation.java
index a006a59..f5aa6b5 100755
--- a/src/com/drew/lang/GeoLocation.java
+++ b/src/com/drew/lang/GeoLocation.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -83,7 +83,7 @@ public final class GeoLocation
     {
         double[] dms = decimalToDegreesMinutesSeconds(decimal);
         DecimalFormat format = new DecimalFormat("0.##");
-        return String.format("%s° %s' %s\"", format.format(dms[0]), format.format(dms[1]), format.format(dms[2]));
+        return String.format("%s\u00B0 %s' %s\"", format.format(dms[0]), format.format(dms[1]), format.format(dms[2]));
     }
 
     /**
diff --git a/src/com/drew/lang/NullOutputStream.java b/src/com/drew/lang/NullOutputStream.java
deleted file mode 100644
index 3e9b583..0000000
--- a/src/com/drew/lang/NullOutputStream.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2002-2015 Drew Noakes
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- *
- * More information about this project is available at:
- *
- *    https://drewnoakes.com/code/exif/
- *    https://github.com/drewnoakes/metadata-extractor
- */
-package com.drew.lang;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * An implementation of OutputSteam that ignores write requests by doing nothing.  This class may be useful in tests.
- *
- * @author Drew Noakes https://drewnoakes.com
- */
-public class NullOutputStream extends OutputStream
-{
-    public NullOutputStream()
-    {
-        super();
-    }
-
-    @Override
-    public void write(int b) throws IOException
-    {
-        // do nothing
-    }
-}
diff --git a/src/com/drew/lang/RandomAccessReader.java b/src/com/drew/lang/RandomAccessReader.java
index e93fc2d..706dbdd 100644
--- a/src/com/drew/lang/RandomAccessReader.java
+++ b/src/com/drew/lang/RandomAccessReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -52,7 +52,7 @@ public abstract class RandomAccessReader
      *
      * @param index The index from which to read the byte
      * @return The read byte value
-     * @throws IllegalArgumentException <code>index</code> or <code>count</code> are negative
+     * @throws IllegalArgumentException <code>index</code> is negative
      * @throws BufferBoundsException if the requested byte is beyond the end of the underlying data source
      * @throws IOException if the byte is unable to be read
      */
diff --git a/src/com/drew/lang/Rational.java b/src/com/drew/lang/Rational.java
index 5b80617..17d15d6 100644
--- a/src/com/drew/lang/Rational.java
+++ b/src/com/drew/lang/Rational.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/SequentialByteArrayReader.java b/src/com/drew/lang/SequentialByteArrayReader.java
index 1173f3c..6e24c8e 100644
--- a/src/com/drew/lang/SequentialByteArrayReader.java
+++ b/src/com/drew/lang/SequentialByteArrayReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -41,7 +41,6 @@ public class SequentialByteArrayReader extends SequentialReader
         this(bytes, 0);
     }
 
-    @SuppressWarnings("ConstantConditions")
     public SequentialByteArrayReader(@NotNull byte[] bytes, int baseIndex)
     {
         if (bytes == null)
diff --git a/src/com/drew/lang/SequentialReader.java b/src/com/drew/lang/SequentialReader.java
index a1bcdb5..26415f2 100644
--- a/src/com/drew/lang/SequentialReader.java
+++ b/src/com/drew/lang/SequentialReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/StreamReader.java b/src/com/drew/lang/StreamReader.java
index c55db50..2d4fa8f 100644
--- a/src/com/drew/lang/StreamReader.java
+++ b/src/com/drew/lang/StreamReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -36,7 +36,6 @@ public class StreamReader extends SequentialReader
     @NotNull
     private final InputStream _stream;
 
-    @SuppressWarnings("ConstantConditions")
     public StreamReader(@NotNull InputStream stream)
     {
         if (stream == null)
diff --git a/src/com/drew/lang/StringUtil.java b/src/com/drew/lang/StringUtil.java
index 35c3a9d..5196e90 100755
--- a/src/com/drew/lang/StringUtil.java
+++ b/src/com/drew/lang/StringUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/annotations/NotNull.java b/src/com/drew/lang/annotations/NotNull.java
index 4bba728..283d4aa 100755
--- a/src/com/drew/lang/annotations/NotNull.java
+++ b/src/com/drew/lang/annotations/NotNull.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/annotations/Nullable.java b/src/com/drew/lang/annotations/Nullable.java
index e37e45f..7d2394f 100755
--- a/src/com/drew/lang/annotations/Nullable.java
+++ b/src/com/drew/lang/annotations/Nullable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/annotations/SuppressWarnings.java b/src/com/drew/lang/annotations/SuppressWarnings.java
deleted file mode 100755
index 8f18f1b..0000000
--- a/src/com/drew/lang/annotations/SuppressWarnings.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2002-2011 Andreas Ziermann
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- *
- * More information about this project is available at:
- *
- *    https://drewnoakes.com/code/exif/
- *    https://github.com/drewnoakes/metadata-extractor
- */
-
-package com.drew.lang.annotations;
-
-/**
- * Used to suppress specific code analysis warnings produced by the Findbugs tool.
- *
- * @author Andreas Ziermann
- */
-public @interface SuppressWarnings
-{
-    /**
-     * The name of the warning to be suppressed.
-     * @return The name of the warning to be suppressed.
-     */
-    @NotNull String value();
-
-    /**
-     * An explanation of why it is valid to suppress the warning in a particular situation/context.
-     * @return An explanation of why it is valid to suppress the warning in a particular situation/context.
-     */
-    @NotNull String justification();
-}
diff --git a/src/com/drew/lang/annotations/package.html b/src/com/drew/lang/annotations/package.html
index c648601..a69add3 100644
--- a/src/com/drew/lang/annotations/package.html
+++ b/src/com/drew/lang/annotations/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/lang/package.html b/src/com/drew/lang/package.html
index aa6d0d0..daefa78 100644
--- a/src/com/drew/lang/package.html
+++ b/src/com/drew/lang/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/Age.java b/src/com/drew/metadata/Age.java
index 4022214..fb813b3 100755
--- a/src/com/drew/metadata/Age.java
+++ b/src/com/drew/metadata/Age.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/DefaultTagDescriptor.java b/src/com/drew/metadata/DefaultTagDescriptor.java
deleted file mode 100644
index ed157bc..0000000
--- a/src/com/drew/metadata/DefaultTagDescriptor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2002-2015 Drew Noakes
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- *
- * More information about this project is available at:
- *
- *    https://drewnoakes.com/code/exif/
- *    https://github.com/drewnoakes/metadata-extractor
- */
-package com.drew.metadata;
-
-import com.drew.lang.annotations.NotNull;
-
-/**
- * A default implementation of the abstract TagDescriptor.  As this class is not coded with awareness of any metadata
- * tags, it simply reports tag names using the format 'Unknown tag 0x00' (with the corresponding tag number in hex)
- * and gives descriptions using the default string representation of the value.
- *
- * @author Drew Noakes https://drewnoakes.com
- */
-public class DefaultTagDescriptor extends TagDescriptor<Directory>
-{
-    public DefaultTagDescriptor(@NotNull Directory directory)
-    {
-        super(directory);
-    }
-
-    /**
-     * Gets a best-effort tag name using the format 'Unknown tag 0x00' (with the corresponding tag type in hex).
-     * @param tagType the tag type identifier.
-     * @return a string representation of the tag name.
-     */
-    @NotNull
-    public String getTagName(int tagType)
-    {
-        String hex = Integer.toHexString(tagType).toUpperCase();
-        while (hex.length() < 4) hex = "0" + hex;
-        return "Unknown tag 0x" + hex;
-    }
-}
diff --git a/src/com/drew/metadata/Directory.java b/src/com/drew/metadata/Directory.java
index cc6d791..9bdd4bf 100644
--- a/src/com/drew/metadata/Directory.java
+++ b/src/com/drew/metadata/Directory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -23,14 +23,16 @@ package com.drew.metadata;
 import com.drew.lang.Rational;
 import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
-import com.drew.lang.annotations.SuppressWarnings;
 
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Array;
 import java.text.DateFormat;
+import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * Abstract base class for all directory implementations, having methods for getting and setting tag values of various
@@ -40,6 +42,8 @@ import java.util.*;
  */
 public abstract class Directory
 {
+    private static final DecimalFormat _floatFormat = new DecimalFormat("0.###");
+
     /** Map of values hashed by type identifiers. */
     @NotNull
     protected final Map<Integer, Object> _tagMap = new HashMap<Integer, Object>();
@@ -58,6 +62,9 @@ public abstract class Directory
     /** The descriptor used to interpret tag values. */
     protected TagDescriptor _descriptor;
 
+    @Nullable
+    private Directory _parent;
+
 // ABSTRACT METHODS
 
     /**
@@ -172,6 +179,17 @@ public abstract class Directory
         return _errorList.size();
     }
 
+    @Nullable
+    public Directory getParent()
+    {
+        return _parent;
+    }
+
+    public void setParent(@NotNull Directory parent)
+    {
+        _parent = parent;
+    }
+
 // TAG SETTERS
 
     /**
@@ -700,7 +718,6 @@ public abstract class Directory
 
     /** Returns the specified tag's value as a boolean.  If the tag is not set or cannot be converted, <code>null</code> is returned. */
     @Nullable
-    @SuppressWarnings(value = "NP_BOOLEAN_RETURN_NULL", justification = "keep API interface consistent")
     public Boolean getBooleanObject(int tagType)
     {
         Object o = getObject(tagType);
@@ -724,12 +741,12 @@ public abstract class Directory
      * Returns the specified tag's value as a java.util.Date.  If the value is unset or cannot be converted, <code>null</code> is returned.
      * <p>
      * If the underlying value is a {@link String}, then attempts will be made to parse the string as though it is in
-     * the current {@link TimeZone}.  If the {@link TimeZone} is known, call the overload that accepts one as an argument.
+     * the GMT {@link TimeZone}.  If the {@link TimeZone} is known, call the overload that accepts one as an argument.
      */
     @Nullable
     public java.util.Date getDate(int tagType)
     {
-        return getDate(tagType, null);
+        return getDate(tagType, null, null);
     }
 
     /**
@@ -737,21 +754,41 @@ public abstract class Directory
      * <p>
      * If the underlying value is a {@link String}, then attempts will be made to parse the string as though it is in
      * the {@link TimeZone} represented by the {@code timeZone} parameter (if it is non-null).  Note that this parameter
-     * is only considered if the underlying value is a string and parsing occurs, otherwise it has no effect.
+     * is only considered if the underlying value is a string and it has no time zone information, otherwise it has no effect.
      */
     @Nullable
     public java.util.Date getDate(int tagType, @Nullable TimeZone timeZone)
     {
-        Object o = getObject(tagType);
+        return getDate(tagType, null, timeZone);
+    }
 
-        if (o == null)
-            return null;
+    /**
+     * Returns the specified tag's value as a java.util.Date.  If the value is unset or cannot be converted, <code>null</code> is returned.
+     * <p>
+     * If the underlying value is a {@link String}, then attempts will be made to parse the string as though it is in
+     * the {@link TimeZone} represented by the {@code timeZone} parameter (if it is non-null).  Note that this parameter
+     * is only considered if the underlying value is a string and it has no time zone information, otherwise it has no effect.
+     * In addition, the {@code subsecond} parameter, which specifies the number of digits after the decimal point in the seconds,
+     * is set to the returned Date. This parameter is only considered if the underlying value is a string and is has
+     * no subsecond information, otherwise it has no effect.
+     *
+     * @param tagType the tag identifier
+     * @param subsecond the subsecond value for the Date
+     * @param timeZone the time zone to use
+     * @return a Date representing the time value
+     */
+    @Nullable
+    public java.util.Date getDate(int tagType, @Nullable String subsecond, @Nullable TimeZone timeZone)
+    {
+        Object o = getObject(tagType);
 
         if (o instanceof java.util.Date)
             return (java.util.Date)o;
 
+        java.util.Date date = null;
+
         if (o instanceof String) {
-            // This seems to cover all known Exif date strings
+            // This seems to cover all known Exif and Xmp date strings
             // Note that "    :  :     :  :  " is a valid date string according to the Exif spec (which means 'unknown date'): http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif/datetimeoriginal.html
             String datePatterns[] = {
                     "yyyy:MM:dd HH:mm:ss",
@@ -759,8 +796,30 @@ public abstract class Directory
                     "yyyy-MM-dd HH:mm:ss",
                     "yyyy-MM-dd HH:mm",
                     "yyyy.MM.dd HH:mm:ss",
-                    "yyyy.MM.dd HH:mm" };
+                    "yyyy.MM.dd HH:mm",
+                    "yyyy-MM-dd'T'HH:mm:ss",
+                    "yyyy-MM-dd'T'HH:mm",
+                    "yyyy-MM-dd",
+                    "yyyy-MM",
+                    "yyyy" };
             String dateString = (String)o;
+
+            // if the date string has subsecond information, it supersedes the subsecond parameter
+            Pattern subsecondPattern = Pattern.compile("(\\d\\d:\\d\\d:\\d\\d)(\\.\\d+)");
+            Matcher subsecondMatcher = subsecondPattern.matcher(dateString);
+            if (subsecondMatcher.find()) {
+                subsecond = subsecondMatcher.group(2).substring(1);
+                dateString = subsecondMatcher.replaceAll("$1");
+            }
+
+            // if the date string has time zone information, it supersedes the timeZone parameter
+            Pattern timeZonePattern = Pattern.compile("(Z|[+-]\\d\\d:\\d\\d)$");
+            Matcher timeZoneMatcher = timeZonePattern.matcher(dateString);
+            if (timeZoneMatcher.find()) {
+                timeZone = TimeZone.getTimeZone("GMT" + timeZoneMatcher.group().replaceAll("Z", ""));
+                dateString = timeZoneMatcher.replaceAll("");
+            }
+
             for (String datePattern : datePatterns) {
                 try {
                     DateFormat parser = new SimpleDateFormat(datePattern);
@@ -769,13 +828,32 @@ public abstract class Directory
                     else
                         parser.setTimeZone(TimeZone.getTimeZone("GMT")); // don't interpret zone time
 
-                    return parser.parse(dateString);
+                    date = parser.parse(dateString);
+                    break;
                 } catch (ParseException ex) {
                     // simply try the next pattern
                 }
             }
         }
-        return null;
+
+        if (date == null)
+            return null;
+
+        if (subsecond == null)
+            return date;
+
+        try {
+            int millisecond = (int) (Double.parseDouble("." + subsecond) * 1000);
+            if (millisecond >= 0 && millisecond < 1000) {
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(date);
+                calendar.set(Calendar.MILLISECOND, millisecond);
+                return calendar.getTime();
+            }
+            return date;
+        } catch (NumberFormatException e) {
+            return date;
+        }
     }
 
     /** Returns the specified tag's value as a Rational.  If the value is unset or cannot be converted, <code>null</code> is returned. */
@@ -834,37 +912,65 @@ public abstract class Directory
             // handle arrays of objects and primitives
             int arrayLength = Array.getLength(o);
             final Class<?> componentType = o.getClass().getComponentType();
-            boolean isObjectArray = Object.class.isAssignableFrom(componentType);
-            boolean isFloatArray = componentType.getName().equals("float");
-            boolean isDoubleArray = componentType.getName().equals("double");
-            boolean isIntArray = componentType.getName().equals("int");
-            boolean isLongArray = componentType.getName().equals("long");
-            boolean isByteArray = componentType.getName().equals("byte");
-            boolean isShortArray = componentType.getName().equals("short");
+
             StringBuilder string = new StringBuilder();
-            for (int i = 0; i < arrayLength; i++) {
-                if (i != 0)
-                    string.append(' ');
-                if (isObjectArray)
+
+            if (Object.class.isAssignableFrom(componentType)) {
+                // object array
+                for (int i = 0; i < arrayLength; i++) {
+                    if (i != 0)
+                        string.append(' ');
                     string.append(Array.get(o, i).toString());
-                else if (isIntArray)
+                }
+            } else if (componentType.getName().equals("int")) {
+                for (int i = 0; i < arrayLength; i++) {
+                    if (i != 0)
+                        string.append(' ');
                     string.append(Array.getInt(o, i));
-                else if (isShortArray)
+                }
+            } else if (componentType.getName().equals("short")) {
+                for (int i = 0; i < arrayLength; i++) {
+                    if (i != 0)
+                        string.append(' ');
                     string.append(Array.getShort(o, i));
-                else if (isLongArray)
+                }
+            } else if (componentType.getName().equals("long")) {
+                for (int i = 0; i < arrayLength; i++) {
+                    if (i != 0)
+                        string.append(' ');
                     string.append(Array.getLong(o, i));
-                else if (isFloatArray)
-                    string.append(Array.getFloat(o, i));
-                else if (isDoubleArray)
-                    string.append(Array.getDouble(o, i));
-                else if (isByteArray)
-                    string.append(Array.getByte(o, i));
-                else
-                    addError("Unexpected array component type: " + componentType.getName());
+                }
+            } else if (componentType.getName().equals("float")) {
+                for (int i = 0; i < arrayLength; i++) {
+                    if (i != 0)
+                        string.append(' ');
+                    string.append(_floatFormat.format(Array.getFloat(o, i)));
+                }
+            } else if (componentType.getName().equals("double")) {
+                for (int i = 0; i < arrayLength; i++) {
+                    if (i != 0)
+                        string.append(' ');
+                    string.append(_floatFormat.format(Array.getDouble(o, i)));
+                }
+            } else if (componentType.getName().equals("byte")) {
+                for (int i = 0; i < arrayLength; i++) {
+                    if (i != 0)
+                        string.append(' ');
+                    string.append(Array.getByte(o, i) & 0xff);
+                }
+            } else {
+                addError("Unexpected array component type: " + componentType.getName());
             }
+
             return string.toString();
         }
 
+        if (o instanceof Double)
+            return _floatFormat.format(((Double)o).doubleValue());
+
+        if (o instanceof Float)
+            return _floatFormat.format(((Float)o).floatValue());
+
         // Note that several cameras leave trailing spaces (Olympus, Nikon) but this library is intended to show
         // the actual data within the file.  It is not inconceivable that whitespace may be significant here, so we
         // do not trim.  Also, if support is added for writing data back to files, this may cause issues.
diff --git a/src/com/drew/metadata/Face.java b/src/com/drew/metadata/Face.java
index 1cf5a4a..5850f00 100755
--- a/src/com/drew/metadata/Face.java
+++ b/src/com/drew/metadata/Face.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/Metadata.java b/src/com/drew/metadata/Metadata.java
index 439fea8..0ce8d5f 100644
--- a/src/com/drew/metadata/Metadata.java
+++ b/src/com/drew/metadata/Metadata.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -35,8 +35,11 @@ import java.util.*;
  */
 public final class Metadata
 {
+    /**
+     * The list of {@link Directory} instances in this container, in the order they were added.
+     */
     @NotNull
-    private final Map<Class<? extends Directory>,Collection<Directory>> _directoryListByClass = new HashMap<Class<? extends Directory>, Collection<Directory>>();
+    private final List<Directory> _directories = new ArrayList<>();
 
     /**
      * Returns an iterable set of the {@link Directory} instances contained in this metadata collection.
@@ -46,13 +49,20 @@ public final class Metadata
     @NotNull
     public Iterable<Directory> getDirectories()
     {
-        return new DirectoryIterable(_directoryListByClass);
+        return _directories;
     }
 
     @Nullable
+    @SuppressWarnings("unchecked")
     public <T extends Directory> Collection<T> getDirectoriesOfType(Class<T> type)
     {
-        return (Collection<T>)_directoryListByClass.get(type);
+        List<T> directories = new ArrayList<>();
+        for (Directory dir : _directories) {
+            if (type.isAssignableFrom(dir.getClass())) {
+                directories.add((T)dir);
+            }
+        }
+        return directories;
     }
 
     /**
@@ -62,10 +72,7 @@ public final class Metadata
      */
     public int getDirectoryCount()
     {
-        int count = 0;
-        for (Map.Entry<Class<? extends Directory>,Collection<Directory>> pair : _directoryListByClass.entrySet())
-            count += pair.getValue().size();
-        return count;
+        return _directories.size();
     }
 
     /**
@@ -75,7 +82,7 @@ public final class Metadata
      */
     public <T extends Directory> void addDirectory(@NotNull T directory)
     {
-        getOrCreateDirectoryList(directory.getClass()).add(directory);
+        _directories.add(directory);
     }
 
     /**
@@ -90,15 +97,11 @@ public final class Metadata
     @SuppressWarnings("unchecked")
     public <T extends Directory> T getFirstDirectoryOfType(@NotNull Class<T> type)
     {
-        // We suppress the warning here as the code asserts a map signature of Class<T>,T.
-        // So after get(Class<T>) it is for sure the result is from type T.
-
-        Collection<Directory> list = getDirectoryList(type);
-
-        if (list == null || list.isEmpty())
-            return null;
-
-        return (T)list.iterator().next();
+        for (Directory dir : _directories) {
+            if (type.isAssignableFrom(dir.getClass()))
+                return (T)dir;
+        }
+        return null;
     }
 
     /**
@@ -109,8 +112,11 @@ public final class Metadata
      */
     public boolean containsDirectoryOfType(Class<? extends Directory> type)
     {
-        Collection<Directory> list = getDirectoryList(type);
-        return list != null && !list.isEmpty();
+        for (Directory dir : _directories) {
+            if (type.isAssignableFrom(dir.getClass()))
+                return true;
+        }
+        return false;
     }
 
     /**
@@ -138,73 +144,4 @@ public final class Metadata
                 ? "directory"
                 : "directories");
     }
-
-    @Nullable
-    private <T extends Directory> Collection<Directory> getDirectoryList(@NotNull Class<T> type)
-    {
-        return _directoryListByClass.get(type);
-    }
-
-    @NotNull
-    private <T extends Directory> Collection<Directory> getOrCreateDirectoryList(@NotNull Class<T> type)
-    {
-        Collection<Directory> collection = getDirectoryList(type);
-        if (collection != null)
-            return collection;
-        collection = new ArrayList<Directory>();
-        _directoryListByClass.put(type, collection);
-        return collection;
-    }
-
-    private static class DirectoryIterable implements Iterable<Directory>
-    {
-        private final Map<Class<? extends Directory>, Collection<Directory>> _map;
-
-        public DirectoryIterable(Map<Class<? extends Directory>, Collection<Directory>> map)
-        {
-            _map = map;
-        }
-
-        public Iterator<Directory> iterator()
-        {
-            return new DirectoryIterator(_map);
-        }
-
-        private static class DirectoryIterator implements Iterator<Directory>
-        {
-            @NotNull
-            private final Iterator<Map.Entry<Class<? extends Directory>, Collection<Directory>>> _mapIterator;
-            @Nullable
-            private Iterator<Directory> _listIterator;
-
-            public DirectoryIterator(Map<Class<? extends Directory>, Collection<Directory>> map)
-            {
-                _mapIterator = map.entrySet().iterator();
-
-                if (_mapIterator.hasNext())
-                    _listIterator = _mapIterator.next().getValue().iterator();
-            }
-
-            public boolean hasNext()
-            {
-                return _listIterator != null && (_listIterator.hasNext() || _mapIterator.hasNext());
-            }
-
-            public Directory next()
-            {
-                if (_listIterator == null || (!_listIterator.hasNext() && !_mapIterator.hasNext()))
-                    throw new NoSuchElementException();
-
-                while (!_listIterator.hasNext())
-                    _listIterator = _mapIterator.next().getValue().iterator();
-
-                return _listIterator.next();
-            }
-
-            public void remove()
-            {
-                throw new UnsupportedOperationException();
-            }
-        }
-    }
 }
diff --git a/src/com/drew/metadata/MetadataException.java b/src/com/drew/metadata/MetadataException.java
index 72109de..1520be7 100644
--- a/src/com/drew/metadata/MetadataException.java
+++ b/src/com/drew/metadata/MetadataException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/MetadataReader.java b/src/com/drew/metadata/MetadataReader.java
deleted file mode 100644
index 5201149..0000000
--- a/src/com/drew/metadata/MetadataReader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2002-2015 Drew Noakes
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- *
- * More information about this project is available at:
- *
- *    https://drewnoakes.com/code/exif/
- *    https://github.com/drewnoakes/metadata-extractor
- */
-package com.drew.metadata;
-
-import com.drew.lang.RandomAccessReader;
-import com.drew.lang.annotations.NotNull;
-
-/**
- * Defines an object capable of processing a particular type of metadata from a {@link RandomAccessReader}.
- * <p>
- * Instances of this interface must be thread-safe and reusable.
- *
- * @author Drew Noakes https://drewnoakes.com
- */
-public interface MetadataReader
-{
-    /**
-     * Extracts metadata from <code>reader</code> and merges it into the specified {@link Metadata} object.
-     *
-     * @param reader   The {@link RandomAccessReader} from which the metadata should be extracted.
-     * @param metadata The {@link Metadata} object into which extracted values should be merged.
-     */
-    public void extract(@NotNull final RandomAccessReader reader, @NotNull final Metadata metadata);
-}
diff --git a/src/com/drew/metadata/Tag.java b/src/com/drew/metadata/Tag.java
index f8603ef..aede481 100644
--- a/src/com/drew/metadata/Tag.java
+++ b/src/com/drew/metadata/Tag.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -53,16 +53,14 @@ public class Tag
 
     /**
      * Gets the tag type in hex notation as a String with padded leading
-     * zeroes if necessary (i.e. <code>0x100E</code>).
+     * zeroes if necessary (i.e. <code>0x100e</code>).
      *
      * @return the tag type as a string in hexadecimal notation
      */
     @NotNull
     public String getTagTypeHex()
     {
-        String hex = Integer.toHexString(_tagType);
-        while (hex.length() < 4) hex = "0" + hex;
-        return "0x" + hex;
+        return String.format("0x%04x", _tagType);
     }
 
     /**
@@ -116,7 +114,7 @@ public class Tag
     }
 
     /**
-     * A basic representation of the tag's type and value.  EG: <code>[FNumber] F2.8</code>.
+     * A basic representation of the tag's type and value.  EG: <code>[Exif IFD0] FNumber - f/2.8</code>.
      *
      * @return the tag's type and value
      */
diff --git a/src/com/drew/metadata/TagDescriptor.java b/src/com/drew/metadata/TagDescriptor.java
index 50e7e46..0550c3e 100644
--- a/src/com/drew/metadata/TagDescriptor.java
+++ b/src/com/drew/metadata/TagDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -27,6 +27,9 @@ import com.drew.lang.annotations.Nullable;
 
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Array;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -70,11 +73,18 @@ public class TagDescriptor<T extends Directory>
         if (object.getClass().isArray()) {
             final int length = Array.getLength(object);
             if (length > 16) {
-                final String componentTypeName = object.getClass().getComponentType().getName();
-                return String.format("[%d %s%s]", length, componentTypeName, length == 1 ? "" : "s");
+                return String.format("[%d %s]", length, length == 1 ? "value" : "values");
             }
         }
 
+        if (object instanceof Date)
+        {
+            // Produce a date string having a format that includes the offset in form "+00:00"
+            return new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy")
+                .format((Date) object)
+                .replaceAll("([0-9]{2} [^ ]+)$", ":$1");
+        }
+
         // no special handling required, so use default conversion to a string
         return _directory.getString(tagType);
     }
@@ -271,4 +281,67 @@ public class TagDescriptor<T extends Directory>
             return null;
         }
     }
+
+    @Nullable
+    protected String getRationalOrDoubleString(int tagType)
+    {
+        Rational rational = _directory.getRational(tagType);
+        if (rational != null)
+            return rational.toSimpleString(true);
+
+        Double d = _directory.getDoubleObject(tagType);
+        if (d != null)
+        {
+            DecimalFormat format = new DecimalFormat("0.###");
+            return format.format(d);
+        }
+
+        return null;
+    }
+
+    @Nullable
+    protected static String getFStopDescription(double fStop)
+    {
+        DecimalFormat format = new DecimalFormat("0.0");
+        format.setRoundingMode(RoundingMode.HALF_UP);
+        return "f/" + format.format(fStop);
+    }
+
+    @Nullable
+    protected static String getFocalLengthDescription(double mm)
+    {
+        DecimalFormat format = new DecimalFormat("0.#");
+        format.setRoundingMode(RoundingMode.HALF_UP);
+        return format.format(mm) + " mm";
+    }
+
+    @Nullable
+    protected String getLensSpecificationDescription(int tag)
+    {
+        Rational[] values = _directory.getRationalArray(tag);
+
+        if (values == null || values.length != 4 || (values[0].doubleValue() == 0 && values[2].doubleValue() == 0))
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+
+        if (values[0].equals(values[1]))
+            sb.append(values[0].toSimpleString(true)).append("mm");
+        else
+            sb.append(values[0].toSimpleString(true)).append('-').append(values[1].toSimpleString(true)).append("mm");
+
+        if (values[2].doubleValue() != 0) {
+            sb.append(' ');
+
+            DecimalFormat format = new DecimalFormat("0.0");
+            format.setRoundingMode(RoundingMode.HALF_UP);
+
+            if (values[2].equals(values[3]))
+                sb.append(getFStopDescription(values[2].doubleValue()));
+            else
+                sb.append("f/").append(format.format(values[2].doubleValue())).append('-').append(format.format(values[3].doubleValue()));
+        }
+
+        return sb.toString();
+    }
 }
diff --git a/src/com/drew/metadata/exif/ExifDescriptorBase.java b/src/com/drew/metadata/exif/ExifDescriptorBase.java
index 7f32352..50c1cab 100644
--- a/src/com/drew/metadata/exif/ExifDescriptorBase.java
+++ b/src/com/drew/metadata/exif/ExifDescriptorBase.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ import com.drew.metadata.Directory;
 import com.drew.metadata.TagDescriptor;
 
 import java.io.UnsupportedEncodingException;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.util.HashMap;
 import java.util.Map;
@@ -50,8 +51,6 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
 
     @NotNull
     private static final java.text.DecimalFormat SimpleDecimalFormatter = new DecimalFormat("0.#");
-    @NotNull
-    private static final java.text.DecimalFormat SimpleDecimalFormatterWithPrecision = new DecimalFormat("0.0");
 
     // Note for the potential addition of brightness presentation in eV:
     // Brightness of taken subject. To calculate Exposure(Ev) from BrightnessValue(Bv),
@@ -205,6 +204,8 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
                 return getCompressionDescription();
             case TAG_JPEG_PROC:
                 return getJpegProcDescription();
+            case TAG_LENS_SPECIFICATION:
+                return getLensSpecificationDescription();
             default:
                 return super.getDescription(tagType);
         }
@@ -508,6 +509,12 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
     }
 
     @Nullable
+    public String getLensSpecificationDescription()
+    {
+        return getLensSpecificationDescription(TAG_LENS_SPECIFICATION);
+    }
+
+    @Nullable
     public String getSharpnessDescription()
     {
         return getIndexedDescription(TAG_SHARPNESS,
@@ -567,8 +574,8 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
         return value == null
             ? null
             : value == 0
-            ? "Unknown"
-            : SimpleDecimalFormatter.format(value) + "mm";
+                ? "Unknown"
+                : getFocalLengthDescription(value);
     }
 
     @Nullable
@@ -578,8 +585,8 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
         return value == null
             ? null
             : value.getNumerator() == 0
-            ? "Digital zoom not used."
-            : SimpleDecimalFormatter.format(value.doubleValue());
+                ? "Digital zoom not used"
+                : SimpleDecimalFormatter.format(value.doubleValue());
     }
 
     @Nullable
@@ -710,7 +717,7 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
         if (aperture == null)
             return null;
         double fStop = PhotographicConversions.apertureToFStop(aperture);
-        return "f/" + SimpleDecimalFormatterWithPrecision.format(fStop);
+        return getFStopDescription(fStop);
     }
 
     @Nullable
@@ -720,7 +727,7 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
         if (aperture == null)
             return null;
         double fStop = PhotographicConversions.apertureToFStop(aperture);
-        return "f/" + SimpleDecimalFormatterWithPrecision.format(fStop);
+        return getFStopDescription(fStop);
     }
 
     @Nullable
@@ -806,10 +813,7 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
     public String getFocalLengthDescription()
     {
         Rational value = _directory.getRational(TAG_FOCAL_LENGTH);
-        if (value == null)
-            return null;
-        java.text.DecimalFormat formatter = new DecimalFormat("0.0##");
-        return formatter.format(value.doubleValue()) + " mm";
+        return value == null ? null : getFocalLengthDescription(value.doubleValue());
     }
 
     @Nullable
@@ -858,10 +862,7 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
     @Nullable
     public String getWhiteBalanceDescription()
     {
-        // '0' means unknown, '1' daylight, '2' fluorescent, '3' tungsten, '4' flash,
-        // '17' standard light A, '18' standard light B, '19' standard light C, '20' D55,
-        // '21' D65, '22' D75, '255' other.
-        // see http://web.archive.org/web/20131018091152/http://exif.org/Exif2-2.PDF page 35
+        // See http://web.archive.org/web/20131018091152/http://exif.org/Exif2-2.PDF page 35
         final Integer value = _directory.getInteger(TAG_WHITE_BALANCE);
         if (value == null)
             return null;
@@ -874,11 +875,11 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
             case 9: return "Fine Weather";
             case 10: return "Cloudy";
             case 11: return "Shade";
-            case 12: return "Daylight Flourescent";
-            case 13: return "Day White Flourescent";
-            case 14: return "Cool White Flourescent";
-            case 15: return "White Flourescent";
-            case 16: return "Warm White Flourescent";
+            case 12: return "Daylight Fluorescent";
+            case 13: return "Day White Fluorescent";
+            case 14: return "Cool White Fluorescent";
+            case 15: return "White Fluorescent";
+            case 16: return "Warm White Fluorescent";
             case 17: return "Standard light";
             case 18: return "Standard light (B)";
             case 19: return "Standard light (C)";
@@ -974,7 +975,7 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
         Rational value = _directory.getRational(TAG_SUBJECT_DISTANCE);
         if (value == null)
             return null;
-        java.text.DecimalFormat formatter = new DecimalFormat("0.0##");
+        DecimalFormat formatter = new DecimalFormat("0.0##");
         return formatter.format(value.doubleValue()) + " metres";
     }
 
@@ -1017,7 +1018,9 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
             float apexPower = (float)(1 / (Math.exp(apexValue * Math.log(2))));
             long apexPower10 = Math.round((double)apexPower * 10.0);
             float fApexPower = (float)apexPower10 / 10.0f;
-            return fApexPower + " sec";
+            DecimalFormat format = new DecimalFormat("0.##");
+            format.setRoundingMode(RoundingMode.HALF_UP);
+            return format.format(fApexPower) + " sec";
         } else {
             int apexPower = (int)((Math.exp(apexValue * Math.log(2))));
             return "1/" + apexPower + " sec";
@@ -1050,7 +1053,7 @@ public abstract class ExifDescriptorBase<T extends Directory> extends TagDescrip
         Rational value = _directory.getRational(TAG_FNUMBER);
         if (value == null)
             return null;
-        return "f/" + SimpleDecimalFormatterWithPrecision.format(value.doubleValue());
+        return getFStopDescription(value.doubleValue());
     }
 
     @Nullable
diff --git a/src/com/drew/metadata/exif/ExifDirectoryBase.java b/src/com/drew/metadata/exif/ExifDirectoryBase.java
index 5e94f8e..8e426a8 100644
--- a/src/com/drew/metadata/exif/ExifDirectoryBase.java
+++ b/src/com/drew/metadata/exif/ExifDirectoryBase.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -139,6 +139,10 @@ public abstract class ExifDirectoryBase extends Directory
     public static final int TAG_TILE_OFFSETS                      = 0x0144;
     public static final int TAG_TILE_BYTE_COUNTS                  = 0x0145;
 
+    /**
+     * Tag is a pointer to one or more sub-IFDs.
+     + Seems to be used exclusively by raw formats, referencing one or two IFDs.
+     */
     public static final int TAG_SUB_IFD_OFFSET                    = 0x014a;
 
     public static final int TAG_TRANSFER_RANGE                    = 0x0156;
@@ -149,6 +153,8 @@ public abstract class ExifDirectoryBase extends Directory
     public static final int TAG_YCBCR_SUBSAMPLING                 = 0x0212;
     public static final int TAG_YCBCR_POSITIONING                 = 0x0213;
     public static final int TAG_REFERENCE_BLACK_WHITE             = 0x0214;
+    public static final int TAG_STRIP_ROW_COUNTS                  = 0x022f;
+    public static final int TAG_APPLICATION_NOTES                 = 0x02bc;
 
     public static final int TAG_RELATED_IMAGE_FILE_FORMAT         = 0x1000;
     public static final int TAG_RELATED_IMAGE_WIDTH               = 0x1001;
@@ -259,14 +265,13 @@ public abstract class ExifDirectoryBase extends Directory
      */
     public static final int TAG_METERING_MODE                     = 0x9207;
 
-    public static final int TAG_LIGHT_SOURCE                      = 0x9208; // TODO duplicate tag
     /**
      * White balance (aka light source). '0' means unknown, '1' daylight,
      * '2' fluorescent, '3' tungsten, '10' flash, '17' standard light A,
      * '18' standard light B, '19' standard light C, '20' D55, '21' D65,
      * '22' D75, '255' other.
      */
-    public static final int TAG_WHITE_BALANCE                     = 0x9208; // TODO duplicate tag
+    public static final int TAG_WHITE_BALANCE                     = 0x9208;
     /**
      * 0x0  = 0000000 = No Flash
      * 0x1  = 0000001 = Fired
@@ -599,8 +604,8 @@ public abstract class ExifDirectoryBase extends Directory
         map.put(TAG_SAMPLES_PER_PIXEL, "Samples Per Pixel");
         map.put(TAG_ROWS_PER_STRIP, "Rows Per Strip");
         map.put(TAG_STRIP_BYTE_COUNTS, "Strip Byte Counts");
-        map.put(TAG_MIN_SAMPLE_VALUE, "Minimum sample value");
-        map.put(TAG_MAX_SAMPLE_VALUE, "Maximum sample value");
+        map.put(TAG_MIN_SAMPLE_VALUE, "Minimum Sample Value");
+        map.put(TAG_MAX_SAMPLE_VALUE, "Maximum Sample Value");
         map.put(TAG_X_RESOLUTION, "X Resolution");
         map.put(TAG_Y_RESOLUTION, "Y Resolution");
         map.put(TAG_PLANAR_CONFIGURATION, "Planar Configuration");
@@ -626,6 +631,8 @@ public abstract class ExifDirectoryBase extends Directory
         map.put(TAG_YCBCR_SUBSAMPLING, "YCbCr Sub-Sampling");
         map.put(TAG_YCBCR_POSITIONING, "YCbCr Positioning");
         map.put(TAG_REFERENCE_BLACK_WHITE, "Reference Black/White");
+        map.put(TAG_STRIP_ROW_COUNTS, "Strip Row Counts");
+        map.put(TAG_APPLICATION_NOTES, "Application Notes");
         map.put(TAG_RELATED_IMAGE_FILE_FORMAT, "Related Image File Format");
         map.put(TAG_RELATED_IMAGE_WIDTH, "Related Image Width");
         map.put(TAG_RELATED_IMAGE_HEIGHT, "Related Image Height");
@@ -662,7 +669,6 @@ public abstract class ExifDirectoryBase extends Directory
         map.put(TAG_MAX_APERTURE, "Max Aperture Value");
         map.put(TAG_SUBJECT_DISTANCE, "Subject Distance");
         map.put(TAG_METERING_MODE, "Metering Mode");
-        map.put(TAG_LIGHT_SOURCE, "Light Source");
         map.put(TAG_WHITE_BALANCE, "White Balance");
         map.put(TAG_FLASH, "Flash");
         map.put(TAG_FOCAL_LENGTH, "Focal Length");
diff --git a/src/com/drew/metadata/exif/ExifIFD0Descriptor.java b/src/com/drew/metadata/exif/ExifIFD0Descriptor.java
index 65d121a..522e0fd 100755
--- a/src/com/drew/metadata/exif/ExifIFD0Descriptor.java
+++ b/src/com/drew/metadata/exif/ExifIFD0Descriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/ExifIFD0Directory.java b/src/com/drew/metadata/exif/ExifIFD0Directory.java
index 7d2f3c7..e1827af 100755
--- a/src/com/drew/metadata/exif/ExifIFD0Directory.java
+++ b/src/com/drew/metadata/exif/ExifIFD0Directory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -21,10 +21,10 @@
 
 package com.drew.metadata.exif;
 
-import com.drew.lang.annotations.NotNull;
-
 import java.util.HashMap;
 
+import com.drew.lang.annotations.NotNull;
+
 /**
  * Describes Exif tags from the IFD0 directory.
  *
diff --git a/src/com/drew/metadata/exif/ExifInteropDescriptor.java b/src/com/drew/metadata/exif/ExifInteropDescriptor.java
index 6424db7..65de2d6 100644
--- a/src/com/drew/metadata/exif/ExifInteropDescriptor.java
+++ b/src/com/drew/metadata/exif/ExifInteropDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/ExifInteropDirectory.java b/src/com/drew/metadata/exif/ExifInteropDirectory.java
index 6d5db78..ffd0bf4 100644
--- a/src/com/drew/metadata/exif/ExifInteropDirectory.java
+++ b/src/com/drew/metadata/exif/ExifInteropDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/ExifReader.java b/src/com/drew/metadata/exif/ExifReader.java
index 85f1bff..4bfbc12 100644
--- a/src/com/drew/metadata/exif/ExifReader.java
+++ b/src/com/drew/metadata/exif/ExifReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -27,10 +27,12 @@ import com.drew.imaging.tiff.TiffReader;
 import com.drew.lang.ByteArrayReader;
 import com.drew.lang.RandomAccessReader;
 import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
+import com.drew.metadata.Directory;
 import com.drew.metadata.Metadata;
 
 import java.io.IOException;
-import java.util.Arrays;
+import java.util.Collections;
 
 /**
  * Decodes Exif binary data, populating a {@link Metadata} object with tag values in {@link ExifSubIFDDirectory},
@@ -59,7 +61,7 @@ public class ExifReader implements JpegSegmentMetadataReader
     @NotNull
     public Iterable<JpegSegmentType> getSegmentTypes()
     {
-        return Arrays.asList(JpegSegmentType.APP1);
+        return Collections.singletonList(JpegSegmentType.APP1);
     }
 
     public void readJpegSegments(@NotNull final Iterable<byte[]> segments, @NotNull final Metadata metadata, @NotNull final JpegSegmentType segmentType)
@@ -83,11 +85,17 @@ public class ExifReader implements JpegSegmentMetadataReader
     /** Reads TIFF formatted Exif data a specified offset within a {@link RandomAccessReader}. */
     public void extract(@NotNull final RandomAccessReader reader, @NotNull final Metadata metadata, int readerOffset)
     {
+        extract(reader, metadata, readerOffset, null);
+    }
+
+    /** Reads TIFF formatted Exif data a specified offset within a {@link RandomAccessReader}. */
+    public void extract(@NotNull final RandomAccessReader reader, @NotNull final Metadata metadata, int readerOffset, @Nullable Directory parentDirectory)
+    {
         try {
             // Read the TIFF-formatted Exif data
             new TiffReader().processTiff(
                 reader,
-                new ExifTiffHandler(metadata, _storeThumbnailBytes),
+                new ExifTiffHandler(metadata, _storeThumbnailBytes, parentDirectory),
                 readerOffset
             );
         } catch (TiffProcessingException e) {
diff --git a/src/com/drew/metadata/exif/ExifSubIFDDescriptor.java b/src/com/drew/metadata/exif/ExifSubIFDDescriptor.java
index cd5c30e..5d07a31 100755
--- a/src/com/drew/metadata/exif/ExifSubIFDDescriptor.java
+++ b/src/com/drew/metadata/exif/ExifSubIFDDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/ExifSubIFDDirectory.java b/src/com/drew/metadata/exif/ExifSubIFDDirectory.java
index b05c03f..59aaadb 100755
--- a/src/com/drew/metadata/exif/ExifSubIFDDirectory.java
+++ b/src/com/drew/metadata/exif/ExifSubIFDDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -20,9 +20,12 @@
  */
 package com.drew.metadata.exif;
 
-import com.drew.lang.annotations.NotNull;
-
+import java.util.Date;
 import java.util.HashMap;
+import java.util.TimeZone;
+
+import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
 
 /**
  * Describes Exif tags from the SubIFD directory.
@@ -60,4 +63,60 @@ public class ExifSubIFDDirectory extends ExifDirectoryBase
     {
         return _tagNameMap;
     }
+
+    /**
+     * Parses the date/time tag and the subsecond tag to obtain a single Date object with milliseconds
+     * representing the date and time when this image was captured.  Attempts will be made to parse the
+     * values as though it is in the GMT {@link TimeZone}.
+     *
+     * @return A Date object representing when this image was captured, if possible, otherwise null
+     */
+    @Nullable
+    public Date getDateOriginal()
+    {
+        return getDateOriginal(null);
+    }
+
+    /**
+     * Parses the date/time tag and the subsecond tag to obtain a single Date object with milliseconds
+     * representing the date and time when this image was captured.  Attempts will be made to parse the
+     * values as though it is in the {@link TimeZone} represented by the {@code timeZone} parameter
+     * (if it is non-null).
+     *
+     * @param timeZone the time zone to use
+     * @return A Date object representing when this image was captured, if possible, otherwise null
+     */
+    @Nullable
+    public Date getDateOriginal(TimeZone timeZone)
+    {
+        return getDate(TAG_DATETIME_ORIGINAL, getString(TAG_SUBSECOND_TIME_ORIGINAL), timeZone);
+    }
+
+    /**
+     * Parses the date/time tag and the subsecond tag to obtain a single Date object with milliseconds
+     * representing the date and time when this image was digitized.  Attempts will be made to parse the
+     * values as though it is in the GMT {@link TimeZone}.
+     *
+     * @return A Date object representing when this image was digitized, if possible, otherwise null
+     */
+    @Nullable
+    public Date getDateDigitized()
+    {
+        return getDateDigitized(null);
+    }
+
+    /**
+     * Parses the date/time tag and the subsecond tag to obtain a single Date object with milliseconds
+     * representing the date and time when this image was digitized.  Attempts will be made to parse the
+     * values as though it is in the {@link TimeZone} represented by the {@code timeZone} parameter
+     * (if it is non-null).
+     *
+     * @param timeZone the time zone to use
+     * @return A Date object representing when this image was digitized, if possible, otherwise null
+     */
+    @Nullable
+    public Date getDateDigitized(TimeZone timeZone)
+    {
+        return getDate(TAG_DATETIME_DIGITIZED, getString(TAG_SUBSECOND_TIME_DIGITIZED), timeZone);
+    }
 }
diff --git a/src/com/drew/metadata/exif/ExifThumbnailDescriptor.java b/src/com/drew/metadata/exif/ExifThumbnailDescriptor.java
index cba06db..d8a88bb 100755
--- a/src/com/drew/metadata/exif/ExifThumbnailDescriptor.java
+++ b/src/com/drew/metadata/exif/ExifThumbnailDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -21,11 +21,12 @@
 
 package com.drew.metadata.exif;
 
+import static com.drew.metadata.exif.ExifThumbnailDirectory.TAG_THUMBNAIL_LENGTH;
+import static com.drew.metadata.exif.ExifThumbnailDirectory.TAG_THUMBNAIL_OFFSET;
+
 import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 
-import static com.drew.metadata.exif.ExifThumbnailDirectory.*;
-
 /**
  * Provides human-readable string representations of tag values stored in a {@link ExifThumbnailDirectory}.
  *
@@ -47,53 +48,12 @@ public class ExifThumbnailDescriptor extends ExifDescriptorBase<ExifThumbnailDir
                 return getThumbnailOffsetDescription();
             case TAG_THUMBNAIL_LENGTH:
                 return getThumbnailLengthDescription();
-            case TAG_THUMBNAIL_COMPRESSION:
-                return getCompressionDescription();
             default:
                 return super.getDescription(tagType);
         }
     }
 
     @Nullable
-    public String getCompressionDescription()
-    {
-        Integer value = _directory.getInteger(TAG_THUMBNAIL_COMPRESSION);
-        if (value == null)
-            return null;
-        switch (value) {
-            case 1: return "Uncompressed";
-            case 2: return "CCITT 1D";
-            case 3: return "T4/Group 3 Fax";
-            case 4: return "T6/Group 4 Fax";
-            case 5: return "LZW";
-            case 6: return "JPEG (old-style)";
-            case 7: return "JPEG";
-            case 8: return "Adobe Deflate";
-            case 9: return "JBIG B&W";
-            case 10: return "JBIG Color";
-            case 32766: return "Next";
-            case 32771: return "CCIRLEW";
-            case 32773: return "PackBits";
-            case 32809: return "Thunderscan";
-            case 32895: return "IT8CTPAD";
-            case 32896: return "IT8LW";
-            case 32897: return "IT8MP";
-            case 32898: return "IT8BL";
-            case 32908: return "PixarFilm";
-            case 32909: return "PixarLog";
-            case 32946: return "Deflate";
-            case 32947: return "DCS";
-            case 32661: return "JBIG";
-            case 32676: return "SGILog";
-            case 32677: return "SGILog24";
-            case 32712: return "JPEG 2000";
-            case 32713: return "Nikon NEF Compressed";
-            default:
-                return "Unknown compression";
-        }
-    }
-
-    @Nullable
     public String getThumbnailLengthDescription()
     {
         String value = _directory.getString(TAG_THUMBNAIL_LENGTH);
diff --git a/src/com/drew/metadata/exif/ExifThumbnailDirectory.java b/src/com/drew/metadata/exif/ExifThumbnailDirectory.java
index a73f005..82a45d2 100755
--- a/src/com/drew/metadata/exif/ExifThumbnailDirectory.java
+++ b/src/com/drew/metadata/exif/ExifThumbnailDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -21,14 +21,14 @@
 
 package com.drew.metadata.exif;
 
-import com.drew.lang.annotations.NotNull;
-import com.drew.lang.annotations.Nullable;
-import com.drew.metadata.MetadataException;
-
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.HashMap;
 
+import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
+import com.drew.metadata.MetadataException;
+
 /**
  * One of several Exif directories.  Otherwise known as IFD1, this directory holds information about an embedded thumbnail image.
  *
@@ -45,38 +45,6 @@ public class ExifThumbnailDirectory extends ExifDirectoryBase
      */
     public static final int TAG_THUMBNAIL_LENGTH = 0x0202;
 
-    /**
-     * Shows compression method for Thumbnail.
-     * 1 = Uncompressed
-     * 2 = CCITT 1D
-     * 3 = T4/Group 3 Fax
-     * 4 = T6/Group 4 Fax
-     * 5 = LZW
-     * 6 = JPEG (old-style)
-     * 7 = JPEG
-     * 8 = Adobe Deflate
-     * 9 = JBIG B&W
-     * 10 = JBIG Color
-     * 32766 = Next
-     * 32771 = CCIRLEW
-     * 32773 = PackBits
-     * 32809 = Thunderscan
-     * 32895 = IT8CTPAD
-     * 32896 = IT8LW
-     * 32897 = IT8MP
-     * 32898 = IT8BL
-     * 32908 = PixarFilm
-     * 32909 = PixarLog
-     * 32946 = Deflate
-     * 32947 = DCS
-     * 34661 = JBIG
-     * 34676 = SGILog
-     * 34677 = SGILog24
-     * 34712 = JPEG 2000
-     * 34713 = Nikon NEF Compressed
-     */
-    public static final int TAG_THUMBNAIL_COMPRESSION = 0x0103;
-
     @NotNull
     protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
 
@@ -84,7 +52,6 @@ public class ExifThumbnailDirectory extends ExifDirectoryBase
     {
         addExifTagNames(_tagNameMap);
 
-        _tagNameMap.put(TAG_THUMBNAIL_COMPRESSION, "Thumbnail Compression");
         _tagNameMap.put(TAG_THUMBNAIL_OFFSET, "Thumbnail Offset");
         _tagNameMap.put(TAG_THUMBNAIL_LENGTH, "Thumbnail Length");
     }
diff --git a/src/com/drew/metadata/exif/ExifTiffHandler.java b/src/com/drew/metadata/exif/ExifTiffHandler.java
index eab5feb..93b6b3b 100644
--- a/src/com/drew/metadata/exif/ExifTiffHandler.java
+++ b/src/com/drew/metadata/exif/ExifTiffHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -25,6 +25,7 @@ import com.drew.imaging.tiff.TiffReader;
 import com.drew.lang.RandomAccessReader;
 import com.drew.lang.SequentialByteArrayReader;
 import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.Directory;
 import com.drew.metadata.Metadata;
 import com.drew.metadata.exif.makernotes.*;
@@ -46,10 +47,13 @@ public class ExifTiffHandler extends DirectoryTiffHandler
 {
     private final boolean _storeThumbnailBytes;
 
-    public ExifTiffHandler(@NotNull Metadata metadata, boolean storeThumbnailBytes)
+    public ExifTiffHandler(@NotNull Metadata metadata, boolean storeThumbnailBytes, @Nullable Directory parentDirectory)
     {
         super(metadata, ExifIFD0Directory.class);
         _storeThumbnailBytes = storeThumbnailBytes;
+
+        if (parentDirectory != null)
+            _currentDirectory.setParent(parentDirectory);
     }
 
     public void setTiffMarker(int marker) throws TiffProcessingException
@@ -64,17 +68,42 @@ public class ExifTiffHandler extends DirectoryTiffHandler
         }
     }
 
-    public boolean isTagIfdPointer(int tagType)
+    public boolean tryEnterSubIfd(int tagId)
     {
-        if (tagType == ExifIFD0Directory.TAG_EXIF_SUB_IFD_OFFSET && _currentDirectory instanceof ExifIFD0Directory) {
+        if (tagId == ExifDirectoryBase.TAG_SUB_IFD_OFFSET) {
             pushDirectory(ExifSubIFDDirectory.class);
             return true;
-        } else if (tagType == ExifIFD0Directory.TAG_GPS_INFO_OFFSET && _currentDirectory instanceof ExifIFD0Directory) {
-            pushDirectory(GpsDirectory.class);
-            return true;
-        } else if (tagType == ExifSubIFDDirectory.TAG_INTEROP_OFFSET && _currentDirectory instanceof ExifSubIFDDirectory) {
-            pushDirectory(ExifInteropDirectory.class);
-            return true;
+        }
+
+        if (_currentDirectory instanceof ExifIFD0Directory) {
+            if (tagId == ExifIFD0Directory.TAG_EXIF_SUB_IFD_OFFSET) {
+                pushDirectory(ExifSubIFDDirectory.class);
+                return true;
+            }
+
+            if (tagId == ExifIFD0Directory.TAG_GPS_INFO_OFFSET) {
+                pushDirectory(GpsDirectory.class);
+                return true;
+            }
+        }
+
+        if (_currentDirectory instanceof ExifSubIFDDirectory) {
+            if (tagId == ExifSubIFDDirectory.TAG_INTEROP_OFFSET) {
+                pushDirectory(ExifInteropDirectory.class);
+                return true;
+            }
+        }
+
+        if (_currentDirectory instanceof OlympusMakernoteDirectory) {
+            if (tagId == OlympusMakernoteDirectory.TAG_EQUIPMENT) {
+                pushDirectory(OlympusEquipmentMakernoteDirectory.class);
+                return true;
+            }
+
+            if (tagId == OlympusMakernoteDirectory.TAG_CAMERA_SETTINGS) {
+                pushDirectory(OlympusCameraSettingsMakernoteDirectory.class);
+                return true;
+            }
         }
 
         return false;
@@ -97,6 +126,15 @@ public class ExifTiffHandler extends DirectoryTiffHandler
         return false;
     }
 
+    @Nullable
+    public Long tryCustomProcessFormat(final int tagId, final int formatCode, final long componentCount)
+    {
+        if (formatCode == 13)
+            return componentCount * 4;
+
+        return null;
+    }
+
     public boolean customProcessTag(final int tagOffset,
                                     final @NotNull Set<Integer> processedIfdOffsets,
                                     final int tiffHeaderOffset,
@@ -114,7 +152,7 @@ public class ExifTiffHandler extends DirectoryTiffHandler
             // NOTE Adobe sets type 4 for IPTC instead of 7
             if (reader.getInt8(tagOffset) == 0x1c) {
                 final byte[] iptcBytes = reader.getBytes(tagOffset, byteCount);
-                new IptcReader().extract(new SequentialByteArrayReader(iptcBytes), _metadata, iptcBytes.length);
+                new IptcReader().extract(new SequentialByteArrayReader(iptcBytes), _metadata, iptcBytes.length, _currentDirectory);
                 return true;
             }
             return false;
@@ -128,7 +166,7 @@ public class ExifTiffHandler extends DirectoryTiffHandler
         if (_storeThumbnailBytes) {
             // after the extraction process, if we have the correct tags, we may be able to store thumbnail information
             ExifThumbnailDirectory thumbnailDirectory = _metadata.getFirstDirectoryOfType(ExifThumbnailDirectory.class);
-            if (thumbnailDirectory != null && thumbnailDirectory.containsTag(ExifThumbnailDirectory.TAG_THUMBNAIL_COMPRESSION)) {
+            if (thumbnailDirectory != null && thumbnailDirectory.containsTag(ExifThumbnailDirectory.TAG_COMPRESSION)) {
                 Integer offset = thumbnailDirectory.getInteger(ExifThumbnailDirectory.TAG_THUMBNAIL_OFFSET);
                 Integer length = thumbnailDirectory.getInteger(ExifThumbnailDirectory.TAG_THUMBNAIL_LENGTH);
                 if (offset != null && length != null) {
@@ -163,15 +201,22 @@ public class ExifTiffHandler extends DirectoryTiffHandler
         final String firstSixChars = reader.getString(makernoteOffset, 6);
         final String firstSevenChars = reader.getString(makernoteOffset, 7);
         final String firstEightChars = reader.getString(makernoteOffset, 8);
+        final String firstTenChars = reader.getString(makernoteOffset, 10);
         final String firstTwelveChars = reader.getString(makernoteOffset, 12);
 
         boolean byteOrderBefore = reader.isMotorolaByteOrder();
 
-        if ("OLYMP".equals(firstFiveChars) || "EPSON".equals(firstFiveChars) || "AGFA".equals(firstFourChars)) {
+        if ("OLYMP\0".equals(firstSixChars) || "EPSON".equals(firstFiveChars) || "AGFA".equals(firstFourChars)) {
             // Olympus Makernote
             // Epson and Agfa use Olympus makernote standard: http://www.ozhiker.com/electronics/pjmt/jpeg_info/
             pushDirectory(OlympusMakernoteDirectory.class);
             TiffReader.processIfd(this, reader, processedIfdOffsets, makernoteOffset + 8, tiffHeaderOffset);
+        } else if ("OLYMPUS\0II".equals(firstTenChars)) {
+            // Olympus Makernote (alternate)
+            // Note that data is relative to the beginning of the makernote
+            // http://exiv2.org/makernote.html
+            pushDirectory(OlympusMakernoteDirectory.class);
+            TiffReader.processIfd(this, reader, processedIfdOffsets, makernoteOffset + 12, makernoteOffset);
         } else if (cameraMake != null && cameraMake.toUpperCase().startsWith("MINOLTA")) {
             // Cases seen with the model starting with MINOLTA in capitals seem to have a valid Olympus makernote
             // area that commences immediately.
diff --git a/src/com/drew/metadata/exif/GpsDescriptor.java b/src/com/drew/metadata/exif/GpsDescriptor.java
index a3173e2..403b19b 100644
--- a/src/com/drew/metadata/exif/GpsDescriptor.java
+++ b/src/com/drew/metadata/exif/GpsDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -109,7 +109,7 @@ public class GpsDescriptor extends TagDescriptor<GpsDirectory>
     {
         // time in hour, min, sec
         Rational[] timeComponents = _directory.getRationalArray(TAG_TIME_STAMP);
-        DecimalFormat df = new DecimalFormat("00.00");
+        DecimalFormat df = new DecimalFormat("00.000");
         return timeComponents == null
             ? null
             : String.format("%02d:%02d:%s UTC",
diff --git a/src/com/drew/metadata/exif/GpsDirectory.java b/src/com/drew/metadata/exif/GpsDirectory.java
index 755a171..e22a4f8 100644
--- a/src/com/drew/metadata/exif/GpsDirectory.java
+++ b/src/com/drew/metadata/exif/GpsDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -25,7 +25,12 @@ import com.drew.lang.Rational;
 import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
+import java.util.Locale;
 
 /**
  * Describes Exif tags that contain Global Positioning System (GPS) data.
@@ -163,10 +168,10 @@ public class GpsDirectory extends ExifDirectoryBase
     @Nullable
     public GeoLocation getGeoLocation()
     {
-        Rational[] latitudes = getRationalArray(GpsDirectory.TAG_LATITUDE);
-        Rational[] longitudes = getRationalArray(GpsDirectory.TAG_LONGITUDE);
-        String latitudeRef = getString(GpsDirectory.TAG_LATITUDE_REF);
-        String longitudeRef = getString(GpsDirectory.TAG_LONGITUDE_REF);
+        Rational[] latitudes = getRationalArray(TAG_LATITUDE);
+        Rational[] longitudes = getRationalArray(TAG_LONGITUDE);
+        String latitudeRef = getString(TAG_LATITUDE_REF);
+        String longitudeRef = getString(TAG_LONGITUDE_REF);
 
         // Make sure we have the required values
         if (latitudes == null || latitudes.length != 3)
@@ -185,4 +190,32 @@ public class GpsDirectory extends ExifDirectoryBase
 
         return new GeoLocation(lat, lon);
     }
+
+    /**
+     * Parses the date stamp tag and the time stamp tag to obtain a single Date object representing the
+     * date and time when this image was captured.
+     *
+     * @return A Date object representing when this image was captured, if possible, otherwise null
+     */
+    @Nullable
+    public Date getGpsDate()
+    {
+        String date = getString(TAG_DATE_STAMP);
+        Rational[] timeComponents = getRationalArray(TAG_TIME_STAMP);
+
+        // Make sure we have the required values
+        if (date == null)
+            return null;
+        if (timeComponents == null || timeComponents.length != 3)
+            return null;
+
+        String dateTime = String.format(Locale.US, "%s %02d:%02d:%02.3f UTC",
+            date, timeComponents[0].intValue(), timeComponents[1].intValue(), timeComponents[2].doubleValue());
+        try {
+            DateFormat parser = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss.S z");
+            return parser.parse(dateTime);
+        } catch (ParseException e) {
+            return null;
+        }
+    }
 }
diff --git a/src/com/drew/metadata/exif/makernotes/CanonMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/CanonMakernoteDescriptor.java
index ff40300..a53a393 100644
--- a/src/com/drew/metadata/exif/makernotes/CanonMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/CanonMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -24,6 +24,8 @@ import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.TagDescriptor;
 
+import java.text.DecimalFormat;
+
 import static com.drew.metadata.exif.makernotes.CanonMakernoteDirectory.*;
 
 /**
@@ -137,6 +139,7 @@ public class CanonMakernoteDescriptor extends TagDescriptor<CanonMakernoteDirect
     @Nullable
     public String getSerialNumberDescription()
     {
+        // http://www.ozhiker.com/electronics/pjmt/jpeg_info/canon_mn.html
         Integer value = _directory.getInteger(TAG_CANON_SERIAL_NUMBER);
         if (value == null)
             return null;
@@ -672,8 +675,8 @@ public class CanonMakernoteDescriptor extends TagDescriptor<CanonMakernoteDirect
         if (value == 0) {
             return "Self timer not used";
         } else {
-            // TODO find an image that tests this calculation
-            return Double.toString((double)value * 0.1d) + " sec";
+            DecimalFormat format = new DecimalFormat("0.##");
+            return format.format((double)value * 0.1d) + " sec";
         }
     }
 
diff --git a/src/com/drew/metadata/exif/makernotes/CanonMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/CanonMakernoteDirectory.java
index 6d31d9d..dd6f8d7 100644
--- a/src/com/drew/metadata/exif/makernotes/CanonMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/CanonMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDescriptor.java
index 148dd79..5b48f9d 100644
--- a/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -154,11 +154,7 @@ public class CasioType1MakernoteDescriptor extends TagDescriptor<CasioType1Maker
     public String getObjectDistanceDescription()
     {
         Integer value = _directory.getInteger(TAG_OBJECT_DISTANCE);
-
-        if (value == null)
-            return null;
-
-        return value + " mm";
+        return value == null ? null : getFocalLengthDescription(value);
     }
 
     @Nullable
diff --git a/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDirectory.java
index 2c4fe85..f52bc2d 100644
--- a/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/CasioType1MakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDescriptor.java
index 4a83f0b..b43e58d 100644
--- a/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -239,9 +239,7 @@ public class CasioType2MakernoteDescriptor extends TagDescriptor<CasioType2Maker
     public String getFocalLengthDescription()
     {
         Double value = _directory.getDoubleObject(TAG_FOCAL_LENGTH);
-        if (value == null)
-            return null;
-        return Double.toString(value / 10d) + " mm";
+        return value == null ? null : getFocalLengthDescription(value / 10d);
     }
 
     @Nullable
diff --git a/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDirectory.java
index 9648e33..2868e13 100644
--- a/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/CasioType2MakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDescriptor.java
index 7ae3bbb..cb6f92e 100644
--- a/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDirectory.java
index a5aa44e..bb9d0e9 100644
--- a/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/FujifilmMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/KodakMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/KodakMakernoteDescriptor.java
index 8f2c1aa..c670c4f 100644
--- a/src/com/drew/metadata/exif/makernotes/KodakMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/KodakMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/KodakMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/KodakMakernoteDirectory.java
index b60edc0..975d639 100644
--- a/src/com/drew/metadata/exif/makernotes/KodakMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/KodakMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDescriptor.java
index c5a2935..4b58723 100644
--- a/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDirectory.java
index 7139f9c..716a625 100644
--- a/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/KyoceraMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDescriptor.java
index 1fb494c..1969846 100644
--- a/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDirectory.java
index a2e6c38..d8533e8 100644
--- a/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/LeicaMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDescriptor.java
index 3df1370..55cc62c 100644
--- a/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDirectory.java
index ad7ac57..91b8ca7 100644
--- a/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/NikonType1MakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDescriptor.java
index a55a911..86e3268 100644
--- a/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -305,7 +305,7 @@ public class NikonType2MakernoteDescriptor extends TagDescriptor<NikonType2Maker
     private String getEVDescription(int tagType)
     {
         int[] values = _directory.getIntArray(tagType);
-        if (values == null)
+        if (values == null || values.length < 2)
             return null;
         if (values.length < 3 || values[2] == 0)
             return null;
@@ -328,14 +328,7 @@ public class NikonType2MakernoteDescriptor extends TagDescriptor<NikonType2Maker
     @Nullable
     public String getLensDescription()
     {
-        Rational[] values = _directory.getRationalArray(TAG_LENS);
-
-        return values == null
-            ? null
-            : values.length < 4
-                ? _directory.getString(TAG_LENS)
-                : String.format("%d-%dmm f/%.1f-%.1f", values[0].intValue(), values[1].intValue(), values[2].floatValue(), values[3].floatValue());
-
+        return getLensSpecificationDescription(TAG_LENS);
     }
 
     @Nullable
diff --git a/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDirectory.java
index 39249a1..299dce3 100644
--- a/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/NikonType2MakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/OlympusCameraSettingsMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/OlympusCameraSettingsMakernoteDescriptor.java
new file mode 100644
index 0000000..703fbd1
--- /dev/null
+++ b/src/com/drew/metadata/exif/makernotes/OlympusCameraSettingsMakernoteDescriptor.java
@@ -0,0 +1,1357 @@
+/*
+ * Copyright 2002-2015 Drew Noakes
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ *
+ * More information about this project is available at:
+ *
+ *    https://drewnoakes.com/code/exif/
+ *    https://github.com/drewnoakes/metadata-extractor
+ */
+package com.drew.metadata.exif.makernotes;
+
+import com.drew.lang.Rational;
+import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
+import com.drew.metadata.TagDescriptor;
+
+import java.text.DecimalFormat;
+import java.util.HashMap;
+
+import static com.drew.metadata.exif.makernotes.OlympusCameraSettingsMakernoteDirectory.*;
+
+/**
+ * Provides human-readable String representations of tag values stored in a {@link OlympusCameraSettingsMakernoteDirectory}.
+ * <p>
+ * Some Description functions and the Extender and Lens types lists converted from Exiftool version 10.10 created by Phil Harvey
+ * http://www.sno.phy.queensu.ca/~phil/exiftool/
+ * lib\Image\ExifTool\Olympus.pm
+ *
+ * @author Kevin Mott https://github.com/kwhopper
+ * @author Drew Noakes https://drewnoakes.com
+ */
+public class OlympusCameraSettingsMakernoteDescriptor extends TagDescriptor<OlympusCameraSettingsMakernoteDirectory>
+{
+    public OlympusCameraSettingsMakernoteDescriptor(@NotNull OlympusCameraSettingsMakernoteDirectory directory)
+    {
+        super(directory);
+    }
+
+    @Override
+    @Nullable
+    public String getDescription(int tagType)
+    {
+        switch (tagType) {
+            case TagCameraSettingsVersion:
+                return getCameraSettingsVersionDescription();
+            case TagPreviewImageValid:
+                return getPreviewImageValidDescription();
+
+            case TagExposureMode:
+                return getExposureModeDescription();
+            case TagAeLock:
+                return getAeLockDescription();
+            case TagMeteringMode:
+                return getMeteringModeDescription();
+            case TagExposureShift:
+                return getExposureShiftDescription();
+            case TagNdFilter:
+                return getNdFilterDescription();
+
+            case TagMacroMode:
+                return getMacroModeDescription();
+            case TagFocusMode:
+                return getFocusModeDescription();
+            case TagFocusProcess:
+                return getFocusProcessDescription();
+            case TagAfSearch:
+                return getAfSearchDescription();
+            case TagAfAreas:
+                return getAfAreasDescription();
+            case TagAfPointSelected:
+                return getAfPointSelectedDescription();
+            case TagAfFineTune:
+                return getAfFineTuneDescription();
+
+            case TagFlashMode:
+                return getFlashModeDescription();
+            case TagFlashRemoteControl:
+                return getFlashRemoteControlDescription();
+            case TagFlashControlMode:
+                return getFlashControlModeDescription();
+            case TagFlashIntensity:
+                return getFlashIntensityDescription();
+            case TagManualFlashStrength:
+                return getManualFlashStrengthDescription();
+
+            case TagWhiteBalance2:
+                return getWhiteBalance2Description();
+            case TagWhiteBalanceTemperature:
+                return getWhiteBalanceTemperatureDescription();
+            case TagCustomSaturation:
+                return getCustomSaturationDescription();
+            case TagModifiedSaturation:
+                return getModifiedSaturationDescription();
+            case TagContrastSetting:
+                return getContrastSettingDescription();
+            case TagSharpnessSetting:
+                return getSharpnessSettingDescription();
+            case TagColorSpace:
+                return getColorSpaceDescription();
+            case TagSceneMode:
+                return getSceneModeDescription();
+            case TagNoiseReduction:
+                return getNoiseReductionDescription();
+            case TagDistortionCorrection:
+                return getDistortionCorrectionDescription();
+            case TagShadingCompensation:
+                return getShadingCompensationDescription();
+            case TagGradation:
+                return getGradationDescription();
+            case TagPictureMode:
+                return getPictureModeDescription();
+            case TagPictureModeSaturation:
+                return getPictureModeSaturationDescription();
+            case TagPictureModeContrast:
+                return getPictureModeContrastDescription();
+            case TagPictureModeSharpness:
+                return getPictureModeSharpnessDescription();
+            case TagPictureModeBWFilter:
+                return getPictureModeBWFilterDescription();
+            case TagPictureModeTone:
+                return getPictureModeToneDescription();
+            case TagNoiseFilter:
+                return getNoiseFilterDescription();
+            case TagArtFilter:
+                return getArtFilterDescription();
+            case TagMagicFilter:
+                return getMagicFilterDescription();
+            case TagPictureModeEffect:
+                return getPictureModeEffectDescription();
+            case TagToneLevel:
+                return getToneLevelDescription();
+            case TagArtFilterEffect:
+                return getArtFilterEffectDescription();
+
+            case TagDriveMode:
+                return getDriveModeDescription();
+            case TagPanoramaMode:
+                return getPanoramaModeDescription();
+            case TagImageQuality2:
+                return getImageQuality2Description();
+            case TagImageStabilization:
+                return getImageStabilizationDescription();
+
+            case TagStackedImage:
+                return getStackedImageDescription();
+
+            case TagManometerPressure:
+                return getManometerPressureDescription();
+            case TagManometerReading:
+                return getManometerReadingDescription();
+            case TagExtendedWBDetect:
+                return getExtendedWBDetectDescription();
+            case TagRollAngle:
+                return getRollAngleDescription();
+            case TagPitchAngle:
+                return getPitchAngleDescription();
+            case TagDateTimeUtc:
+                return getDateTimeUTCDescription();
+
+            default:
+                return super.getDescription(tagType);
+        }
+    }
+
+    @Nullable
+    public String getCameraSettingsVersionDescription()
+    {
+        return getVersionBytesDescription(TagCameraSettingsVersion, 4);
+    }
+
+    @Nullable
+    public String getPreviewImageValidDescription()
+    {
+        return getIndexedDescription(TagPreviewImageValid,
+            "No", "Yes");
+    }
+
+    @Nullable
+    public String getExposureModeDescription()
+    {
+        return getIndexedDescription(TagExposureMode, 1,
+            "Manual", "Program", "Aperture-priority AE", "Shutter speed priority", "Program-shift");
+    }
+
+    @Nullable
+    public String getAeLockDescription()
+    {
+        return getIndexedDescription(TagAeLock,
+            "Off", "On");
+    }
+
+    @Nullable
+    public String getMeteringModeDescription()
+    {
+        Integer value = _directory.getInteger(TagMeteringMode);
+        if (value == null)
+            return null;
+
+        switch (value) {
+            case 2:
+                return "Center-weighted average";
+            case 3:
+                return "Spot";
+            case 5:
+                return "ESP";
+            case 261:
+                return "Pattern+AF";
+            case 515:
+                return "Spot+Highlight control";
+            case 1027:
+                return "Spot+Shadow control";
+            default:
+                return "Unknown (" + value + ")";
+        }
+    }
+
+    @Nullable
+    public String getExposureShiftDescription()
+    {
+        return getRationalOrDoubleString(TagExposureShift);
+    }
+
+    @Nullable
+    public String getNdFilterDescription()
+    {
+        return getIndexedDescription(TagNdFilter, "Off", "On");
+    }
+
+    @Nullable
+    public String getMacroModeDescription()
+    {
+        return getIndexedDescription(TagMacroMode, "Off", "On", "Super Macro");
+    }
+
+    @Nullable
+    public String getFocusModeDescription()
+    {
+        int[] values = _directory.getIntArray(TagFocusMode);
+        if (values == null) {
+            // check if it's only one value long also
+            Integer value = _directory.getInteger(TagFocusMode);
+            if (value == null)
+                return null;
+
+            values = new int[]{value};
+        }
+
+        if (values.length == 0)
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+        switch (values[0]) {
+            case 0:
+                sb.append("Single AF");
+                break;
+            case 1:
+                sb.append("Sequential shooting AF");
+                break;
+            case 2:
+                sb.append("Continuous AF");
+                break;
+            case 3:
+                sb.append("Multi AF");
+                break;
+            case 4:
+                sb.append("Face detect");
+                break;
+            case 10:
+                sb.append("MF");
+                break;
+            default:
+                sb.append("Unknown (" + values[0] + ")");
+                break;
+        }
+
+        if (values.length > 1) {
+            sb.append("; ");
+            int value1 = values[1];
+
+            if (value1 == 0) {
+                sb.append("(none)");
+            } else {
+                if (( value1       & 1) > 0) sb.append("S-AF, ");
+                if (((value1 >> 2) & 1) > 0) sb.append("C-AF, ");
+                if (((value1 >> 4) & 1) > 0) sb.append("MF, ");
+                if (((value1 >> 5) & 1) > 0) sb.append("Face detect, ");
+                if (((value1 >> 6) & 1) > 0) sb.append("Imager AF, ");
+                if (((value1 >> 7) & 1) > 0) sb.append("Live View Magnification Frame, ");
+                if (((value1 >> 8) & 1) > 0) sb.append("AF sensor, ");
+
+                sb.setLength(sb.length() - 2);
+            }
+        }
+
+        return sb.toString();
+    }
+
+    @Nullable
+    public String getFocusProcessDescription()
+    {
+        int[] values = _directory.getIntArray(TagFocusProcess);
+        if (values == null) {
+            // check if it's only one value long also
+            Integer value = _directory.getInteger(TagFocusProcess);
+            if (value == null)
+                return null;
+
+            values = new int[]{value};
+        }
+
+        if (values.length == 0)
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+
+        switch (values[0]) {
+            case 0:
+                sb.append("AF not used");
+                break;
+            case 1:
+                sb.append("AF used");
+                break;
+            default:
+                sb.append("Unknown (" + values[0] + ")");
+                break;
+        }
+
+        if (values.length > 1)
+            sb.append("; " + values[1]);
+
+        return sb.toString();
+    }
+
+    @Nullable
+    public String getAfSearchDescription()
+    {
+        return getIndexedDescription(TagAfSearch, "Not Ready", "Ready");
+    }
+
+    /// <summary>
+    /// coordinates range from 0 to 255
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getAfAreasDescription()
+    {
+        Object obj = _directory.getObject(TagAfAreas);
+        if (obj == null || !(obj instanceof long[]))
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+        for (long point : (long[]) obj) {
+            if (point == 0L)
+                continue;
+            if (sb.length() != 0)
+                sb.append(", ");
+
+            if (point == 0x36794285L)
+                sb.append("Left ");
+            else if (point == 0x79798585L)
+                sb.append("Center ");
+            else if (point == 0xBD79C985L)
+                sb.append("Right ");
+
+            sb.append(String.format("(%d/255,%d/255)-(%d/255,%d/255)",
+                (point >> 24) & 0xFF,
+                (point >> 16) & 0xFF,
+                (point >> 8) & 0xFF,
+                point & 0xFF));
+        }
+
+        return sb.length() == 0 ? null : sb.toString();
+    }
+
+    /// <summary>
+    /// coordinates expressed as a percent
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getAfPointSelectedDescription()
+    {
+        Rational[] values = _directory.getRationalArray(TagAfPointSelected);
+        if (values == null)
+            return "n/a";
+
+        if (values.length < 4)
+            return null;
+
+        int index = 0;
+        if (values.length == 5 && values[0].longValue() == 0)
+            index = 1;
+
+        int p1 = (int)(values[index].doubleValue() * 100);
+        int p2 = (int)(values[index + 1].doubleValue() * 100);
+        int p3 = (int)(values[index + 2].doubleValue() * 100);
+        int p4 = (int)(values[index + 3].doubleValue() * 100);
+
+        return String.format("(%d%%,%d%%) (%d%%,%d%%)", p1, p2, p3, p4);
+
+    }
+
+    @Nullable
+    public String getAfFineTuneDescription()
+    {
+        return getIndexedDescription(TagAfFineTune, "Off", "On");
+    }
+
+    @Nullable
+    public String getFlashModeDescription()
+    {
+        Integer value = _directory.getInteger(TagFlashMode);
+        if (value == null)
+            return null;
+
+        if (value == 0)
+            return "Off";
+
+        StringBuilder sb = new StringBuilder();
+        int v = value;
+
+        if (( v       & 1) != 0) sb.append("On, ");
+        if (((v >> 1) & 1) != 0) sb.append("Fill-in, ");
+        if (((v >> 2) & 1) != 0) sb.append("Red-eye, ");
+        if (((v >> 3) & 1) != 0) sb.append("Slow-sync, ");
+        if (((v >> 4) & 1) != 0) sb.append("Forced On, ");
+        if (((v >> 5) & 1) != 0) sb.append("2nd Curtain, ");
+
+        return sb.substring(0, sb.length() - 2);
+    }
+
+    @Nullable
+    public String getFlashRemoteControlDescription()
+    {
+        Integer value = _directory.getInteger(TagFlashRemoteControl);
+        if (value == null)
+            return null;
+
+        switch (value) {
+            case 0:
+                return "Off";
+            case 0x01:
+                return "Channel 1, Low";
+            case 0x02:
+                return "Channel 2, Low";
+            case 0x03:
+                return "Channel 3, Low";
+            case 0x04:
+                return "Channel 4, Low";
+            case 0x09:
+                return "Channel 1, Mid";
+            case 0x0a:
+                return "Channel 2, Mid";
+            case 0x0b:
+                return "Channel 3, Mid";
+            case 0x0c:
+                return "Channel 4, Mid";
+            case 0x11:
+                return "Channel 1, High";
+            case 0x12:
+                return "Channel 2, High";
+            case 0x13:
+                return "Channel 3, High";
+            case 0x14:
+                return "Channel 4, High";
+
+            default:
+                return "Unknown (" + value + ")";
+        }
+    }
+
+    /// <summary>
+    /// 3 or 4 values
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getFlashControlModeDescription()
+    {
+        int[] values = _directory.getIntArray(TagFlashControlMode);
+        if (values == null)
+            return null;
+
+        if (values.length == 0)
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+
+        switch (values[0]) {
+            case 0:
+                sb.append("Off");
+                break;
+            case 3:
+                sb.append("TTL");
+                break;
+            case 4:
+                sb.append("Auto");
+                break;
+            case 5:
+                sb.append("Manual");
+                break;
+            default:
+                sb.append("Unknown (").append(values[0]).append(")");
+                break;
+        }
+
+        for (int i = 1; i < values.length; i++)
+            sb.append("; ").append(values[i]);
+
+        return sb.toString();
+    }
+
+    /// <summary>
+    /// 3 or 4 values
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getFlashIntensityDescription()
+    {
+        Rational[] values = _directory.getRationalArray(TagFlashIntensity);
+        if (values == null || values.length == 0)
+            return null;
+
+        if (values.length == 3) {
+            if (values[0].getDenominator() == 0 && values[1].getDenominator() == 0 && values[2].getDenominator() == 0)
+                return "n/a";
+        } else if (values.length == 4) {
+            if (values[0].getDenominator() == 0 && values[1].getDenominator() == 0 && values[2].getDenominator() == 0 && values[3].getDenominator() == 0)
+                return "n/a (x4)";
+        }
+
+        StringBuilder sb = new StringBuilder();
+        for (Rational t : values)
+            sb.append(t).append(", ");
+
+        return sb.substring(0, sb.length() - 2);
+    }
+
+    @Nullable
+    public String getManualFlashStrengthDescription()
+    {
+        Rational[] values = _directory.getRationalArray(TagManualFlashStrength);
+        if (values == null || values.length == 0)
+            return "n/a";
+
+        if (values.length == 3) {
+            if (values[0].getDenominator() == 0 && values[1].getDenominator() == 0 && values[2].getDenominator() == 0)
+                return "n/a";
+        } else if (values.length == 4) {
+            if (values[0].getDenominator() == 0 && values[1].getDenominator() == 0 && values[2].getDenominator() == 0 && values[3].getDenominator() == 0)
+                return "n/a (x4)";
+        }
+
+        StringBuilder sb = new StringBuilder();
+        for (Rational t : values)
+            sb.append(t).append(", ");
+
+        return sb.substring(0, sb.length() - 2);
+    }
+
+    @Nullable
+    public String getWhiteBalance2Description()
+    {
+        Integer value = _directory.getInteger(TagWhiteBalance2);
+        if (value == null)
+            return null;
+
+        switch (value) {
+            case 0:
+                return "Auto";
+            case 1:
+                return "Auto (Keep Warm Color Off)";
+            case 16:
+                return "7500K (Fine Weather with Shade)";
+            case 17:
+                return "6000K (Cloudy)";
+            case 18:
+                return "5300K (Fine Weather)";
+            case 20:
+                return "3000K (Tungsten light)";
+            case 21:
+                return "3600K (Tungsten light-like)";
+            case 22:
+                return "Auto Setup";
+            case 23:
+                return "5500K (Flash)";
+            case 33:
+                return "6600K (Daylight fluorescent)";
+            case 34:
+                return "4500K (Neutral white fluorescent)";
+            case 35:
+                return "4000K (Cool white fluorescent)";
+            case 36:
+                return "White Fluorescent";
+            case 48:
+                return "3600K (Tungsten light-like)";
+            case 67:
+                return "Underwater";
+            case 256:
+                return "One Touch WB 1";
+            case 257:
+                return "One Touch WB 2";
+            case 258:
+                return "One Touch WB 3";
+            case 259:
+                return "One Touch WB 4";
+            case 512:
+                return "Custom WB 1";
+            case 513:
+                return "Custom WB 2";
+            case 514:
+                return "Custom WB 3";
+            case 515:
+                return "Custom WB 4";
+            default:
+                return "Unknown (" + value + ")";
+        }
+    }
+
+    @Nullable
+    public String getWhiteBalanceTemperatureDescription()
+    {
+        Integer value = _directory.getInteger(TagWhiteBalanceTemperature);
+        if (value == null)
+            return null;
+        if (value == 0)
+            return "Auto";
+        return value.toString();
+    }
+
+    @Nullable
+    public String getCustomSaturationDescription()
+    {
+        // TODO: if model is /^E-1\b/  then
+        // $a-=$b; $c-=$b;
+        // return "CS$a (min CS0, max CS$c)"
+        return getValueMinMaxDescription(TagCustomSaturation);
+    }
+
+    @Nullable
+    public String getModifiedSaturationDescription()
+    {
+        return getIndexedDescription(TagModifiedSaturation,
+            "Off", "CM1 (Red Enhance)", "CM2 (Green Enhance)", "CM3 (Blue Enhance)", "CM4 (Skin Tones)");
+    }
+
+    @Nullable
+    public String getContrastSettingDescription()
+    {
+        return getValueMinMaxDescription(TagContrastSetting);
+    }
+
+    @Nullable
+    public String getSharpnessSettingDescription()
+    {
+        return getValueMinMaxDescription(TagSharpnessSetting);
+    }
+
+    @Nullable
+    public String getColorSpaceDescription()
+    {
+        return getIndexedDescription(TagColorSpace,
+            "sRGB", "Adobe RGB", "Pro Photo RGB");
+    }
+
+    @Nullable
+    public String getSceneModeDescription()
+    {
+        Integer value = _directory.getInteger(TagSceneMode);
+        if (value == null)
+            return null;
+
+        switch (value) {
+            case 0:
+                return "Standard";
+            case 6:
+                return "Auto";
+            case 7:
+                return "Sport";
+            case 8:
+                return "Portrait";
+            case 9:
+                return "Landscape+Portrait";
+            case 10:
+                return "Landscape";
+            case 11:
+                return "Night Scene";
+            case 12:
+                return "Self Portrait";
+            case 13:
+                return "Panorama";
+            case 14:
+                return "2 in 1";
+            case 15:
+                return "Movie";
+            case 16:
+                return "Landscape+Portrait";
+            case 17:
+                return "Night+Portrait";
+            case 18:
+                return "Indoor";
+            case 19:
+                return "Fireworks";
+            case 20:
+                return "Sunset";
+            case 21:
+                return "Beauty Skin";
+            case 22:
+                return "Macro";
+            case 23:
+                return "Super Macro";
+            case 24:
+                return "Food";
+            case 25:
+                return "Documents";
+            case 26:
+                return "Museum";
+            case 27:
+                return "Shoot & Select";
+            case 28:
+                return "Beach & Snow";
+            case 29:
+                return "Self Portrait+Timer";
+            case 30:
+                return "Candle";
+            case 31:
+                return "Available Light";
+            case 32:
+                return "Behind Glass";
+            case 33:
+                return "My Mode";
+            case 34:
+                return "Pet";
+            case 35:
+                return "Underwater Wide1";
+            case 36:
+                return "Underwater Macro";
+            case 37:
+                return "Shoot & Select1";
+            case 38:
+                return "Shoot & Select2";
+            case 39:
+                return "High Key";
+            case 40:
+                return "Digital Image Stabilization";
+            case 41:
+                return "Auction";
+            case 42:
+                return "Beach";
+            case 43:
+                return "Snow";
+            case 44:
+                return "Underwater Wide2";
+            case 45:
+                return "Low Key";
+            case 46:
+                return "Children";
+            case 47:
+                return "Vivid";
+            case 48:
+                return "Nature Macro";
+            case 49:
+                return "Underwater Snapshot";
+            case 50:
+                return "Shooting Guide";
+            case 54:
+                return "Face Portrait";
+            case 57:
+                return "Bulb";
+            case 59:
+                return "Smile Shot";
+            case 60:
+                return "Quick Shutter";
+            case 63:
+                return "Slow Shutter";
+            case 64:
+                return "Bird Watching";
+            case 65:
+                return "Multiple Exposure";
+            case 66:
+                return "e-Portrait";
+            case 67:
+                return "Soft Background Shot";
+            case 142:
+                return "Hand-held Starlight";
+            case 154:
+                return "HDR";
+            default:
+                return "Unknown (" + value + ")";
+        }
+    }
+
+    @Nullable
+    public String getNoiseReductionDescription()
+    {
+        Integer value = _directory.getInteger(TagNoiseReduction);
+        if (value == null)
+            return null;
+
+        if (value == 0)
+            return "(none)";
+
+        StringBuilder sb = new StringBuilder();
+        int v = value;
+
+        if ((v & 1) != 0) sb.append("Noise Reduction, ");
+        if (((v >> 1) & 1) != 0) sb.append("Noise Filter, ");
+        if (((v >> 2) & 1) != 0) sb.append("Noise Filter (ISO Boost), ");
+        if (((v >> 3) & 1) != 0) sb.append("Auto, ");
+
+        return sb.length() != 0
+            ? sb.substring(0, sb.length() - 2)
+            : "(none)";
+    }
+
+    @Nullable
+    public String getDistortionCorrectionDescription()
+    {
+        return getIndexedDescription(TagDistortionCorrection, "Off", "On");
+    }
+
+    @Nullable
+    public String getShadingCompensationDescription()
+    {
+        return getIndexedDescription(TagShadingCompensation, "Off", "On");
+    }
+
+    /// <summary>
+    /// 3 or 4 values
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getGradationDescription()
+    {
+        int[] values = _directory.getIntArray(TagGradation);
+        if (values == null || values.length < 3)
+            return null;
+
+        String join = String.format("%d %d %d", values[0], values[1], values[2]);
+
+        String ret;
+        if (join.equals("0 0 0")) {
+            ret = "n/a";
+        } else if (join.equals("-1 -1 1")) {
+            ret = "Low Key";
+        } else if (join.equals("0 -1 1")) {
+            ret = "Normal";
+        } else if (join.equals("1 -1 1")) {
+            ret = "High Key";
+        } else {
+            ret = "Unknown (" + join + ")";
+        }
+
+        if (values.length > 3) {
+            if (values[3] == 0)
+                ret += "; User-Selected";
+            else if (values[3] == 1)
+                ret += "; Auto-Override";
+        }
+
+        return ret;
+    }
+
+    /// <summary>
+    /// 1 or 2 values
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getPictureModeDescription()
+    {
+        int[] values = _directory.getIntArray(TagPictureMode);
+        if (values == null) {
+            // check if it's only one value long also
+            Integer value = _directory.getInteger(TagNoiseReduction);
+            if (value == null)
+                return null;
+
+            values = new int[]{value};
+        }
+
+        if (values.length == 0)
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+        switch (values[0]) {
+            case 1:
+                sb.append("Vivid");
+                break;
+            case 2:
+                sb.append("Natural");
+                break;
+            case 3:
+                sb.append("Muted");
+                break;
+            case 4:
+                sb.append("Portrait");
+                break;
+            case 5:
+                sb.append("i-Enhance");
+                break;
+            case 256:
+                sb.append("Monotone");
+                break;
+            case 512:
+                sb.append("Sepia");
+                break;
+            default:
+                sb.append("Unknown (").append(values[0]).append(")");
+                break;
+        }
+
+        if (values.length > 1)
+            sb.append("; ").append(values[1]);
+
+        return sb.toString();
+    }
+
+    @Nullable
+    public String getPictureModeSaturationDescription()
+    {
+        return getValueMinMaxDescription(TagPictureModeSaturation);
+    }
+
+    @Nullable
+    public String getPictureModeContrastDescription()
+    {
+        return getValueMinMaxDescription(TagPictureModeContrast);
+    }
+
+    @Nullable
+    public String getPictureModeSharpnessDescription()
+    {
+        return getValueMinMaxDescription(TagPictureModeSharpness);
+    }
+
+    @Nullable
+    public String getPictureModeBWFilterDescription()
+    {
+        return getIndexedDescription(TagPictureModeBWFilter,
+            "n/a", "Neutral", "Yellow", "Orange", "Red", "Green");
+    }
+
+    @Nullable
+    public String getPictureModeToneDescription()
+    {
+        return getIndexedDescription(TagPictureModeTone,
+            "n/a", "Neutral", "Sepia", "Blue", "Purple", "Green");
+    }
+
+    @Nullable
+    public String getNoiseFilterDescription()
+    {
+        int[] values = _directory.getIntArray(TagNoiseFilter);
+        if (values == null)
+            return null;
+
+        String join = String.format("%d %d %d", values[0], values[1], values[2]);
+
+        if (join.equals("0 0 0"))
+            return "n/a";
+        if (join.equals("-2 -2 1"))
+            return "Off";
+        if (join.equals("-1 -2 1"))
+            return "Low";
+        if (join.equals("0 -2 1"))
+            return "Standard";
+        if (join.equals("1 -2 1"))
+            return "High";
+        return "Unknown (" + join + ")";
+    }
+
+    @Nullable
+    public String getArtFilterDescription()
+    {
+        return getFiltersDescription(TagArtFilter);
+    }
+
+    @Nullable
+    public String getMagicFilterDescription()
+    {
+        return getFiltersDescription(TagMagicFilter);
+    }
+
+    @Nullable
+    public String getPictureModeEffectDescription()
+    {
+        int[] values = _directory.getIntArray(TagPictureModeEffect);
+        if (values == null)
+            return null;
+
+        String key = String.format("%d %d %d", values[0], values[1], values[2]);
+        if (key.equals("0 0 0"))
+            return "n/a";
+        if (key.equals("-1 -1 1"))
+            return "Low";
+        if (key.equals("0 -1 1"))
+            return "Standard";
+        if (key.equals("1 -1 1"))
+            return "High";
+        return "Unknown (" + key + ")";
+    }
+
+    @Nullable
+    public String getToneLevelDescription()
+    {
+        int[] values = _directory.getIntArray(TagToneLevel);
+        if (values == null || values.length == 0)
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < values.length; i++) {
+            if (i == 1)
+                sb.append("Highlights ");
+            else if (i == 5)
+                sb.append("Shadows ");
+
+            sb.append(values[i]).append("; ");
+        }
+
+        return sb.substring(0, sb.length() - 2);
+    }
+
+    @Nullable
+    public String getArtFilterEffectDescription()
+    {
+        int[] values = _directory.getIntArray(TagArtFilterEffect);
+        if (values == null || values.length == 0)
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < values.length; i++) {
+            if (i == 0) {
+                sb.append((_filters.containsKey(values[i]) ? _filters.get(values[i]) : "[unknown]"));
+            } else if (i == 4) {
+                switch (values[i]) {
+                    case 0x0000:
+                        sb.append("No Effect");
+                        break;
+                    case 0x8010:
+                        sb.append("Star Light");
+                        break;
+                    case 0x8020:
+                        sb.append("Pin Hole");
+                        break;
+                    case 0x8030:
+                        sb.append("Frame");
+                        break;
+                    case 0x8040:
+                        sb.append("Soft Focus");
+                        break;
+                    case 0x8050:
+                        sb.append("White Edge");
+                        break;
+                    case 0x8060:
+                        sb.append("B&W");
+                        break;
+                    default:
+                        sb.append("Unknown (").append(values[i]).append(")");
+                        break;
+                }
+            } else {
+                sb.append(values[i]);
+            }
+            sb.append("; ");
+        }
+
+        return sb.substring(0, sb.length() - 2);
+    }
+
+    /// <summary>
+    /// 2 or 3 numbers: 1. Mode, 2. Shot number, 3. Mode bits
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getDriveModeDescription()
+    {
+        int[] values = _directory.getIntArray(TagDriveMode);
+        if (values == null)
+            return null;
+
+        if (values.length == 0 || values[0] == 0)
+            return "Single Shot";
+
+        StringBuilder a = new StringBuilder();
+
+        if (values[0] == 5 && values.length >= 3) {
+            int c = values[2];
+            if (( c       & 1) > 0) a.append("AE");
+            if (((c >> 1) & 1) > 0) a.append("WB");
+            if (((c >> 2) & 1) > 0) a.append("FL");
+            if (((c >> 3) & 1) > 0) a.append("MF");
+            if (((c >> 6) & 1) > 0) a.append("Focus");
+
+            a.append(" Bracketing");
+        } else {
+            switch (values[0]) {
+                case 1:
+                    a.append("Continuous Shooting");
+                    break;
+                case 2:
+                    a.append("Exposure Bracketing");
+                    break;
+                case 3:
+                    a.append("White Balance Bracketing");
+                    break;
+                case 4:
+                    a.append("Exposure+WB Bracketing");
+                    break;
+                default:
+                    a.append("Unknown (").append(values[0]).append(")");
+                    break;
+            }
+        }
+
+        a.append(", Shot ").append(values[1]);
+
+        return a.toString();
+    }
+
+    /// <summary>
+    /// 2 numbers: 1. Mode, 2. Shot number
+    /// </summary>
+    /// <returns></returns>
+    @Nullable
+    public String getPanoramaModeDescription()
+    {
+        int[] values = _directory.getIntArray(TagPanoramaMode);
+        if (values == null)
+            return null;
+
+        if (values.length == 0 || values[0] == 0)
+            return "Off";
+
+        String a;
+        switch (values[0]) {
+            case 1:
+                a = "Left to Right";
+                break;
+            case 2:
+                a = "Right to Left";
+                break;
+            case 3:
+                a = "Bottom to Top";
+                break;
+            case 4:
+                a = "Top to Bottom";
+                break;
+            default:
+                a = "Unknown (" + values[0] + ")";
+                break;
+        }
+
+        return String.format("%s, Shot %d", a, values[1]);
+    }
+
+    @Nullable
+    public String getImageQuality2Description()
+    {
+        return getIndexedDescription(TagImageQuality2, 1,
+            "SQ", "HQ", "SHQ", "RAW", "SQ (5)");
+    }
+
+    @Nullable
+    public String getImageStabilizationDescription()
+    {
+        return getIndexedDescription(TagImageStabilization,
+            "Off", "On, Mode 1", "On, Mode 2", "On, Mode 3", "On, Mode 4");
+    }
+
+    @Nullable
+    public String getStackedImageDescription()
+    {
+        int[] values = _directory.getIntArray(TagStackedImage);
+        if (values == null || values.length < 2)
+            return null;
+
+        int v1 = values[0];
+        int v2 = values[1];
+
+        if (v1 == 0 && v2 == 0)
+            return "No";
+        if (v1 == 9 && v2 == 8)
+            return "Focus-stacked (8 images)";
+
+        return String.format("Unknown (%d %d)", v1, v2);
+    }
+
+    /// <remarks>
+    /// TODO: need better image examples to test this function
+    /// </remarks>
+    /// <returns></returns>
+    @Nullable
+    public String getManometerPressureDescription()
+    {
+        Integer value = _directory.getInteger(TagManometerPressure);
+        if (value == null)
+            return null;
+
+        return String.format("%s kPa", new DecimalFormat("#.##").format(value / 10.0));
+    }
+
+    /// <remarks>
+    /// TODO: need better image examples to test this function
+    /// </remarks>
+    /// <returns></returns>
+    @Nullable
+    public String getManometerReadingDescription()
+    {
+        int[] values = _directory.getIntArray(TagManometerReading);
+        if (values == null || values.length < 2)
+            return null;
+
+        DecimalFormat format = new DecimalFormat("#.##");
+        return String.format("%s m, %s ft",
+            format.format(values[0] / 10.0),
+            format.format(values[1] / 10.0));
+    }
+
+    @Nullable
+    public String getExtendedWBDetectDescription()
+    {
+        return getIndexedDescription(TagExtendedWBDetect, "Off", "On");
+    }
+
+    /// <summary>
+    /// converted to degrees of clockwise camera rotation
+    /// </summary>
+    /// <remarks>
+    /// TODO: need better image examples to test this function
+    /// </remarks>
+    /// <returns></returns>
+    @Nullable
+    public String getRollAngleDescription()
+    {
+        int[] values = _directory.getIntArray(TagRollAngle);
+        if (values == null || values.length < 2)
+            return null;
+
+        String ret = values[0] != 0
+            ? Double.toString(-values[0] / 10.0)
+            : "n/a";
+
+        return String.format("%s %d", ret, values[1]);
+    }
+
+    /// <summary>
+    /// converted to degrees of upward camera tilt
+    /// </summary>
+    /// <remarks>
+    /// TODO: need better image examples to test this function
+    /// </remarks>
+    /// <returns></returns>
+    @Nullable
+    public String getPitchAngleDescription()
+    {
+        int[] values = _directory.getIntArray(TagPitchAngle);
+        if (values == null || values.length < 2)
+            return null;
+
+        // (second value is 0 if level gauge is off)
+        String ret = values[0] != 0
+            ? Double.toString(values[0] / 10.0)
+            : "n/a";
+
+        return String.format("%s %d", ret, values[1]);
+    }
+
+    @Nullable
+    public String getDateTimeUTCDescription()
+    {
+        Object value = _directory.getObject(TagDateTimeUtc);
+        if (value == null)
+            return null;
+        return value.toString();
+    }
+
+    @Nullable
+    private String getValueMinMaxDescription(int tagId)
+    {
+        int[] values = _directory.getIntArray(tagId);
+        if (values == null || values.length < 3)
+            return null;
+
+        return String.format("%d (min %d, max %d)", values[0], values[1], values[2]);
+    }
+
+    private String getFiltersDescription(int tagId)
+    {
+        int[] values = _directory.getIntArray(tagId);
+        if (values == null || values.length == 0)
+            return null;
+
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < values.length; i++) {
+            if (i == 0)
+                sb.append(_filters.containsKey(values[i]) ? _filters.get(values[i]) : "[unknown]");
+            else
+                sb.append(values[i]);
+            sb.append("; ");
+        }
+
+        return sb.substring(0, sb.length() - 2);
+    }
+
+    // ArtFilter, ArtFilterEffect and MagicFilter values
+    private static final HashMap<Integer, String> _filters = new HashMap<Integer, String>();
+
+    static {
+        _filters.put(0, "Off");
+        _filters.put(1, "Soft Focus");
+        _filters.put(2, "Pop Art");
+        _filters.put(3, "Pale & Light Color");
+        _filters.put(4, "Light Tone");
+        _filters.put(5, "Pin Hole");
+        _filters.put(6, "Grainy Film");
+        _filters.put(9, "Diorama");
+        _filters.put(10, "Cross Process");
+        _filters.put(12, "Fish Eye");
+        _filters.put(13, "Drawing");
+        _filters.put(14, "Gentle Sepia");
+        _filters.put(15, "Pale & Light Color II");
+        _filters.put(16, "Pop Art II");
+        _filters.put(17, "Pin Hole II");
+        _filters.put(18, "Pin Hole III");
+        _filters.put(19, "Grainy Film II");
+        _filters.put(20, "Dramatic Tone");
+        _filters.put(21, "Punk");
+        _filters.put(22, "Soft Focus 2");
+        _filters.put(23, "Sparkle");
+        _filters.put(24, "Watercolor");
+        _filters.put(25, "Key Line");
+        _filters.put(26, "Key Line II");
+        _filters.put(27, "Miniature");
+        _filters.put(28, "Reflection");
+        _filters.put(29, "Fragmented");
+        _filters.put(31, "Cross Process II");
+        _filters.put(32, "Dramatic Tone II");
+        _filters.put(33, "Watercolor I");
+        _filters.put(34, "Watercolor II");
+        _filters.put(35, "Diorama II");
+        _filters.put(36, "Vintage");
+        _filters.put(37, "Vintage II");
+        _filters.put(38, "Vintage III");
+        _filters.put(39, "Partial Color");
+        _filters.put(40, "Partial Color II");
+        _filters.put(41, "Partial Color III");
+    }
+}
diff --git a/src/com/drew/metadata/exif/makernotes/OlympusCameraSettingsMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/OlympusCameraSettingsMakernoteDirectory.java
new file mode 100644
index 0000000..26514bf
--- /dev/null
+++ b/src/com/drew/metadata/exif/makernotes/OlympusCameraSettingsMakernoteDirectory.java
@@ -0,0 +1,198 @@
+/*
+ * Copyright 2002-2015 Drew Noakes
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ *
+ * More information about this project is available at:
+ *
+ *    https://drewnoakes.com/code/exif/
+ *    https://github.com/drewnoakes/metadata-extractor
+ */
+package com.drew.metadata.exif.makernotes;
+
+import com.drew.lang.annotations.NotNull;
+import com.drew.metadata.Directory;
+
+import java.util.HashMap;
+
+/**
+ * The Olympus camera settings makernote is used by many manufacturers (Epson, Konica, Minolta and Agfa...), and as such contains some tags
+ * that appear specific to those manufacturers.
+ *
+ * @author Kevin Mott https://github.com/kwhopper
+ * @author Drew Noakes https://drewnoakes.com
+ */
+public class OlympusCameraSettingsMakernoteDirectory extends Directory
+{
+    public static final int TagCameraSettingsVersion = 0x0000;
+    public static final int TagPreviewImageValid = 0x0100;
+    public static final int TagPreviewImageStart = 0x0101;
+    public static final int TagPreviewImageLength = 0x0102;
+
+    public static final int TagExposureMode = 0x0200;
+    public static final int TagAeLock = 0x0201;
+    public static final int TagMeteringMode = 0x0202;
+    public static final int TagExposureShift = 0x0203;
+    public static final int TagNdFilter = 0x0204;
+
+    public static final int TagMacroMode = 0x0300;
+    public static final int TagFocusMode = 0x0301;
+    public static final int TagFocusProcess = 0x0302;
+    public static final int TagAfSearch = 0x0303;
+    public static final int TagAfAreas = 0x0304;
+    public static final int TagAfPointSelected = 0x0305;
+    public static final int TagAfFineTune = 0x0306;
+    public static final int TagAfFineTuneAdj = 0x0307;
+
+    public static final int TagFlashMode = 0x400;
+    public static final int TagFlashExposureComp = 0x401;
+    public static final int TagFlashRemoteControl = 0x403;
+    public static final int TagFlashControlMode = 0x404;
+    public static final int TagFlashIntensity = 0x405;
+    public static final int TagManualFlashStrength = 0x406;
+
+    public static final int TagWhiteBalance2 = 0x500;
+    public static final int TagWhiteBalanceTemperature = 0x501;
+    public static final int TagWhiteBalanceBracket = 0x502;
+    public static final int TagCustomSaturation = 0x503;
+    public static final int TagModifiedSaturation = 0x504;
+    public static final int TagContrastSetting = 0x505;
+    public static final int TagSharpnessSetting = 0x506;
+    public static final int TagColorSpace = 0x507;
+    public static final int TagSceneMode = 0x509;
+    public static final int TagNoiseReduction = 0x50a;
+    public static final int TagDistortionCorrection = 0x50b;
+    public static final int TagShadingCompensation = 0x50c;
+    public static final int TagCompressionFactor = 0x50d;
+    public static final int TagGradation = 0x50f;
+    public static final int TagPictureMode = 0x520;
+    public static final int TagPictureModeSaturation = 0x521;
+    public static final int TagPictureModeHue = 0x522;
+    public static final int TagPictureModeContrast = 0x523;
+    public static final int TagPictureModeSharpness = 0x524;
+    public static final int TagPictureModeBWFilter = 0x525;
+    public static final int TagPictureModeTone = 0x526;
+    public static final int TagNoiseFilter = 0x527;
+    public static final int TagArtFilter = 0x529;
+    public static final int TagMagicFilter = 0x52c;
+    public static final int TagPictureModeEffect = 0x52d;
+    public static final int TagToneLevel = 0x52e;
+    public static final int TagArtFilterEffect = 0x52f;
+
+    public static final int TagDriveMode = 0x600;
+    public static final int TagPanoramaMode = 0x601;
+    public static final int TagImageQuality2 = 0x603;
+    public static final int TagImageStabilization = 0x604;
+
+    public static final int TagStackedImage = 0x804;
+
+    public static final int TagManometerPressure = 0x900;
+    public static final int TagManometerReading = 0x901;
+    public static final int TagExtendedWBDetect = 0x902;
+    public static final int TagRollAngle = 0x903;
+    public static final int TagPitchAngle = 0x904;
+    public static final int TagDateTimeUtc = 0x908;
+
+    @NotNull
+    protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
+
+    static {
+        _tagNameMap.put(TagCameraSettingsVersion, "Camera Settings Version");
+        _tagNameMap.put(TagPreviewImageValid, "Preview Image Valid");
+        _tagNameMap.put(TagPreviewImageStart, "Preview Image Start");
+        _tagNameMap.put(TagPreviewImageLength, "Preview Image Length");
+
+        _tagNameMap.put(TagExposureMode, "Exposure Mode");
+        _tagNameMap.put(TagAeLock, "AE Lock");
+        _tagNameMap.put(TagMeteringMode, "Metering Mode");
+        _tagNameMap.put(TagExposureShift, "Exposure Shift");
+        _tagNameMap.put(TagNdFilter, "ND Filter");
+
+        _tagNameMap.put(TagMacroMode, "Macro Mode");
+        _tagNameMap.put(TagFocusMode, "Focus Mode");
+        _tagNameMap.put(TagFocusProcess, "Focus Process");
+        _tagNameMap.put(TagAfSearch, "AF Search");
+        _tagNameMap.put(TagAfAreas, "AF Areas");
+        _tagNameMap.put(TagAfPointSelected, "AF Point Selected");
+        _tagNameMap.put(TagAfFineTune, "AF Fine Tune");
+        _tagNameMap.put(TagAfFineTuneAdj, "AF Fine Tune Adj");
+
+        _tagNameMap.put(TagFlashMode, "Flash Mode");
+        _tagNameMap.put(TagFlashExposureComp, "Flash Exposure Comp");
+        _tagNameMap.put(TagFlashRemoteControl, "Flash Remote Control");
+        _tagNameMap.put(TagFlashControlMode, "Flash Control Mode");
+        _tagNameMap.put(TagFlashIntensity, "Flash Intensity");
+        _tagNameMap.put(TagManualFlashStrength, "Manual Flash Strength");
+
+        _tagNameMap.put(TagWhiteBalance2, "White Balance 2");
+        _tagNameMap.put(TagWhiteBalanceTemperature, "White Balance Temperature");
+        _tagNameMap.put(TagWhiteBalanceBracket, "White Balance Bracket");
+        _tagNameMap.put(TagCustomSaturation, "Custom Saturation");
+        _tagNameMap.put(TagModifiedSaturation, "Modified Saturation");
+        _tagNameMap.put(TagContrastSetting, "Contrast Setting");
+        _tagNameMap.put(TagSharpnessSetting, "Sharpness Setting");
+        _tagNameMap.put(TagColorSpace, "Color Space");
+        _tagNameMap.put(TagSceneMode, "Scene Mode");
+        _tagNameMap.put(TagNoiseReduction, "Noise Reduction");
+        _tagNameMap.put(TagDistortionCorrection, "Distortion Correction");
+        _tagNameMap.put(TagShadingCompensation, "Shading Compensation");
+        _tagNameMap.put(TagCompressionFactor, "Compression Factor");
+        _tagNameMap.put(TagGradation, "Gradation");
+        _tagNameMap.put(TagPictureMode, "Picture Mode");
+        _tagNameMap.put(TagPictureModeSaturation, "Picture Mode Saturation");
+        _tagNameMap.put(TagPictureModeHue, "Picture Mode Hue");
+        _tagNameMap.put(TagPictureModeContrast, "Picture Mode Contrast");
+        _tagNameMap.put(TagPictureModeSharpness, "Picture Mode Sharpness");
+        _tagNameMap.put(TagPictureModeBWFilter, "Picture Mode BW Filter");
+        _tagNameMap.put(TagPictureModeTone, "Picture Mode Tone");
+        _tagNameMap.put(TagNoiseFilter, "Noise Filter");
+        _tagNameMap.put(TagArtFilter, "Art Filter");
+        _tagNameMap.put(TagMagicFilter, "Magic Filter");
+        _tagNameMap.put(TagPictureModeEffect, "Picture Mode Effect");
+        _tagNameMap.put(TagToneLevel, "Tone Level");
+        _tagNameMap.put(TagArtFilterEffect, "Art Filter Effect");
+
+        _tagNameMap.put(TagDriveMode, "Drive Mode");
+        _tagNameMap.put(TagPanoramaMode, "Panorama Mode");
+        _tagNameMap.put(TagImageQuality2, "Image Quality 2");
+        _tagNameMap.put(TagImageStabilization, "Image Stabilization");
+
+        _tagNameMap.put(TagStackedImage, "Stacked Image");
+
+        _tagNameMap.put(TagManometerPressure, "Manometer Pressure");
+        _tagNameMap.put(TagManometerReading, "Manometer Reading");
+        _tagNameMap.put(TagExtendedWBDetect, "Extended WB Detect");
+        _tagNameMap.put(TagRollAngle, "Roll Angle");
+        _tagNameMap.put(TagPitchAngle, "Pitch Angle");
+        _tagNameMap.put(TagDateTimeUtc, "Date Time UTC");
+    }
+
+    public OlympusCameraSettingsMakernoteDirectory()
+    {
+        this.setDescriptor(new OlympusCameraSettingsMakernoteDescriptor(this));
+    }
+
+    @Override
+    @NotNull
+    public String getName()
+    {
+        return "Olympus Camera Settings";
+    }
+
+    @Override
+    @NotNull
+    protected HashMap<Integer, String> getTagNameMap()
+    {
+        return _tagNameMap;
+    }
+}
diff --git a/src/com/drew/metadata/exif/makernotes/OlympusEquipmentMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/OlympusEquipmentMakernoteDescriptor.java
new file mode 100644
index 0000000..4684b65
--- /dev/null
+++ b/src/com/drew/metadata/exif/makernotes/OlympusEquipmentMakernoteDescriptor.java
@@ -0,0 +1,370 @@
+/*
+ * Copyright 2002-2015 Drew Noakes
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ *
+ * More information about this project is available at:
+ *
+ *    https://drewnoakes.com/code/exif/
+ *    https://github.com/drewnoakes/metadata-extractor
+ */
+package com.drew.metadata.exif.makernotes;
+
+import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
+import com.drew.metadata.TagDescriptor;
+
+import java.text.DecimalFormat;
+import java.util.HashMap;
+
+import static com.drew.metadata.exif.makernotes.OlympusEquipmentMakernoteDirectory.*;
+
+/**
+ * Provides human-readable String representations of tag values stored in a {@link OlympusEquipmentMakernoteDirectory}.
+ * <p>
+ * Some Description functions and the Extender and Lens types lists converted from Exiftool version 10.10 created by Phil Harvey
+ * http://www.sno.phy.queensu.ca/~phil/exiftool/
+ * lib\Image\ExifTool\Olympus.pm
+ *
+ * @author Kevin Mott https://github.com/kwhopper
+ * @author Drew Noakes https://drewnoakes.com
+ */
+public class OlympusEquipmentMakernoteDescriptor extends TagDescriptor<OlympusEquipmentMakernoteDirectory>
+{
+    public OlympusEquipmentMakernoteDescriptor(@NotNull OlympusEquipmentMakernoteDirectory directory)
+    {
+        super(directory);
+    }
+
+    @Override
+    @Nullable
+    public String getDescription(int tagType)
+    {
+        switch (tagType) {
+            case TAG_EQUIPMENT_VERSION:
+                return GetEquipmentVersionDescription();
+            case TAG_FOCAL_PLANE_DIAGONAL:
+                return GetFocalPlaneDiagonalDescription();
+            case TAG_BODY_FIRMWARE_VERSION:
+                return GetBodyFirmwareVersionDescription();
+            case TAG_LENS_TYPE:
+                return GetLensTypeDescription();
+            case TAG_LENS_FIRMWARE_VERSION:
+                return GetLensFirmwareVersionDescription();
+            case TAG_MAX_APERTURE_AT_MIN_FOCAL:
+                return GetMaxApertureAtMinFocalDescription();
+            case TAG_MAX_APERTURE_AT_MAX_FOCAL:
+                return GetMaxApertureAtMaxFocalDescription();
+            case TAG_MAX_APERTURE:
+                return GetMaxApertureDescription();
+            case TAG_LENS_PROPERTIES:
+                return GetLensPropertiesDescription();
+            case TAG_EXTENDER:
+                return GetExtenderDescription();
+            case TAG_FLASH_TYPE:
+                return GetFlashTypeDescription();
+            case TAG_FLASH_MODEL:
+                return GetFlashModelDescription();
+            default:
+                return super.getDescription(tagType);
+        }
+    }
+
+    @Nullable
+    public String GetEquipmentVersionDescription()
+    {
+        return getVersionBytesDescription(TAG_EQUIPMENT_VERSION, 4);
+    }
+
+    @Nullable
+    public String GetFocalPlaneDiagonalDescription()
+    {
+        return _directory.getString(TAG_FOCAL_PLANE_DIAGONAL) + " mm";
+    }
+
+    @Nullable
+    public String GetBodyFirmwareVersionDescription()
+    {
+        Integer value = _directory.getInteger(TAG_BODY_FIRMWARE_VERSION);
+        if (value == null)
+            return null;
+
+        String hex = String.format("%04X", value);
+        return String.format("%s.%s",
+            hex.substring(0, hex.length() - 3),
+            hex.substring(hex.length() - 3));
+    }
+
+    @Nullable
+    public String GetLensTypeDescription()
+    {
+        String str = _directory.getString(TAG_LENS_TYPE);
+
+        if (str == null)
+            return null;
+
+        // The String contains six numbers:
+        //
+        // - Make
+        // - Unknown
+        // - Model
+        // - Sub-model
+        // - Unknown
+        // - Unknown
+        //
+        // Only the Make, Model and Sub-model are used to identify the lens type
+        String[] values = str.split(" ");
+
+        if (values.length < 6)
+            return null;
+
+        try {
+            int num1 = Integer.parseInt(values[0]);
+            int num2 = Integer.parseInt(values[2]);
+            int num3 = Integer.parseInt(values[3]);
+            return _olympusLensTypes.get(String.format("%X %02X %02X", num1, num2, num3));
+        } catch (NumberFormatException e) {
+            return null;
+        }
+    }
+
+    @Nullable
+    public String GetLensFirmwareVersionDescription()
+    {
+        Integer value = _directory.getInteger(TAG_LENS_FIRMWARE_VERSION);
+        if (value == null)
+            return null;
+
+        String hex = String.format("%04X", value);
+        return String.format("%s.%s",
+            hex.substring(0, hex.length() - 3),
+            hex.substring(hex.length() - 3));
+    }
+
+    @Nullable
+    public String GetMaxApertureAtMinFocalDescription()
+    {
+        Integer value = _directory.getInteger(TAG_MAX_APERTURE_AT_MIN_FOCAL);
+        if (value == null)
+            return null;
+
+        DecimalFormat format = new DecimalFormat("0.#");
+        return format.format(CalcMaxAperture(value));
+    }
+
+    @Nullable
+    public String GetMaxApertureAtMaxFocalDescription()
+    {
+        Integer value = _directory.getInteger(TAG_MAX_APERTURE_AT_MAX_FOCAL);
+        if (value == null)
+            return null;
+
+        DecimalFormat format = new DecimalFormat("0.#");
+        return format.format(CalcMaxAperture(value));
+    }
+
+    @Nullable
+    public String GetMaxApertureDescription()
+    {
+        Integer value = _directory.getInteger(TAG_MAX_APERTURE);
+        if (value == null)
+            return null;
+
+        DecimalFormat format = new DecimalFormat("0.#");
+        return format.format(CalcMaxAperture(value));
+    }
+
+    private static double CalcMaxAperture(int value)
+    {
+        return Math.pow(Math.sqrt(2.00), value / 256.0);
+    }
+
+    @Nullable
+    public String GetLensPropertiesDescription()
+    {
+        Integer value = _directory.getInteger(TAG_LENS_PROPERTIES);
+        if (value == null)
+            return null;
+
+        return String.format("0x%04X", value);
+    }
+
+    @Nullable
+    public String GetExtenderDescription()
+    {
+        String str = _directory.getString(TAG_EXTENDER);
+
+        if (str == null)
+            return null;
+
+        // The String contains six numbers:
+        //
+        // - Make
+        // - Unknown
+        // - Model
+        // - Sub-model
+        // - Unknown
+        // - Unknown
+        //
+        // Only the Make and Model are used to identify the extender
+        String[] values = str.split(" ");
+
+        if (values.length < 6)
+            return null;
+
+        try {
+            int num1 = Integer.parseInt(values[0]);
+            int num2 = Integer.parseInt(values[2]);
+            String extenderType = String.format("%X %02X", num1, num2);
+            return _olympusExtenderTypes.get(extenderType);
+        } catch (NumberFormatException e) {
+            return null;
+        }
+    }
+
+    @Nullable
+    public String GetFlashTypeDescription()
+    {
+        return getIndexedDescription(TAG_FLASH_TYPE,
+            "None", null, "Simple E-System", "E-System");
+    }
+
+    @Nullable
+    public String GetFlashModelDescription()
+    {
+        return getIndexedDescription(TAG_FLASH_MODEL,
+            "None", "FL-20", "FL-50", "RF-11", "TF-22", "FL-36", "FL-50R", "FL-36R");
+    }
+
+    private static final HashMap<String, String> _olympusLensTypes = new HashMap<String, String>();
+    private static final HashMap<String, String> _olympusExtenderTypes = new HashMap<String, String>();
+
+    static {
+        _olympusLensTypes.put("0 00 00", "None");
+        // Olympus lenses (also Kenko Tokina)
+        _olympusLensTypes.put("0 01 00", "Olympus Zuiko Digital ED 50mm F2.0 Macro");
+        _olympusLensTypes.put("0 01 01", "Olympus Zuiko Digital 40-150mm F3.5-4.5"); //8
+        _olympusLensTypes.put("0 01 10", "Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6"); //PH (E-P1 pre-production)
+        _olympusLensTypes.put("0 02 00", "Olympus Zuiko Digital ED 150mm F2.0");
+        _olympusLensTypes.put("0 02 10", "Olympus M.Zuiko Digital 17mm F2.8 Pancake"); //PH (E-P1 pre-production)
+        _olympusLensTypes.put("0 03 00", "Olympus Zuiko Digital ED 300mm F2.8");
+        _olympusLensTypes.put("0 03 10", "Olympus M.Zuiko Digital ED 14-150mm F4.0-5.6 [II]"); //11 (The second version of this lens seems to have the same lens ID number as the first version #20)
+        _olympusLensTypes.put("0 04 10", "Olympus M.Zuiko Digital ED 9-18mm F4.0-5.6"); //11
+        _olympusLensTypes.put("0 05 00", "Olympus Zuiko Digital 14-54mm F2.8-3.5");
+        _olympusLensTypes.put("0 05 01", "Olympus Zuiko Digital Pro ED 90-250mm F2.8"); //9
+        _olympusLensTypes.put("0 05 10", "Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 L"); //11 (E-PL1)
+        _olympusLensTypes.put("0 06 00", "Olympus Zuiko Digital ED 50-200mm F2.8-3.5");
+        _olympusLensTypes.put("0 06 01", "Olympus Zuiko Digital ED 8mm F3.5 Fisheye"); //9
+        _olympusLensTypes.put("0 06 10", "Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6"); //PH
+        _olympusLensTypes.put("0 07 00", "Olympus Zuiko Digital 11-22mm F2.8-3.5");
+        _olympusLensTypes.put("0 07 01", "Olympus Zuiko Digital 18-180mm F3.5-6.3"); //6
+        _olympusLensTypes.put("0 07 10", "Olympus M.Zuiko Digital ED 12mm F2.0"); //PH
+        _olympusLensTypes.put("0 08 01", "Olympus Zuiko Digital 70-300mm F4.0-5.6"); //7 (seen as release 1 - PH)
+        _olympusLensTypes.put("0 08 10", "Olympus M.Zuiko Digital ED 75-300mm F4.8-6.7"); //PH
+        _olympusLensTypes.put("0 09 10", "Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II"); //PH (E-PL2)
+        _olympusLensTypes.put("0 10 01", "Kenko Tokina Reflex 300mm F6.3 MF Macro"); //20
+        _olympusLensTypes.put("0 10 10", "Olympus M.Zuiko Digital ED 12-50mm F3.5-6.3 EZ"); //PH
+        _olympusLensTypes.put("0 11 10", "Olympus M.Zuiko Digital 45mm F1.8"); //17
+        _olympusLensTypes.put("0 12 10", "Olympus M.Zuiko Digital ED 60mm F2.8 Macro"); //20
+        _olympusLensTypes.put("0 13 10", "Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II R"); //PH/20
+        _olympusLensTypes.put("0 14 10", "Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6 R"); //19
+        // '0 14 10.1", "Olympus M.Zuiko Digital ED 14-150mm F4.0-5.6 II"); //11 (questionable & unconfirmed -- all samples I can find are '0 3 10' - PH)
+        _olympusLensTypes.put("0 15 00", "Olympus Zuiko Digital ED 7-14mm F4.0");
+        _olympusLensTypes.put("0 15 10", "Olympus M.Zuiko Digital ED 75mm F1.8"); //PH
+        _olympusLensTypes.put("0 16 10", "Olympus M.Zuiko Digital 17mm F1.8"); //20
+        _olympusLensTypes.put("0 17 00", "Olympus Zuiko Digital Pro ED 35-100mm F2.0"); //7
+        _olympusLensTypes.put("0 18 00", "Olympus Zuiko Digital 14-45mm F3.5-5.6");
+        _olympusLensTypes.put("0 18 10", "Olympus M.Zuiko Digital ED 75-300mm F4.8-6.7 II"); //20
+        _olympusLensTypes.put("0 19 10", "Olympus M.Zuiko Digital ED 12-40mm F2.8 Pro"); //PH
+        _olympusLensTypes.put("0 20 00", "Olympus Zuiko Digital 35mm F3.5 Macro"); //9
+        _olympusLensTypes.put("0 20 10", "Olympus M.Zuiko Digital ED 40-150mm F2.8 Pro"); //20
+        _olympusLensTypes.put("0 21 10", "Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 EZ"); //20
+        _olympusLensTypes.put("0 22 00", "Olympus Zuiko Digital 17.5-45mm F3.5-5.6"); //9
+        _olympusLensTypes.put("0 22 10", "Olympus M.Zuiko Digital 25mm F1.8"); //20
+        _olympusLensTypes.put("0 23 00", "Olympus Zuiko Digital ED 14-42mm F3.5-5.6"); //PH
+        _olympusLensTypes.put("0 23 10", "Olympus M.Zuiko Digital ED 7-14mm F2.8 Pro"); //20
+        _olympusLensTypes.put("0 24 00", "Olympus Zuiko Digital ED 40-150mm F4.0-5.6"); //PH
+        _olympusLensTypes.put("0 24 10", "Olympus M.Zuiko Digital ED 300mm F4.0 IS Pro"); //20
+        _olympusLensTypes.put("0 25 10", "Olympus M.Zuiko Digital ED 8mm F1.8 Fisheye Pro"); //20
+        _olympusLensTypes.put("0 30 00", "Olympus Zuiko Digital ED 50-200mm F2.8-3.5 SWD"); //7
+        _olympusLensTypes.put("0 31 00", "Olympus Zuiko Digital ED 12-60mm F2.8-4.0 SWD"); //7
+        _olympusLensTypes.put("0 32 00", "Olympus Zuiko Digital ED 14-35mm F2.0 SWD"); //PH
+        _olympusLensTypes.put("0 33 00", "Olympus Zuiko Digital 25mm F2.8"); //PH
+        _olympusLensTypes.put("0 34 00", "Olympus Zuiko Digital ED 9-18mm F4.0-5.6"); //7
+        _olympusLensTypes.put("0 35 00", "Olympus Zuiko Digital 14-54mm F2.8-3.5 II"); //PH
+        // Sigma lenses
+        _olympusLensTypes.put("1 01 00", "Sigma 18-50mm F3.5-5.6 DC"); //8
+        _olympusLensTypes.put("1 01 10", "Sigma 30mm F2.8 EX DN"); //20
+        _olympusLensTypes.put("1 02 00", "Sigma 55-200mm F4.0-5.6 DC");
+        _olympusLensTypes.put("1 02 10", "Sigma 19mm F2.8 EX DN"); //20
+        _olympusLensTypes.put("1 03 00", "Sigma 18-125mm F3.5-5.6 DC");
+        _olympusLensTypes.put("1 03 10", "Sigma 30mm F2.8 DN | A"); //20
+        _olympusLensTypes.put("1 04 00", "Sigma 18-125mm F3.5-5.6 DC"); //7
+        _olympusLensTypes.put("1 04 10", "Sigma 19mm F2.8 DN | A"); //20
+        _olympusLensTypes.put("1 05 00", "Sigma 30mm F1.4 EX DC HSM"); //10
+        _olympusLensTypes.put("1 05 10", "Sigma 60mm F2.8 DN | A"); //20
+        _olympusLensTypes.put("1 06 00", "Sigma APO 50-500mm F4.0-6.3 EX DG HSM"); //6
+        _olympusLensTypes.put("1 07 00", "Sigma Macro 105mm F2.8 EX DG"); //PH
+        _olympusLensTypes.put("1 08 00", "Sigma APO Macro 150mm F2.8 EX DG HSM"); //PH
+        _olympusLensTypes.put("1 09 00", "Sigma 18-50mm F2.8 EX DC Macro"); //20
+        _olympusLensTypes.put("1 10 00", "Sigma 24mm F1.8 EX DG Aspherical Macro"); //PH
+        _olympusLensTypes.put("1 11 00", "Sigma APO 135-400mm F4.5-5.6 DG"); //11
+        _olympusLensTypes.put("1 12 00", "Sigma APO 300-800mm F5.6 EX DG HSM"); //11
+        _olympusLensTypes.put("1 13 00", "Sigma 30mm F1.4 EX DC HSM"); //11
+        _olympusLensTypes.put("1 14 00", "Sigma APO 50-500mm F4.0-6.3 EX DG HSM"); //11
+        _olympusLensTypes.put("1 15 00", "Sigma 10-20mm F4.0-5.6 EX DC HSM"); //11
+        _olympusLensTypes.put("1 16 00", "Sigma APO 70-200mm F2.8 II EX DG Macro HSM"); //11
+        _olympusLensTypes.put("1 17 00", "Sigma 50mm F1.4 EX DG HSM"); //11
+        // Panasonic/Leica lenses
+        _olympusLensTypes.put("2 01 00", "Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph."); //11
+        _olympusLensTypes.put("2 01 10", "Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS"); //16
+        _olympusLensTypes.put("2 02 00", "Leica D Summilux 25mm F1.4 Asph."); //11
+        _olympusLensTypes.put("2 02 10", "Lumix G Vario 45-200mm F4.0-5.6 Mega OIS"); //16
+        _olympusLensTypes.put("2 03 00", "Leica D Vario Elmar 14-50mm F3.8-5.6 Asph. Mega OIS"); //11
+        _olympusLensTypes.put("2 03 01", "Leica D Vario Elmar 14-50mm F3.8-5.6 Asph."); //14 (L10 kit)
+        _olympusLensTypes.put("2 03 10", "Lumix G Vario HD 14-140mm F4.0-5.8 Asph. Mega OIS"); //16
+        _olympusLensTypes.put("2 04 00", "Leica D Vario Elmar 14-150mm F3.5-5.6"); //13
+        _olympusLensTypes.put("2 04 10", "Lumix G Vario 7-14mm F4.0 Asph."); //PH (E-P1 pre-production)
+        _olympusLensTypes.put("2 05 10", "Lumix G 20mm F1.7 Asph."); //16
+        _olympusLensTypes.put("2 06 10", "Leica DG Macro-Elmarit 45mm F2.8 Asph. Mega OIS"); //PH
+        _olympusLensTypes.put("2 07 10", "Lumix G Vario 14-42mm F3.5-5.6 Asph. Mega OIS"); //20
+        _olympusLensTypes.put("2 08 10", "Lumix G Fisheye 8mm F3.5"); //PH
+        _olympusLensTypes.put("2 09 10", "Lumix G Vario 100-300mm F4.0-5.6 Mega OIS"); //11
+        _olympusLensTypes.put("2 10 10", "Lumix G 14mm F2.5 Asph."); //17
+        _olympusLensTypes.put("2 11 10", "Lumix G 12.5mm F12 3D"); //20 (H-FT012)
+        _olympusLensTypes.put("2 12 10", "Leica DG Summilux 25mm F1.4 Asph."); //20
+        _olympusLensTypes.put("2 13 10", "Lumix G X Vario PZ 45-175mm F4.0-5.6 Asph. Power OIS"); //20
+        _olympusLensTypes.put("2 14 10", "Lumix G X Vario PZ 14-42mm F3.5-5.6 Asph. Power OIS"); //20
+        _olympusLensTypes.put("2 15 10", "Lumix G X Vario 12-35mm F2.8 Asph. Power OIS"); //PH
+        _olympusLensTypes.put("2 16 10", "Lumix G Vario 45-150mm F4.0-5.6 Asph. Mega OIS"); //20
+        _olympusLensTypes.put("2 17 10", "Lumix G X Vario 35-100mm F2.8 Power OIS"); //PH
+        _olympusLensTypes.put("2 18 10", "Lumix G Vario 14-42mm F3.5-5.6 II Asph. Mega OIS"); //20
+        _olympusLensTypes.put("2 19 10", "Lumix G Vario 14-140mm F3.5-5.6 Asph. Power OIS"); //20
+        _olympusLensTypes.put("2 20 10", "Lumix G Vario 12-32mm F3.5-5.6 Asph. Mega OIS"); //20
+        _olympusLensTypes.put("2 21 10", "Leica DG Nocticron 42.5mm F1.2 Asph. Power OIS"); //20
+        _olympusLensTypes.put("2 22 10", "Leica DG Summilux 15mm F1.7 Asph."); //20
+        // '2 23 10", "Lumix G Vario 35-100mm F4.0-5.6 Asph. Mega OIS"); //20 (guess)
+        _olympusLensTypes.put("2 24 10", "Lumix G Macro 30mm F2.8 Asph. Mega OIS"); //20
+        _olympusLensTypes.put("2 25 10", "Lumix G 42.5mm F1.7 Asph. Power OIS"); //20
+        _olympusLensTypes.put("3 01 00", "Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph."); //11
+        _olympusLensTypes.put("3 02 00", "Leica D Summilux 25mm F1.4 Asph."); //11
+        // Tamron lenses
+        _olympusLensTypes.put("5 01 10", "Tamron 14-150mm F3.5-5.8 Di III"); //20 (model C001)
+
+
+        _olympusExtenderTypes.put("0 00", "None");
+        _olympusExtenderTypes.put("0 04", "Olympus Zuiko Digital EC-14 1.4x Teleconverter");
+        _olympusExtenderTypes.put("0 08", "Olympus EX-25 Extension Tube");
+        _olympusExtenderTypes.put("0 10", "Olympus Zuiko Digital EC-20 2.0x Teleconverter");
+    }
+}
diff --git a/src/com/drew/metadata/exif/makernotes/OlympusEquipmentMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/OlympusEquipmentMakernoteDirectory.java
new file mode 100644
index 0000000..3548c3f
--- /dev/null
+++ b/src/com/drew/metadata/exif/makernotes/OlympusEquipmentMakernoteDirectory.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2002-2015 Drew Noakes
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ *
+ * More information about this project is available at:
+ *
+ *    https://drewnoakes.com/code/exif/
+ *    https://github.com/drewnoakes/metadata-extractor
+ */
+package com.drew.metadata.exif.makernotes;
+
+import com.drew.lang.annotations.NotNull;
+import com.drew.metadata.Directory;
+
+import java.util.HashMap;
+
+/**
+ * The Olympus equipment makernote is used by many manufacturers (Epson, Konica, Minolta and Agfa...), and as such contains some tags
+ * that appear specific to those manufacturers.
+ *
+ * @author Kevin Mott https://github.com/kwhopper
+ * @author Drew Noakes https://drewnoakes.com
+ */
+public class OlympusEquipmentMakernoteDirectory extends Directory
+{
+    public static final int TAG_EQUIPMENT_VERSION = 0x0000;
+    public static final int TAG_CAMERA_TYPE_2 = 0x0100;
+    public static final int TAG_SERIAL_NUMBER = 0x0101;
+
+    public static final int TAG_INTERNAL_SERIAL_NUMBER = 0x0102;
+    public static final int TAG_FOCAL_PLANE_DIAGONAL = 0x0103;
+    public static final int TAG_BODY_FIRMWARE_VERSION = 0x0104;
+
+    public static final int TAG_LENS_TYPE = 0x0201;
+    public static final int TAG_LENS_SERIAL_NUMBER = 0x0202;
+    public static final int TAG_LENS_MODEL = 0x0203;
+    public static final int TAG_LENS_FIRMWARE_VERSION = 0x0204;
+    public static final int TAG_MAX_APERTURE_AT_MIN_FOCAL = 0x0205;
+    public static final int TAG_MAX_APERTURE_AT_MAX_FOCAL = 0x0206;
+    public static final int TAG_MIN_FOCAL_LENGTH = 0x0207;
+    public static final int TAG_MAX_FOCAL_LENGTH = 0x0208;
+    public static final int TAG_MAX_APERTURE = 0x020A;
+    public static final int TAG_LENS_PROPERTIES = 0x020B;
+
+    public static final int TAG_EXTENDER = 0x0301;
+    public static final int TAG_EXTENDER_SERIAL_NUMBER = 0x0302;
+    public static final int TAG_EXTENDER_MODEL = 0x0303;
+    public static final int TAG_EXTENDER_FIRMWARE_VERSION = 0x0304;
+
+    public static final int TAG_CONVERSION_LENS = 0x0403;
+
+    public static final int TAG_FLASH_TYPE = 0x1000;
+    public static final int TAG_FLASH_MODEL = 0x1001;
+    public static final int TAG_FLASH_FIRMWARE_VERSION = 0x1002;
+    public static final int TAG_FLASH_SERIAL_NUMBER = 0x1003;
+
+    @NotNull
+    protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
+
+    static {
+        _tagNameMap.put(TAG_EQUIPMENT_VERSION, "Equipment Version");
+        _tagNameMap.put(TAG_CAMERA_TYPE_2, "Camera Type 2");
+        _tagNameMap.put(TAG_SERIAL_NUMBER, "Serial Number");
+        _tagNameMap.put(TAG_INTERNAL_SERIAL_NUMBER, "Internal Serial Number");
+        _tagNameMap.put(TAG_FOCAL_PLANE_DIAGONAL, "Focal Plane Diagonal");
+        _tagNameMap.put(TAG_BODY_FIRMWARE_VERSION, "Body Firmware Version");
+        _tagNameMap.put(TAG_LENS_TYPE, "Lens Type");
+        _tagNameMap.put(TAG_LENS_SERIAL_NUMBER, "Lens Serial Number");
+        _tagNameMap.put(TAG_LENS_MODEL, "Lens Model");
+        _tagNameMap.put(TAG_LENS_FIRMWARE_VERSION, "Lens Firmware Version");
+        _tagNameMap.put(TAG_MAX_APERTURE_AT_MIN_FOCAL, "Max Aperture At Min Focal");
+        _tagNameMap.put(TAG_MAX_APERTURE_AT_MAX_FOCAL, "Max Aperture At Max Focal");
+        _tagNameMap.put(TAG_MIN_FOCAL_LENGTH, "Min Focal Length");
+        _tagNameMap.put(TAG_MAX_FOCAL_LENGTH, "Max Focal Length");
+        _tagNameMap.put(TAG_MAX_APERTURE, "Max Aperture");
+        _tagNameMap.put(TAG_LENS_PROPERTIES, "Lens Properties");
+        _tagNameMap.put(TAG_EXTENDER, "Extender");
+        _tagNameMap.put(TAG_EXTENDER_SERIAL_NUMBER, "Extender Serial Number");
+        _tagNameMap.put(TAG_EXTENDER_MODEL, "Extender Model");
+        _tagNameMap.put(TAG_EXTENDER_FIRMWARE_VERSION, "Extender Firmware Version");
+        _tagNameMap.put(TAG_CONVERSION_LENS, "Conversion Lens");
+        _tagNameMap.put(TAG_FLASH_TYPE, "Flash Type");
+        _tagNameMap.put(TAG_FLASH_MODEL, "Flash Model");
+        _tagNameMap.put(TAG_FLASH_FIRMWARE_VERSION, "Flash Firmware Version");
+        _tagNameMap.put(TAG_FLASH_SERIAL_NUMBER, "Flash Serial Number");
+    }
+
+    public OlympusEquipmentMakernoteDirectory()
+    {
+        this.setDescriptor(new OlympusEquipmentMakernoteDescriptor(this));
+    }
+
+    @Override
+    @NotNull
+    public String getName()
+    {
+        return "Olympus Equipment";
+    }
+
+    @Override
+    @NotNull
+    protected HashMap<Integer, String> getTagNameMap()
+    {
+        return _tagNameMap;
+    }
+}
diff --git a/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDescriptor.java
index f003fcb..943a375 100644
--- a/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -20,11 +20,13 @@
  */
 package com.drew.metadata.exif.makernotes;
 
+import com.drew.lang.DateUtil;
 import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.TagDescriptor;
 
-import java.util.GregorianCalendar;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
 
 import static com.drew.metadata.exif.makernotes.OlympusMakernoteDirectory.*;
 
@@ -114,7 +116,7 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
             case CameraSettings.TAG_FOCUS_DISTANCE:
                 return getFocusDistanceDescription();
             case CameraSettings.TAG_FLASH_FIRED:
-                return getFlastFiredDescription();
+                return getFlashFiredDescription();
             case CameraSettings.TAG_DATE:
                 return getDateDescription();
             case CameraSettings.TAG_TIME:
@@ -141,7 +143,7 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
             case CameraSettings.TAG_SUBJECT_PROGRAM:
                 return getSubjectProgramDescription();
             case CameraSettings.TAG_FLASH_COMPENSATION:
-                return getFlastCompensationDescription();
+                return getFlashCompensationDescription();
             case CameraSettings.TAG_ISO_SETTING:
                 return getIsoSettingDescription();
             case CameraSettings.TAG_CAMERA_MODEL:
@@ -257,7 +259,9 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
             return null;
 
         double iso = Math.pow((value / 8d) - 1, 2) * 3.125;
-        return Double.toString(iso);
+        DecimalFormat format = new DecimalFormat("0.##");
+        format.setRoundingMode(RoundingMode.HALF_UP);
+        return format.format(iso);
     }
 
     @Nullable
@@ -273,7 +277,9 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
             return null;
 
         double shutterSpeed = Math.pow((49-value) / 8d, 2);
-        return Double.toString(shutterSpeed) + " sec";
+        DecimalFormat format = new DecimalFormat("0.###");
+        format.setRoundingMode(RoundingMode.HALF_UP);
+        return format.format(shutterSpeed) + " sec";
     }
 
     @Nullable
@@ -288,7 +294,7 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
             return null;
 
         double fStop = Math.pow((value/16d) - 0.5, 2);
-        return "F" + Double.toString(fStop);
+        return getFStopDescription(fStop);
     }
 
     @Nullable
@@ -307,7 +313,8 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
     public String getExposureCompensationDescription()
     {
         Long value = _directory.getLongObject(CameraSettings.TAG_EXPOSURE_COMPENSATION);
-        return value == null ? null : ((value / 3d) - 2) + " EV";
+        DecimalFormat format = new DecimalFormat("0.##");
+        return value == null ? null : format.format((value / 3d) - 2) + " EV";
     }
 
     @Nullable
@@ -340,7 +347,7 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
     public String getFocalLengthDescription()
     {
         Long value = _directory.getLongObject(CameraSettings.TAG_FOCAL_LENGTH);
-        return value == null ? null : Double.toString(value/256d) + " mm";
+        return value == null ? null : getFocalLengthDescription(value/256d);
     }
 
     @Nullable
@@ -355,7 +362,7 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
     }
 
     @Nullable
-    public String getFlastFiredDescription()
+    public String getFlashFiredDescription()
     {
         return getIndexedDescription(CameraSettings.TAG_FLASH_FIRED, "No", "Yes");
     }
@@ -369,10 +376,15 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
         Long value = _directory.getLongObject(CameraSettings.TAG_DATE);
         if (value == null)
             return null;
-        long day = value & 0xFF;
-        long month = (value >> 16) & 0xFF;
-        long year = (value >> 8) & 0xFF;
-        return new GregorianCalendar((int)year + 1970, (int)month, (int)day).getTime().toString();
+
+        int day = (int) (value & 0xFF);
+        int month = (int) ((value >> 16) & 0xFF);
+        int year = (int) ((value >> 8) & 0xFF) + 1970;
+
+        if (!DateUtil.isValidDate(year, month, day))
+            return "Invalid date";
+
+        return String.format("%04d-%02d-%02d", year, month + 1, day);
     }
 
     @Nullable
@@ -384,9 +396,13 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
         Long value = _directory.getLongObject(CameraSettings.TAG_TIME);
         if (value == null)
             return null;
-        long hours = (value >> 8) & 0xFF;
-        long minutes = (value >> 16) & 0xFF;
-        long seconds = value & 0xFF;
+
+        int hours = (int) ((value >> 8) & 0xFF);
+        int minutes = (int) ((value >> 16) & 0xFF);
+        int seconds = (int) (value & 0xFF);
+
+        if (!DateUtil.isValidTime(hours, minutes, seconds))
+            return "Invalid time";
 
         return String.format("%02d:%02d:%02d", hours, minutes, seconds);
     }
@@ -399,7 +415,7 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
         if (value == null)
             return null;
         double fStop = Math.pow((value/16d) - 0.5, 2);
-        return "F" + fStop;
+        return getFStopDescription(fStop);
     }
 
     @Nullable
@@ -423,21 +439,24 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
     public String getWhiteBalanceRedDescription()
     {
         Long value = _directory.getLongObject(CameraSettings.TAG_WHITE_BALANCE_RED);
-        return value == null ? null : Double.toString(value/256d);
+        DecimalFormat format = new DecimalFormat("0.##");
+        return value == null ? null : format.format(value/256d);
     }
 
     @Nullable
     public String getWhiteBalanceGreenDescription()
     {
         Long value = _directory.getLongObject(CameraSettings.TAG_WHITE_BALANCE_GREEN);
-        return value == null ? null : Double.toString(value/256d);
+        DecimalFormat format = new DecimalFormat("0.##");
+        return value == null ? null : format.format(value/256d);
     }
 
     @Nullable
     public String getWhiteBalanceBlueDescription()
     {
         Long value = _directory.getLongObject(CameraSettings.TAG_WHITE_BALANCE_BLUE);
-        return value == null ? null : Double.toString(value/256d);
+        DecimalFormat format = new DecimalFormat("0.##");
+        return value == null ? null : format.format(value / 256d);
     }
 
     @Nullable
@@ -467,10 +486,11 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
     }
 
     @Nullable
-    public String getFlastCompensationDescription()
+    public String getFlashCompensationDescription()
     {
         Long value = _directory.getLongObject(CameraSettings.TAG_FLASH_COMPENSATION);
-        return value == null ? null : ((value-6)/3d) + " EV";
+        DecimalFormat format = new DecimalFormat("0.##");
+        return value == null ? null : format.format((value-6)/3d) + " EV";
     }
 
     @Nullable
@@ -534,7 +554,8 @@ public class OlympusMakernoteDescriptor extends TagDescriptor<OlympusMakernoteDi
     public String getApexBrightnessDescription()
     {
         Long value = _directory.getLongObject(CameraSettings.TAG_APEX_BRIGHTNESS_VALUE);
-        return value == null ? null : Double.toString((value/8d)-6);
+        DecimalFormat format = new DecimalFormat("0.##");
+        return value == null ? null : format.format((value/8d)-6);
     }
 
     @Nullable
diff --git a/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDirectory.java
index f1e7257..3f3debb 100644
--- a/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/OlympusMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDescriptor.java
index 71ca518..98a59a4 100644
--- a/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDirectory.java
index 4212bd5..a53bcdc 100644
--- a/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/PanasonicMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDescriptor.java
index 30889e1..d50b0a7 100644
--- a/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDirectory.java
index ee38d55..935dc36 100644
--- a/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/PentaxMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/RicohMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/RicohMakernoteDescriptor.java
index 46001db..2cafe45 100644
--- a/src/com/drew/metadata/exif/makernotes/RicohMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/RicohMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/RicohMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/RicohMakernoteDirectory.java
index fdb1e90..066c81b 100644
--- a/src/com/drew/metadata/exif/makernotes/RicohMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/RicohMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDescriptor.java
index 22db4fe..6c2b43f 100644
--- a/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDirectory.java
index 26500c6..702e97c 100644
--- a/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/SanyoMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDescriptor.java
index 56442f1..c0e0081 100644
--- a/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDirectory.java
index 75afedf..76d2867 100644
--- a/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/SigmaMakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDescriptor.java
index 8ae873f..f394095 100644
--- a/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDirectory.java
index ef5ce0d..d4f3b6c 100644
--- a/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/SonyType1MakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDescriptor.java b/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDescriptor.java
index 8175dec..7962b5b 100644
--- a/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDescriptor.java
+++ b/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDirectory.java b/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDirectory.java
index a68d81e..d354715 100644
--- a/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDirectory.java
+++ b/src/com/drew/metadata/exif/makernotes/SonyType6MakernoteDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/makernotes/package.html b/src/com/drew/metadata/exif/makernotes/package.html
index 7115326..ad9c9d5 100644
--- a/src/com/drew/metadata/exif/makernotes/package.html
+++ b/src/com/drew/metadata/exif/makernotes/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/exif/package.html b/src/com/drew/metadata/exif/package.html
index 0ec6f41..6fc6484 100644
--- a/src/com/drew/metadata/exif/package.html
+++ b/src/com/drew/metadata/exif/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/file/FileMetadataDescriptor.java b/src/com/drew/metadata/file/FileMetadataDescriptor.java
index 31cd0de..85104c1 100644
--- a/src/com/drew/metadata/file/FileMetadataDescriptor.java
+++ b/src/com/drew/metadata/file/FileMetadataDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -24,6 +24,8 @@ import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.TagDescriptor;
 
+import static com.drew.metadata.file.FileMetadataDirectory.*;
+
 /**
  * @author Drew Noakes https://drewnoakes.com
  */
@@ -39,7 +41,7 @@ public class FileMetadataDescriptor extends TagDescriptor<FileMetadataDirectory>
     public String getDescription(int tagType)
     {
         switch (tagType) {
-            case FileMetadataDirectory.TAG_FILE_SIZE:
+            case TAG_FILE_SIZE:
                 return getFileSizeDescription();
             default:
                 return super.getDescription(tagType);
@@ -49,7 +51,7 @@ public class FileMetadataDescriptor extends TagDescriptor<FileMetadataDirectory>
     @Nullable
     private String getFileSizeDescription()
     {
-        Long size = _directory.getLongObject(FileMetadataDirectory.TAG_FILE_SIZE);
+        Long size = _directory.getLongObject(TAG_FILE_SIZE);
 
         if (size == null)
             return null;
diff --git a/src/com/drew/metadata/file/FileMetadataDirectory.java b/src/com/drew/metadata/file/FileMetadataDirectory.java
index a2eff73..89e6122 100644
--- a/src/com/drew/metadata/file/FileMetadataDirectory.java
+++ b/src/com/drew/metadata/file/FileMetadataDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/file/FileMetadataReader.java b/src/com/drew/metadata/file/FileMetadataReader.java
index 5347c11..bc18376 100644
--- a/src/com/drew/metadata/file/FileMetadataReader.java
+++ b/src/com/drew/metadata/file/FileMetadataReader.java
@@ -1,3 +1,23 @@
+/*
+ * Copyright 2002-2016 Drew Noakes
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ *
+ * More information about this project is available at:
+ *
+ *    https://drewnoakes.com/code/exif/
+ *    https://github.com/drewnoakes/metadata-extractor
+ */
 package com.drew.metadata.file;
 
 import com.drew.lang.annotations.NotNull;
diff --git a/src/com/drew/metadata/file/package.html b/src/com/drew/metadata/file/package.html
index 8a3690d..9e513ae 100644
--- a/src/com/drew/metadata/file/package.html
+++ b/src/com/drew/metadata/file/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/iptc/IptcDescriptor.java b/src/com/drew/metadata/iptc/IptcDescriptor.java
index 49be662..005e04e 100644
--- a/src/com/drew/metadata/iptc/IptcDescriptor.java
+++ b/src/com/drew/metadata/iptc/IptcDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -25,6 +25,8 @@ import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.TagDescriptor;
 
+import static com.drew.metadata.iptc.IptcDirectory.*;
+
 /**
  * Provides human-readable string representations of tag values stored in a {@link IptcDirectory}.
  * <p>
@@ -44,23 +46,63 @@ public class IptcDescriptor extends TagDescriptor<IptcDirectory>
     public String getDescription(int tagType)
     {
         switch (tagType) {
-            case IptcDirectory.TAG_FILE_FORMAT:
+            case TAG_DATE_CREATED:
+                return getDateCreatedDescription();
+            case TAG_DIGITAL_DATE_CREATED:
+                return getDigitalDateCreatedDescription();
+            case TAG_DATE_SENT:
+                return getDateSentDescription();
+            case TAG_EXPIRATION_DATE:
+                return getExpirationDateDescription();
+            case TAG_EXPIRATION_TIME:
+                return getExpirationTimeDescription();
+            case TAG_FILE_FORMAT:
                 return getFileFormatDescription();
-            case IptcDirectory.TAG_KEYWORDS:
+            case TAG_KEYWORDS:
                 return getKeywordsDescription();
-            case IptcDirectory.TAG_TIME_CREATED:
+            case TAG_REFERENCE_DATE:
+                return getReferenceDateDescription();
+            case TAG_RELEASE_DATE:
+                return getReleaseDateDescription();
+            case TAG_RELEASE_TIME:
+                return getReleaseTimeDescription();
+            case TAG_TIME_CREATED:
                 return getTimeCreatedDescription();
-            case IptcDirectory.TAG_DIGITAL_TIME_CREATED:
+            case TAG_DIGITAL_TIME_CREATED:
                 return getDigitalTimeCreatedDescription();
+            case TAG_TIME_SENT:
+                return getTimeSentDescription();
             default:
                 return super.getDescription(tagType);
         }
     }
 
     @Nullable
+    public String getDateDescription(int tagType)
+    {
+        String s = _directory.getString(tagType);
+        if (s == null)
+            return null;
+        if (s.length() == 8)
+            return s.substring(0, 4) + ':' + s.substring(4, 6) + ':' + s.substring(6);
+        return s;
+    }
+
+    @Nullable
+    public String getTimeDescription(int tagType)
+    {
+        String s = _directory.getString(tagType);
+        if (s == null)
+            return null;
+        if (s.length() == 6 || s.length() == 11)
+            return s.substring(0, 2) + ':' + s.substring(2, 4) + ':' + s.substring(4);
+        return s;
+    }
+
+    @Nullable
     public String getFileFormatDescription()
     {
-        Integer value = _directory.getInteger(IptcDirectory.TAG_FILE_FORMAT);
+        Integer value = _directory.getInteger(TAG_FILE_FORMAT);
         if (value == null)
             return null;
         switch (value) {
@@ -101,67 +143,91 @@ public class IptcDescriptor extends TagDescriptor<IptcDirectory>
     @Nullable
     public String getByLineDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_BY_LINE);
+        return _directory.getString(TAG_BY_LINE);
     }
 
     @Nullable
     public String getByLineTitleDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_BY_LINE_TITLE);
+        return _directory.getString(TAG_BY_LINE_TITLE);
     }
 
     @Nullable
     public String getCaptionDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_CAPTION);
+        return _directory.getString(TAG_CAPTION);
     }
 
     @Nullable
     public String getCategoryDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_CATEGORY);
+        return _directory.getString(TAG_CATEGORY);
     }
 
     @Nullable
     public String getCityDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_CITY);
+        return _directory.getString(TAG_CITY);
     }
 
     @Nullable
     public String getCopyrightNoticeDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_COPYRIGHT_NOTICE);
+        return _directory.getString(TAG_COPYRIGHT_NOTICE);
     }
 
     @Nullable
     public String getCountryOrPrimaryLocationDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_COUNTRY_OR_PRIMARY_LOCATION_NAME);
+        return _directory.getString(TAG_COUNTRY_OR_PRIMARY_LOCATION_NAME);
     }
 
     @Nullable
     public String getCreditDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_CREDIT);
+        return _directory.getString(TAG_CREDIT);
     }
 
     @Nullable
     public String getDateCreatedDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_DATE_CREATED);
+        return getDateDescription(TAG_DATE_CREATED);
+    }
+
+    @Nullable
+    public String getDigitalDateCreatedDescription()
+    {
+        return getDateDescription(TAG_DIGITAL_DATE_CREATED);
+    }
+
+    @Nullable
+    public String getDateSentDescription()
+    {
+        return getDateDescription(TAG_DATE_SENT);
+    }
+
+    @Nullable
+    public String getExpirationDateDescription()
+    {
+        return getDateDescription(TAG_EXPIRATION_DATE);
+    }
+
+    @Nullable
+    public String getExpirationTimeDescription()
+    {
+        return getTimeDescription(TAG_EXPIRATION_TIME);
     }
 
     @Nullable
     public String getHeadlineDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_HEADLINE);
+        return _directory.getString(TAG_HEADLINE);
     }
 
     @Nullable
     public String getKeywordsDescription()
     {
-        final String[] keywords = _directory.getStringArray(IptcDirectory.TAG_KEYWORDS);
+        final String[] keywords = _directory.getStringArray(TAG_KEYWORDS);
         if (keywords==null)
             return null;
         return StringUtil.join(keywords, ";");
@@ -170,94 +236,96 @@ public class IptcDescriptor extends TagDescriptor<IptcDirectory>
     @Nullable
     public String getObjectNameDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_OBJECT_NAME);
+        return _directory.getString(TAG_OBJECT_NAME);
     }
 
     @Nullable
     public String getOriginalTransmissionReferenceDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_ORIGINAL_TRANSMISSION_REFERENCE);
+        return _directory.getString(TAG_ORIGINAL_TRANSMISSION_REFERENCE);
     }
 
     @Nullable
     public String getOriginatingProgramDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_ORIGINATING_PROGRAM);
+        return _directory.getString(TAG_ORIGINATING_PROGRAM);
     }
 
     @Nullable
     public String getProvinceOrStateDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_PROVINCE_OR_STATE);
+        return _directory.getString(TAG_PROVINCE_OR_STATE);
     }
 
     @Nullable
     public String getRecordVersionDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_APPLICATION_RECORD_VERSION);
+        return _directory.getString(TAG_APPLICATION_RECORD_VERSION);
+    }
+
+    @Nullable
+    public String getReferenceDateDescription()
+    {
+        return getDateDescription(TAG_REFERENCE_DATE);
     }
 
     @Nullable
     public String getReleaseDateDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_RELEASE_DATE);
+        return getDateDescription(TAG_RELEASE_DATE);
     }
 
     @Nullable
     public String getReleaseTimeDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_RELEASE_TIME);
+        return getTimeDescription(TAG_RELEASE_TIME);
     }
 
     @Nullable
     public String getSourceDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_SOURCE);
+        return _directory.getString(TAG_SOURCE);
     }
 
     @Nullable
     public String getSpecialInstructionsDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_SPECIAL_INSTRUCTIONS);
+        return _directory.getString(TAG_SPECIAL_INSTRUCTIONS);
     }
 
     @Nullable
     public String getSupplementalCategoriesDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_SUPPLEMENTAL_CATEGORIES);
+        return _directory.getString(TAG_SUPPLEMENTAL_CATEGORIES);
     }
 
     @Nullable
     public String getTimeCreatedDescription()
     {
-        String s = _directory.getString(IptcDirectory.TAG_TIME_CREATED);
-        if (s == null)
-            return null;
-        if (s.length() == 6 || s.length() == 11)
-            return s.substring(0, 2) + ':' + s.substring(2, 4) + ':' + s.substring(4);
-        return s;
+        return getTimeDescription(TAG_TIME_CREATED);
     }
 
     @Nullable
     public String getDigitalTimeCreatedDescription()
     {
-        String s = _directory.getString(IptcDirectory.TAG_DIGITAL_TIME_CREATED);
-        if (s == null)
-            return null;
-        if (s.length() == 6 || s.length() == 11)
-            return s.substring(0, 2) + ':' + s.substring(2, 4) + ':' + s.substring(4);
-        return s;
+        return getTimeDescription(TAG_DIGITAL_TIME_CREATED);
+    }
+
+    @Nullable
+    public String getTimeSentDescription()
+    {
+        return getTimeDescription(TAG_TIME_SENT);
     }
 
     @Nullable
     public String getUrgencyDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_URGENCY);
+        return _directory.getString(TAG_URGENCY);
     }
 
     @Nullable
     public String getWriterDescription()
     {
-        return _directory.getString(IptcDirectory.TAG_CAPTION_WRITER);
+        return _directory.getString(TAG_CAPTION_WRITER);
     }
 }
diff --git a/src/com/drew/metadata/iptc/IptcDirectory.java b/src/com/drew/metadata/iptc/IptcDirectory.java
index b864a9b..b8e4393 100644
--- a/src/com/drew/metadata/iptc/IptcDirectory.java
+++ b/src/com/drew/metadata/iptc/IptcDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -24,7 +24,11 @@ import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.Directory;
 
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
@@ -230,9 +234,84 @@ public class IptcDirectory extends Directory
     @Nullable
     public List<String> getKeywords()
     {
-        final String[] array = getStringArray(IptcDirectory.TAG_KEYWORDS);
+        final String[] array = getStringArray(TAG_KEYWORDS);
         if (array==null)
             return null;
         return Arrays.asList(array);
     }
+
+    /**
+     * Parses the Date Sent tag and the Time Sent tag to obtain a single Date object representing the
+     * date and time when the service sent this image.
+     * @return A Date object representing when the service sent this image, if possible, otherwise null
+     */
+    @Nullable
+    public Date getDateSent()
+    {
+        return getDate(TAG_DATE_SENT, TAG_TIME_SENT);
+    }
+
+    /**
+     * Parses the Release Date tag and the Release Time tag to obtain a single Date object representing the
+     * date and time when this image was released.
+     * @return A Date object representing when this image was released, if possible, otherwise null
+     */
+    @Nullable
+    public Date getReleaseDate()
+    {
+        return getDate(TAG_RELEASE_DATE, TAG_RELEASE_TIME);
+    }
+
+    /**
+     * Parses the Expiration Date tag and the Expiration Time tag to obtain a single Date object representing
+     * that this image should not used after this date and time.
+     * @return A Date object representing when this image was released, if possible, otherwise null
+     */
+    @Nullable
+    public Date getExpirationDate()
+    {
+        return getDate(TAG_EXPIRATION_DATE, TAG_EXPIRATION_TIME);
+    }
+
+    /**
+     * Parses the Date Created tag and the Time Created tag to obtain a single Date object representing the
+     * date and time when this image was captured.
+     * @return A Date object representing when this image was captured, if possible, otherwise null
+     */
+    @Nullable
+    public Date getDateCreated()
+    {
+        return getDate(TAG_DATE_CREATED, TAG_TIME_CREATED);
+    }
+
+    /**
+     * Parses the Digital Date Created tag and the Digital Time Created tag to obtain a single Date object
+     * representing the date and time when the digital representation of this image was created.
+     * @return A Date object representing when the digital representation of this image was created,
+     * if possible, otherwise null
+     */
+    @Nullable
+    public Date getDigitalDateCreated()
+    {
+        return getDate(TAG_DIGITAL_DATE_CREATED, TAG_DIGITAL_TIME_CREATED);
+    }
+
+    @Nullable
+    private Date getDate(int dateTagType, int timeTagType)
+    {
+        String date = getString(dateTagType);
+        String time = getString(timeTagType);
+
+        if (date == null)
+            return null;
+        if (time == null)
+            return null;
+
+        try {
+            DateFormat parser = new SimpleDateFormat("yyyyMMddHHmmssZ");
+            return parser.parse(date + time);
+        } catch (ParseException e) {
+            return null;
+        }
+    }
 }
diff --git a/src/com/drew/metadata/iptc/IptcReader.java b/src/com/drew/metadata/iptc/IptcReader.java
index cf5ec7f..06b067e 100644
--- a/src/com/drew/metadata/iptc/IptcReader.java
+++ b/src/com/drew/metadata/iptc/IptcReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -25,12 +25,12 @@ import com.drew.imaging.jpeg.JpegSegmentType;
 import com.drew.lang.SequentialByteArrayReader;
 import com.drew.lang.SequentialReader;
 import com.drew.lang.annotations.NotNull;
+import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.Directory;
 import com.drew.metadata.Metadata;
 
 import java.io.IOException;
-import java.util.Arrays;
-import java.util.Date;
+import java.util.Collections;
 
 /**
  * Decodes IPTC binary data, populating a {@link Metadata} object with tag values in an {@link IptcDirectory}.
@@ -59,7 +59,7 @@ public class IptcReader implements JpegSegmentMetadataReader
     @NotNull
     public Iterable<JpegSegmentType> getSegmentTypes()
     {
-        return Arrays.asList(JpegSegmentType.APPD);
+        return Collections.singletonList(JpegSegmentType.APPD);
     }
 
     public void readJpegSegments(@NotNull Iterable<byte[]> segments, @NotNull Metadata metadata, @NotNull JpegSegmentType segmentType)
@@ -77,9 +77,20 @@ public class IptcReader implements JpegSegmentMetadataReader
      */
     public void extract(@NotNull final SequentialReader reader, @NotNull final Metadata metadata, long length)
     {
+        extract(reader, metadata, length, null);
+    }
+
+    /**
+     * Performs the IPTC data extraction, adding found values to the specified instance of {@link Metadata}.
+     */
+    public void extract(@NotNull final SequentialReader reader, @NotNull final Metadata metadata, long length, @Nullable Directory parentDirectory)
+    {
         IptcDirectory directory = new IptcDirectory();
         metadata.addDirectory(directory);
 
+        if (parentDirectory != null)
+            directory.setParent(parentDirectory);
+
         int offset = 0;
 
         // for each tag
@@ -104,7 +115,7 @@ public class IptcReader implements JpegSegmentMetadataReader
             }
 
             // we need at least five bytes left to read a tag
-            if (offset + 5 >= length) {
+            if (offset + 5 > length) {
                 directory.addError("Too few bytes remain for a valid IPTC tag");
                 return;
             }
@@ -183,27 +194,6 @@ public class IptcReader implements JpegSegmentMetadataReader
                 directory.setInt(tagIdentifier, reader.getUInt8());
                 reader.skip(tagByteCount - 1);
                 return;
-            case IptcDirectory.TAG_RELEASE_DATE:
-            case IptcDirectory.TAG_DATE_CREATED:
-                // Date object
-                if (tagByteCount >= 8) {
-                    string = reader.getString(tagByteCount);
-                    try {
-                        int year = Integer.parseInt(string.substring(0, 4));
-                        int month = Integer.parseInt(string.substring(4, 6)) - 1;
-                        int day = Integer.parseInt(string.substring(6, 8));
-                        Date date = new java.util.GregorianCalendar(year, month, day).getTime();
-                        directory.setDate(tagIdentifier, date);
-                        return;
-                    } catch (NumberFormatException e) {
-                        // fall through and we'll process the 'string' value below
-                    }
-                } else {
-                    reader.skip(tagByteCount);
-                }
-            case IptcDirectory.TAG_RELEASE_TIME:
-            case IptcDirectory.TAG_TIME_CREATED:
-                // time...
             default:
                 // fall through
         }
@@ -226,6 +216,7 @@ public class IptcReader implements JpegSegmentMetadataReader
             String[] oldStrings = directory.getStringArray(tagIdentifier);
             String[] newStrings;
             if (oldStrings == null) {
+                // TODO hitting this block means any prior value(s) are discarded
                 newStrings = new String[1];
             } else {
                 newStrings = new String[oldStrings.length + 1];
diff --git a/src/com/drew/metadata/iptc/Iso2022Converter.java b/src/com/drew/metadata/iptc/Iso2022Converter.java
index 5edd749..a57e5dd 100644
--- a/src/com/drew/metadata/iptc/Iso2022Converter.java
+++ b/src/com/drew/metadata/iptc/Iso2022Converter.java
@@ -1,3 +1,23 @@
+/*
+ * Copyright 2002-2016 Drew Noakes
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ *
+ * More information about this project is available at:
+ *
+ *    https://drewnoakes.com/code/exif/
+ *    https://github.com/drewnoakes/metadata-extractor
+ */
 package com.drew.metadata.iptc;
 
 import com.drew.lang.annotations.NotNull;
@@ -39,18 +59,18 @@ public final class Iso2022Converter
 
     /**
      * Attempts to guess the encoding of a string provided as a byte array.
-     * <p/>
+     * <p>
      * Encodings trialled are, in order:
      * <ul>
      *     <li>UTF-8</li>
      *     <li><code>System.getProperty("file.encoding")</code></li>
      *     <li>ISO-8859-1</li>
      * </ul>
-     * <p/>
+     * <p>
      * Its only purpose is to guess the encoding if and only if iptc tag coded character set is not set. If the
      * encoding is not UTF-8, the tag should be set. Otherwise it is bad practice. This method tries to
      * workaround this issue since some metadata manipulating tools do not prevent such bad practice.
-     * <p/>
+     * <p>
      * About the reliability of this method: The check if some bytes are UTF-8 or not has a very high reliability.
      * The two other checks are less reliable.
      *
diff --git a/src/com/drew/metadata/iptc/package.html b/src/com/drew/metadata/iptc/package.html
index 40c60b3..033c1ed 100644
--- a/src/com/drew/metadata/iptc/package.html
+++ b/src/com/drew/metadata/iptc/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/jpeg/JpegCommentDescriptor.java b/src/com/drew/metadata/jpeg/JpegCommentDescriptor.java
index c5a67f8..b3f4192 100644
--- a/src/com/drew/metadata/jpeg/JpegCommentDescriptor.java
+++ b/src/com/drew/metadata/jpeg/JpegCommentDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/jpeg/JpegCommentDirectory.java b/src/com/drew/metadata/jpeg/JpegCommentDirectory.java
index 7e077fa..e103d1d 100644
--- a/src/com/drew/metadata/jpeg/JpegCommentDirectory.java
+++ b/src/com/drew/metadata/jpeg/JpegCommentDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/jpeg/JpegCommentReader.java b/src/com/drew/metadata/jpeg/JpegCommentReader.java
index bcc6cfb..bcc2517 100644
--- a/src/com/drew/metadata/jpeg/JpegCommentReader.java
+++ b/src/com/drew/metadata/jpeg/JpegCommentReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@ import com.drew.imaging.jpeg.JpegSegmentType;
 import com.drew.lang.annotations.NotNull;
 import com.drew.metadata.Metadata;
 
-import java.util.Arrays;
+import java.util.Collections;
 
 /**
  * Decodes the comment stored within JPEG files, populating a {@link Metadata} object with tag values in a
@@ -38,13 +38,7 @@ public class JpegCommentReader implements JpegSegmentMetadataReader
     @NotNull
     public Iterable<JpegSegmentType> getSegmentTypes()
     {
-        return Arrays.asList(JpegSegmentType.COM);
-    }
-
-    public boolean canProcess(@NotNull byte[] segmentBytes, @NotNull JpegSegmentType segmentType)
-    {
-        // The entire contents of the byte[] is the comment. There's nothing here to discriminate upon.
-        return true;
+        return Collections.singletonList(JpegSegmentType.COM);
     }
 
     public void readJpegSegments(@NotNull Iterable<byte[]> segments, @NotNull Metadata metadata, @NotNull JpegSegmentType segmentType)
diff --git a/src/com/drew/metadata/jpeg/JpegComponent.java b/src/com/drew/metadata/jpeg/JpegComponent.java
index 06558ec..782b646 100644
--- a/src/com/drew/metadata/jpeg/JpegComponent.java
+++ b/src/com/drew/metadata/jpeg/JpegComponent.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -20,7 +20,7 @@
  */
 package com.drew.metadata.jpeg;
 
-import com.drew.lang.annotations.Nullable;
+import com.drew.lang.annotations.NotNull;
 
 import java.io.Serializable;
 
@@ -54,7 +54,7 @@ public class JpegComponent implements Serializable
      * Returns the component name (one of: Y, Cb, Cr, I, or Q)
      * @return the component name
      */
-    @Nullable
+    @NotNull
     public String getComponentName()
     {
         switch (_componentId)
@@ -69,8 +69,9 @@ public class JpegComponent implements Serializable
                 return "I";
             case 5:
                 return "Q";
+            default:
+                return String.format("Unknown (%s)", _componentId);
         }
-        return null;
     }
 
     public int getQuantizationTableNumber()
@@ -80,11 +81,11 @@ public class JpegComponent implements Serializable
 
     public int getHorizontalSamplingFactor()
     {
-        return _samplingFactorByte & 0x0F;
+        return (_samplingFactorByte>>4) & 0x0F;
     }
 
     public int getVerticalSamplingFactor()
     {
-        return (_samplingFactorByte>>4) & 0x0F;
+        return _samplingFactorByte & 0x0F;
     }
 }
diff --git a/src/com/drew/metadata/jpeg/JpegDescriptor.java b/src/com/drew/metadata/jpeg/JpegDescriptor.java
index 3989d20..8efbee7 100644
--- a/src/com/drew/metadata/jpeg/JpegDescriptor.java
+++ b/src/com/drew/metadata/jpeg/JpegDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -24,6 +24,8 @@ import com.drew.lang.annotations.NotNull;
 import com.drew.lang.annotations.Nullable;
 import com.drew.metadata.TagDescriptor;
 
+import static com.drew.metadata.jpeg.JpegDirectory.*;
+
 /**
  * Provides human-readable string versions of the tags stored in a JpegDirectory.
  * Thanks to Darrell Silver (www.darrellsilver.com) for the initial version of this class.
@@ -43,21 +45,21 @@ public class JpegDescriptor extends TagDescriptor<JpegDirectory>
     {
         switch (tagType)
         {
-            case JpegDirectory.TAG_COMPRESSION_TYPE:
+            case TAG_COMPRESSION_TYPE:
                 return getImageCompressionTypeDescription();
-            case JpegDirectory.TAG_COMPONENT_DATA_1:
+            case TAG_COMPONENT_DATA_1:
                 return getComponentDataDescription(0);
-            case JpegDirectory.TAG_COMPONENT_DATA_2:
+            case TAG_COMPONENT_DATA_2:
                 return getComponentDataDescription(1);
-            case JpegDirectory.TAG_COMPONENT_DATA_3:
+            case TAG_COMPONENT_DATA_3:
                 return getComponentDataDescription(2);
-            case JpegDirectory.TAG_COMPONENT_DATA_4:
+            case TAG_COMPONENT_DATA_4:
                 return getComponentDataDescription(3);
-            case JpegDirectory.TAG_DATA_PRECISION:
+            case TAG_DATA_PRECISION:
                 return getDataPrecisionDescription();
-            case JpegDirectory.TAG_IMAGE_HEIGHT:
+            case TAG_IMAGE_HEIGHT:
                 return getImageHeightDescription();
-            case JpegDirectory.TAG_IMAGE_WIDTH:
+            case TAG_IMAGE_WIDTH:
                 return getImageWidthDescription();
             default:
                 return super.getDescription(tagType);
@@ -67,33 +69,29 @@ public class JpegDescriptor extends TagDescriptor<JpegDirectory>
     @Nullable
     public String getImageCompressionTypeDescription()
     {
-        Integer value = _directory.getInteger(JpegDirectory.TAG_COMPRESSION_TYPE);
-        if (value==null)
-            return null;
-        // Note there is no 2 or 12
-        switch (value) {
-            case 0: return "Baseline";
-            case 1: return "Extended sequential, Huffman";
-            case 2: return "Progressive, Huffman";
-            case 3: return "Lossless, Huffman";
-            case 5: return "Differential sequential, Huffman";
-            case 6: return "Differential progressive, Huffman";
-            case 7: return "Differential lossless, Huffman";
-            case 8: return "Reserved for JPEG extensions";
-            case 9: return "Extended sequential, arithmetic";
-            case 10: return "Progressive, arithmetic";
-            case 11: return "Lossless, arithmetic";
-            case 13: return "Differential sequential, arithmetic";
-            case 14: return "Differential progressive, arithmetic";
-            case 15: return "Differential lossless, arithmetic";
-            default:
-                return "Unknown type: "+ value;
-        }
+        return getIndexedDescription(TAG_COMPRESSION_TYPE,
+            "Baseline",
+            "Extended sequential, Huffman",
+            "Progressive, Huffman",
+            "Lossless, Huffman",
+            null, // no 4
+            "Differential sequential, Huffman",
+            "Differential progressive, Huffman",
+            "Differential lossless, Huffman",
+            "Reserved for JPEG extensions",
+            "Extended sequential, arithmetic",
+            "Progressive, arithmetic",
+            "Lossless, arithmetic",
+            null, // no 12
+            "Differential sequential, arithmetic",
+            "Differential progressive, arithmetic",
+            "Differential lossless, arithmetic");
     }
+
     @Nullable
     public String getImageWidthDescription()
     {
-        final String value = _directory.getString(JpegDirectory.TAG_IMAGE_WIDTH);
+        final String value = _directory.getString(TAG_IMAGE_WIDTH);
         if (value==null)
             return null;
         return value + " pixels";
@@ -102,7 +100,7 @@ public class JpegDescriptor extends TagDescriptor<JpegDirectory>
     @Nullable
     public String getImageHeightDescription()
     {
-        final String value = _directory.getString(JpegDirectory.TAG_IMAGE_HEIGHT);
+        final String value = _directory.getString(TAG_IMAGE_HEIGHT);
         if (value==null)
             return null;
         return value + " pixels";
@@ -111,7 +109,7 @@ public class JpegDescriptor extends TagDescriptor<JpegDirectory>
     @Nullable
     public String getDataPrecisionDescription()
     {
-        final String value = _directory.getString(JpegDirectory.TAG_DATA_PRECISION);
+        final String value = _directory.getString(TAG_DATA_PRECISION);
         if (value==null)
             return null;
         return value + " bits";
diff --git a/src/com/drew/metadata/jpeg/JpegDirectory.java b/src/com/drew/metadata/jpeg/JpegDirectory.java
index 37eb488..8c456fc 100644
--- a/src/com/drew/metadata/jpeg/JpegDirectory.java
+++ b/src/com/drew/metadata/jpeg/JpegDirectory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/jpeg/JpegReader.java b/src/com/drew/metadata/jpeg/JpegReader.java
index e496718..dcf50ae 100644
--- a/src/com/drew/metadata/jpeg/JpegReader.java
+++ b/src/com/drew/metadata/jpeg/JpegReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/jpeg/package.html b/src/com/drew/metadata/jpeg/package.html
index 5e9b32a..4f24376 100644
--- a/src/com/drew/metadata/jpeg/package.html
+++ b/src/com/drew/metadata/jpeg/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/package.html b/src/com/drew/metadata/package.html
index f7b7916..6485237 100644
--- a/src/com/drew/metadata/package.html
+++ b/src/com/drew/metadata/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/com/drew/metadata/tiff/DirectoryTiffHandler.java b/src/com/drew/metadata/tiff/DirectoryTiffHandler.java
index 4fdae83..da17dca 100644
--- a/src/com/drew/metadata/tiff/DirectoryTiffHandler.java
+++ b/src/com/drew/metadata/tiff/DirectoryTiffHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2015 Drew Noakes
+ * Copyright 2002-2016 Drew Noakes
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
@@ -62,7 +62,9 @@ public abstract class DirectoryTiffHandler implements TiffHandler
     {
         _directoryStack.push(_currentDirectory);
         try {
-            _currentDirectory = directoryClass.newInstance();
+            Directory newDirectory = directoryClass.newInstance();
+            newDirectory.setParent(_currentDirectory);
+            _currentDirectory = newDirectory;
         } catch (InstantiationException e) {
             throw new RuntimeException(e);
         } catch (IllegalAccessException e) {
diff --git a/src/com/drew/metadata/tiff/package.html b/src/com/drew/metadata/tiff/package.html
index b0cc736..f3609b5 100644
--- a/src/com/drew/metadata/tiff/package.html
+++ b/src/com/drew/metadata/tiff/package.html
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright 2002-2015 Drew Noakes
+  ~ Copyright 2002-2016 Drew Noakes
   ~
   ~    Licensed under the Apache License, Version 2.0 (the "License");
   ~    you may not use this file except in compliance with the License.
diff --git a/src/org/jdesktop/swinghelper/debug/CheckThreadViolationRepaintManager.java b/src/org/jdesktop/swinghelper/debug/CheckThreadViolationRepaintManager.java
index 3eeab31..f9e5e70 100644
--- a/src/org/jdesktop/swinghelper/debug/CheckThreadViolationRepaintManager.java
+++ b/src/org/jdesktop/swinghelper/debug/CheckThreadViolationRepaintManager.java
@@ -72,7 +72,7 @@ public class CheckThreadViolationRepaintManager extends RepaintManager {
                 if (repaint && st.getClassName().startsWith("javax.swing.") &&
                         // for details see
                         // https://swinghelper.dev.java.net/issues/show_bug.cgi?id=1
-                        !st.getClassName().startsWith("javax.swing.SwingWorker")) {
+                         !st.getClassName().startsWith("javax.swing.SwingWorker")) {
                     fromSwing = true;
                 }
                 if (repaint && "imageUpdate".equals(st.getMethodName())) {
@@ -82,17 +82,24 @@ public class CheckThreadViolationRepaintManager extends RepaintManager {
                     repaint = true;
                     fromSwing = false;
                 }
+                if ("read".equals(st.getMethodName()) && "javax.swing.JEditorPane".equals(st.getClassName())) {
+                    // Swing reads html from a background thread
+                    return;
+                }
             }
-            if (imageUpdate)
+            if (imageUpdate) {
                 //assuming it is java.awt.image.ImageObserver.imageUpdate(...)
                 //image was asynchronously updated, that's ok
                 return;
-            if (repaint && !fromSwing)
+            }
+            if (repaint && !fromSwing) {
                 //no problems here, since repaint() is thread safe
                 return;
+            }
             //ignore the last processed component
-            if (lastComponent != null && c == lastComponent.get())
+            if (lastComponent != null && c == lastComponent.get()) {
                 return;
+            }
             lastComponent = new WeakReference<>(c);
             violationFound(c, stackTrace);
         }
diff --git a/src/org/openstreetmap/josm/Main.java b/src/org/openstreetmap/josm/Main.java
index a2ac9c0..4284b17 100644
--- a/src/org/openstreetmap/josm/Main.java
+++ b/src/org/openstreetmap/josm/Main.java
@@ -34,10 +34,6 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
-import java.util.logging.Handler;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
 
 import javax.swing.Action;
 import javax.swing.InputMap;
@@ -73,12 +69,13 @@ import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.ProjectionChangeListener;
 import org.openstreetmap.josm.data.validation.OsmValidator;
 import org.openstreetmap.josm.gui.GettingStarted;
-import org.openstreetmap.josm.gui.MainApplication.Option;
 import org.openstreetmap.josm.gui.MainFrame;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MainPanel;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapFrameListener;
+import org.openstreetmap.josm.gui.ProgramArguments;
+import org.openstreetmap.josm.gui.ProgramArguments.Option;
 import org.openstreetmap.josm.gui.io.SaveLayersDialog;
 import org.openstreetmap.josm.gui.layer.AbstractModifiableLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -103,6 +100,7 @@ import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.OpenBrowser;
 import org.openstreetmap.josm.tools.OsmUrlToBounds;
 import org.openstreetmap.josm.tools.PlatformHook;
@@ -167,7 +165,7 @@ public abstract class Main {
     /**
      * Global application preferences
      */
-    public static Preferences pref;
+    public static final Preferences pref = new Preferences();
 
     /**
      * The MapFrame. Use {@link Main#setMapFrame} to set or clear it.
@@ -218,15 +216,14 @@ public abstract class Main {
 
     protected static final Map<String, Throwable> NETWORK_ERRORS = new HashMap<>();
 
-    // First lines of last 5 error and warning messages, used for bug reports
-    private static final List<String> ERRORS_AND_WARNINGS = Collections.<String>synchronizedList(new ArrayList<String>());
-
     private static final Set<OnlineResource> OFFLINE_RESOURCES = EnumSet.noneOf(OnlineResource.class);
 
     /**
      * Logging level (5 = trace, 4 = debug, 3 = info, 2 = warn, 1 = error, 0 = none).
      * @since 6248
+     * @deprecated Use {@link Logging} class.
      */
+    @Deprecated
     public static int logLevel = 3;
 
     /**
@@ -235,27 +232,13 @@ public abstract class Main {
      */
     protected static final MainPanel mainPanel = new MainPanel(getLayerManager());
 
-    private static void rememberWarnErrorMsg(String msg) {
-        // Only remember first line of message
-        int idx = msg.indexOf('\n');
-        if (idx > 0) {
-            ERRORS_AND_WARNINGS.add(msg.substring(0, idx));
-        } else {
-            ERRORS_AND_WARNINGS.add(msg);
-        }
-        // Only keep 10 lines to avoid memory leak
-        while (ERRORS_AND_WARNINGS.size() > 10) {
-            ERRORS_AND_WARNINGS.remove(0);
-        }
-    }
-
     /**
      * Replies the first lines of last 5 error and warning messages, used for bug reports
      * @return the first lines of last 5 error and warning messages
      * @since 7420
      */
     public static final Collection<String> getLastErrorAndWarnings() {
-        return Collections.unmodifiableList(ERRORS_AND_WARNINGS);
+        return Logging.getLastErrorAndWarnings();
     }
 
     /**
@@ -263,7 +246,7 @@ public abstract class Main {
      * @since 8959
      */
     public static void clearLastErrorAndWarnings() {
-        ERRORS_AND_WARNINGS.clear();
+        Logging.clearLastErrorAndWarnings();
     }
 
     /**
@@ -272,12 +255,7 @@ public abstract class Main {
      * @since 6248
      */
     public static void error(String msg) {
-        if (logLevel < 1)
-            return;
-        if (msg != null && !msg.isEmpty()) {
-            System.err.println(tr("ERROR: {0}", msg));
-            rememberWarnErrorMsg("E: "+msg);
-        }
+        Logging.error(msg);
     }
 
     /**
@@ -285,12 +263,7 @@ public abstract class Main {
      * @param msg The message to print.
      */
     public static void warn(String msg) {
-        if (logLevel < 2)
-            return;
-        if (msg != null && !msg.isEmpty()) {
-            System.err.println(tr("WARNING: {0}", msg));
-            rememberWarnErrorMsg("W: "+msg);
-        }
+        Logging.warn(msg);
     }
 
     /**
@@ -298,11 +271,7 @@ public abstract class Main {
      * @param msg The message to print.
      */
     public static void info(String msg) {
-        if (logLevel < 3)
-            return;
-        if (msg != null && !msg.isEmpty()) {
-            System.out.println(tr("INFO: {0}", msg));
-        }
+        Logging.info(msg);
     }
 
     /**
@@ -310,11 +279,7 @@ public abstract class Main {
      * @param msg The message to print.
      */
     public static void debug(String msg) {
-        if (logLevel < 4)
-            return;
-        if (msg != null && !msg.isEmpty()) {
-            System.out.println(tr("DEBUG: {0}", msg));
-        }
+        Logging.debug(msg);
     }
 
     /**
@@ -322,12 +287,7 @@ public abstract class Main {
      * @param msg The message to print.
      */
     public static void trace(String msg) {
-        if (logLevel < 5)
-            return;
-        if (msg != null && !msg.isEmpty()) {
-            System.out.print("TRACE: ");
-            System.out.println(msg);
-        }
+        Logging.trace(msg);
     }
 
     /**
@@ -337,7 +297,7 @@ public abstract class Main {
      * @since 6852
      */
     public static boolean isDebugEnabled() {
-        return logLevel >= 4;
+        return Logging.isLoggingEnabled(Logging.LEVEL_DEBUG);
     }
 
     /**
@@ -347,7 +307,7 @@ public abstract class Main {
      * @since 6852
      */
     public static boolean isTraceEnabled() {
-        return logLevel >= 5;
+        return Logging.isLoggingEnabled(Logging.LEVEL_TRACE);
     }
 
     /**
@@ -358,7 +318,7 @@ public abstract class Main {
      * @since 6248
      */
     public static void error(String msg, Object... objects) {
-        error(MessageFormat.format(msg, objects));
+        Logging.error(msg, objects);
     }
 
     /**
@@ -368,7 +328,7 @@ public abstract class Main {
      * @param objects The objects to insert into format string.
      */
     public static void warn(String msg, Object... objects) {
-        warn(MessageFormat.format(msg, objects));
+        Logging.warn(msg, objects);
     }
 
     /**
@@ -378,7 +338,7 @@ public abstract class Main {
      * @param objects The objects to insert into format string.
      */
     public static void info(String msg, Object... objects) {
-        info(MessageFormat.format(msg, objects));
+        Logging.info(msg, objects);
     }
 
     /**
@@ -388,7 +348,7 @@ public abstract class Main {
      * @param objects The objects to insert into format string.
      */
     public static void debug(String msg, Object... objects) {
-        debug(MessageFormat.format(msg, objects));
+        Logging.debug(msg, objects);
     }
 
     /**
@@ -398,7 +358,7 @@ public abstract class Main {
      * @param objects The objects to insert into format string.
      */
     public static void trace(String msg, Object... objects) {
-        trace(MessageFormat.format(msg, objects));
+        Logging.trace(msg, objects);
     }
 
     /**
@@ -407,7 +367,7 @@ public abstract class Main {
      * @since 6248
      */
     public static void error(Throwable t) {
-        error(t, true);
+        Logging.logWithStackTrace(Logging.LEVEL_ERROR, t);
     }
 
     /**
@@ -416,7 +376,7 @@ public abstract class Main {
      * @since 6248
      */
     public static void warn(Throwable t) {
-        warn(t, true);
+        Logging.logWithStackTrace(Logging.LEVEL_WARN, t);
     }
 
     /**
@@ -425,7 +385,7 @@ public abstract class Main {
      * @since 10420
      */
     public static void debug(Throwable t) {
-        debug(getErrorMessage(t));
+        Logging.log(Logging.LEVEL_DEBUG, t);
     }
 
     /**
@@ -434,7 +394,7 @@ public abstract class Main {
      * @since 10420
      */
     public static void trace(Throwable t) {
-        trace(getErrorMessage(t));
+        Logging.log(Logging.LEVEL_TRACE, t);
     }
 
     /**
@@ -444,9 +404,10 @@ public abstract class Main {
      * @since 6642
      */
     public static void error(Throwable t, boolean stackTrace) {
-        error(getErrorMessage(t));
         if (stackTrace) {
-            t.printStackTrace();
+            Logging.log(Logging.LEVEL_ERROR, t);
+        } else {
+            Logging.logWithStackTrace(Logging.LEVEL_ERROR, t);
         }
     }
 
@@ -457,7 +418,7 @@ public abstract class Main {
      * @since 10420
      */
     public static void error(Throwable t, String message) {
-        warn(message + ' ' + getErrorMessage(t));
+        Logging.log(Logging.LEVEL_ERROR, message, t);
     }
 
     /**
@@ -467,9 +428,10 @@ public abstract class Main {
      * @since 6642
      */
     public static void warn(Throwable t, boolean stackTrace) {
-        warn(getErrorMessage(t));
         if (stackTrace) {
-            t.printStackTrace();
+            Logging.log(Logging.LEVEL_WARN, t);
+        } else {
+            Logging.logWithStackTrace(Logging.LEVEL_WARN, t);
         }
     }
 
@@ -480,7 +442,7 @@ public abstract class Main {
      * @since 10420
      */
     public static void warn(Throwable t, String message) {
-        warn(message + ' ' + getErrorMessage(t));
+        Logging.log(Logging.LEVEL_WARN, message, t);
     }
 
     /**
@@ -492,17 +454,9 @@ public abstract class Main {
     public static String getErrorMessage(Throwable t) {
         if (t == null) {
             return null;
+        } else {
+            return Logging.getErrorMessage(t);
         }
-        StringBuilder sb = new StringBuilder(t.getClass().getName());
-        String msg = t.getMessage();
-        if (msg != null) {
-            sb.append(": ").append(msg.trim());
-        }
-        Throwable cause = t.getCause();
-        if (cause != null && !cause.equals(t)) {
-            sb.append(". ").append(tr("Cause: ")).append(getErrorMessage(cause));
-        }
-        return sb.toString();
     }
 
     /**
@@ -514,20 +468,6 @@ public abstract class Main {
     public static volatile PlatformHook platform;
 
     /**
-     * Whether or not the java vm is openjdk
-     * We use this to work around openjdk bugs
-     */
-    public static boolean isOpenjdk;
-
-    /**
-     * Initializes {@code Main.pref} in normal application context.
-     * @since 6471
-     */
-    public static void initApplicationPreferences() {
-        Main.pref = new Preferences();
-    }
-
-    /**
      * Set or clear (if passed <code>null</code>) the map.
      * <p>
      * To be removed any time
@@ -582,23 +522,11 @@ public abstract class Main {
      * @since 10340
      */
     public void initialize() {
-        isOpenjdk = System.getProperty("java.vm.name").toUpperCase(Locale.ENGLISH).indexOf("OPENJDK") != -1;
         fileWatcher.start();
 
-        new InitializationTask(tr("Executing platform startup hook")) {
-            @Override
-            public void initialize() {
-                platform.startupHook();
-            }
-        }.call();
+        new InitializationTask(tr("Executing platform startup hook"), platform::startupHook).call();
 
-        new InitializationTask(tr("Building main menu")) {
-
-            @Override
-            public void initialize() {
-                initializeMainWindow();
-            }
-        }.call();
+        new InitializationTask(tr("Building main menu"), this::initializeMainWindow).call();
 
         undoRedo.addCommandQueueListener(redoUndoListener);
 
@@ -611,10 +539,7 @@ public abstract class Main {
         // contains several initialization tasks to be executed (in parallel) by a ExecutorService
         List<Callable<Void>> tasks = new ArrayList<>();
 
-        tasks.add(new InitializationTask(tr("Initializing OSM API")) {
-
-            @Override
-            public void initialize() {
+        tasks.add(new InitializationTask(tr("Initializing OSM API"), () -> {
                 // We try to establish an API connection early, so that any API
                 // capabilities are already known to the editor instance. However
                 // if it goes wrong that's not critical at this stage.
@@ -623,43 +548,18 @@ public abstract class Main {
                 } catch (OsmTransferCanceledException | OsmApiInitializationException e) {
                     Main.warn(getErrorMessage(Utils.getRootCause(e)));
                 }
-            }
-        });
+            }));
 
-        tasks.add(new InitializationTask(tr("Initializing validator")) {
+        tasks.add(new InitializationTask(tr("Initializing validator"), OsmValidator::initialize));
 
-            @Override
-            public void initialize() {
-                OsmValidator.initialize();
-            }
-        });
-
-        tasks.add(new InitializationTask(tr("Initializing presets")) {
+        tasks.add(new InitializationTask(tr("Initializing presets"), TaggingPresets::initialize));
 
-            @Override
-            public void initialize() {
-                TaggingPresets.initialize();
-            }
-        });
+        tasks.add(new InitializationTask(tr("Initializing map styles"), MapPaintPreference::initialize));
 
-        tasks.add(new InitializationTask(tr("Initializing map styles")) {
-
-            @Override
-            public void initialize() {
-                MapPaintPreference.initialize();
-            }
-        });
-
-        tasks.add(new InitializationTask(tr("Loading imagery preferences")) {
-
-            @Override
-            public void initialize() {
-                ImageryPreference.initialize();
-            }
-        });
+        tasks.add(new InitializationTask(tr("Loading imagery preferences"), ImageryPreference::initialize));
 
         try {
-            final ExecutorService service = Executors.newFixedThreadPool(
+            ExecutorService service = Executors.newFixedThreadPool(
                     Runtime.getRuntime().availableProcessors(), Utils.newThreadFactory("main-init-%d", Thread.NORM_PRIORITY));
             for (Future<Void> i : service.invokeAll(tasks)) {
                 i.get();
@@ -672,51 +572,13 @@ public abstract class Main {
         // hooks for the jmapviewer component
         FeatureAdapter.registerBrowserAdapter(OpenBrowser::displayUrl);
         FeatureAdapter.registerTranslationAdapter(I18n.getTranslationAdapter());
-        FeatureAdapter.registerLoggingAdapter(name -> {
-                Logger logger = Logger.getAnonymousLogger();
-                logger.setUseParentHandlers(false);
-                logger.setLevel(Level.ALL);
-                if (logger.getHandlers().length == 0) {
-                    logger.addHandler(new Handler() {
-                        @Override
-                        public void publish(LogRecord record) {
-                            String msg = MessageFormat.format(record.getMessage(), record.getParameters());
-                            if (record.getLevel().intValue() >= Level.SEVERE.intValue()) {
-                                Main.error(msg);
-                            } else if (record.getLevel().intValue() >= Level.WARNING.intValue()) {
-                                Main.warn(msg);
-                            } else if (record.getLevel().intValue() >= Level.INFO.intValue()) {
-                                Main.info(msg);
-                            } else if (record.getLevel().intValue() >= Level.FINE.intValue()) {
-                                Main.debug(msg);
-                            } else {
-                                Main.trace(msg);
-                            }
-                        }
+        FeatureAdapter.registerLoggingAdapter(name -> Logging.getLogger());
 
-                        @Override
-                        public void flush() {
-                            // Do nothing
-                        }
-
-                        @Override
-                        public void close() {
-                            // Do nothing
-                        }
-                    });
-                }
-                return logger;
-            });
-
-        new InitializationTask(tr("Updating user interface")) {
-
-            @Override
-            public void initialize() {
-                toolbar.refreshToolbarControl();
-                toolbar.control.updateUI();
-                contentPanePrivate.updateUI();
-            }
-        }.call();
+        new InitializationTask(tr("Updating user interface"), () -> {
+            toolbar.refreshToolbarControl();
+            toolbar.control.updateUI();
+            contentPanePrivate.updateUI();
+        }).call();
     }
 
     /**
@@ -727,23 +589,23 @@ public abstract class Main {
         // can be implementd by subclasses
     }
 
-    private abstract static class InitializationTask implements Callable<Void> {
+    private static class InitializationTask implements Callable<Void> {
 
         private final String name;
+        private final Runnable task;
 
-        protected InitializationTask(String name) {
+        protected InitializationTask(String name, Runnable task) {
             this.name = name;
+            this.task = task;
         }
 
-        public abstract void initialize();
-
         @Override
         public Void call() {
             Object status = null;
             if (initListener != null) {
                 status = initListener.updateStatus(name);
             }
-            initialize();
+            task.run();
             if (initListener != null) {
                 initListener.finish(status);
             }
@@ -963,9 +825,8 @@ public abstract class Main {
 
     /**
      * Should be called before the main constructor to setup some parameter stuff
-     * @param args The parsed argument list.
      */
-    public static void preConstructorInit(Map<Option, Collection<String>> args) {
+    public static void preConstructorInit() {
         ProjectionPreference.setProjection();
 
         String defaultlaf = platform.getDefaultStyle();
@@ -1032,25 +893,19 @@ public abstract class Main {
         }
     }
 
-    protected static void postConstructorProcessCmdLine(Map<Option, Collection<String>> args) {
-        if (args.containsKey(Option.DOWNLOAD)) {
-            List<File> fileList = new ArrayList<>();
-            for (String s : args.get(Option.DOWNLOAD)) {
-                DownloadParamType.paramType(s).download(s, fileList);
-            }
-            if (!fileList.isEmpty()) {
-                OpenFileAction.openFiles(fileList, true);
-            }
+    protected static void postConstructorProcessCmdLine(ProgramArguments args) {
+        List<File> fileList = new ArrayList<>();
+        for (String s : args.get(Option.DOWNLOAD)) {
+            DownloadParamType.paramType(s).download(s, fileList);
         }
-        if (args.containsKey(Option.DOWNLOADGPS)) {
-            for (String s : args.get(Option.DOWNLOADGPS)) {
-                DownloadParamType.paramType(s).downloadGps(s);
-            }
+        if (!fileList.isEmpty()) {
+            OpenFileAction.openFiles(fileList, true);
         }
-        if (args.containsKey(Option.SELECTION)) {
-            for (String s : args.get(Option.SELECTION)) {
-                SearchAction.search(s, SearchAction.SearchMode.add);
-            }
+        for (String s : args.get(Option.DOWNLOADGPS)) {
+            DownloadParamType.paramType(s).downloadGps(s);
+        }
+        for (String s : args.get(Option.SELECTION)) {
+            SearchAction.search(s, SearchAction.SearchMode.add);
         }
     }
 
@@ -1503,10 +1358,8 @@ public abstract class Main {
         public static void setup() {
             if (!windowSwitchListeners.isEmpty()) {
                 for (Window w : Window.getWindows()) {
-                    if (w.isShowing()) {
-                        if (!Arrays.asList(w.getWindowListeners()).contains(getInstance())) {
-                            w.addWindowListener(getInstance());
-                        }
+                    if (w.isShowing() && !Arrays.asList(w.getWindowListeners()).contains(getInstance())) {
+                        w.addWindowListener(getInstance());
                     }
                 }
             }
diff --git a/src/org/openstreetmap/josm/actions/CloseChangesetAction.java b/src/org/openstreetmap/josm/actions/CloseChangesetAction.java
index a5c43e4..caf8522 100644
--- a/src/org/openstreetmap/josm/actions/CloseChangesetAction.java
+++ b/src/org/openstreetmap/josm/actions/CloseChangesetAction.java
@@ -82,7 +82,6 @@ public class CloseChangesetAction extends JosmAction {
         private OsmServerChangesetReader reader;
         private List<Changeset> changesets;
         private Exception lastException;
-        private UserInfo userInfo;
 
         private DownloadOpenChangesetsTask() {
             super(tr("Downloading open changesets ..."), false /* don't ignore exceptions */);
@@ -120,7 +119,7 @@ public class CloseChangesetAction extends JosmAction {
         @Override
         protected void realRun() throws SAXException, IOException, OsmTransferException {
             try {
-                userInfo = fetchUserInfo();
+                UserInfo userInfo = fetchUserInfo();
                 if (canceled)
                     return;
                 reader = new OsmServerChangesetReader();
diff --git a/src/org/openstreetmap/josm/actions/DownloadOsmInViewAction.java b/src/org/openstreetmap/josm/actions/DownloadOsmInViewAction.java
new file mode 100644
index 0000000..2ab75b1
--- /dev/null
+++ b/src/org/openstreetmap/josm/actions/DownloadOsmInViewAction.java
@@ -0,0 +1,50 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.util.concurrent.Future;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
+import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.io.BoundingBoxDownloader;
+import org.openstreetmap.josm.io.OnlineResource;
+
+/**
+ * Action that downloads the OSM data within the current view from the server.
+ *
+ * No interaction is required.
+ */
+public final class DownloadOsmInViewAction extends JosmAction {
+
+    /**
+     * Creates a new {@code DownloadOsmInViewAction}.
+     */
+    public DownloadOsmInViewAction() {
+        super(tr("Download in current view"), "download_in_view", tr("Download map data from the OSM server in current view"), null, false,
+                "dialogs/download_in_view", true);
+    }
+
+    @Override
+    public void actionPerformed(ActionEvent e) {
+        final Bounds bounds = Main.map.mapView.getRealBounds();
+        DownloadOsmInViewTask task = new DownloadOsmInViewTask();
+        Future<?> future = task.download(bounds);
+        Main.worker.submit(new PostDownloadHandler(task, future));
+    }
+
+    @Override
+    protected void updateEnabledState() {
+        setEnabled(Main.getLayerManager().getActiveLayer() != null
+                && !Main.isOffline(OnlineResource.OSM_API));
+    }
+
+    private static class DownloadOsmInViewTask extends DownloadOsmTask {
+        Future<?> download(Bounds downloadArea) {
+            return download(new DownloadTask(false, new BoundingBoxDownloader(downloadArea), null, false), downloadArea);
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java b/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
index bb0ac0e..c16c203 100644
--- a/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
+++ b/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
@@ -101,7 +101,6 @@ public class ExtensionFileFilter extends FileFilter implements java.io.FileFilte
                 org.openstreetmap.josm.io.OsmExporter.class,
                 org.openstreetmap.josm.io.OsmGzipExporter.class,
                 org.openstreetmap.josm.io.OsmBzip2Exporter.class,
-                org.openstreetmap.josm.io.GeoJSONExporter.CurrentProjection.class, // needs to be considered earlier than GeoJSONExporter
                 org.openstreetmap.josm.io.GeoJSONExporter.class,
                 org.openstreetmap.josm.io.WMSLayerExporter.class,
                 org.openstreetmap.josm.io.NoteExporter.class
@@ -204,10 +203,10 @@ public class ExtensionFileFilter extends FileFilter implements java.io.FileFilte
 
     /**
      * Updates the {@link AllFormatsImporter} that is contained in the importers list. If
-     * you do not use the importers variable directly, you don’t need to call this.
+     * you do not use the importers variable directly, you don't need to call this.
      * <p>
      * Updating the AllFormatsImporter is required when plugins add new importers that
-     * support new file extensions. The old AllFormatsImporter doesn’t include the new
+     * support new file extensions. The old AllFormatsImporter doesn't include the new
      * extensions and thus will not display these files.
      *
      * @since 5131
diff --git a/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java b/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java
index 315147a..7272264 100644
--- a/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java
+++ b/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java
@@ -91,6 +91,7 @@ public class ImageryAdjustAction extends MapMode implements AWTEventListener {
                 layer.getDisplaySettings().setDisplacement(old);
             }
             offsetDialog.setVisible(false);
+            // do not restore old mode here - this is called when the new mode is already known.
             offsetDialog = null;
         }
         removeListeners();
@@ -300,20 +301,24 @@ public class ImageryAdjustAction extends MapMode implements AWTEventListener {
                 }
             }
             Main.main.menu.imageryMenu.refreshOffsetMenu();
-            if (Main.map == null)
-                return;
-            if (oldMapMode != null) {
-                Main.map.selectMapMode(oldMapMode);
-                oldMapMode = null;
-            } else {
-                Main.map.selectSelectTool(false);
-            }
         }
 
         class WindowEventHandler extends WindowAdapter {
             @Override
             public void windowClosing(WindowEvent e) {
                 setVisible(false);
+                restoreMapModeState();
+            }
+
+            private void restoreMapModeState() {
+                if (Main.map == null)
+                    return;
+                if (oldMapMode != null) {
+                    Main.map.selectMapMode(oldMapMode);
+                    oldMapMode = null;
+                } else {
+                    Main.map.selectSelectTool(false);
+                }
             }
         }
     }
diff --git a/src/org/openstreetmap/josm/actions/MergeNodesAction.java b/src/org/openstreetmap/josm/actions/MergeNodesAction.java
index 59254ad..601a04c 100644
--- a/src/org/openstreetmap/josm/actions/MergeNodesAction.java
+++ b/src/org/openstreetmap/josm/actions/MergeNodesAction.java
@@ -13,6 +13,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 
 import javax.swing.JOptionPane;
@@ -331,7 +332,7 @@ public class MergeNodesAction extends JosmAction {
             //
             if (!targetNode.equals(targetLocationNode)) {
                 LatLon targetLocationCoor = targetLocationNode.getCoor();
-                if (!targetNode.getCoor().equals(targetLocationCoor)) {
+                if (!Objects.equals(targetNode.getCoor(), targetLocationCoor)) {
                     Node newTargetNode = new Node(targetNode);
                     newTargetNode.setCoor(targetLocationCoor);
                     cmds.add(new ChangeCommand(targetNode, newTargetNode));
diff --git a/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java b/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java
index dec48ff..0a890c8 100644
--- a/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java
+++ b/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java
@@ -6,36 +6,37 @@ import javax.swing.JCheckBoxMenuItem;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
 
 public class PreferenceToggleAction extends JosmAction implements PreferenceChangedListener {
 
     private final JCheckBoxMenuItem checkbox;
-    private final String prefKey;
-    private final boolean prefDefault;
+    private final BooleanProperty pref;
 
     public PreferenceToggleAction(String name, String tooltip, String prefKey, boolean prefDefault) {
         super(name, null, tooltip, null, false);
         putValue("toolbar", "toggle-" + prefKey);
-        this.prefKey = prefKey;
-        this.prefDefault = prefDefault;
-        this.checkbox = new JCheckBoxMenuItem(this);
-        this.checkbox.setSelected(Main.pref.getBoolean(prefKey, prefDefault));
-        Main.pref.addPreferenceChangeListener(this);
+        this.pref = new BooleanProperty(prefKey, prefDefault);
+        checkbox = new JCheckBoxMenuItem(this);
+        checkbox.setSelected(pref.get());
+        Main.pref.addWeakKeyPreferenceChangeListener(prefKey, this);
     }
 
     @Override
     public void actionPerformed(ActionEvent e) {
-        Main.pref.put(prefKey, checkbox.isSelected());
+        pref.put(checkbox.isSelected());
     }
 
+    /**
+     * Get the checkbox that can be used for this action. It can only be used at one place.
+     * @return The checkbox.
+     */
     public JCheckBoxMenuItem getCheckbox() {
         return checkbox;
     }
 
     @Override
     public void preferenceChanged(Preferences.PreferenceChangeEvent e) {
-        if (prefKey.equals(e.getKey())) {
-            checkbox.setSelected(Main.pref.getBoolean(prefKey, prefDefault));
-        }
+        checkbox.setSelected(pref.get());
     }
 }
diff --git a/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java b/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
index 8e6e697..c0376a1 100644
--- a/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
+++ b/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
@@ -5,6 +5,8 @@ import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.Dimension;
+import java.awt.DisplayMode;
+import java.awt.GraphicsEnvironment;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
 import java.lang.management.ManagementFactory;
@@ -30,6 +32,7 @@ import org.openstreetmap.josm.gui.preferences.SourceEditor;
 import org.openstreetmap.josm.gui.preferences.map.MapPaintPreference;
 import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
 import org.openstreetmap.josm.gui.preferences.validator.ValidatorTagCheckerRulesPreference;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.tools.PlatformHookUnixoid;
@@ -89,7 +92,23 @@ public final class ShowStatusReportAction extends JosmAction {
             .append(" MB allocated, but free)\nJava version: ")
             .append(runtimeVersion != null ? runtimeVersion : System.getProperty("java.version")).append(", ")
             .append(System.getProperty("java.vendor")).append(", ")
-            .append(System.getProperty("java.vm.name")).append('\n');
+            .append(System.getProperty("java.vm.name"))
+            .append("\nScreen: ");
+        if (!GraphicsEnvironment.isHeadless()) {
+            text.append(Arrays.stream(GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()).map(gd -> {
+                        StringBuilder b = new StringBuilder(gd.getIDstring());
+                        DisplayMode dm = gd.getDisplayMode();
+                        if (dm != null) {
+                            b.append(' ').append(dm.getWidth()).append('x').append(dm.getHeight());
+                        }
+                        return b.toString();
+                    }).collect(Collectors.joining(", ")));
+        }
+        Dimension maxScreenSize = GuiHelper.getMaximumScreenSize();
+        text.append("\nMaximum Screen Size: ")
+            .append((int) maxScreenSize.getWidth()).append('x')
+            .append((int) maxScreenSize.getHeight()).append('\n');
+
         if (Main.platform.getClass() == PlatformHookUnixoid.class) {
             // Add Java package details
             String packageDetails = ((PlatformHookUnixoid) Main.platform).getJavaPackageDetails();
@@ -220,7 +239,9 @@ public final class ShowStatusReportAction extends JosmAction {
         val = paramReplace(val, userDataDir, userDataDirAlt);
         val = paramReplace(val, userCacheDir, userCacheDirAlt);
         val = paramReplace(val, userHomeDir, userHomeDirAlt);
-        val = paramReplace(val, userName, userNameAlt);
+        if (userName.length() >= 3) {
+            val = paramReplace(val, userName, userNameAlt);
+        }
         return val;
     }
 
diff --git a/src/org/openstreetmap/josm/actions/ValidateAction.java b/src/org/openstreetmap/josm/actions/ValidateAction.java
index 12febf6..4f2851f 100644
--- a/src/org/openstreetmap/josm/actions/ValidateAction.java
+++ b/src/org/openstreetmap/josm/actions/ValidateAction.java
@@ -168,7 +168,7 @@ public class ValidateAction extends JosmAction {
                 errors.addAll(test.getErrors());
             }
             tests = null;
-            if (Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true)) {
+            if (ValidatorPreference.PREF_USE_IGNORE.get()) {
                 getProgressMonitor().subTask(tr("Updating ignored errors ..."));
                 for (TestError error : errors) {
                     if (canceled) return;
diff --git a/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java b/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
index 6ac7873..e623b70 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
@@ -11,16 +11,15 @@ import java.awt.Color;
 import java.awt.Cursor;
 import java.awt.Graphics2D;
 import java.awt.Point;
-import java.awt.Stroke;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
-import java.awt.geom.GeneralPath;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -28,6 +27,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.DoubleStream;
 
 import javax.swing.AbstractAction;
 import javax.swing.JCheckBoxMenuItem;
@@ -50,15 +50,26 @@ import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
+import org.openstreetmap.josm.data.osm.visitor.paint.ArrowPaintHelper;
 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
+import org.openstreetmap.josm.data.preferences.AbstractToStringProperty;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
+import org.openstreetmap.josm.data.preferences.CachingProperty;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
+import org.openstreetmap.josm.data.preferences.DoubleProperty;
+import org.openstreetmap.josm.data.preferences.StrokeProperty;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.MapViewState;
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.gui.draw.MapPath2D;
+import org.openstreetmap.josm.gui.draw.MapViewPath;
+import org.openstreetmap.josm.gui.draw.SymbolShape;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.MapViewPaintable;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.util.KeyPressReleaseListener;
 import org.openstreetmap.josm.gui.util.ModifierListener;
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
@@ -74,7 +85,46 @@ import org.openstreetmap.josm.tools.Utils;
 public class DrawAction extends MapMode implements MapViewPaintable, SelectionChangedListener, KeyPressReleaseListener, ModifierListener {
 
     private static final Color ORANGE_TRANSPARENT = new Color(Color.ORANGE.getRed(), Color.ORANGE.getGreen(), Color.ORANGE.getBlue(), 128);
-    private static final double PHI = Math.toRadians(90);
+
+    private static final ArrowPaintHelper START_WAY_INDICATOR = new ArrowPaintHelper(Math.toRadians(90), 8);
+
+    private static final CachingProperty<Boolean> USE_REPEATED_SHORTCUT
+            = new BooleanProperty("draw.anglesnap.toggleOnRepeatedA", true).cached();
+    private static final CachingProperty<BasicStroke> RUBBER_LINE_STROKE
+            = new StrokeProperty("draw.stroke.helper-line", "3").cached();
+
+    private static final CachingProperty<BasicStroke> HIGHLIGHT_STROKE
+            = new StrokeProperty("draw.anglesnap.stroke.highlight", "10").cached();
+    private static final CachingProperty<BasicStroke> HELPER_STROKE
+            = new StrokeProperty("draw.anglesnap.stroke.helper", "1 4").cached();
+
+    private static final CachingProperty<Double> SNAP_ANGLE_TOLERANCE
+            = new DoubleProperty("draw.anglesnap.tolerance", 5.0).cached();
+    private static final CachingProperty<Boolean> DRAW_CONSTRUCTION_GEOMETRY
+            = new BooleanProperty("draw.anglesnap.drawConstructionGeometry", true).cached();
+    private static final CachingProperty<Boolean> SHOW_PROJECTED_POINT
+            = new BooleanProperty("draw.anglesnap.drawProjectedPoint", true).cached();
+    private static final CachingProperty<Boolean> SNAP_TO_PROJECTIONS
+            = new BooleanProperty("draw.anglesnap.projectionsnap", true).cached();
+
+    private static final CachingProperty<Boolean> SHOW_ANGLE
+            = new BooleanProperty("draw.anglesnap.showAngle", true).cached();
+
+    private static final CachingProperty<Color> SNAP_HELPER_COLOR
+            = new ColorProperty(marktr("draw angle snap"), Color.ORANGE).cached();
+
+    private static final CachingProperty<Color> HIGHLIGHT_COLOR
+            = new ColorProperty(marktr("draw angle snap highlight"), ORANGE_TRANSPARENT).cached();
+
+    private static final AbstractToStringProperty<Color> RUBBER_LINE_COLOR
+            = PaintColors.SELECTED.getProperty().getChildColor(marktr("helper line"));
+
+    private static final CachingProperty<Boolean> DRAW_HELPER_LINE
+            = new BooleanProperty("draw.helper-line", true).cached();
+    private static final CachingProperty<Boolean> DRAW_TARGET_HIGHLIGHT
+            = new BooleanProperty("draw.target-highlight", true).cached();
+    private static final CachingProperty<Double> SNAP_TO_INTERSECTION_THRESHOLD
+            = new DoubleProperty("edit.snap-intersection-threshold", 10).cached();
 
     private final Cursor cursorJoinNode;
     private final Cursor cursorJoinWay;
@@ -89,15 +139,12 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
     // derives its information from this list as well.
     private transient Set<OsmPrimitive> oldHighlights = new HashSet<>();
     // new highlights contains a list of primitives that should be highlighted
-    // but haven’t been so far. The idea is to compare old and new and only
+    // but haven't been so far. The idea is to compare old and new and only
     // repaint if there are changes.
     private transient Set<OsmPrimitive> newHighlights = new HashSet<>();
-    private boolean drawHelperLine;
     private boolean wayIsFinished;
-    private boolean drawTargetHighlight;
     private Point mousePos;
     private Point oldMousePos;
-    private Color rubberLineColor;
 
     private transient Node currentBaseNode;
     private transient Node previousNode;
@@ -112,11 +159,9 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
 
     private final SnapChangeAction snapChangeAction;
     private final JCheckBoxMenuItem snapCheckboxMenuItem;
-    private boolean useRepeatedShortcut;
-    private transient Stroke rubberLineStroke;
     private static final BasicStroke BASIC_STROKE = new BasicStroke(1);
 
-    private static int snapToIntersectionThreshold;
+    private Point rightClickPressPos;
 
     /**
      * Constructs a new {@code DrawAction}.
@@ -138,9 +183,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         cursorJoinNode = ImageProvider.getCursor("crosshair", "joinnode");
         cursorJoinWay = ImageProvider.getCursor("crosshair", "joinway");
 
-        readPreferences();
         snapHelper.init();
-        readPreferences();
     }
 
     private JCheckBoxMenuItem addMenuItem() {
@@ -161,8 +204,8 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
     private boolean redrawIfRequired() {
         updateStatusLine();
         // repaint required if the helper line is active.
-        boolean needsRepaint = drawHelperLine && !wayIsFinished;
-        if (drawTargetHighlight) {
+        boolean needsRepaint = DRAW_HELPER_LINE.get() && !wayIsFinished;
+        if (DRAW_TARGET_HIGHLIGHT.get()) {
             // move newHighlights to oldHighlights; only update changed primitives
             for (OsmPrimitive x : newHighlights) {
                 if (oldHighlights.contains(x)) {
@@ -180,7 +223,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         // required in order to print correct help text
         oldHighlights = newHighlights;
 
-        if (!needsRepaint && !drawTargetHighlight)
+        if (!needsRepaint && !DRAW_TARGET_HIGHLIGHT.get())
             return false;
 
         // update selection to reflect which way being modified
@@ -241,17 +284,6 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
     }
 
     @Override
-    protected void readPreferences() {
-        rubberLineColor = Main.pref.getColor(marktr("helper line"), null);
-        if (rubberLineColor == null) rubberLineColor = PaintColors.SELECTED.get();
-
-        rubberLineStroke = GuiHelper.getCustomizedStroke(Main.pref.get("draw.stroke.helper-line", "3"));
-        drawHelperLine = Main.pref.getBoolean("draw.helper-line", true);
-        drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true);
-        snapToIntersectionThreshold = Main.pref.getInteger("edit.snap-intersection-threshold", 10);
-    }
-
-    @Override
     public void exitMode() {
         super.exitMode();
         Main.map.mapView.removeMouseListener(this);
@@ -292,7 +324,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
 
     @Override
     public void doKeyPressed(KeyEvent e) {
-        if (!snappingShortcut.isEvent(e) && !(useRepeatedShortcut && getShortcut().isEvent(e)))
+        if (!snappingShortcut.isEvent(e) && !(USE_REPEATED_SHORTCUT.get() && getShortcut().isEvent(e)))
             return;
         snapHelper.setFixedMode();
         computeHelperLine();
@@ -301,7 +333,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
 
     @Override
     public void doKeyReleased(KeyEvent e) {
-        if (!snappingShortcut.isEvent(e) && !(useRepeatedShortcut && getShortcut().isEvent(e)))
+        if (!snappingShortcut.isEvent(e) && !(USE_REPEATED_SHORTCUT.get() && getShortcut().isEvent(e)))
             return;
         if (ignoreNextKeyRelease) {
             ignoreNextKeyRelease = false;
@@ -347,8 +379,6 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         removeHighlighting();
     }
 
-    private Point rightClickPressPos;
-
     @Override
     public void mousePressed(MouseEvent e) {
         if (e.getButton() == MouseEvent.BUTTON3) {
@@ -585,12 +615,35 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
                 newSelection.add(wayToSelect);
             }
         }
+        if (!extendedWay && !newNode) {
+            return; // We didn't do anything.
+        }
+
+        String title = getTitle(newNode, n, newSelection, reuseWays, extendedWay);
+
+        Command c = new SequenceCommand(title, cmds);
+
+        Main.main.undoRedo.add(c);
+        if (!wayIsFinished) {
+            lastUsedNode = n;
+        }
+
+        ds.setSelected(newSelection);
+
+        // "viewport following" mode for tracing long features
+        // from aerial imagery or GPS tracks.
+        if (Main.map.mapView.viewportFollowing) {
+            Main.map.mapView.smoothScrollTo(n.getEastNorth());
+        }
+        computeHelperLine();
+        removeHighlighting();
+    }
 
+    private static String getTitle(boolean newNode, Node n, Collection<OsmPrimitive> newSelection, List<Way> reuseWays,
+            boolean extendedWay) {
         String title;
         if (!extendedWay) {
-            if (!newNode)
-                return; // We didn't do anything.
-            else if (reuseWays.isEmpty()) {
+            if (reuseWays.isEmpty()) {
                 title = tr("Add node");
             } else {
                 title = tr("Add node into way");
@@ -607,23 +660,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         } else {
             title = tr("Add node into way and connect");
         }
-
-        Command c = new SequenceCommand(title, cmds);
-
-        Main.main.undoRedo.add(c);
-        if (!wayIsFinished) {
-            lastUsedNode = n;
-        }
-
-        ds.setSelected(newSelection);
-
-        // "viewport following" mode for tracing long features
-        // from aerial imagery or GPS tracks.
-        if (n != null && Main.map.mapView.viewportFollowing) {
-            Main.map.mapView.smoothScrollTo(n.getEastNorth());
-        }
-        computeHelperLine();
-        removeHighlighting();
+        return title;
     }
 
     private void insertNodeIntoAllNearbySegments(List<WaySegment> wss, Node n, Collection<OsmPrimitive> newSelection,
@@ -924,7 +961,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         snapHelper.noSnapNow();
         boolean repaintIssued = removeHighlighting();
         // force repaint in case snapHelper needs one. If removeHighlighting
-        // caused one already, don’t do it again.
+        // caused one already, don't do it again.
         if (!repaintIssued) {
             editLayer.invalidate();
         }
@@ -1027,7 +1064,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             // only adjust to intersection if within snapToIntersectionThreshold pixel of mouse click; otherwise
             // fall through to default action.
             // (for semi-parallel lines, intersection might be miles away!)
-            if (Main.map.mapView.getPoint2D(n).distance(Main.map.mapView.getPoint2D(intersection)) < snapToIntersectionThreshold) {
+            if (Main.map.mapView.getPoint2D(n).distance(Main.map.mapView.getPoint2D(intersection)) < SNAP_TO_INTERSECTION_THRESHOLD.get()) {
                 n.setEastNorth(intersection);
                 return;
             }
@@ -1129,28 +1166,31 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             return;
 
         Graphics2D g2 = g;
-        snapHelper.drawIfNeeded(g2, mv);
-        if (!drawHelperLine || wayIsFinished || shift)
+        snapHelper.drawIfNeeded(g2, mv.getState());
+        if (!DRAW_HELPER_LINE.get() || wayIsFinished || shift)
             return;
 
-        if (!snapHelper.isActive()) { // else use color and stoke from  snapHelper.draw
-            g2.setColor(rubberLineColor);
-            g2.setStroke(rubberLineStroke);
-        } else if (!snapHelper.drawConstructionGeometry)
-            return;
-        GeneralPath b = new GeneralPath();
-        Point p1 = mv.getPoint(getCurrentBaseNode());
-        Point p2 = mv.getPoint(currentMouseEastNorth);
+        if (!snapHelper.isActive()) {
+            g2.setColor(RUBBER_LINE_COLOR.get());
+            g2.setStroke(RUBBER_LINE_STROKE.get());
+            paintConstructionGeometry(mv, g2);
+        } else if (DRAW_CONSTRUCTION_GEOMETRY.get()) {
+            // else use color and stoke from  snapHelper.draw
+            paintConstructionGeometry(mv, g2);
+        }
+    }
 
-        double t = Math.atan2((double) p2.y - p1.y, (double) p2.x - p1.x) + Math.PI;
+    private void paintConstructionGeometry(MapView mv, Graphics2D g2) {
+        MapPath2D b = new MapPath2D();
+        MapViewPoint p1 = mv.getState().getPointFor(getCurrentBaseNode());
+        MapViewPoint p2 = mv.getState().getPointFor(currentMouseEastNorth);
 
-        b.moveTo(p1.x, p1.y);
-        b.lineTo(p2.x, p2.y);
+        b.moveTo(p1);
+        b.lineTo(p2);
 
         // if alt key is held ("start new way"), draw a little perpendicular line
         if (alt) {
-            b.moveTo((int) (p1.x + 8*Math.cos(t+PHI)), (int) (p1.y + 8*Math.sin(t+PHI)));
-            b.lineTo((int) (p1.x + 8*Math.cos(t-PHI)), (int) (p1.y + 8*Math.sin(t-PHI)));
+            START_WAY_INDICATOR.paintArrowAt(b, p1, p2);
         }
 
         g2.draw(b);
@@ -1302,6 +1342,8 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
     }
 
     private class SnapHelper {
+        private static final String DRAW_ANGLESNAP_ANGLES = "draw.anglesnap.angles";
+
         private final class AnglePopupMenu extends JPopupMenu {
 
             private final JCheckBoxMenuItem repeatedCb = new JCheckBoxMenuItem(
@@ -1309,8 +1351,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
                 @Override
                 public void actionPerformed(ActionEvent e) {
                     boolean sel = ((JCheckBoxMenuItem) e.getSource()).getState();
-                    Main.pref.put("draw.anglesnap.toggleOnRepeatedA", sel);
-                    init();
+                    USE_REPEATED_SHORTCUT.put(sel);
                 }
             });
 
@@ -1319,10 +1360,9 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
                 @Override
                 public void actionPerformed(ActionEvent e) {
                     boolean sel = ((JCheckBoxMenuItem) e.getSource()).getState();
-                    Main.pref.put("draw.anglesnap.drawConstructionGeometry", sel);
-                    Main.pref.put("draw.anglesnap.drawProjectedPoint", sel);
-                    Main.pref.put("draw.anglesnap.showAngle", sel);
-                    init();
+                    DRAW_CONSTRUCTION_GEOMETRY.put(sel);
+                    SHOW_PROJECTED_POINT.put(sel);
+                    SHOW_ANGLE.put(sel);
                     enableSnapping();
                 }
             });
@@ -1332,16 +1372,15 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
                 @Override
                 public void actionPerformed(ActionEvent e) {
                     boolean sel = ((JCheckBoxMenuItem) e.getSource()).getState();
-                    Main.pref.put("draw.anglesnap.projectionsnap", sel);
-                    init();
+                    SNAP_TO_PROJECTIONS.put(sel);
                     enableSnapping();
                 }
             });
 
             private AnglePopupMenu() {
-                helperCb.setState(Main.pref.getBoolean("draw.anglesnap.drawConstructionGeometry", true));
-                projectionCb.setState(Main.pref.getBoolean("draw.anglesnap.projectionsnapgvff", true));
-                repeatedCb.setState(Main.pref.getBoolean("draw.anglesnap.toggleOnRepeatedA", true));
+                helperCb.setState(DRAW_CONSTRUCTION_GEOMETRY.get());
+                projectionCb.setState(SNAP_TO_PROJECTIONS.get());
+                repeatedCb.setState(USE_REPEATED_SHORTCUT.get());
                 add(repeatedCb);
                 add(helperCb);
                 add(projectionCb);
@@ -1382,12 +1421,6 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         private boolean fixed; // snap angle is fixed
         private boolean absoluteFix; // snap angle is absolute
 
-        private boolean drawConstructionGeometry;
-        private boolean showProjectedPoint;
-        private boolean showAngle;
-
-        private boolean snapToProjections;
-
         private EastNorth dir2;
         private EastNorth projected;
         private String labelText;
@@ -1399,18 +1432,11 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         private EastNorth projectionSource; // point that we are projecting to the line
 
         private double[] snapAngles;
-        private double snapAngleTolerance;
 
         private double pe, pn; // (pe, pn) - direction of snapping line
         private double e0, n0; // (e0, n0) - origin of snapping line
 
         private final String fixFmt = "%d "+tr("FIX");
-        private Color snapHelperColor;
-        private Color highlightColor;
-
-        private Stroke normalStroke;
-        private Stroke helperStroke;
-        private Stroke highlightStroke;
 
         private JCheckBoxMenuItem checkBox;
 
@@ -1425,111 +1451,114 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             }
         };
 
+        /**
+         * Set the initial state
+         */
         public void init() {
             snapOn = false;
             checkBox.setState(snapOn);
             fixed = false;
             absoluteFix = false;
 
-            Collection<String> angles = Main.pref.getCollection("draw.anglesnap.angles",
-                    Arrays.asList("0", "30", "45", "60", "90", "120", "135", "150", "180"));
-
-            snapAngles = new double[2*angles.size()];
-            int i = 0;
-            for (String s: angles) {
-                try {
-                    snapAngles[i] = Double.parseDouble(s); i++;
-                    snapAngles[i] = 360-Double.parseDouble(s); i++;
-                } catch (NumberFormatException e) {
-                    Main.warn("Incorrect number in draw.anglesnap.angles preferences: "+s);
-                    snapAngles[i] = 0; i++;
-                    snapAngles[i] = 0; i++;
-                }
-            }
-            snapAngleTolerance = Main.pref.getDouble("draw.anglesnap.tolerance", 5.0);
-            drawConstructionGeometry = Main.pref.getBoolean("draw.anglesnap.drawConstructionGeometry", true);
-            showProjectedPoint = Main.pref.getBoolean("draw.anglesnap.drawProjectedPoint", true);
-            snapToProjections = Main.pref.getBoolean("draw.anglesnap.projectionsnap", true);
-
-            showAngle = Main.pref.getBoolean("draw.anglesnap.showAngle", true);
-            useRepeatedShortcut = Main.pref.getBoolean("draw.anglesnap.toggleOnRepeatedA", true);
+            computeSnapAngles();
+            Main.pref.addWeakKeyPreferenceChangeListener(DRAW_ANGLESNAP_ANGLES, e -> this.computeSnapAngles());
+        }
 
-            normalStroke = rubberLineStroke;
-            snapHelperColor = Main.pref.getColor(marktr("draw angle snap"), Color.ORANGE);
+        private void computeSnapAngles() {
+            snapAngles = Main.pref.getCollection(DRAW_ANGLESNAP_ANGLES,
+                    Arrays.asList("0", "30", "45", "60", "90", "120", "135", "150", "180"))
+                    .stream()
+                    .mapToDouble(this::parseSnapAngle)
+                    .flatMap(s -> DoubleStream.of(s, 360-s))
+                    .toArray();
+        }
 
-            highlightColor = Main.pref.getColor(marktr("draw angle snap highlight"), ORANGE_TRANSPARENT);
-            highlightStroke = GuiHelper.getCustomizedStroke(Main.pref.get("draw.anglesnap.stroke.highlight", "10"));
-            helperStroke = GuiHelper.getCustomizedStroke(Main.pref.get("draw.anglesnap.stroke.helper", "1 4"));
+        private double parseSnapAngle(String string) {
+            try {
+                return Double.parseDouble(string);
+            } catch (NumberFormatException e) {
+                Main.warn("Incorrect number in draw.anglesnap.angles preferences: {0}", string);
+                return 0;
+            }
         }
 
+        /**
+         * Save the snap angles
+         * @param angles The angles
+         */
         public void saveAngles(String ... angles) {
-            Main.pref.putCollection("draw.anglesnap.angles", Arrays.asList(angles));
+            Main.pref.putCollection(DRAW_ANGLESNAP_ANGLES, Arrays.asList(angles));
         }
 
         public void setMenuCheckBox(JCheckBoxMenuItem checkBox) {
             this.checkBox = checkBox;
         }
 
-        public void drawIfNeeded(Graphics2D g2, MapView mv) {
+        /**
+         * Draw the snap hint line.
+         * @param g2 graphics
+         * @param mv MapView state
+         * @since 10874
+         */
+        public void drawIfNeeded(Graphics2D g2, MapViewState mv) {
             if (!snapOn || !active)
                 return;
-            Point p1 = mv.getPoint(getCurrentBaseNode());
-            Point p2 = mv.getPoint(dir2);
-            Point p3 = mv.getPoint(projected);
-            GeneralPath b;
-            if (drawConstructionGeometry) {
-                g2.setColor(snapHelperColor);
-                g2.setStroke(helperStroke);
-
-                b = new GeneralPath();
+            MapViewPoint p1 = mv.getPointFor(getCurrentBaseNode());
+            MapViewPoint p2 = mv.getPointFor(dir2);
+            MapViewPoint p3 = mv.getPointFor(projected);
+            if (DRAW_CONSTRUCTION_GEOMETRY.get()) {
+                g2.setColor(SNAP_HELPER_COLOR.get());
+                g2.setStroke(HELPER_STROKE.get());
+
+                MapViewPath b = new MapViewPath(mv);
+                b.moveTo(p2);
                 if (absoluteFix) {
-                    b.moveTo(p2.x, p2.y);
-                    b.lineTo(2d*p1.x-p2.x, 2d*p1.y-p2.y); // bi-directional line
+                    b.lineTo(p2.interpolate(p1, 2)); // bi-directional line
                 } else {
-                    b.moveTo(p2.x, p2.y);
-                    b.lineTo(p3.x, p3.y);
+                    b.lineTo(p3);
                 }
                 g2.draw(b);
             }
             if (projectionSource != null) {
-                g2.setColor(snapHelperColor);
-                g2.setStroke(helperStroke);
-                b = new GeneralPath();
-                b.moveTo(p3.x, p3.y);
-                Point pp = mv.getPoint(projectionSource);
-                b.lineTo(pp.x, pp.y);
+                g2.setColor(SNAP_HELPER_COLOR.get());
+                g2.setStroke(HELPER_STROKE.get());
+                MapViewPath b = new MapViewPath(mv);
+                b.moveTo(p3);
+                b.lineTo(projectionSource);
                 g2.draw(b);
             }
 
             if (customBaseHeading >= 0) {
-                g2.setColor(highlightColor);
-                g2.setStroke(highlightStroke);
-                b = new GeneralPath();
-                Point pp1 = mv.getPoint(segmentPoint1);
-                Point pp2 = mv.getPoint(segmentPoint2);
-                b.moveTo(pp1.x, pp1.y);
-                b.lineTo(pp2.x, pp2.y);
+                g2.setColor(HIGHLIGHT_COLOR.get());
+                g2.setStroke(HIGHLIGHT_STROKE.get());
+                MapViewPath b = new MapViewPath(mv);
+                b.moveTo(segmentPoint1);
+                b.lineTo(segmentPoint2);
                 g2.draw(b);
             }
 
-            g2.setColor(rubberLineColor);
-            g2.setStroke(normalStroke);
-            b = new GeneralPath();
-            b.moveTo(p1.x, p1.y);
-            b.lineTo(p3.x, p3.y);
+            g2.setColor(RUBBER_LINE_COLOR.get());
+            g2.setStroke(RUBBER_LINE_STROKE.get());
+            MapViewPath b = new MapViewPath(mv);
+            b.moveTo(p1);
+            b.lineTo(p3);
             g2.draw(b);
 
-            g2.drawString(labelText, p3.x-5, p3.y+20);
-            if (showProjectedPoint) {
-                g2.setStroke(normalStroke);
-                g2.drawOval(p3.x-5, p3.y-5, 10, 10); // projected point
+            g2.drawString(labelText, (int) p3.getInViewX()-5, (int) p3.getInViewY()+20);
+            if (SHOW_PROJECTED_POINT.get()) {
+                g2.setStroke(RUBBER_LINE_STROKE.get());
+                g2.draw(new MapViewPath(mv).shapeAround(p3, SymbolShape.CIRCLE, 10)); // projected point
             }
 
-            g2.setColor(snapHelperColor);
-            g2.setStroke(helperStroke);
+            g2.setColor(SNAP_HELPER_COLOR.get());
+            g2.setStroke(HELPER_STROKE.get());
         }
 
-        /* If mouse position is close to line at 15-30-45-... angle, remembers this direction
+        /**
+         * If mouse position is close to line at 15-30-45-... angle, remembers this direction
+         * @param currentEN Current position
+         * @param baseHeading The heading
+         * @param curHeading The current mouse heading
          */
         public void checkAngleSnapping(EastNorth currentEN, double baseHeading, double curHeading) {
             EastNorth p0 = getCurrentBaseNode().getEastNorth();
@@ -1553,7 +1582,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
                     active = true;
                 } else {
                     nearestAngle = getNearestAngle(angle);
-                    if (getAngleDelta(nearestAngle, angle) < snapAngleTolerance) {
+                    if (getAngleDelta(nearestAngle, angle) < SNAP_ANGLE_TOLERANCE.get()) {
                         active = customBaseHeading >= 0 || Math.abs(nearestAngle - 180) > 1e-3;
                         // if angle is to previous segment, exclude 180 degrees
                         lastAngle = nearestAngle;
@@ -1599,7 +1628,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         }
 
         private void buildLabelText(double nearestAngle) {
-            if (showAngle) {
+            if (SHOW_ANGLE.get()) {
                 if (fixed) {
                     if (absoluteFix) {
                         labelText = "=";
@@ -1622,6 +1651,11 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             }
         }
 
+        /**
+         * Gets a snap point close to p. Stores the result for display.
+         * @param p The point
+         * @return The snap point close to p.
+         */
         public EastNorth getSnapPoint(EastNorth p) {
             if (!active)
                 return p;
@@ -1635,7 +1669,7 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             } //  do not go backward!
 
             projectionSource = null;
-            if (snapToProjections) {
+            if (SNAP_TO_PROJECTIONS.get()) {
                 DataSet ds = getLayerManager().getEditDataSet();
                 Collection<Way> selectedWays = ds.getSelectedWays();
                 if (selectedWays.size() == 1) {
@@ -1670,6 +1704,9 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             return projected;
         }
 
+        /**
+         * Disables snapping
+         */
         public void noSnapNow() {
             active = false;
             dir2 = null;
@@ -1693,6 +1730,9 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
             customBaseHeading = hdg;
         }
 
+        /**
+         * Enable snapping.
+         */
         private void enableSnapping() {
             snapOn = true;
             checkBox.setState(snapOn);
@@ -1729,14 +1769,8 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
         }
 
         private double getNearestAngle(double angle) {
-            double delta, minDelta = 1e5, bestAngle = 0.0;
-            for (double snapAngle : snapAngles) {
-                delta = getAngleDelta(angle, snapAngle);
-                if (delta < minDelta) {
-                    minDelta = delta;
-                    bestAngle = snapAngle;
-                }
-            }
+            double bestAngle = DoubleStream.of(snapAngles).boxed()
+                    .min(Comparator.comparing(snapAngle -> getAngleDelta(angle, snapAngle))).orElse(0.0);
             if (Math.abs(bestAngle-360) < 1e-3) {
                 bestAngle = 0;
             }
diff --git a/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java b/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
index 0dd0492..78e7454 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
@@ -43,9 +43,12 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.draw.MapViewPath;
+import org.openstreetmap.josm.gui.draw.SymbolShape;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.MapViewPaintable;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -303,9 +306,9 @@ public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress
     protected void readPreferences() {
         initialMoveDelay = Main.pref.getInteger("edit.initial-move-delay", 200);
         initialMoveThreshold = Main.pref.getInteger("extrude.initial-move-threshold", 1);
-        mainColor = Main.pref.getColor(marktr("Extrude: main line"), null);
+        mainColor = new ColorProperty(marktr("Extrude: main line"), (Color) null).get();
         if (mainColor == null) mainColor = PaintColors.SELECTED.get();
-        helperColor = Main.pref.getColor(marktr("Extrude: helper line"), Color.ORANGE);
+        helperColor = new ColorProperty(marktr("Extrude: helper line"), Color.ORANGE).get();
         helperStrokeDash = GuiHelper.getCustomizedStroke(Main.pref.get("extrude.stroke.helper-line", "1 4"));
         helperStrokeRA = new BasicStroke(1);
         symbolSize = Main.pref.getDouble("extrude.angle-symbol-radius", 8);
@@ -1017,10 +1020,10 @@ public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress
         } else {
             if (newN1en != null) {
 
-                Point p1 = mv.getPoint(initialN1en);
-                Point p2 = mv.getPoint(initialN2en);
-                Point p3 = mv.getPoint(newN1en);
-                Point p4 = mv.getPoint(newN2en);
+                EastNorth p1 = initialN1en;
+                EastNorth p2 = initialN2en;
+                EastNorth p3 = newN1en;
+                EastNorth p4 = newN2en;
 
                 Point2D normalUnitVector = activeMoveDirection != null ? getNormalUniVector() : null;
 
@@ -1028,12 +1031,12 @@ public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress
                     g2.setColor(mainColor);
                     g2.setStroke(mainStroke);
                     // Draw rectangle around new area.
-                    GeneralPath b = new GeneralPath();
-                    b.moveTo(p1.x, p1.y);
-                    b.lineTo(p3.x, p3.y);
-                    b.lineTo(p4.x, p4.y);
-                    b.lineTo(p2.x, p2.y);
-                    b.lineTo(p1.x, p1.y);
+                    MapViewPath b = new MapViewPath(mv);
+                    b.moveTo(p1);
+                    b.lineTo(p3);
+                    b.lineTo(p4);
+                    b.lineTo(p2);
+                    b.lineTo(p1);
                     g2.draw(b);
 
                     if (dualAlignActive) {
@@ -1061,12 +1064,10 @@ public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress
                     g2.setColor(mainColor);
                     if (p1.distance(p2) < 3) {
                         g2.setStroke(mainStroke);
-                        g2.drawOval((int) (p1.x-symbolSize/2), (int) (p1.y-symbolSize/2),
-                                (int) (symbolSize), (int) (symbolSize));
+                        g2.draw(new MapViewPath(mv).shapeAround(p1, SymbolShape.CIRCLE, symbolSize));
                     } else {
-                        Line2D oldline = new Line2D.Double(p1, p2);
                         g2.setStroke(oldLineStroke);
-                        g2.draw(oldline);
+                        g2.draw(new MapViewPath(mv).moveTo(p1).lineTo(p2));
                     }
 
                     if (dualAlignActive) {
@@ -1079,7 +1080,7 @@ public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress
                         g2.setStroke(helperStrokeDash);
                         // Draw a guideline along the normal.
                         Line2D normline;
-                        Point2D centerpoint = new Point2D.Double((p1.getX()+p2.getX())*0.5, (p1.getY()+p2.getY())*0.5);
+                        Point2D centerpoint = mv.getPoint2D(p1.interpolate(p2, .5));
                         normline = createSemiInfiniteLine(centerpoint, normalUnitVector, g2);
                         g2.draw(normline);
                         // Draw right angle marker on initial position, only when moving at right angle
@@ -1161,14 +1162,9 @@ public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress
      * @param seg the reference segment
      */
     private void drawReferenceSegment(Graphics2D g2, MapView mv, ReferenceSegment seg) {
-        Point p1 = mv.getPoint(seg.p1);
-        Point p2 = mv.getPoint(seg.p2);
-        GeneralPath b = new GeneralPath();
-        b.moveTo(p1.x, p1.y);
-        b.lineTo(p2.x, p2.y);
         g2.setColor(helperColor);
         g2.setStroke(helperStrokeDash);
-        g2.draw(b);
+        g2.draw(new MapViewPath(mv).moveTo(seg.p1).lineTo(seg.p2));
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java b/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
index 604dbe5..80c0efe 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
@@ -5,14 +5,13 @@ import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 import static org.openstreetmap.josm.tools.I18n.trn;
 
+import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Cursor;
 import java.awt.Graphics2D;
 import java.awt.Point;
-import java.awt.Stroke;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
-import java.awt.geom.GeneralPath;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.LinkedList;
@@ -36,12 +35,17 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
+import org.openstreetmap.josm.data.preferences.CachingProperty;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
+import org.openstreetmap.josm.data.preferences.IntegerProperty;
+import org.openstreetmap.josm.data.preferences.StrokeProperty;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.draw.MapViewPath;
+import org.openstreetmap.josm.gui.draw.SymbolShape;
 import org.openstreetmap.josm.gui.layer.AbstractMapViewPaintable;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.util.ModifierListener;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Pair;
@@ -53,8 +57,8 @@ import org.openstreetmap.josm.tools.Shortcut;
 public class ImproveWayAccuracyAction extends MapMode implements
         SelectionChangedListener, ModifierListener {
 
-    enum State {
-        selecting, improving
+    private enum State {
+        SELECTING, IMPROVING
     }
 
     private State state;
@@ -70,21 +74,28 @@ public class ImproveWayAccuracyAction extends MapMode implements
     private Point mousePos;
     private boolean dragging;
 
-    private final Cursor cursorSelect;
-    private final Cursor cursorSelectHover;
-    private final Cursor cursorImprove;
-    private final Cursor cursorImproveAdd;
-    private final Cursor cursorImproveDelete;
-    private final Cursor cursorImproveAddLock;
-    private final Cursor cursorImproveLock;
+    private final Cursor cursorSelect = ImageProvider.getCursor("normal", "mode");
+    private final Cursor cursorSelectHover = ImageProvider.getCursor("hand", "mode");
+    private final Cursor cursorImprove = ImageProvider.getCursor("crosshair", null);
+    private final Cursor cursorImproveAdd = ImageProvider.getCursor("crosshair", "addnode");
+    private final Cursor cursorImproveDelete = ImageProvider.getCursor("crosshair", "delete_node");
+    private final Cursor cursorImproveAddLock = ImageProvider.getCursor("crosshair", "add_node_lock");
+    private final Cursor cursorImproveLock = ImageProvider.getCursor("crosshair", "lock");
 
     private Color guideColor;
-    private transient Stroke selectTargetWayStroke;
-    private transient Stroke moveNodeStroke;
-    private transient Stroke moveNodeIntersectingStroke;
-    private transient Stroke addNodeStroke;
-    private transient Stroke deleteNodeStroke;
-    private int dotSize;
+
+    private static final CachingProperty<BasicStroke> SELECT_TARGET_WAY_STROKE
+            = new StrokeProperty("improvewayaccuracy.stroke.select-target", "2").cached();
+    private static final CachingProperty<BasicStroke> MOVE_NODE_STROKE
+            = new StrokeProperty("improvewayaccuracy.stroke.move-node", "1 6").cached();
+    private static final CachingProperty<BasicStroke> MOVE_NODE_INTERSECTING_STROKE
+            = new StrokeProperty("improvewayaccuracy.stroke.move-node-intersecting", "1 2 6").cached();
+    private static final CachingProperty<BasicStroke> ADD_NODE_STROKE
+            = new StrokeProperty("improvewayaccuracy.stroke.add-node", "1").cached();
+    private static final CachingProperty<BasicStroke> DELETE_NODE_STROKE
+            = new StrokeProperty("improvewayaccuracy.stroke.delete-node", "1").cached();
+    private static final CachingProperty<Integer> DOT_SIZE
+            = new IntegerProperty("improvewayaccuracy.dot-size", 6).cached();
 
     private boolean selectionChangedBlocked;
 
@@ -108,14 +119,6 @@ public class ImproveWayAccuracyAction extends MapMode implements
                 tr("Mode: {0}", tr("Improve Way Accuracy")),
                 KeyEvent.VK_W, Shortcut.DIRECT), mapFrame, Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
 
-        cursorSelect = ImageProvider.getCursor("normal", "mode");
-        cursorSelectHover = ImageProvider.getCursor("hand", "mode");
-        cursorImprove = ImageProvider.getCursor("crosshair", null);
-        cursorImproveAdd = ImageProvider.getCursor("crosshair", "addnode");
-        cursorImproveDelete = ImageProvider.getCursor("crosshair", "delete_node");
-        cursorImproveAddLock = ImageProvider.getCursor("crosshair",
-                "add_node_lock");
-        cursorImproveLock = ImageProvider.getCursor("crosshair", "lock");
         readPreferences();
     }
 
@@ -150,15 +153,9 @@ public class ImproveWayAccuracyAction extends MapMode implements
 
     @Override
     protected void readPreferences() {
-        guideColor = Main.pref.getColor(marktr("improve way accuracy helper line"), null);
-        if (guideColor == null) guideColor = PaintColors.HIGHLIGHT.get();
-
-        selectTargetWayStroke = GuiHelper.getCustomizedStroke(Main.pref.get("improvewayaccuracy.stroke.select-target", "2"));
-        moveNodeStroke = GuiHelper.getCustomizedStroke(Main.pref.get("improvewayaccuracy.stroke.move-node", "1 6"));
-        moveNodeIntersectingStroke = GuiHelper.getCustomizedStroke(Main.pref.get("improvewayaccuracy.stroke.move-node-intersecting", "1 2 6"));
-        addNodeStroke = GuiHelper.getCustomizedStroke(Main.pref.get("improvewayaccuracy.stroke.add-node", "1"));
-        deleteNodeStroke = GuiHelper.getCustomizedStroke(Main.pref.get("improvewayaccuracy.stroke.delete-node", "1"));
-        dotSize = Main.pref.getInteger("improvewayaccuracy.dot-size", 6);
+        guideColor = new ColorProperty(marktr("improve way accuracy helper line"), (Color) null).get();
+        if (guideColor == null)
+            guideColor = PaintColors.HIGHLIGHT.get();
     }
 
     @Override
@@ -186,7 +183,7 @@ public class ImproveWayAccuracyAction extends MapMode implements
 
     @Override
     public String getModeHelpText() {
-        if (state == State.selecting) {
+        if (state == State.SELECTING) {
             if (targetWay != null) {
                 return tr("Click on the way to start improving its shape.");
             } else {
@@ -230,109 +227,97 @@ public class ImproveWayAccuracyAction extends MapMode implements
 
         g.setColor(guideColor);
 
-        if (state == State.selecting && targetWay != null) {
+        if (state == State.SELECTING && targetWay != null) {
             // Highlighting the targetWay in Selecting state
             // Non-native highlighting is used, because sometimes highlighted
             // segments are covered with others, which is bad.
-            g.setStroke(selectTargetWayStroke);
+            g.setStroke(SELECT_TARGET_WAY_STROKE.get());
 
             List<Node> nodes = targetWay.getNodes();
 
-            GeneralPath b = new GeneralPath();
-            Point p0 = mv.getPoint(nodes.get(0));
-            Point pn;
-            b.moveTo(p0.x, p0.y);
-
-            for (Node n : nodes) {
-                pn = mv.getPoint(n);
-                b.lineTo(pn.x, pn.y);
-            }
-            if (targetWay.isClosed()) {
-                b.lineTo(p0.x, p0.y);
-            }
-
-            g.draw(b);
+            g.draw(new MapViewPath(mv).append(nodes, false));
 
-        } else if (state == State.improving) {
+        } else if (state == State.IMPROVING) {
             // Drawing preview lines and highlighting the node
             // that is going to be moved.
             // Non-native highlighting is used here as well.
 
             // Finding endpoints
-            Point p1 = null, p2 = null;
+            Node p1 = null;
+            Node p2 = null;
             if (ctrl && candidateSegment != null) {
-                g.setStroke(addNodeStroke);
-                p1 = mv.getPoint(candidateSegment.getFirstNode());
-                p2 = mv.getPoint(candidateSegment.getSecondNode());
+                g.setStroke(ADD_NODE_STROKE.get());
+                p1 = candidateSegment.getFirstNode();
+                p2 = candidateSegment.getSecondNode();
             } else if (!alt && !ctrl && candidateNode != null) {
-                g.setStroke(moveNodeStroke);
+                g.setStroke(MOVE_NODE_STROKE.get());
                 List<Pair<Node, Node>> wpps = targetWay.getNodePairs(false);
                 for (Pair<Node, Node> wpp : wpps) {
                     if (wpp.a == candidateNode) {
-                        p1 = mv.getPoint(wpp.b);
+                        p1 = wpp.b;
                     }
                     if (wpp.b == candidateNode) {
-                        p2 = mv.getPoint(wpp.a);
+                        p2 = wpp.a;
                     }
                     if (p1 != null && p2 != null) {
                         break;
                     }
                 }
             } else if (alt && !ctrl && candidateNode != null) {
-                g.setStroke(deleteNodeStroke);
+                g.setStroke(DELETE_NODE_STROKE.get());
                 List<Node> nodes = targetWay.getNodes();
                 int index = nodes.indexOf(candidateNode);
 
                 // Only draw line if node is not first and/or last
                 if (index != 0 && index != (nodes.size() - 1)) {
-                    p1 = mv.getPoint(nodes.get(index - 1));
-                    p2 = mv.getPoint(nodes.get(index + 1));
+                    p1 = nodes.get(index - 1);
+                    p2 = nodes.get(index + 1);
                 } else if (targetWay.isClosed()) {
-                    p1 = mv.getPoint(targetWay.getNode(1));
-                    p2 = mv.getPoint(targetWay.getNode(nodes.size() - 2));
+                    p1 = targetWay.getNode(1);
+                    p2 = targetWay.getNode(nodes.size() - 2);
                 }
                 // TODO: indicate what part that will be deleted? (for end nodes)
             }
 
 
             // Drawing preview lines
-            GeneralPath b = new GeneralPath();
+            MapViewPath b = new MapViewPath(mv);
             if (alt && !ctrl) {
                 // In delete mode
                 if (p1 != null && p2 != null) {
-                    b.moveTo(p1.x, p1.y);
-                    b.lineTo(p2.x, p2.y);
+                    b.moveTo(p1);
+                    b.lineTo(p2);
                 }
             } else {
                 // In add or move mode
                 if (p1 != null) {
                     b.moveTo(mousePos.x, mousePos.y);
-                    b.lineTo(p1.x, p1.y);
+                    b.lineTo(p1);
                 }
                 if (p2 != null) {
                     b.moveTo(mousePos.x, mousePos.y);
-                    b.lineTo(p2.x, p2.y);
+                    b.lineTo(p2);
                 }
             }
             g.draw(b);
 
             // Highlighting candidateNode
             if (candidateNode != null) {
-                p1 = mv.getPoint(candidateNode);
-                g.fillRect(p1.x - dotSize/2, p1.y - dotSize/2, dotSize, dotSize);
+                p1 = candidateNode;
+                g.fill(new MapViewPath(mv).shapeAround(p1, SymbolShape.SQUARE, DOT_SIZE.get()));
             }
 
             if (!alt && !ctrl && candidateNode != null) {
                 b.reset();
                 drawIntersectingWayHelperLines(mv, b);
-                g.setStroke(moveNodeIntersectingStroke);
+                g.setStroke(MOVE_NODE_INTERSECTING_STROKE.get());
                 g.draw(b);
             }
 
         }
     }
 
-    protected void drawIntersectingWayHelperLines(MapView mv, GeneralPath b) {
+    protected void drawIntersectingWayHelperLines(MapView mv, MapViewPath b) {
         for (final OsmPrimitive referrer : candidateNode.getReferrers()) {
             if (!(referrer instanceof Way) || targetWay.equals(referrer)) {
                 continue;
@@ -343,14 +328,12 @@ public class ImproveWayAccuracyAction extends MapMode implements
                     continue;
                 }
                 if (i > 0) {
-                    final Point p = mv.getPoint(nodes.get(i - 1));
                     b.moveTo(mousePos.x, mousePos.y);
-                    b.lineTo(p.x, p.y);
+                    b.lineTo(nodes.get(i - 1));
                 }
                 if (i < nodes.size() - 1) {
-                    final Point p = mv.getPoint(nodes.get(i + 1));
                     b.moveTo(mousePos.x, mousePos.y);
-                    b.lineTo(p.x, p.y);
+                    b.lineTo(nodes.get(i + 1));
                 }
             }
         }
@@ -410,12 +393,12 @@ public class ImproveWayAccuracyAction extends MapMode implements
         updateKeyModifiers(e);
         mousePos = e.getPoint();
 
-        if (state == State.selecting) {
+        if (state == State.SELECTING) {
             if (targetWay != null) {
                 getLayerManager().getEditDataSet().setSelected(targetWay.getPrimitiveId());
                 updateStateByCurrentSelection();
             }
-        } else if (state == State.improving && mousePos != null) {
+        } else if (state == State.IMPROVING && mousePos != null) {
             // Checking if the new coordinate is outside of the world
             if (mv.getLatLon(mousePos.x, mousePos.y).isOutSideWorld()) {
                 JOptionPane.showMessageDialog(Main.parent,
@@ -549,10 +532,10 @@ public class ImproveWayAccuracyAction extends MapMode implements
             return;
         }
 
-        if (state == State.selecting) {
+        if (state == State.SELECTING) {
             mv.setNewCursor(targetWay == null ? cursorSelect
                     : cursorSelectHover, this);
-        } else if (state == State.improving) {
+        } else if (state == State.IMPROVING) {
             if (alt && !ctrl) {
                 mv.setNewCursor(cursorImproveDelete, this);
             } else if (shift || dragging) {
@@ -574,7 +557,7 @@ public class ImproveWayAccuracyAction extends MapMode implements
      * candidateSegment
      */
     public void updateCursorDependentObjectsIfNeeded() {
-        if (state == State.improving && (shift || dragging)
+        if (state == State.IMPROVING && (shift || dragging)
                 && !(candidateNode == null && candidateSegment == null)) {
             return;
         }
@@ -585,9 +568,9 @@ public class ImproveWayAccuracyAction extends MapMode implements
             return;
         }
 
-        if (state == State.selecting) {
+        if (state == State.SELECTING) {
             targetWay = ImproveWayAccuracyHelper.findWay(mv, mousePos);
-        } else if (state == State.improving) {
+        } else if (state == State.IMPROVING) {
             if (ctrl && !alt) {
                 candidateSegment = ImproveWayAccuracyHelper.findCandidateSegment(mv,
                         targetWay, mousePos);
@@ -604,7 +587,7 @@ public class ImproveWayAccuracyAction extends MapMode implements
      * Switches to Selecting state
      */
     public void startSelecting() {
-        state = State.selecting;
+        state = State.SELECTING;
 
         targetWay = null;
 
@@ -618,7 +601,7 @@ public class ImproveWayAccuracyAction extends MapMode implements
      * @param targetWay Way that is going to be improved
      */
     public void startImproving(Way targetWay) {
-        state = State.improving;
+        state = State.IMPROVING;
 
         DataSet ds = getLayerManager().getEditDataSet();
         Collection<OsmPrimitive> currentSelection = ds.getSelected();
diff --git a/src/org/openstreetmap/josm/actions/mapmode/ModifiersSpec.java b/src/org/openstreetmap/josm/actions/mapmode/ModifiersSpec.java
deleted file mode 100644
index f64f0b2..0000000
--- a/src/org/openstreetmap/josm/actions/mapmode/ModifiersSpec.java
+++ /dev/null
@@ -1,58 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.actions.mapmode;
-
-/**
- * TODO: rewrite to use awt modifers flag instead.
- *
- * @author Ole Jørgen Brønner (olejorgenb)
- */
-public class ModifiersSpec {
-    public static final int ON = 1, OFF = 0, UNKNOWN = 2;
-    public int alt = UNKNOWN;
-    public int shift = UNKNOWN;
-    public int ctrl = UNKNOWN;
-
-    /**
-     *  'A' = Alt, 'S' = Shift, 'C' = Ctrl
-     *  Lowercase signifies off and '?' means unknown/optional.
-     *  Order is Alt, Shift, Ctrl
-     * @param str 3 letters string defining modifiers
-     */
-    public ModifiersSpec(String str) {
-        assert str.length() == 3;
-        char a = str.charAt(0);
-        char s = str.charAt(1);
-        char c = str.charAt(2);
-        // @formatter:off
-        // CHECKSTYLE.OFF: SingleSpaceSeparator
-        alt   = a == '?' ? UNKNOWN : (a == 'A' ? ON : OFF);
-        shift = s == '?' ? UNKNOWN : (s == 'S' ? ON : OFF);
-        ctrl  = c == '?' ? UNKNOWN : (c == 'C' ? ON : OFF);
-        // CHECKSTYLE.ON: SingleSpaceSeparator
-        // @formatter:on
-    }
-
-    public ModifiersSpec(final int alt, final int shift, final int ctrl) {
-        this.alt = alt;
-        this.shift = shift;
-        this.ctrl = ctrl;
-    }
-
-    public boolean matchWithKnown(final int knownAlt, final int knownShift, final int knownCtrl) {
-        return match(alt, knownAlt) && match(shift, knownShift) && match(ctrl, knownCtrl);
-    }
-
-    public boolean matchWithKnown(final boolean knownAlt, final boolean knownShift, final boolean knownCtrl) {
-        return match(alt, knownAlt) && match(shift, knownShift) && match(ctrl, knownCtrl);
-    }
-
-    private static boolean match(final int a, final int knownValue) {
-        assert knownValue == ON | knownValue == OFF;
-        return a == knownValue || a == UNKNOWN;
-    }
-
-    private static boolean match(final int a, final boolean knownValue) {
-        return a == (knownValue ? ON : OFF) || a == UNKNOWN;
-    }
-    // does java have built in 3-state support?
-}
diff --git a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
index a5d6a53..2b9fa5a 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
@@ -5,22 +5,27 @@ import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
 import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Cursor;
 import java.awt.Graphics2D;
 import java.awt.Point;
-import java.awt.Stroke;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.EnumSet;
 import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
+import java.util.stream.Stream;
 
 import javax.swing.JOptionPane;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
-import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
 import org.openstreetmap.josm.data.SystemOfMeasurement;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.osm.Node;
@@ -28,14 +33,22 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
+import org.openstreetmap.josm.data.preferences.AbstractToStringProperty;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
+import org.openstreetmap.josm.data.preferences.CachingProperty;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
+import org.openstreetmap.josm.data.preferences.DoubleProperty;
+import org.openstreetmap.josm.data.preferences.IntegerProperty;
+import org.openstreetmap.josm.data.preferences.StrokeProperty;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.Notification;
+import org.openstreetmap.josm.gui.draw.MapViewPath;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.MapViewPaintable;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.util.ModifierListener;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Geometry;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -79,6 +92,34 @@ import org.openstreetmap.josm.tools.Shortcut;
  */
 public class ParallelWayAction extends MapMode implements ModifierListener, MapViewPaintable {
 
+    private static final CachingProperty<BasicStroke> HELPER_LINE_STROKE = new StrokeProperty(prefKey("stroke.hepler-line"), "1").cached();
+    private static final CachingProperty<BasicStroke> REF_LINE_STROKE = new StrokeProperty(prefKey("stroke.ref-line"), "2 2 3").cached();
+
+    // @formatter:off
+    // CHECKSTYLE.OFF: SingleSpaceSeparator
+    private static final CachingProperty<Double> SNAP_THRESHOLD         = new DoubleProperty(prefKey("snap-threshold-percent"), 0.70).cached();
+    private static final CachingProperty<Boolean> SNAP_DEFAULT          = new BooleanProperty(prefKey("snap-default"),      true).cached();
+    private static final CachingProperty<Boolean> COPY_TAGS_DEFAULT     = new BooleanProperty(prefKey("copy-tags-default"), true).cached();
+    private static final CachingProperty<Integer> INITIAL_MOVE_DELAY    = new IntegerProperty(prefKey("initial-move-delay"), 200).cached();
+    private static final CachingProperty<Double> SNAP_DISTANCE_METRIC   = new DoubleProperty(prefKey("snap-distance-metric"), 0.5).cached();
+    private static final CachingProperty<Double> SNAP_DISTANCE_IMPERIAL = new DoubleProperty(prefKey("snap-distance-imperial"), 1).cached();
+    private static final CachingProperty<Double> SNAP_DISTANCE_CHINESE  = new DoubleProperty(prefKey("snap-distance-chinese"), 1).cached();
+    private static final CachingProperty<Double> SNAP_DISTANCE_NAUTICAL = new DoubleProperty(prefKey("snap-distance-nautical"), 0.1).cached();
+    private static final CachingProperty<Color> MAIN_COLOR = new ColorProperty(marktr("make parallel helper line"), (Color) null).cached();
+
+    private static final CachingProperty<Map<Modifier, Boolean>> SNAP_MODIFIER_COMBO
+            = new KeyboardModifiersProperty(prefKey("snap-modifier-combo"),             "?sC").cached();
+    private static final CachingProperty<Map<Modifier, Boolean>> COPY_TAGS_MODIFIER_COMBO
+            = new KeyboardModifiersProperty(prefKey("copy-tags-modifier-combo"),        "As?").cached();
+    private static final CachingProperty<Map<Modifier, Boolean>> ADD_TO_SELECTION_MODIFIER_COMBO
+            = new KeyboardModifiersProperty(prefKey("add-to-selection-modifier-combo"), "aSc").cached();
+    private static final CachingProperty<Map<Modifier, Boolean>> TOGGLE_SELECTED_MODIFIER_COMBO
+            = new KeyboardModifiersProperty(prefKey("toggle-selection-modifier-combo"), "asC").cached();
+    private static final CachingProperty<Map<Modifier, Boolean>> SET_SELECTED_MODIFIER_COMBO
+            = new KeyboardModifiersProperty(prefKey("set-selection-modifier-combo"),    "asc").cached();
+    // CHECKSTYLE.ON: SingleSpaceSeparator
+    // @formatter:on
+
     private enum Mode {
         DRAGGING, NORMAL
     }
@@ -87,24 +128,8 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
     // See updateModeLocalPreferences for defaults
     private Mode mode;
     private boolean copyTags;
-    private boolean copyTagsDefault;
 
     private boolean snap;
-    private boolean snapDefault;
-
-    private double snapThreshold;
-    private double snapDistanceMetric;
-    private double snapDistanceImperial;
-    private double snapDistanceChinese;
-    private double snapDistanceNautical;
-
-    private transient ModifiersSpec snapModifierCombo;
-    private transient ModifiersSpec copyTagsModifierCombo;
-    private transient ModifiersSpec addToSelectionModifierCombo;
-    private transient ModifiersSpec toggleSelectedModifierCombo;
-    private transient ModifiersSpec setSelectedModifierCombo;
-
-    private int initialMoveDelay;
 
     private final MapView mv;
 
@@ -120,10 +145,6 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
     private EastNorth helperLineStart;
     private EastNorth helperLineEnd;
 
-    private transient Stroke helpLineStroke;
-    private transient Stroke refLineStroke;
-    private Color mainColor;
-
     /**
      * Constructs a new {@code ParallelWayAction}.
      * @param mapFrame Map frame
@@ -135,8 +156,6 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
             mapFrame, ImageProvider.getCursor("normal", "parallel"));
         putValue("help", ht("/Action/Parallel"));
         mv = mapFrame.mapView;
-        updateModeLocalPreferences();
-        Main.pref.addPreferenceChangeListener(this);
     }
 
     @Override
@@ -144,7 +163,6 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
         // super.enterMode() updates the status line and cursor so we need our state to be set correctly
         setMode(Mode.NORMAL);
         pWays = null;
-        updateAllPreferences(); // All default values should've been set now
 
         super.enterMode();
 
@@ -152,11 +170,6 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
         mv.addMouseMotionListener(this);
         mv.addTemporaryLayer(this);
 
-        helpLineStroke = GuiHelper.getCustomizedStroke(getStringPref("stroke.hepler-line", "1"));
-        refLineStroke = GuiHelper.getCustomizedStroke(getStringPref("stroke.ref-line", "1 2 2"));
-        mainColor = Main.pref.getColor(marktr("make parallel helper line"), null);
-        if (mainColor == null) mainColor = PaintColors.SELECTED.get();
-
         //// Needed to update the mouse cursor if modifiers are changed when the mouse is motionless
         Main.map.keyDetector.addModifierListener(this);
         sourceWays = new LinkedHashSet<>(getLayerManager().getEditDataSet().getSelectedWays());
@@ -197,32 +210,6 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
         return ""; // impossible ..
     }
 
-    // Separated due to "race condition" between default values
-    private void updateAllPreferences() {
-        updateModeLocalPreferences();
-    }
-
-    private void updateModeLocalPreferences() {
-        // @formatter:off
-        // CHECKSTYLE.OFF: SingleSpaceSeparator
-        snapThreshold        = Main.pref.getDouble(prefKey("snap-threshold-percent"), 0.70);
-        snapDefault          = Main.pref.getBoolean(prefKey("snap-default"),      true);
-        copyTagsDefault      = Main.pref.getBoolean(prefKey("copy-tags-default"), true);
-        initialMoveDelay     = Main.pref.getInteger(prefKey("initial-move-delay"), 200);
-        snapDistanceMetric   = Main.pref.getDouble(prefKey("snap-distance-metric"), 0.5);
-        snapDistanceImperial = Main.pref.getDouble(prefKey("snap-distance-imperial"), 1);
-        snapDistanceChinese  = Main.pref.getDouble(prefKey("snap-distance-chinese"), 1);
-        snapDistanceNautical = Main.pref.getDouble(prefKey("snap-distance-nautical"), 0.1);
-
-        snapModifierCombo           = new ModifiersSpec(getStringPref("snap-modifier-combo",             "?sC"));
-        copyTagsModifierCombo       = new ModifiersSpec(getStringPref("copy-tags-modifier-combo",        "As?"));
-        addToSelectionModifierCombo = new ModifiersSpec(getStringPref("add-to-selection-modifier-combo", "aSc"));
-        toggleSelectedModifierCombo = new ModifiersSpec(getStringPref("toggle-selection-modifier-combo", "asC"));
-        setSelectedModifierCombo    = new ModifiersSpec(getStringPref("set-selection-modifier-combo",    "asc"));
-        // CHECKSTYLE.ON: SingleSpaceSeparator
-        // @formatter:on
-    }
-
     @Override
     public boolean layerIsSupported(Layer layer) {
         return layer instanceof OsmDataLayer;
@@ -250,11 +237,11 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
         Cursor newCursor = null;
         switch (mode) {
         case NORMAL:
-            if (matchesCurrentModifiers(setSelectedModifierCombo)) {
+            if (matchesCurrentModifiers(SET_SELECTED_MODIFIER_COMBO)) {
                 newCursor = ImageProvider.getCursor("normal", "parallel");
-            } else if (matchesCurrentModifiers(addToSelectionModifierCombo)) {
+            } else if (matchesCurrentModifiers(ADD_TO_SELECTION_MODIFIER_COMBO)) {
                 newCursor = ImageProvider.getCursor("normal", "parallel_add");
-            } else if (matchesCurrentModifiers(toggleSelectedModifierCombo)) {
+            } else if (matchesCurrentModifiers(TOGGLE_SELECTED_MODIFIER_COMBO)) {
                 newCursor = ImageProvider.getCursor("normal", "parallel_remove");
             }
             break;
@@ -322,24 +309,24 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
             // use point from press or click event? (or are these always the same)
             Way nearestWay = mv.getNearestWay(e.getPoint(), OsmPrimitive::isSelectable);
             if (nearestWay == null) {
-                if (matchesCurrentModifiers(setSelectedModifierCombo)) {
+                if (matchesCurrentModifiers(SET_SELECTED_MODIFIER_COMBO)) {
                     clearSourceWays();
                 }
                 resetMouseTrackingState();
                 return;
             }
             boolean isSelected = nearestWay.isSelected();
-            if (matchesCurrentModifiers(addToSelectionModifierCombo)) {
+            if (matchesCurrentModifiers(ADD_TO_SELECTION_MODIFIER_COMBO)) {
                 if (!isSelected) {
                     addSourceWay(nearestWay);
                 }
-            } else if (matchesCurrentModifiers(toggleSelectedModifierCombo)) {
+            } else if (matchesCurrentModifiers(TOGGLE_SELECTED_MODIFIER_COMBO)) {
                 if (isSelected) {
                     removeSourceWay(nearestWay);
                 } else {
                     addSourceWay(nearestWay);
                 }
-            } else if (matchesCurrentModifiers(setSelectedModifierCombo)) {
+            } else if (matchesCurrentModifiers(SET_SELECTED_MODIFIER_COMBO)) {
                 clearSourceWays();
                 addSourceWay(nearestWay);
             } // else -> invalid modifier combination
@@ -377,7 +364,7 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
             updateCursor();
         }
 
-        if ((System.currentTimeMillis() - mousePressedTime) < initialMoveDelay)
+        if ((System.currentTimeMillis() - mousePressedTime) < INITIAL_MOVE_DELAY.get())
             return;
         // Assuming this event only is emitted when the mouse has moved
         // Setting this after the check above means we tolerate clicks with some movement
@@ -406,8 +393,7 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
         double realD = mv.getProjection().eastNorth2latlon(enp).greatCircleDistance(mv.getProjection().eastNorth2latlon(nearestPointOnRefLine));
         double snappedRealD = realD;
 
-        // TODO: abuse of isToTheRightSideOfLine function.
-        boolean toTheRight = Geometry.isToTheRightSideOfLine(referenceSegment.getFirstNode(),
+        boolean toTheRight = Geometry.angleIsClockwise(
                 referenceSegment.getFirstNode(), referenceSegment.getSecondNode(), new Node(enp));
 
         if (snap) {
@@ -416,13 +402,13 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
             double snapDistance;
             SystemOfMeasurement som = SystemOfMeasurement.getSystemOfMeasurement();
             if (som.equals(SystemOfMeasurement.CHINESE)) {
-                snapDistance = snapDistanceChinese * SystemOfMeasurement.CHINESE.aValue;
+                snapDistance = SNAP_DISTANCE_CHINESE.get() * SystemOfMeasurement.CHINESE.aValue;
             } else if (som.equals(SystemOfMeasurement.IMPERIAL)) {
-                snapDistance = snapDistanceImperial * SystemOfMeasurement.IMPERIAL.aValue;
+                snapDistance = SNAP_DISTANCE_IMPERIAL.get() * SystemOfMeasurement.IMPERIAL.aValue;
             } else if (som.equals(SystemOfMeasurement.NAUTICAL_MILE)) {
-                snapDistance = snapDistanceNautical * SystemOfMeasurement.NAUTICAL_MILE.aValue;
+                snapDistance = SNAP_DISTANCE_NAUTICAL.get() * SystemOfMeasurement.NAUTICAL_MILE.aValue;
             } else {
-                snapDistance = snapDistanceMetric; // Metric system by default
+                snapDistance = SNAP_DISTANCE_METRIC.get(); // Metric system by default
             }
             double closestWholeUnit;
             double modulo = realD % snapDistance;
@@ -431,7 +417,7 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
             } else {
                 closestWholeUnit = realD + (snapDistance-modulo);
             }
-            if (Math.abs(closestWholeUnit - realD) < (snapThreshold * snapDistance)) {
+            if (Math.abs(closestWholeUnit - realD) < (SNAP_THRESHOLD.get() * snapDistance)) {
                 snappedRealD = closestWholeUnit;
             } else {
                 snappedRealD = closestWholeUnit + Math.signum(realD - closestWholeUnit) * snapDistance;
@@ -450,43 +436,62 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
         mv.repaint();
     }
 
-    private boolean matchesCurrentModifiers(ModifiersSpec spec) {
-        return spec.matchWithKnown(alt, shift, ctrl);
+    private boolean matchesCurrentModifiers(CachingProperty<Map<Modifier, Boolean>> spec) {
+        return matchesCurrentModifiers(spec.get());
+    }
+
+    private boolean matchesCurrentModifiers(Map<Modifier, Boolean> spec) {
+        EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class);
+        if (ctrl) {
+            modifiers.add(Modifier.CTRL);
+        }
+        if (alt) {
+            modifiers.add(Modifier.ALT);
+        }
+        if (shift) {
+            modifiers.add(Modifier.SHIFT);
+        }
+        return spec.entrySet().stream().allMatch(entry -> modifiers.contains(entry.getKey()) == entry.getValue().booleanValue());
     }
 
     @Override
     public void paint(Graphics2D g, MapView mv, Bounds bbox) {
         if (mode == Mode.DRAGGING) {
-            // sanity checks
-            if (mv == null)
-                return;
+            CheckParameterUtil.ensureParameterNotNull(mv, "mv");
+
+            Color mainColor = MAIN_COLOR.get();
+            if (mainColor == null) {
+                mainColor = PaintColors.SELECTED.get();
+            }
 
             // FIXME: should clip the line (gets insanely slow when zoomed in on a very long line
-            g.setStroke(refLineStroke);
+            g.setStroke(REF_LINE_STROKE.get());
             g.setColor(mainColor);
-            Point p1 = mv.getPoint(referenceSegment.getFirstNode().getEastNorth());
-            Point p2 = mv.getPoint(referenceSegment.getSecondNode().getEastNorth());
-            g.drawLine(p1.x, p1.y, p2.x, p2.y);
+            MapViewPath line = new MapViewPath(mv);
+            line.moveTo(referenceSegment.getFirstNode());
+            line.lineTo(referenceSegment.getSecondNode());
+            g.draw(line);
 
-            g.setStroke(helpLineStroke);
+            g.setStroke(HELPER_LINE_STROKE.get());
             g.setColor(mainColor);
-            p1 = mv.getPoint(helperLineStart);
-            p2 = mv.getPoint(helperLineEnd);
-            g.drawLine(p1.x, p1.y, p2.x, p2.y);
+            line = new MapViewPath(mv);
+            line.moveTo(helperLineStart);
+            line.lineTo(helperLineEnd);
+            g.draw(line);
         }
     }
 
     private boolean isModifiersValidForDragMode() {
-        return (!alt && !shift && !ctrl) || matchesCurrentModifiers(snapModifierCombo)
-                || matchesCurrentModifiers(copyTagsModifierCombo);
+        return (!alt && !shift && !ctrl) || matchesCurrentModifiers(SNAP_MODIFIER_COMBO)
+                || matchesCurrentModifiers(COPY_TAGS_MODIFIER_COMBO);
     }
 
     private void updateFlagsOnlyChangeableOnPress() {
-        copyTags = copyTagsDefault != matchesCurrentModifiers(copyTagsModifierCombo);
+        copyTags = COPY_TAGS_DEFAULT.get().booleanValue() != matchesCurrentModifiers(COPY_TAGS_MODIFIER_COMBO);
     }
 
     private void updateFlagsChangeableAlways() {
-        snap = snapDefault != matchesCurrentModifiers(snapModifierCombo);
+        snap = SNAP_DEFAULT.get().booleanValue() != matchesCurrentModifiers(SNAP_MODIFIER_COMBO);
     }
 
     // We keep the source ways and the selection in sync so the user can see the source way's tags
@@ -561,20 +566,77 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
         return "edit.make-parallel-way-action." + subKey;
     }
 
-    private static String getStringPref(String subKey, String def) {
-        return Main.pref.get(prefKey(subKey), def);
-    }
+    /**
+     * A property that holds the keyboard modifiers.
+     * @author Michael Zangl
+     * @since 10869
+     */
+    private static class KeyboardModifiersProperty extends AbstractToStringProperty<Map<Modifier, Boolean>> {
 
-    @Override
-    public void preferenceChanged(PreferenceChangeEvent e) {
-        if (e.getKey().startsWith(prefKey(""))) {
-            updateAllPreferences();
+        KeyboardModifiersProperty(String key, String defaultValue) {
+            super(key, createFromString(defaultValue));
+        }
+
+        KeyboardModifiersProperty(String key, Map<Modifier, Boolean> defaultValue) {
+            super(key, defaultValue);
+        }
+
+        @Override
+        protected String toString(Map<Modifier, Boolean> t) {
+            StringBuilder sb = new StringBuilder();
+            for (Modifier mod : Modifier.values()) {
+                Boolean val = t.get(mod);
+                if (val == null) {
+                    sb.append('?');
+                } else if (val) {
+                    sb.append(Character.toUpperCase(mod.shortChar));
+                } else {
+                    sb.append(mod.shortChar);
+                }
+            }
+            return sb.toString();
+        }
+
+        @Override
+        protected Map<Modifier, Boolean> fromString(String string) {
+            return createFromString(string);
+        }
+
+        private static Map<Modifier, Boolean> createFromString(String string) {
+            Map<Modifier, Boolean> ret = new EnumMap<>(Modifier.class);
+            for (char c : string.toCharArray()) {
+                if (c == '?') {
+                    continue;
+                }
+                Optional<Modifier> mod = Modifier.findWithShortCode(c);
+                if (mod.isPresent()) {
+                    ret.put(mod.get(), Character.isUpperCase(c));
+                } else {
+                    Main.debug("Ignoring unknown modifier {0}", c);
+                }
+            }
+            return Collections.unmodifiableMap(ret);
         }
     }
 
-    @Override
-    public void destroy() {
-        super.destroy();
-        Main.pref.removePreferenceChangeListener(this);
+    private enum Modifier {
+        CTRL('c'),
+        ALT('a'),
+        SHIFT('s');
+
+        private final char shortChar;
+
+        Modifier(char shortChar) {
+            this.shortChar = Character.toLowerCase(shortChar);
+        }
+
+        /**
+         * Find the modifier with the given short code
+         * @param charCode The short code
+         * @return The modifier
+         */
+        public static Optional<Modifier> findWithShortCode(int charCode) {
+            return Stream.of(values()).filter(m -> m.shortChar == Character.toLowerCase(charCode)).findAny();
+        }
     }
 }
diff --git a/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java b/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
index 7d2bcb4..e912a07 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
@@ -41,6 +41,7 @@ import org.openstreetmap.josm.data.osm.visitor.paint.WireframeMapRenderer;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 import org.openstreetmap.josm.gui.SelectionManager;
 import org.openstreetmap.josm.gui.SelectionManager.SelectionEnded;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -1191,10 +1192,10 @@ public class SelectAction extends MapMode implements ModifierListener, KeyPressR
 
                     wnp.a = w.getNode(ws.lowerIndex);
                     wnp.b = w.getNode(ws.lowerIndex + 1);
-                    Point2D p1 = mv.getPoint2D(wnp.a);
-                    Point2D p2 = mv.getPoint2D(wnp.b);
+                    MapViewPoint p1 = mv.getState().getPointFor(wnp.a);
+                    MapViewPoint p2 = mv.getState().getPointFor(wnp.b);
                     if (WireframeMapRenderer.isLargeSegment(p1, p2, virtualSpace)) {
-                        Point2D pc = new Point2D.Double((p1.getX() + p2.getX()) / 2, (p1.getY() + p2.getY()) / 2);
+                        Point2D pc = new Point2D.Double((p1.getInViewX() + p2.getInViewX()) / 2, (p1.getInViewY() + p2.getInViewY()) / 2);
                         if (p.distanceSq(pc) < virtualSnapDistSq2) {
                             // Check that only segments on top of each other get added to the
                             // virtual ways list. Otherwise ways that coincidentally have their
diff --git a/src/org/openstreetmap/josm/actions/search/SearchCompiler.java b/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
index 84f13e8..8bf810c 100644
--- a/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
+++ b/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
@@ -615,7 +615,7 @@ public class SearchCompiler {
                     this.valuePattern = Pattern.compile(value, searchFlags);
                 } catch (PatternSyntaxException e) {
                     throw new ParseError(tr(rxErrorMsg, e.getPattern(), e.getIndex(), e.getMessage()), e);
-                } catch (IllegalArgumentException e) {
+                } catch (IllegalArgumentException | StringIndexOutOfBoundsException e) {
                     throw new ParseError(tr(rxErrorMsgNoPos, value, e.getMessage()), e);
                 }
                 this.key = key;
@@ -1279,7 +1279,7 @@ public class SearchCompiler {
     private static class Incomplete extends Match {
         @Override
         public boolean match(OsmPrimitive osm) {
-            return osm.isIncomplete();
+            return osm.isIncomplete() || (osm instanceof Relation && ((Relation) osm).hasIncompleteMembers());
         }
 
         @Override
@@ -1451,7 +1451,7 @@ public class SearchCompiler {
             else if (osm instanceof Node) {
                 LatLon coordinate = ((Node) osm).getCoor();
                 Collection<Bounds> allBounds = getBounds(osm);
-                return allBounds != null && allBounds.stream().anyMatch(bounds -> bounds.contains(coordinate));
+                return coordinate != null && allBounds != null && allBounds.stream().anyMatch(bounds -> bounds.contains(coordinate));
             } else if (osm instanceof Way) {
                 Collection<Node> nodes = ((Way) osm).getNodes();
                 return all ? nodes.stream().allMatch(this) : nodes.stream().anyMatch(this);
diff --git a/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java b/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java
index 2704956..6d32ccf 100644
--- a/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java
+++ b/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java
@@ -60,8 +60,7 @@ public class ValidateUploadHook implements UploadHook {
             test.startTest(null);
             test.visit(selection);
             test.endTest();
-            if (ValidatorPreference.PREF_OTHER.get() &&
-                Main.pref.getBoolean(ValidatorPreference.PREF_OTHER_UPLOAD, false)) {
+            if (ValidatorPreference.PREF_OTHER.get() && ValidatorPreference.PREF_OTHER_UPLOAD.get()) {
                 errors.addAll(test.getErrors());
             } else {
                 for (TestError e : test.getErrors()) {
@@ -82,7 +81,7 @@ public class ValidateUploadHook implements UploadHook {
         if (errors.isEmpty())
             return true;
 
-        if (Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true)) {
+        if (ValidatorPreference.PREF_USE_IGNORE.get()) {
             int nume = 0;
             for (TestError error : errors) {
                 List<String> s = new ArrayList<>();
diff --git a/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java b/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
index c3a9ab7..02b73dd 100644
--- a/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
+++ b/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
@@ -100,6 +100,7 @@ public class AddPrimitivesCommand extends Command {
                     newPrimitives.get(i).load(data.get(i));
                 }
             }
+            newPrimitives.stream().forEach(p -> p.setModified(true));
         } else { // redo
             // When redoing this command, we have to add the same objects, otherwise
             // a subsequent command (e.g. MoveCommand) cannot be redone.
diff --git a/src/org/openstreetmap/josm/command/Command.java b/src/org/openstreetmap/josm/command/Command.java
index 4e7b266..b510cfb 100644
--- a/src/org/openstreetmap/josm/command/Command.java
+++ b/src/org/openstreetmap/josm/command/Command.java
@@ -41,6 +41,13 @@ import org.openstreetmap.josm.tools.CheckParameterUtil;
  */
 public abstract class Command implements PseudoCommand {
 
+    /** IS_OK : operation is okay */
+    public static final int IS_OK = 0;
+    /** IS_OUTSIDE : operation on element outside of download area */
+    public static final int IS_OUTSIDE = 1;
+    /** IS_INCOMPLETE: operation on incomplete target */
+    public static final int IS_INCOMPLETE = 2;
+
     private static final class CloneVisitor extends AbstractVisitor {
         public final Map<OsmPrimitive, PrimitiveData> orig = new LinkedHashMap<>();
 
@@ -244,31 +251,45 @@ public abstract class Command implements PseudoCommand {
 
     /**
      * Check whether user is about to operate on data outside of the download area.
-     * Request confirmation if he is.
      *
      * @param operation the operation name which is used for setting some preferences
-     * @param dialogTitle the title of the dialog being displayed
-     * @param outsideDialogMessage the message text to be displayed when data is outside of the download area
-     * @param incompleteDialogMessage the message text to be displayed when data is incomplete
      * @param primitives the primitives to operate on
      * @param ignore {@code null} or a primitive to be ignored
      * @return true, if operating on outlying primitives is OK; false, otherwise
      */
-    public static boolean checkAndConfirmOutlyingOperation(String operation,
-            String dialogTitle, String outsideDialogMessage, String incompleteDialogMessage,
+    public static int checkOutlyingOrIncompleteOperation(String operation,
             Collection<? extends OsmPrimitive> primitives,
             Collection<? extends OsmPrimitive> ignore) {
-        boolean outside = false;
-        boolean incomplete = false;
+        int res = 0;
         for (OsmPrimitive osm : primitives) {
             if (osm.isIncomplete()) {
-                incomplete = true;
+                res |= IS_INCOMPLETE;
             } else if (osm.isOutsideDownloadArea()
                     && (ignore == null || !ignore.contains(osm))) {
-                outside = true;
+                res |= IS_OUTSIDE;
             }
         }
-        if (outside) {
+        return res;
+    }
+
+    /**
+     * Check whether user is about to operate on data outside of the download area.
+     * Request confirmation if he is.
+     *
+     * @param operation the operation name which is used for setting some preferences
+     * @param dialogTitle the title of the dialog being displayed
+     * @param outsideDialogMessage the message text to be displayed when data is outside of the download area
+     * @param incompleteDialogMessage the message text to be displayed when data is incomplete
+     * @param primitives the primitives to operate on
+     * @param ignore {@code null} or a primitive to be ignored
+     * @return true, if operating on outlying primitives is OK; false, otherwise
+     */
+    public static boolean checkAndConfirmOutlyingOperation(String operation,
+            String dialogTitle, String outsideDialogMessage, String incompleteDialogMessage,
+            Collection<? extends OsmPrimitive> primitives,
+            Collection<? extends OsmPrimitive> ignore) {
+        int checkRes = checkOutlyingOrIncompleteOperation(operation, primitives, ignore);
+        if ((checkRes & IS_OUTSIDE) != 0) {
             JPanel msg = new JPanel(new GridBagLayout());
             msg.add(new JMultilineLabel("<html>" + outsideDialogMessage + "</html>"));
             boolean answer = ConditionalOptionPaneUtil.showConfirmationDialog(
@@ -282,7 +303,7 @@ public abstract class Command implements PseudoCommand {
             if (!answer)
                 return false;
         }
-        if (incomplete) {
+        if ((checkRes & IS_INCOMPLETE) != 0) {
             JPanel msg = new JPanel(new GridBagLayout());
             msg.add(new JMultilineLabel("<html>" + incompleteDialogMessage + "</html>"));
             boolean answer = ConditionalOptionPaneUtil.showConfirmationDialog(
diff --git a/src/org/openstreetmap/josm/data/AutosaveTask.java b/src/org/openstreetmap/josm/data/AutosaveTask.java
index b0e094d..43502d7 100644
--- a/src/org/openstreetmap/josm/data/AutosaveTask.java
+++ b/src/org/openstreetmap/josm/data/AutosaveTask.java
@@ -93,7 +93,6 @@ public class AutosaveTask extends TimerTask implements LayerChangeListener, List
     private final DataSetListenerAdapter datasetAdapter = new DataSetListenerAdapter(this);
     private final Set<DataSet> changedDatasets = new HashSet<>();
     private final List<AutosaveLayerInfo> layersInfo = new ArrayList<>();
-    private Timer timer;
     private final Object layersLock = new Object();
     private final Deque<File> deletedLayers = new LinkedList<>();
 
@@ -131,8 +130,7 @@ public class AutosaveTask extends TimerTask implements LayerChangeListener, List
                 }
             }
 
-            timer = new Timer(true);
-            timer.schedule(this, 1000L, PROP_INTERVAL.get() * 1000L);
+            new Timer(true).schedule(this, 1000L, PROP_INTERVAL.get() * 1000L);
             Main.getLayerManager().addLayerChangeListener(this, true);
         }
     }
diff --git a/src/org/openstreetmap/josm/data/Bounds.java b/src/org/openstreetmap/josm/data/Bounds.java
index 067a9c3..f469321 100644
--- a/src/org/openstreetmap/josm/data/Bounds.java
+++ b/src/org/openstreetmap/josm/data/Bounds.java
@@ -7,9 +7,11 @@ import java.awt.geom.Rectangle2D;
 import java.text.DecimalFormat;
 import java.text.MessageFormat;
 import java.util.Objects;
+import java.util.function.Consumer;
 
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.BBox;
+import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
 /**
@@ -86,12 +88,18 @@ public class Bounds {
         this(min.lat(), min.lon(), max.lat(), max.lon());
     }
 
+    /**
+     * Constructs bounds out of two points.
+     * @param min min lat/lon
+     * @param max max lat/lon
+     * @param roundToOsmPrecision defines if lat/lon will be rounded
+     */
     public Bounds(LatLon min, LatLon max, boolean roundToOsmPrecision) {
         this(min.lat(), min.lon(), max.lat(), max.lon(), roundToOsmPrecision);
     }
 
     /**
-     * Constructs bounds out a single point.
+     * Constructs bounds out a single point. Coords will be rounded.
      * @param b lat/lon
      */
     public Bounds(LatLon b) {
@@ -131,10 +139,25 @@ public class Bounds {
         this.maxLon = this.minLon;
     }
 
+    /**
+     * Constructs bounds out of two points. Coords will be rounded.
+     * @param minlat min lat
+     * @param minlon min lon
+     * @param maxlat max lat
+     * @param maxlon max lon
+     */
     public Bounds(double minlat, double minlon, double maxlat, double maxlon) {
         this(minlat, minlon, maxlat, maxlon, true);
     }
 
+    /**
+     * Constructs bounds out of two points.
+     * @param minlat min lat
+     * @param minlon min lon
+     * @param maxlat max lat
+     * @param maxlon max lon
+     * @param roundToOsmPrecision defines if lat/lon will be rounded
+     */
     public Bounds(double minlat, double minlon, double maxlat, double maxlon, boolean roundToOsmPrecision) {
         if (roundToOsmPrecision) {
             this.minLat = LatLon.roundToOsmPrecision(minlat);
@@ -149,10 +172,21 @@ public class Bounds {
         }
     }
 
+    /**
+     * Constructs bounds out of two points. Coords will be rounded.
+     * @param coords exactly 4 values: min lat, min lon, max lat, max lon
+     * @throws IllegalArgumentException if coords does not contain 4 double values
+     */
     public Bounds(double ... coords) {
         this(coords, true);
     }
 
+    /**
+     * Constructs bounds out of two points.
+     * @param coords exactly 4 values: min lat, min lon, max lat, max lon
+     * @param roundToOsmPrecision defines if lat/lon will be rounded
+     * @throws IllegalArgumentException if coords does not contain 4 double values
+     */
     public Bounds(double[] coords, boolean roundToOsmPrecision) {
         CheckParameterUtil.ensureParameterNotNull(coords, "coords");
         if (coords.length != 4)
@@ -229,6 +263,10 @@ public class Bounds {
         this(other.minLat, other.minLon, other.maxLat, other.maxLon);
     }
 
+    /**
+     * Creates new {@code Bounds} from a rectangle.
+     * @param rect The rectangle
+     */
     public Bounds(Rectangle2D rect) {
         this(rect.getMinY(), rect.getMinX(), rect.getMaxY(), rect.getMaxX());
     }
@@ -398,12 +436,16 @@ public class Bounds {
      * @return the bounding box to Rectangle2D.Double
      */
     public Rectangle2D.Double asRect() {
-        double w = maxLon-minLon + (crosses180thMeridian() ? 360.0 : 0.0);
+        double w = getWidth();
         return new Rectangle2D.Double(minLon, minLat, w, maxLat-minLat);
     }
 
+    private double getWidth() {
+        return maxLon-minLon + (crosses180thMeridian() ? 360.0 : 0.0);
+    }
+
     public double getArea() {
-        double w = maxLon-minLon + (crosses180thMeridian() ? 360.0 : 0.0);
+        double w = getWidth();
         return w * (maxLat - minLat);
     }
 
@@ -441,6 +483,33 @@ public class Bounds {
         maxLon = LatLon.toIntervalLon(maxLon);
     }
 
+    /**
+     * Visit points along the edge of this bounds instance.
+     * @param projection The projection that should be used to determine how often the edge should be split along a given corner.
+     * @param visitor A function to call for the points on the edge.
+     * @since 10806
+     */
+    public void visitEdge(Projection projection, Consumer<LatLon> visitor) {
+        double width = getWidth();
+        double height = maxLat - minLat;
+        //TODO: Use projection to see if there is any need for doing this along each axis.
+        int splitX = Math.max((int) width / 10, 10);
+        int splitY = Math.max((int) height / 10, 10);
+
+        for (int step = 0; step < splitX; step++) {
+            visitor.accept(new LatLon(minLat, minLon + width * step / splitX));
+        }
+        for (int step = 0; step < splitY; step++) {
+            visitor.accept(new LatLon(minLat + height * step / splitY, maxLon));
+        }
+        for (int step = 0; step < splitX; step++) {
+            visitor.accept(new LatLon(maxLat, maxLon - width * step / splitX));
+        }
+        for (int step = 0; step < splitY; step++) {
+            visitor.accept(new LatLon(maxLat - height * step / splitY, minLon));
+        }
+    }
+
     @Override
     public int hashCode() {
         return Objects.hash(minLat, minLon, maxLat, maxLon);
diff --git a/src/org/openstreetmap/josm/data/Preferences.java b/src/org/openstreetmap/josm/data/Preferences.java
index f79ba40..ec382d8 100644
--- a/src/org/openstreetmap/josm/data/Preferences.java
+++ b/src/org/openstreetmap/josm/data/Preferences.java
@@ -8,9 +8,7 @@ import java.awt.Color;
 import java.awt.GraphicsEnvironment;
 import java.awt.Toolkit;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.StringReader;
@@ -36,10 +34,10 @@ import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
-import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.function.Predicate;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Stream;
 
 import javax.json.Json;
 import javax.json.JsonArray;
@@ -54,9 +52,13 @@ import javax.swing.JOptionPane;
 import javax.xml.stream.XMLStreamException;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
 import org.openstreetmap.josm.data.preferences.ColorProperty;
+import org.openstreetmap.josm.data.preferences.DoubleProperty;
+import org.openstreetmap.josm.data.preferences.IntegerProperty;
 import org.openstreetmap.josm.data.preferences.ListListSetting;
 import org.openstreetmap.josm.data.preferences.ListSetting;
+import org.openstreetmap.josm.data.preferences.LongProperty;
 import org.openstreetmap.josm.data.preferences.MapListSetting;
 import org.openstreetmap.josm.data.preferences.PreferencesReader;
 import org.openstreetmap.josm.data.preferences.PreferencesWriter;
@@ -66,8 +68,8 @@ import org.openstreetmap.josm.io.OfflineAccessException;
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ColorHelper;
-import org.openstreetmap.josm.tools.FilteredCollection;
 import org.openstreetmap.josm.tools.I18n;
+import org.openstreetmap.josm.tools.ListenerList;
 import org.openstreetmap.josm.tools.MultiMap;
 import org.openstreetmap.josm.tools.Utils;
 import org.xml.sax.SAXException;
@@ -214,15 +216,9 @@ public class Preferences {
         }
     }
 
-    public interface ColorKey {
-        String getColorName();
+    private final ListenerList<PreferenceChangedListener> listeners = ListenerList.create();
 
-        String getSpecialName();
-
-        Color getDefaultValue();
-    }
-
-    private final CopyOnWriteArrayList<PreferenceChangedListener> listeners = new CopyOnWriteArrayList<>();
+    private final HashMap<String, ListenerList<PreferenceChangedListener>> keyListeners = new HashMap<>();
 
     /**
      * Adds a new preferences listener.
@@ -230,7 +226,7 @@ public class Preferences {
      */
     public void addPreferenceChangeListener(PreferenceChangedListener listener) {
         if (listener != null) {
-            listeners.addIfAbsent(listener);
+            listeners.addListener(listener);
         }
     }
 
@@ -239,13 +235,58 @@ public class Preferences {
      * @param listener The listener to remove
      */
     public void removePreferenceChangeListener(PreferenceChangedListener listener) {
-        listeners.remove(listener);
+        listeners.removeListener(listener);
+    }
+
+    /**
+     * Adds a listener that only listens to changes in one preference
+     * @param key The preference key to listen to
+     * @param listener The listener to add.
+     * @since 10824
+     */
+    public void addKeyPreferenceChangeListener(String key, PreferenceChangedListener listener) {
+        listenersForKey(key).addListener(listener);
+    }
+
+    /**
+     * Adds a weak listener that only listens to changes in one preference
+     * @param key The preference key to listen to
+     * @param listener The listener to add.
+     * @since 10824
+     */
+    public void addWeakKeyPreferenceChangeListener(String key, PreferenceChangedListener listener) {
+        listenersForKey(key).addWeakListener(listener);
+    }
+
+    private ListenerList<PreferenceChangedListener> listenersForKey(String key) {
+        ListenerList<PreferenceChangedListener> keyListener = keyListeners.get(key);
+        if (keyListener == null) {
+            keyListener = ListenerList.create();
+            keyListeners.put(key, keyListener);
+        }
+        return keyListener;
+    }
+
+    /**
+     * Removes a listener that only listens to changes in one preference
+     * @param key The preference key to listen to
+     * @param listener The listener to add.
+     */
+    public void removeKeyPreferenceChangeListener(String key, PreferenceChangedListener listener) {
+        ListenerList<PreferenceChangedListener> keyListener = keyListeners.get(key);
+        if (keyListener == null) {
+            throw new IllegalArgumentException("There are no listeners registered for " + key);
+        }
+        keyListener.removeListener(listener);
     }
 
     protected void firePreferenceChanged(String key, Setting<?> oldValue, Setting<?> newValue) {
-        PreferenceChangeEvent evt = new DefaultPreferenceChangeEvent(key, oldValue, newValue);
-        for (PreferenceChangedListener l : listeners) {
-            l.preferenceChanged(evt);
+        final PreferenceChangeEvent evt = new DefaultPreferenceChangeEvent(key, oldValue, newValue);
+        listeners.fireEvent(listener -> listener.preferenceChanged(evt));
+
+        ListenerList<PreferenceChangedListener> forKey = keyListeners.get(key);
+        if (forKey != null) {
+            forKey.fireEvent(listener -> listener.preferenceChanged(evt));
         }
     }
 
@@ -478,24 +519,49 @@ public class Preferences {
      * @return {@code true}, if something has changed (i.e. value is different than before)
      */
     public boolean put(final String key, String value) {
-        if (value != null && value.isEmpty()) {
-            value = null;
-        }
-        return putSetting(key, value == null ? null : new StringSetting(value));
+        return putSetting(key, value == null || value.isEmpty() ? null : new StringSetting(value));
     }
 
+    /**
+     * Set a boolean value for a certain setting.
+     * @param key the unique identifier for the setting
+     * @param value The new value
+     * @return {@code true}, if something has changed (i.e. value is different than before)
+     * @see BooleanProperty
+     */
     public boolean put(final String key, final boolean value) {
         return put(key, Boolean.toString(value));
     }
 
+    /**
+     * Set a boolean value for a certain setting.
+     * @param key the unique identifier for the setting
+     * @param value The new value
+     * @return {@code true}, if something has changed (i.e. value is different than before)
+     * @see IntegerProperty
+     */
     public boolean putInteger(final String key, final Integer value) {
         return put(key, Integer.toString(value));
     }
 
+    /**
+     * Set a boolean value for a certain setting.
+     * @param key the unique identifier for the setting
+     * @param value The new value
+     * @return {@code true}, if something has changed (i.e. value is different than before)
+     * @see DoubleProperty
+     */
     public boolean putDouble(final String key, final Double value) {
         return put(key, Double.toString(value));
     }
 
+    /**
+     * Set a boolean value for a certain setting.
+     * @param key the unique identifier for the setting
+     * @param value The new value
+     * @return {@code true}, if something has changed (i.e. value is different than before)
+     * @see LongProperty
+     */
     public boolean putLong(final String key, final Long value) {
         return put(key, Long.toString(value));
     }
@@ -505,16 +571,14 @@ public class Preferences {
      * @throws IOException if any I/O error occurs
      */
     public synchronized void save() throws IOException {
-        save(getPreferenceFile(),
-                new FilteredCollection<>(settingsMap.entrySet(), NO_DEFAULT_SETTINGS_ENTRY), false);
+        save(getPreferenceFile(), settingsMap.entrySet().stream().filter(NO_DEFAULT_SETTINGS_ENTRY), false);
     }
 
     public synchronized void saveDefaults() throws IOException {
-        save(getDefaultsCacheFile(), defaultsMap.entrySet(), true);
+        save(getDefaultsCacheFile(), defaultsMap.entrySet().stream(), true);
     }
 
-    protected void save(File prefFile, Collection<Entry<String, Setting<?>>> settings, boolean defaults) throws IOException {
-
+    protected void save(File prefFile, Stream<Entry<String, Setting<?>>> settings, boolean defaults) throws IOException {
         if (!defaults) {
             /* currently unused, but may help to fix configuration issues in future */
             putInteger("josm.version", Version.getInstance().getVersion());
@@ -529,9 +593,8 @@ public class Preferences {
             Utils.copyFile(prefFile, backupFile);
         }
 
-        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(
-                new FileOutputStream(prefFile + "_tmp"), StandardCharsets.UTF_8), false)) {
-            PreferencesWriter writer = new PreferencesWriter(out, false, defaults);
+        try (PreferencesWriter writer = new PreferencesWriter(
+                new PrintWriter(new File(prefFile + "_tmp"), StandardCharsets.UTF_8.name()), false, defaults)) {
             writer.write(settings);
         }
 
@@ -712,17 +775,40 @@ public class Preferences {
         }
     }
 
+    /**
+     * Resets the preferences to their initial state. This resets all values and file associations.
+     * The default values and listeners are not removed.
+     * <p>
+     * It is meant to be called before {@link #init(boolean)}
+     * @since 10876
+     */
+    public void resetToInitialState() {
+        resetToDefault();
+        preferencesDir = null;
+        cacheDir = null;
+        userdataDir = null;
+        saveOnPut = true;
+        initSuccessful = false;
+    }
+
+    /**
+     * Reset all values stored in this map to the default values. This clears the preferences.
+     */
     public final void resetToDefault() {
         settingsMap.clear();
     }
 
     /**
      * Convenience method for accessing colour preferences.
+     * <p>
+     * To be removed: end of 2016
      *
      * @param colName name of the colour
      * @param def default value
      * @return a Color object for the configured colour, or the default value if none configured.
+     * @deprecated Use a {@link ColorProperty} instead.
      */
+    @Deprecated
     public synchronized Color getColor(String colName, Color def) {
         return getColor(colName, null, def);
     }
@@ -741,30 +827,23 @@ public class Preferences {
     }
 
     /**
-     * Returns the color for the given key.
-     * @param key The color key
-     * @return the color
-     */
-    public Color getColor(ColorKey key) {
-        return getColor(key.getColorName(), key.getSpecialName(), key.getDefaultValue());
-    }
-
-    /**
      * Convenience method for accessing colour preferences.
-     *
+     * <p>
+     * To be removed: end of 2016
      * @param colName name of the colour
      * @param specName name of the special colour settings
      * @param def default value
      * @return a Color object for the configured colour, or the default value if none configured.
+     * @deprecated Use a {@link ColorProperty} instead.
+     * You can replace this by: <code>new ColorProperty(colName, def).getChildColor(specName)</code>
      */
+    @Deprecated
     public synchronized Color getColor(String colName, String specName, Color def) {
         String colKey = ColorProperty.getColorKey(colName);
-        if (!colKey.equals(colName)) {
-            colornames.put(colKey, colName);
-        }
+        registerColor(colKey, colName);
         String colStr = specName != null ? get("color."+specName) : "";
         if (colStr.isEmpty()) {
-            colStr = get("color." + colKey, ColorHelper.color2html(def, true));
+            colStr = get(colKey, ColorHelper.color2html(def, true));
         }
         if (colStr != null && !colStr.isEmpty()) {
             return ColorHelper.html2color(colStr);
@@ -773,6 +852,18 @@ public class Preferences {
         }
     }
 
+    /**
+     * Registers a color name conversion for the global color registry.
+     * @param colKey The key
+     * @param colName The name of the color.
+     * @since 10824
+     */
+    public void registerColor(String colKey, String colName) {
+        if (!colKey.equals(colName)) {
+            colornames.put(colKey, colName);
+        }
+    }
+
     public synchronized Color getDefaultColor(String colKey) {
         StringSetting col = Utils.cast(defaultsMap.get("color."+colKey), StringSetting.class);
         String colStr = col == null ? null : col.getValue();
diff --git a/src/org/openstreetmap/josm/data/cache/BufferedImageCacheEntry.java b/src/org/openstreetmap/josm/data/cache/BufferedImageCacheEntry.java
index 52c4538..a31c411 100644
--- a/src/org/openstreetmap/josm/data/cache/BufferedImageCacheEntry.java
+++ b/src/org/openstreetmap/josm/data/cache/BufferedImageCacheEntry.java
@@ -17,7 +17,6 @@ public class BufferedImageCacheEntry extends CacheEntry {
     private static final long serialVersionUID = 1L; //version
     // transient to avoid serialization, volatile to avoid synchronization of whole getImage() method
     private transient volatile BufferedImage img;
-    private transient volatile boolean writtenToDisk;
     // we need to have separate control variable, to know, if we already tried to load the image, as img might be null
     // after we loaded image, as for example, when image file is malformed (eg. HTML file)
     private transient volatile boolean imageLoaded;
@@ -78,8 +77,6 @@ public class BufferedImageCacheEntry extends CacheEntry {
                         "that was converted to BufferedImage and no raw data is present anymore");
             }
             out.writeObject(this);
-            // ugly hack to wait till element will get to disk to clean the memory
-            writtenToDisk = true;
 
             if (img != null) {
                 content = null;
diff --git a/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java b/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
index 082f3e1..216de7a 100644
--- a/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
+++ b/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
@@ -200,7 +200,7 @@ public final class JCSCacheManager {
     private static IDiskCacheAttributes getDiskCacheAttributes(int maxDiskObjects, String cachePath, String cacheName) {
         IDiskCacheAttributes ret;
         removeStaleFiles(cachePath + File.separator + cacheName, USE_BLOCK_CACHE.get() ? "_INDEX_v2" : "_BLOCK_v2");
-        cacheName = cacheName + (USE_BLOCK_CACHE.get() ? "_BLOCK_v2" : "_INDEX_v2");
+        String newCacheName = cacheName + (USE_BLOCK_CACHE.get() ? "_BLOCK_v2" : "_INDEX_v2");
 
         if (USE_BLOCK_CACHE.get()) {
             BlockDiskCacheAttributes blockAttr = new BlockDiskCacheAttributes();
@@ -210,7 +210,7 @@ public final class JCSCacheManager {
              * If for some mysterious reason, file size is greater than the value set in preferences, just use the whole file. If the user
              * wants to reduce the file size, (s)he may just go to preferences and there it should be handled (by removing old file)
              */
-            File diskCacheFile = new File(cachePath + File.separator + cacheName + ".data");
+            File diskCacheFile = new File(cachePath + File.separator + newCacheName + ".data");
             if (diskCacheFile.exists()) {
                 blockAttr.setMaxKeySize((int) Math.max(maxDiskObjects, diskCacheFile.length()/1024));
             } else {
@@ -230,7 +230,7 @@ public final class JCSCacheManager {
         } else {
             ret.setDiskPath(cachePath);
         }
-        ret.setCacheName(cacheName);
+        ret.setCacheName(newCacheName);
 
         return ret;
     }
diff --git a/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java b/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java
index a6a2dff..c844e20 100644
--- a/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java
+++ b/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java
@@ -24,6 +24,7 @@ import org.openstreetmap.gui.jmapviewer.FeatureAdapter;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.cache.ICachedLoaderListener.LoadResult;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.HttpClient;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -108,7 +109,7 @@ public abstract class JCSCachedTileLoaderJob<K, V extends CacheEntry> implements
             int connectTimeout, int readTimeout,
             Map<String, String> headers,
             ThreadPoolExecutor downloadJobExecutor) {
-
+        CheckParameterUtil.ensureParameterNotNull(cache, "cache");
         this.cache = cache;
         this.now = System.currentTimeMillis();
         this.connectTimeout = connectTimeout;
diff --git a/src/org/openstreetmap/josm/data/coor/EastNorth.java b/src/org/openstreetmap/josm/data/coor/EastNorth.java
index 3add3ec..0a6415a 100644
--- a/src/org/openstreetmap/josm/data/coor/EastNorth.java
+++ b/src/org/openstreetmap/josm/data/coor/EastNorth.java
@@ -81,8 +81,9 @@ public class EastNorth extends Coordinate {
      * @return The new {@link EastNorth} position.
      */
     public EastNorth interpolate(EastNorth en2, double proportion) {
-        return new EastNorth(this.x + proportion * (en2.x - this.x),
-                this.y + proportion * (en2.y - this.y));
+        // this is an alternate form of this.x + proportion * (en2.x - this.x) that is slightly faster
+        return new EastNorth((1 - proportion) * this.x + proportion * en2.x,
+                (1 - proportion) * this.y + proportion * en2.y);
     }
 
     /**
@@ -91,7 +92,8 @@ public class EastNorth extends Coordinate {
      * @return The center between this and the other instance.
      */
     public EastNorth getCenter(EastNorth en2) {
-        return new EastNorth((this.x + en2.x)/2.0, (this.y + en2.y)/2.0);
+        // The JIT will inline this for us, it is as fast as the normal /2 approach
+        return interpolate(en2, .5);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/coor/LatLon.java b/src/org/openstreetmap/josm/data/coor/LatLon.java
index 2a7e628..f983443 100644
--- a/src/org/openstreetmap/josm/data/coor/LatLon.java
+++ b/src/org/openstreetmap/josm/data/coor/LatLon.java
@@ -130,12 +130,13 @@ public class LatLon extends Coordinate {
         return isValidLat(lat()) && isValidLon(lon());
     }
 
+    /**
+     * Clamp the lat value to be inside the world.
+     * @param value The value
+     * @return The value clamped to the world.
+     */
     public static double toIntervalLat(double value) {
-        if (value < -90)
-            return -90;
-        if (value > 90)
-            return 90;
-        return value;
+        return Utils.clamp(value, -90, 90);
     }
 
     /**
@@ -418,13 +419,26 @@ public class LatLon extends Coordinate {
         ));
     }
 
+    /**
+     * Interpolate between this and a other latlon
+     * @param ll2 The other lat/lon object
+     * @param proportion The proportion to interpolate
+     * @return a new latlon at this position if proportion is 0, at the other position it proportion is 1 and lineary interpolated otherwise.
+     */
     public LatLon interpolate(LatLon ll2, double proportion) {
-        return new LatLon(this.lat() + proportion * (ll2.lat() - this.lat()),
-                this.lon() + proportion * (ll2.lon() - this.lon()));
+        // this is an alternate form of this.lat() + proportion * (ll2.lat() - this.lat()) that is slightly faster
+        return new LatLon((1 - proportion) * this.lat() + proportion * ll2.lat(),
+                (1 - proportion) * this.lon() + proportion * ll2.lon());
     }
 
+    /**
+     * Get the center between two lat/lon points
+     * @param ll2 The other {@link LatLon}
+     * @return The center at the average coordinates of the two points. Does not take the 180° meridian into account.
+     */
     public LatLon getCenter(LatLon ll2) {
-        return new LatLon((this.lat() + ll2.lat())/2.0, (this.lon() + ll2.lon())/2.0);
+        // The JIT will inline this for us, it is as fast as the normal /2 approach
+        return interpolate(ll2, .5);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/gpx/GpxData.java b/src/org/openstreetmap/josm/data/gpx/GpxData.java
index 47d7af9..d46679b 100644
--- a/src/org/openstreetmap/josm/data/gpx/GpxData.java
+++ b/src/org/openstreetmap/josm/data/gpx/GpxData.java
@@ -481,4 +481,47 @@ public class GpxData extends WithAttributes implements Data {
     public List<Bounds> getDataSourceBounds() {
         return DataSource.getDataSourceBounds(dataSources);
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((dataSources == null) ? 0 : dataSources.hashCode());
+        result = prime * result + ((routes == null) ? 0 : routes.hashCode());
+        result = prime * result + ((tracks == null) ? 0 : tracks.hashCode());
+        result = prime * result + ((waypoints == null) ? 0 : waypoints.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        GpxData other = (GpxData) obj;
+        if (dataSources == null) {
+            if (other.dataSources != null)
+                return false;
+        } else if (!dataSources.equals(other.dataSources))
+            return false;
+        if (routes == null) {
+            if (other.routes != null)
+                return false;
+        } else if (!routes.equals(other.routes))
+            return false;
+        if (tracks == null) {
+            if (other.tracks != null)
+                return false;
+        } else if (!tracks.equals(other.tracks))
+            return false;
+        if (waypoints == null) {
+            if (other.waypoints != null)
+                return false;
+        } else if (!waypoints.equals(other.waypoints))
+            return false;
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/gpx/GpxRoute.java b/src/org/openstreetmap/josm/data/gpx/GpxRoute.java
index e89bc1b..2ed9f73 100644
--- a/src/org/openstreetmap/josm/data/gpx/GpxRoute.java
+++ b/src/org/openstreetmap/josm/data/gpx/GpxRoute.java
@@ -6,4 +6,26 @@ import java.util.LinkedList;
 
 public class GpxRoute extends WithAttributes {
     public Collection<WayPoint> routePoints = new LinkedList<>();
+
+    @Override
+    public int hashCode() {
+        return 31 * super.hashCode() + ((routePoints == null) ? 0 : routePoints.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (!super.equals(obj))
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        GpxRoute other = (GpxRoute) obj;
+        if (routePoints == null) {
+            if (other.routePoints != null)
+                return false;
+        } else if (!routePoints.equals(other.routePoints))
+            return false;
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java
index b0b32f7..ccf25ef 100644
--- a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java
+++ b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java
@@ -16,7 +16,7 @@ import org.openstreetmap.josm.data.Bounds;
  */
 public class ImmutableGpxTrack extends WithAttributes implements GpxTrack {
 
-    private final Collection<GpxTrackSegment> segments;
+    private final List<GpxTrackSegment> segments;
     private final double length;
     private final Bounds bounds;
 
@@ -33,7 +33,7 @@ public class ImmutableGpxTrack extends WithAttributes implements GpxTrack {
             }
         }
         this.attr = Collections.unmodifiableMap(new HashMap<>(attributes));
-        this.segments = Collections.unmodifiableCollection(newSegments);
+        this.segments = Collections.unmodifiableList(newSegments);
         this.length = calculateLength();
         this.bounds = calculateBounds();
     }
@@ -89,4 +89,26 @@ public class ImmutableGpxTrack extends WithAttributes implements GpxTrack {
     public int getUpdateCount() {
         return 0;
     }
+
+    @Override
+    public int hashCode() {
+        return 31 * super.hashCode() + ((segments == null) ? 0 : segments.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (!super.equals(obj))
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        ImmutableGpxTrack other = (ImmutableGpxTrack) obj;
+        if (segments == null) {
+            if (other.segments != null)
+                return false;
+        } else if (!segments.equals(other.segments))
+            return false;
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java
index 6b9ae6e..9b1e5ac 100644
--- a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java
+++ b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java
@@ -4,17 +4,22 @@ package org.openstreetmap.josm.data.gpx;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.List;
 
 import org.openstreetmap.josm.data.Bounds;
 
 public class ImmutableGpxTrackSegment implements GpxTrackSegment {
 
-    private final Collection<WayPoint> wayPoints;
+    private final List<WayPoint> wayPoints;
     private final Bounds bounds;
     private final double length;
 
+    /**
+     * Constructs a new {@code ImmutableGpxTrackSegment}.
+     * @param wayPoints list of waypoints
+     */
     public ImmutableGpxTrackSegment(Collection<WayPoint> wayPoints) {
-        this.wayPoints = Collections.unmodifiableCollection(new ArrayList<>(wayPoints));
+        this.wayPoints = Collections.unmodifiableList(new ArrayList<>(wayPoints));
         this.bounds = calculateBounds();
         this.length = calculateLength();
     }
@@ -69,4 +74,25 @@ public class ImmutableGpxTrackSegment implements GpxTrackSegment {
         return 0;
     }
 
+    @Override
+    public int hashCode() {
+        return 31 + ((wayPoints == null) ? 0 : wayPoints.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        ImmutableGpxTrackSegment other = (ImmutableGpxTrackSegment) obj;
+        if (wayPoints == null) {
+            if (other.wayPoints != null)
+                return false;
+        } else if (!wayPoints.equals(other.wayPoints))
+            return false;
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/gpx/WayPoint.java b/src/org/openstreetmap/josm/data/gpx/WayPoint.java
index 7b85ee5..f667e6b 100644
--- a/src/org/openstreetmap/josm/data/gpx/WayPoint.java
+++ b/src/org/openstreetmap/josm/data/gpx/WayPoint.java
@@ -158,4 +158,35 @@ public class WayPoint extends WithAttributes implements Comparable<WayPoint>, Te
     public List<String> getTemplateKeys() {
         return new ArrayList<>(attr.keySet());
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        long temp = Double.doubleToLongBits(lat);
+        result = prime * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(lon);
+        result = prime * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(time);
+        result = prime * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (!super.equals(obj))
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        WayPoint other = (WayPoint) obj;
+        if (Double.doubleToLongBits(lat) != Double.doubleToLongBits(other.lat))
+            return false;
+        if (Double.doubleToLongBits(lon) != Double.doubleToLongBits(other.lon))
+            return false;
+        if (Double.doubleToLongBits(time) != Double.doubleToLongBits(other.time))
+            return false;
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/gpx/WithAttributes.java b/src/org/openstreetmap/josm/data/gpx/WithAttributes.java
index 21ddaf0..e55f90b 100644
--- a/src/org/openstreetmap/josm/data/gpx/WithAttributes.java
+++ b/src/org/openstreetmap/josm/data/gpx/WithAttributes.java
@@ -89,4 +89,26 @@ public class WithAttributes implements IWithAttributes, GpxConstants {
         Extensions ext = (Extensions) attr.get(META_EXTENSIONS);
         ext.put(key, value);
     }
+
+    @Override
+    public int hashCode() {
+        return 31 + ((attr == null) ? 0 : attr.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        WithAttributes other = (WithAttributes) obj;
+        if (attr == null) {
+            if (other.attr != null)
+                return false;
+        } else if (!attr.equals(other.attr))
+            return false;
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java b/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java
index 78843bb..c0c2493 100644
--- a/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java
+++ b/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java
@@ -16,6 +16,7 @@ import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
 import org.openstreetmap.josm.data.cache.BufferedImageCacheEntry;
 import org.openstreetmap.josm.data.cache.HostLimitQueue;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -42,7 +43,6 @@ public class TMSCachedTileLoader implements TileLoader, CachedTileLoader {
      */
     public static final IntegerProperty HOST_LIMIT = new IntegerProperty("imagery.tms.tmsloader.maxjobsperhost", 6);
 
-
     /**
      * separate from JCS thread pool for TMS loader, so we can have different thread pools for default JCS
      * and for TMS imagery
@@ -63,6 +63,7 @@ public class TMSCachedTileLoader implements TileLoader, CachedTileLoader {
      */
     public TMSCachedTileLoader(TileLoaderListener listener, ICacheAccess<String, BufferedImageCacheEntry> cache,
             int connectTimeout, int readTimeout, Map<String, String> headers) throws IOException {
+        CheckParameterUtil.ensureParameterNotNull(cache, "cache");
         this.cache = cache;
         this.connectTimeout = connectTimeout;
         this.readTimeout = readTimeout;
diff --git a/src/org/openstreetmap/josm/data/osm/DataSet.java b/src/org/openstreetmap/josm/data/osm/DataSet.java
index eaad637..ae31a3a 100644
--- a/src/org/openstreetmap/josm/data/osm/DataSet.java
+++ b/src/org/openstreetmap/josm/data/osm/DataSet.java
@@ -46,7 +46,6 @@ import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.ProjectionChangeListener;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
-import org.openstreetmap.josm.tools.FilteredCollection;
 import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -612,7 +611,7 @@ public final class DataSet implements Data, Cloneable, ProjectionChangeListener
      * @return selected nodes and ways
      */
     public Collection<OsmPrimitive> getSelectedNodesAndWays() {
-        return new FilteredCollection<>(getSelected(), primitive -> primitive instanceof Node || primitive instanceof Way);
+        return new SubclassFilteredCollection<>(getSelected(), primitive -> primitive instanceof Node || primitive instanceof Way);
     }
 
     /**
@@ -752,8 +751,7 @@ public final class DataSet implements Data, Cloneable, ProjectionChangeListener
             return;
 
         highlightedVirtualNodes = waySegments;
-        // can't use fireHighlightingChanged because it requires an OsmPrimitive
-        highlightUpdateCount++;
+        fireHighlightingChanged();
     }
 
     /**
@@ -765,8 +763,7 @@ public final class DataSet implements Data, Cloneable, ProjectionChangeListener
             return;
 
         highlightedWaySegments = waySegments;
-        // can't use fireHighlightingChanged because it requires an OsmPrimitive
-        highlightUpdateCount++;
+        fireHighlightingChanged();
     }
 
     /**
@@ -1163,26 +1160,27 @@ public final class DataSet implements Data, Cloneable, ProjectionChangeListener
     public void endUpdate() {
         if (updateCount > 0) {
             updateCount--;
+            List<AbstractDatasetChangedEvent> eventsToFire = Collections.emptyList();
             if (updateCount == 0) {
-                List<AbstractDatasetChangedEvent> eventsCopy = new ArrayList<>(cachedEvents);
+                eventsToFire = new ArrayList<>(cachedEvents);
                 cachedEvents.clear();
-                lock.writeLock().unlock();
+            }
 
-                if (!eventsCopy.isEmpty()) {
-                    lock.readLock().lock();
-                    try {
-                        if (eventsCopy.size() < MAX_SINGLE_EVENTS) {
-                            for (AbstractDatasetChangedEvent event: eventsCopy) {
-                                fireEventToListeners(event);
-                            }
-                        } else if (eventsCopy.size() == MAX_EVENTS) {
-                            fireEventToListeners(new DataChangedEvent(this));
-                        } else {
-                            fireEventToListeners(new DataChangedEvent(this, eventsCopy));
+            if (!eventsToFire.isEmpty()) {
+                lock.readLock().lock();
+                lock.writeLock().unlock();
+                try {
+                    if (eventsToFire.size() < MAX_SINGLE_EVENTS) {
+                        for (AbstractDatasetChangedEvent event: eventsToFire) {
+                            fireEventToListeners(event);
                         }
-                    } finally {
-                        lock.readLock().unlock();
+                    } else if (eventsToFire.size() == MAX_EVENTS) {
+                        fireEventToListeners(new DataChangedEvent(this));
+                    } else {
+                        fireEventToListeners(new DataChangedEvent(this, eventsToFire));
                     }
+                } finally {
+                    lock.readLock().unlock();
                 }
             } else {
                 lock.writeLock().unlock();
diff --git a/src/org/openstreetmap/josm/data/osm/DatasetFactory.java b/src/org/openstreetmap/josm/data/osm/DatasetFactory.java
deleted file mode 100644
index b526663..0000000
--- a/src/org/openstreetmap/josm/data/osm/DatasetFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.data.osm;
-
-/**
- * Convenience class allowing to manage primitives in the dataset. Useful especially for tests
- *
- */
-public class DatasetFactory {
-
-    private final DataSet ds;
-
-    public DatasetFactory() {
-        ds = new DataSet();
-    }
-
-    public DatasetFactory(DataSet ds) {
-        this.ds = ds;
-    }
-
-    public Node getNode(long id) {
-        return (Node) ds.getPrimitiveById(id, OsmPrimitiveType.NODE);
-    }
-
-    public Way getWay(long id) {
-        return (Way) ds.getPrimitiveById(id, OsmPrimitiveType.WAY);
-    }
-
-    public Relation getRelation(long id) {
-        return (Relation) ds.getPrimitiveById(id, OsmPrimitiveType.RELATION);
-    }
-
-    public Node addNode(long id) {
-        return addNode(id, 0);
-    }
-
-    public Way addWay(long id) {
-        return addWay(id, 0);
-    }
-
-    public Relation addRelation(long id) {
-        return addRelation(id, 0);
-    }
-
-    public Node addNode(long id, int version) {
-        Node n = new Node(id, version);
-        ds.addPrimitive(n);
-        return n;
-    }
-
-    public Way addWay(long id, int version) {
-        Way w = new Way(id, version);
-        ds.addPrimitive(w);
-        return w;
-    }
-
-    public Relation addRelation(long id, int version) {
-        Relation e = new Relation(id, version);
-        ds.addPrimitive(e);
-        return e;
-    }
-
-}
diff --git a/src/org/openstreetmap/josm/data/osm/MultipolygonBuilder.java b/src/org/openstreetmap/josm/data/osm/MultipolygonBuilder.java
index 1951a84..efb724c 100644
--- a/src/org/openstreetmap/josm/data/osm/MultipolygonBuilder.java
+++ b/src/org/openstreetmap/josm/data/osm/MultipolygonBuilder.java
@@ -13,12 +13,15 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ForkJoinTask;
 import java.util.concurrent.RecursiveTask;
+import java.util.stream.Collectors;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Geometry;
 import org.openstreetmap.josm.tools.Geometry.PolygonIntersection;
 import org.openstreetmap.josm.tools.MultiMap;
@@ -164,6 +167,23 @@ public class MultipolygonBuilder {
     }
 
     /**
+     * Joins the given {@code multipolygon} to a pair of outer and inner multipolygon rings.
+     *
+     * @param multipolygon the multipolygon to join.
+     * @return a pair of outer and inner multipolygon rings.
+     * @throws JoinedPolygonCreationException if the creation fails.
+     */
+    public static Pair<List<JoinedPolygon>, List<JoinedPolygon>> joinWays(Relation multipolygon) {
+        CheckParameterUtil.ensureThat(multipolygon.isMultipolygon(), "multipolygon.isMultipolygon");
+        final Map<String, Set<Way>> members = multipolygon.getMembers().stream()
+                .filter(RelationMember::isWay)
+                .collect(Collectors.groupingBy(RelationMember::getRole, Collectors.mapping(RelationMember::getWay, Collectors.toSet())));
+        final List<JoinedPolygon> outerRings = joinWays(members.getOrDefault("outer", Collections.emptySet()));
+        final List<JoinedPolygon> innerRings = joinWays(members.getOrDefault("inner", Collections.emptySet()));
+        return Pair.create(outerRings, innerRings);
+    }
+
+    /**
      * Joins the given {@code ways} to multipolygon rings.
      * @param ways the ways to join.
      * @return a list of multipolygon rings.
diff --git a/src/org/openstreetmap/josm/data/osm/Node.java b/src/org/openstreetmap/josm/data/osm/Node.java
index 56ffb05..f18879d 100644
--- a/src/org/openstreetmap/josm/data/osm/Node.java
+++ b/src/org/openstreetmap/josm/data/osm/Node.java
@@ -2,6 +2,7 @@
 package org.openstreetmap.josm.data.osm;
 
 import java.util.Collection;
+import java.util.Objects;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.function.Predicate;
@@ -11,6 +12,7 @@ import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor;
 import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Utils;
@@ -33,6 +35,10 @@ public final class Node extends OsmPrimitive implements INode {
      */
     private double east = Double.NaN;
     private double north = Double.NaN;
+    /**
+     * The cache key to use for {@link #east} and {@link #north}.
+     */
+    private Object eastNorthCacheKey;
 
     /**
      * Determines if this node has valid coordinates.
@@ -66,6 +72,10 @@ public final class Node extends OsmPrimitive implements INode {
         }
     }
 
+    /**
+     * Returns lat/lon coordinates of this node, or {@code null} unless {@link #isLatLonKnown()}
+     * @return lat/lon coordinates of this node, or {@code null} unless {@link #isLatLonKnown()}
+     */
     @Override
     public LatLon getCoor() {
         if (!isLatLonKnown()) return null;
@@ -78,9 +88,6 @@ public final class Node extends OsmPrimitive implements INode {
      * <p>Uses the {@link Main#getProjection() global projection} to project the lan/lon-coordinates.
      * Internally caches the projected coordinates.</p>
      *
-     * <p><strong>Caveat:</strong> doesn't listen to projection changes. Clients must
-     * {@link #invalidateEastNorthCache() invalidate the internal cache}.</p>
-     *
      * <p>Replies {@code null} if this node doesn't know lat/lon-coordinates, i.e. because it is an incomplete node.
      *
      * @return the east north coordinates or {@code null}
@@ -89,19 +96,27 @@ public final class Node extends OsmPrimitive implements INode {
      */
     @Override
     public EastNorth getEastNorth() {
-        if (!isLatLonKnown()) return null;
+        return getEastNorth(Main.getProjection());
+    }
 
-        if (getDataSet() == null)
-            // there is no dataset that listens for projection changes
-            // and invalidates the cache, so we don't use the cache at all
-            return Projections.project(new LatLon(lat, lon));
+    /**
+     * Replies the projected east/north coordinates.
+     * <p>
+     * The result of the last conversion is cached. The cache object is used as cache key.
+     * @param projection The projection to use.
+     * @return The projected east/north coordinates
+     * @since 10827
+     */
+    public EastNorth getEastNorth(Projection projection) {
+        if (!isLatLonKnown()) return null;
 
-        if (Double.isNaN(east) || Double.isNaN(north)) {
+        if (Double.isNaN(east) || Double.isNaN(north) || !Objects.equals(projection.getCacheKey(), eastNorthCacheKey)) {
             // projected coordinates haven't been calculated yet,
             // so fill the cache of the projected node coordinates
             EastNorth en = Projections.project(new LatLon(lat, lon));
             this.east = en.east();
             this.north = en.north();
+            this.eastNorthCacheKey = projection.getCacheKey();
         }
         return new EastNorth(east, north);
     }
@@ -122,6 +137,7 @@ public final class Node extends OsmPrimitive implements INode {
             this.lon = ll.lon();
             this.east = eastNorth.east();
             this.north = eastNorth.north();
+            this.eastNorthCacheKey = Main.getProjection().getCacheKey();
         } else {
             this.lat = Double.NaN;
             this.lon = Double.NaN;
@@ -345,6 +361,7 @@ public final class Node extends OsmPrimitive implements INode {
     public void invalidateEastNorthCache() {
         this.east = Double.NaN;
         this.north = Double.NaN;
+        this.eastNorthCacheKey = null;
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java b/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
index c8cd049..d6b75bc 100644
--- a/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
+++ b/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
@@ -127,7 +127,7 @@ public abstract class OsmPrimitive extends AbstractPrimitive implements Comparab
 
         String directionDefault = "oneway? | (aerialway=* -aerialway=station) | "+
                 "waterway=stream | waterway=river | waterway=ditch | waterway=drain | "+
-                "\"piste:type\"=downhill | \"piste:type\"=sled | man_made=\"piste:halfpipe\" | "+
+                "(\"piste:type\"=downhill & -area=yes) | (\"piste:type\"=sled & -area=yes) | (man_made=\"piste:halfpipe\" & -area=yes) | "+
                 "junction=roundabout | (highway=motorway & -oneway=no & -oneway=reversible) | "+
                 "(highway=motorway_link & -oneway=no & -oneway=reversible)";
 
diff --git a/src/org/openstreetmap/josm/data/osm/PrimitiveData.java b/src/org/openstreetmap/josm/data/osm/PrimitiveData.java
index 693d277..6345281 100644
--- a/src/org/openstreetmap/josm/data/osm/PrimitiveData.java
+++ b/src/org/openstreetmap/josm/data/osm/PrimitiveData.java
@@ -29,14 +29,26 @@ public abstract class PrimitiveData extends AbstractPrimitive implements Seriali
         id = OsmPrimitive.generateUniqueId();
     }
 
+    /**
+     * Constructs a new {@code PrimitiveData} from an existing one.
+     * @param data the data to copy
+     */
     public PrimitiveData(PrimitiveData data) {
         cloneFrom(data);
     }
 
+    /**
+     * Sets the primitive identifier.
+     * @param id primitive identifier
+     */
     public void setId(long id) {
         this.id = id;
     }
 
+    /**
+     * Sets the primitive version.
+     * @param version primitive version
+     */
     public void setVersion(int version) {
         this.version = version;
     }
@@ -49,12 +61,16 @@ public abstract class PrimitiveData extends AbstractPrimitive implements Seriali
         super.setIncomplete(incomplete);
     }
 
+    /**
+     * Returns a copy of this primitive data.
+     * @return a copy of this primitive data
+     */
     public abstract PrimitiveData makeCopy();
 
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
-        builder.append(id).append(Arrays.toString(keys)).append(getFlagsAsString());
+        builder.append(id).append(' ').append(Arrays.toString(keys)).append(' ').append(getFlagsAsString());
         return builder.toString();
     }
 
@@ -81,6 +97,7 @@ public abstract class PrimitiveData extends AbstractPrimitive implements Seriali
         oos.writeInt(changesetId);
         oos.writeInt(timestamp);
         oos.writeObject(keys);
+        oos.writeShort(flags);
         oos.defaultWriteObject();
     }
 
@@ -93,6 +110,7 @@ public abstract class PrimitiveData extends AbstractPrimitive implements Seriali
         changesetId = ois.readInt();
         timestamp = ois.readInt();
         keys = (String[]) ois.readObject();
+        flags = ois.readShort();
         ois.defaultReadObject();
     }
 }
diff --git a/src/org/openstreetmap/josm/data/osm/QuadBuckets.java b/src/org/openstreetmap/josm/data/osm/QuadBuckets.java
index fddd0ea..541f636 100644
--- a/src/org/openstreetmap/josm/data/osm/QuadBuckets.java
+++ b/src/org/openstreetmap/josm/data/osm/QuadBuckets.java
@@ -501,6 +501,7 @@ public class QuadBuckets<T extends OsmPrimitive> implements Collection<T> {
         private QBLevel<T> currentNode;
         private int contentIndex;
         private int iteratedOver;
+        QuadBuckets<T> qb;
 
         final QBLevel<T> nextContentNode(QBLevel<T> q) {
             if (q == null)
@@ -521,6 +522,7 @@ public class QuadBuckets<T extends OsmPrimitive> implements Collection<T> {
                 currentNode = nextContentNode(qb.root);
             }
             iteratedOver = 0;
+            this.qb = qb;
         }
 
         @Override
@@ -563,7 +565,8 @@ public class QuadBuckets<T extends OsmPrimitive> implements Collection<T> {
             //    an element
             contentIndex--;
             T object = peek();
-            currentNode.removeContent(object);
+            if (currentNode.removeContent(object))
+                qb.size--;
         }
     }
 
diff --git a/src/org/openstreetmap/josm/data/osm/User.java b/src/org/openstreetmap/josm/data/osm/User.java
index 738c62e..ec6c5f0 100644
--- a/src/org/openstreetmap/josm/data/osm/User.java
+++ b/src/org/openstreetmap/josm/data/osm/User.java
@@ -4,14 +4,12 @@ package org.openstreetmap.josm.data.osm;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
-
-import org.openstreetmap.josm.tools.Utils;
 
 /**
  * A simple class to keep a list of user names.
@@ -134,7 +132,7 @@ public final class User {
     }
 
     /** the user name */
-    private final Set<String> names = new HashSet<>();
+    private final LinkedHashSet<String> names = new LinkedHashSet<>();
     /** the user id */
     private final long uid;
 
@@ -142,9 +140,12 @@ public final class User {
      * Replies the user name
      *
      * @return the user name. Never <code>null</code>, but may be the empty string
+     * @see #getByName(String)
+     * @see #createOsmUser(long, String)
+     * @see #createLocalUser(String)
      */
     public String getName() {
-        return Utils.join("/", names);
+        return names.isEmpty() ? "" : names.iterator().next();
     }
 
     /**
@@ -166,6 +167,23 @@ public final class User {
     }
 
     /**
+     * Sets the preferred user name, i.e., the one that will be returned when calling {@link #getName()}.
+     *
+     * Rationale: A user can change its name multiple times and after reading various (outdated w.r.t. user name)
+     * data files it is unclear which is the up-to-date user name.
+     * @param name the preferred user name to set
+     */
+    public void setPreferredName(String name) {
+        if (names.size() == 1 && names.contains(name)) {
+            return;
+        }
+        final Collection<String> allNames = new LinkedHashSet<>(names);
+        names.clear();
+        names.add(name);
+        names.addAll(allNames);
+    }
+
+    /**
      * Returns true if the name is in the names list
      *
      * @param name User name
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java b/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java
index b8f290c..553e85b 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java
@@ -53,8 +53,7 @@ public class BoundingXYVisitor extends AbstractVisitor {
      */
     public void visit(Bounds b) {
         if (b != null) {
-            visit(b.getMin());
-            visit(b.getMax());
+            b.visitEdge(Main.getProjection(), this::visit);
         }
     }
 
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java
index 06a919c..12b1532 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java
@@ -3,9 +3,9 @@ package org.openstreetmap.josm.data.osm.visitor.paint;
 
 import java.awt.Color;
 import java.awt.Graphics2D;
-import java.awt.Point;
 import java.awt.geom.GeneralPath;
-import java.awt.geom.Point2D;
+import java.awt.geom.Path2D;
+import java.awt.geom.Rectangle2D;
 import java.util.Iterator;
 
 import org.openstreetmap.josm.Main;
@@ -14,6 +14,9 @@ import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
+import org.openstreetmap.josm.gui.MapViewState;
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
+import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle;
 import org.openstreetmap.josm.gui.NavigatableComponent;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
@@ -28,6 +31,11 @@ public abstract class AbstractMapRenderer implements Rendering {
     /** the map viewport - provides projection and hit detection functionality */
     protected NavigatableComponent nc;
 
+    /**
+     * The {@link MapViewState} to use to convert between coordinates.
+     */
+    protected final MapViewState mapState;
+
     /** if true, the paint visitor shall render OSM objects such that they
      * look inactive. Example: rendering of data in an inactive layer using light gray as color only. */
     protected boolean isInactiveMode;
@@ -67,6 +75,7 @@ public abstract class AbstractMapRenderer implements Rendering {
         CheckParameterUtil.ensureParameterNotNull(nc);
         this.g = g;
         this.nc = nc;
+        this.mapState = nc.getState();
         this.isInactiveMode = isInactiveMode;
     }
 
@@ -88,22 +97,25 @@ public abstract class AbstractMapRenderer implements Rendering {
      * @param p2 Second point of the way segment.
      * @param orderNumber The number of the segment in the way.
      * @param clr The color to use for drawing the text.
+     * @since 10827
      */
-    protected void drawOrderNumber(Point p1, Point p2, int orderNumber, Color clr) {
+    protected void drawOrderNumber(MapViewPoint p1, MapViewPoint p2, int orderNumber, Color clr) {
         if (isSegmentVisible(p1, p2) && isLargeSegment(p1, p2, segmentNumberSpace)) {
             String on = Integer.toString(orderNumber);
             int strlen = on.length();
-            int x = (p1.x+p2.x)/2 - 4*strlen;
-            int y = (p1.y+p2.y)/2 + 4;
+            double centerX = (p1.getInViewX()+p2.getInViewX())/2;
+            double centerY = (p1.getInViewY()+p2.getInViewY())/2;
+            double x = centerX - 4*strlen;
+            double y = centerY + 4;
 
             if (virtualNodeSize != 0 && isLargeSegment(p1, p2, virtualNodeSpace)) {
-                y = (p1.y+p2.y)/2 - virtualNodeSize - 3;
+                y = centerY - virtualNodeSize - 3;
             }
 
             g.setColor(backgroundColor);
-            g.fillRect(x-1, y-12, 8*strlen+1, 14);
+            g.fill(new Rectangle2D.Double(x-1, y-12, 8*strlen+1, 14));
             g.setColor(clr);
-            g.drawString(on, x, y);
+            g.drawString(on, (int) x, (int) y);
         }
     }
 
@@ -181,11 +193,10 @@ public abstract class AbstractMapRenderer implements Rendering {
      * @param p2 Second point of the way segment.
      * @param space The free space to check against.
      * @return <code>true</code> if segment is larger than required space
+     * @since 10827
      */
-    public static boolean isLargeSegment(Point2D p1, Point2D p2, int space) {
-        double xd = Math.abs(p1.getX()-p2.getX());
-        double yd = Math.abs(p1.getY()-p2.getY());
-        return xd + yd > space;
+    public static boolean isLargeSegment(MapViewPoint p1, MapViewPoint p2, int space) {
+        return p1.oneNormInView(p2) > space;
     }
 
     /**
@@ -193,14 +204,13 @@ public abstract class AbstractMapRenderer implements Rendering {
      *
      * @param p1 First point of the way segment.
      * @param p2 Second point of the way segment.
-     * @return <code>true</code> if segment is visible.
+     * @return <code>true</code> if segment may be visible.
+     * @since 10827
      */
-    protected boolean isSegmentVisible(Point p1, Point p2) {
-        if ((p1.x < 0) && (p2.x < 0)) return false;
-        if ((p1.y < 0) && (p2.y < 0)) return false;
-        if ((p1.x > nc.getWidth()) && (p2.x > nc.getWidth())) return false;
-        if ((p1.y > nc.getHeight()) && (p2.y > nc.getHeight())) return false;
-        return true;
+    protected boolean isSegmentVisible(MapViewPoint p1, MapViewPoint p2) {
+        MapViewRectangle view = mapState.getViewArea();
+        // not outside in the same direction
+        return (p1.getOutsideRectangleFlags(view) & p2.getOutsideRectangleFlags(view)) == 0;
     }
 
     /**
@@ -208,20 +218,21 @@ public abstract class AbstractMapRenderer implements Rendering {
      *
      * @param path The path to append drawing to.
      * @param w The ways to draw node for.
+     * @since 10827
      */
-    public void visitVirtual(GeneralPath path, Way w) {
+    public void visitVirtual(Path2D path, Way w) {
         Iterator<Node> it = w.getNodes().iterator();
         if (it.hasNext()) {
-            Point lastP = nc.getPoint(it.next());
+            MapViewPoint lastP = mapState.getPointFor(it.next());
             while (it.hasNext()) {
-                Point p = nc.getPoint(it.next());
+                MapViewPoint p = mapState.getPointFor(it.next());
                 if (isSegmentVisible(lastP, p) && isLargeSegment(lastP, p, virtualNodeSpace)) {
-                    int x = (p.x+lastP.x)/2;
-                    int y = (p.y+lastP.y)/2;
-                    path.moveTo((double) x-virtualNodeSize, y);
-                    path.lineTo((double) x+virtualNodeSize, y);
-                    path.moveTo(x, (double) y-virtualNodeSize);
-                    path.lineTo(x, (double) y+virtualNodeSize);
+                    double x = (p.getInViewX()+lastP.getInViewX())/2;
+                    double y = (p.getInViewY()+lastP.getInViewY())/2;
+                    path.moveTo(x-virtualNodeSize, y);
+                    path.lineTo(x+virtualNodeSize, y);
+                    path.moveTo(x, y-virtualNodeSize);
+                    path.lineTo(x, y+virtualNodeSize);
                 }
                 lastP = p;
             }
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/ArrowPaintHelper.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/ArrowPaintHelper.java
new file mode 100644
index 0000000..7f99f0f
--- /dev/null
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/ArrowPaintHelper.java
@@ -0,0 +1,51 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.osm.visitor.paint;
+
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
+import org.openstreetmap.josm.gui.draw.MapPath2D;
+import org.openstreetmap.josm.tools.Utils;
+
+/**
+ * This class helps with painting arrows with fixed length along a path.
+ * @author Michael Zangl
+ * @since 10827
+ */
+public class ArrowPaintHelper {
+    private final double sin;
+    private final double cos;
+    private final double length;
+
+    /**
+     * Creates a new arrow helper.
+     * @param radians The angle of the arrow. 0 means that it lies on the current line. In radians
+     * @param length The length of the arrow lines.
+     */
+    public ArrowPaintHelper(double radians, double length) {
+        this.sin = Math.sin(radians);
+        this.cos = Math.cos(radians);
+        this.length = length;
+    }
+
+    /**
+     * Paint the arrow
+     * @param path The path to append the arrow to.
+     * @param point The point to paint the tip at
+     * @param fromDirection The direction the line is comming from.
+     */
+    public void paintArrowAt(MapPath2D path, MapViewPoint point, MapViewPoint fromDirection) {
+        double x = point.getInViewX();
+        double y = point.getInViewY();
+        double dx = fromDirection.getInViewX() - x;
+        double dy = fromDirection.getInViewY() - y;
+        double norm = Math.sqrt(dx * dx + dy * dy);
+        if (norm > 1e-10) {
+            dx *= length / norm;
+            dy *= length / norm;
+            path.moveTo(x + dx * cos + dy * sin, y + dx * -sin + dy * cos);
+            if (!Utils.equalsEpsilon(cos, 0)) {
+                path.lineTo(point);
+            }
+            path.lineTo(x + dx * cos + dy * -sin, y + dx * sin + dy * cos);
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/LineClip.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/LineClip.java
deleted file mode 100644
index d259a90..0000000
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/LineClip.java
+++ /dev/null
@@ -1,149 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.data.osm.visitor.paint;
-
-import static java.awt.geom.Rectangle2D.OUT_BOTTOM;
-import static java.awt.geom.Rectangle2D.OUT_LEFT;
-import static java.awt.geom.Rectangle2D.OUT_RIGHT;
-import static java.awt.geom.Rectangle2D.OUT_TOP;
-
-import java.awt.Point;
-import java.awt.Rectangle;
-
-/**
- * Computes the part of a line that is visible in a given rectangle.
- * Using int leads to overflow, so we need long int.
- */
-public class LineClip {
-    private Point p1, p2;
-    private final Rectangle clipBounds;
-
-    /**
-     * Constructs a new {@code LineClip}.
-     * @param p1 start point of the clipped line
-     * @param p2 end point of the clipped line
-     * @param clipBounds Clip bounds
-     */
-    public LineClip(Point p1, Point p2, Rectangle clipBounds) {
-        this.p1 = p1;
-        this.p2 = p2;
-        this.clipBounds = clipBounds;
-    }
-
-    /**
-     * run the clipping algorithm
-     * @return true if the some parts of the line lies within the clip bounds
-     */
-    public boolean execute() {
-        if (clipBounds == null) {
-            return false;
-        }
-        return cohenSutherland(p1.x, p1.y, p2.x, p2.y, clipBounds.x, clipBounds.y,
-                (long) clipBounds.x + clipBounds.width,
-                (long) clipBounds.y + clipBounds.height);
-    }
-
-    /**
-     * @return start point of the clipped line
-     */
-    public Point getP1() {
-        return p1;
-    }
-
-    /**
-     * @return end point of the clipped line
-     */
-    public Point getP2() {
-        return p2;
-    }
-
-    /**
-     * Cohen–Sutherland algorithm.
-     * See <a href="https://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm">Wikipedia article</a>
-     * @param x1 X coordinate of first point
-     * @param y1 Y coordinate of first point
-     * @param x2 X coordinate of second point
-     * @param y2 Y coordinate of second point
-     * @param xmin minimal X coordinate
-     * @param ymin minimal Y coordinate
-     * @param xmax maximal X coordinate
-     * @param ymax maximal Y coordinate
-     * @return true, if line is visible in the given clip region
-     */
-    private boolean cohenSutherland(long x1, long y1, long x2, long y2, long xmin, long ymin, long xmax, long ymax) {
-        int outcode0, outcode1, outcodeOut;
-        boolean accept = false;
-        boolean done = false;
-
-        outcode0 = computeOutCode(x1, y1, xmin, ymin, xmax, ymax);
-        outcode1 = computeOutCode(x2, y2, xmin, ymin, xmax, ymax);
-
-        do {
-            if ((outcode0 | outcode1) == 0) {
-                accept = true;
-                done = true;
-            } else if ((outcode0 & outcode1) > 0) {
-                done = true;
-            } else {
-                long x = 0;
-                long y = 0;
-                outcodeOut = outcode0 != 0 ? outcode0 : outcode1;
-                if ((outcodeOut & OUT_TOP) != 0) {
-                    x = x1 + (x2 - x1) * (ymax - y1)/(y2 - y1);
-                    y = ymax;
-                } else if ((outcodeOut & OUT_BOTTOM) != 0) {
-                    x = x1 + (x2 - x1) * (ymin - y1)/(y2 - y1);
-                    y = ymin;
-                } else if ((outcodeOut & OUT_RIGHT) != 0) {
-                    y = y1 + (y2 - y1) * (xmax - x1)/(x2 - x1);
-                    x = xmax;
-                } else if ((outcodeOut & OUT_LEFT) != 0) {
-                    y = y1 + (y2 - y1) * (xmin - x1)/(x2 - x1);
-                    x = xmin;
-                }
-                if (outcodeOut == outcode0) {
-                    x1 = x;
-                    y1 = y;
-                    outcode0 = computeOutCode(x1, y1, xmin, ymin, xmax, ymax);
-                } else {
-                    x2 = x;
-                    y2 = y;
-                    outcode1 = computeOutCode(x2, y2, xmin, ymin, xmax, ymax);
-                }
-            }
-        }
-        while (!done);
-
-        if (accept) {
-            p1 = new Point((int) x1, (int) y1);
-            p2 = new Point((int) x2, (int) y2);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * The outcode of the point.
-     * We cannot use {@link Rectangle#outcode} since it does not work with long ints.
-     * @param x X coordinate
-     * @param y Y coordinate
-     * @param xmin minimal X coordinate
-     * @param ymin minimal Y coordinate
-     * @param xmax maximal X coordinate
-     * @param ymax maximal Y coordinate
-     * @return outcode
-     */
-    private static int computeOutCode(long x, long y, long xmin, long ymin, long xmax, long ymax) {
-        int code = 0;
-        if (y > ymax) {
-            code |= OUT_TOP;
-        } else if (y < ymin) {
-            code |= OUT_BOTTOM;
-        }
-        if (x > xmax) {
-            code |= OUT_RIGHT;
-        } else if (x < xmin) {
-            code |= OUT_LEFT;
-        }
-        return code;
-    }
-}
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
index fb9f625..a625818 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
@@ -6,13 +6,13 @@ import static org.openstreetmap.josm.tools.I18n.marktr;
 import java.awt.Color;
 import java.util.List;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.Preferences.ColorKey;
+import org.openstreetmap.josm.data.preferences.CachingProperty;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.MapPaintSylesUpdateListener;
 import org.openstreetmap.josm.gui.mappaint.StyleSource;
 
-public enum PaintColors implements ColorKey {
+public enum PaintColors {
 
     INACTIVE(marktr("inactive"), Color.darkGray),
     SELECTED(marktr("selected"), Color.red),
@@ -33,11 +33,13 @@ public enum PaintColors implements ColorKey {
 
     private final String name;
     private final Color defaultColor;
+    private final ColorProperty baseProperty;
+    private final CachingProperty<Color> property;
 
     private static volatile Color backgroundColorCache;
 
     private static final MapPaintSylesUpdateListener styleOverrideListener = new MapPaintSylesUpdateListener() {
-
+        //TODO: Listen to wireframe map mode changes.
         @Override
         public void mapPaintStylesUpdated() {
             backgroundColorCache = null;
@@ -54,33 +56,26 @@ public enum PaintColors implements ColorKey {
     }
 
     PaintColors(String name, Color defaultColor) {
+        baseProperty = new ColorProperty(name, defaultColor);
+        property = baseProperty.cached();
         this.name = name;
         this.defaultColor = defaultColor;
     }
 
-    @Override
-    public String getColorName() {
-        return name;
-    }
-
-    @Override
+    /**
+     * Gets the default value for this color.
+     * @return The default value
+     */
     public Color getDefaultValue() {
-        return defaultColor;
-    }
-
-    @Override
-    public String getSpecialName() {
-        return null;
+        return property.getDefaultValue();
     }
 
+    /**
+     * Get the given color
+     * @return The color
+     */
     public Color get() {
-        return Main.pref.getColor(this);
-    }
-
-    public static void getColors() {
-        for (PaintColors c:values()) {
-            c.get();
-        }
+        return property.get();
     }
 
     public static Color getBackgroundColor() {
@@ -97,8 +92,18 @@ public enum PaintColors implements ColorKey {
             }
         }
         if (backgroundColorCache == null) {
-            backgroundColorCache = BACKGROUND.get();
+            return BACKGROUND.get();
+        } else {
+            return backgroundColorCache;
         }
-        return backgroundColorCache;
+    }
+
+    /**
+     * Get the color property
+     * @return The property that is used to access the color.
+     * @since 10874
+     */
+    public ColorProperty getProperty() {
+        return baseProperty;
     }
 }
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
index 55405c7..2991f3d 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
@@ -11,7 +11,6 @@ import java.awt.FontMetrics;
 import java.awt.Graphics2D;
 import java.awt.Image;
 import java.awt.Point;
-import java.awt.Polygon;
 import java.awt.Rectangle;
 import java.awt.RenderingHints;
 import java.awt.Shape;
@@ -21,22 +20,25 @@ import java.awt.font.GlyphVector;
 import java.awt.font.LineMetrics;
 import java.awt.font.TextLayout;
 import java.awt.geom.AffineTransform;
-import java.awt.geom.GeneralPath;
 import java.awt.geom.Path2D;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
+import java.awt.geom.RoundRectangle2D;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
+import java.util.Optional;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ForkJoinTask;
 import java.util.concurrent.RecursiveTask;
 import java.util.function.Supplier;
+import java.util.stream.Collectors;
 
 import javax.swing.AbstractButton;
 import javax.swing.FocusManager;
@@ -58,7 +60,10 @@ import org.openstreetmap.josm.data.osm.visitor.Visitor;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon.PolyData;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.gui.draw.MapPath2D;
+import org.openstreetmap.josm.gui.draw.MapViewPath;
 import org.openstreetmap.josm.gui.mappaint.ElemStyles;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.gui.mappaint.StyleElementList;
@@ -69,9 +74,9 @@ import org.openstreetmap.josm.gui.mappaint.styleelement.BoxTextElement.Horizonta
 import org.openstreetmap.josm.gui.mappaint.styleelement.BoxTextElement.VerticalTextAlignment;
 import org.openstreetmap.josm.gui.mappaint.styleelement.MapImage;
 import org.openstreetmap.josm.gui.mappaint.styleelement.NodeElement;
-import org.openstreetmap.josm.gui.mappaint.styleelement.NodeElement.Symbol;
 import org.openstreetmap.josm.gui.mappaint.styleelement.RepeatImageElement.LineImageAlignment;
 import org.openstreetmap.josm.gui.mappaint.styleelement.StyleElement;
+import org.openstreetmap.josm.gui.mappaint.styleelement.Symbol;
 import org.openstreetmap.josm.gui.mappaint.styleelement.TextLabel;
 import org.openstreetmap.josm.tools.CompositeList;
 import org.openstreetmap.josm.tools.Geometry;
@@ -96,18 +101,19 @@ public class StyledMapRenderer extends AbstractMapRenderer {
      * There is no intention, to handle consecutive duplicate Nodes in a
      * perfect way, but it should not throw an exception.
      */
-    private class OffsetIterator implements Iterator<Point> {
+    private class OffsetIterator implements Iterator<MapViewPoint> {
 
         private final List<Node> nodes;
         private final double offset;
         private int idx;
 
-        private Point prev;
+        private MapViewPoint prev;
         /* 'prev0' is a point that has distance 'offset' from 'prev' and the
          * line from 'prev' to 'prev0' is perpendicular to the way segment from
-         * 'prev' to the next point.
+         * 'prev' to the current point.
          */
-        private int xPrev0, yPrev0;
+        private double xPrev0;
+        private double yPrev0;
 
         OffsetIterator(List<Node> nodes, double offset) {
             this.nodes = nodes;
@@ -121,70 +127,115 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         }
 
         @Override
-        public Point next() {
+        public MapViewPoint next() {
             if (!hasNext())
                 throw new NoSuchElementException();
 
-            if (Math.abs(offset) < 0.1d)
-                return nc.getPoint(nodes.get(idx++));
+            MapViewPoint current = getForIndex(idx);
 
-            Point current = nc.getPoint(nodes.get(idx));
+            if (Math.abs(offset) < 0.1d) {
+                idx++;
+                return current;
+            }
 
+            double xCurrent = current.getInViewX();
+            double yCurrent = current.getInViewY();
             if (idx == nodes.size() - 1) {
                 ++idx;
                 if (prev != null) {
-                    return new Point(xPrev0 + current.x - prev.x, yPrev0 + current.y - prev.y);
+                    return mapState.getForView(xPrev0 + xCurrent - prev.getInViewX(),
+                                               yPrev0 + yCurrent - prev.getInViewY());
                 } else {
                     return current;
                 }
             }
 
-            Point next = nc.getPoint(nodes.get(idx+1));
-
-            int dxNext = next.x - current.x;
-            int dyNext = next.y - current.y;
-            double lenNext = Math.sqrt((double) dxNext*dxNext + (double) dyNext*dyNext);
+            MapViewPoint next = getForIndex(idx + 1);
+            double dxNext = next.getInViewX() - xCurrent;
+            double dyNext = next.getInViewY() - yCurrent;
+            double lenNext = Math.sqrt(dxNext*dxNext + dyNext*dyNext);
 
-            if (lenNext == 0) {
+            if (lenNext < 1e-11) {
                 lenNext = 1; // value does not matter, because dy_next and dx_next is 0
             }
 
-            int xCurrent0 = current.x + (int) Math.round(offset * dyNext / lenNext);
-            int yCurrent0 = current.y - (int) Math.round(offset * dxNext / lenNext);
+            // calculate the position of the translated current point
+            double om = offset / lenNext;
+            double xCurrent0 = xCurrent + om * dyNext;
+            double yCurrent0 = yCurrent - om * dxNext;
 
             if (idx == 0) {
                 ++idx;
                 prev = current;
                 xPrev0 = xCurrent0;
                 yPrev0 = yCurrent0;
-                return new Point(xCurrent0, yCurrent0);
+                return mapState.getForView(xCurrent0, yCurrent0);
             } else {
-                int dxPrev = current.x - prev.x;
-                int dyPrev = current.y - prev.y;
-
+                double dxPrev = xCurrent - prev.getInViewX();
+                double dyPrev = yCurrent - prev.getInViewY();
                 // determine intersection of the lines parallel to the two segments
-                int det = dxNext*dyPrev - dxPrev*dyNext;
+                double det = dxNext*dyPrev - dxPrev*dyNext;
+                double m = dxNext*(yCurrent0 - yPrev0) - dyNext*(xCurrent0 - xPrev0);
 
-                if (det == 0) {
+                if (Utils.equalsEpsilon(det, 0) || Math.signum(det) != Math.signum(m)) {
                     ++idx;
                     prev = current;
                     xPrev0 = xCurrent0;
                     yPrev0 = yCurrent0;
-                    return new Point(xCurrent0, yCurrent0);
+                    return mapState.getForView(xCurrent0, yCurrent0);
                 }
 
-                int m = dxNext*(yCurrent0 - yPrev0) - dyNext*(xCurrent0 - xPrev0);
-
-                int cx = xPrev0 + (int) Math.round((double) m * dxPrev / det);
-                int cy = yPrev0 + (int) Math.round((double) m * dyPrev / det);
+                double f = m / det;
+                if (f < 0) {
+                    ++idx;
+                    prev = current;
+                    xPrev0 = xCurrent0;
+                    yPrev0 = yCurrent0;
+                    return mapState.getForView(xCurrent0, yCurrent0);
+                }
+                // the position of the intersection or intermittent point
+                double cx = xPrev0 + f * dxPrev;
+                double cy = yPrev0 + f * dyPrev;
+
+                if (f > 1) {
+                    // check if the intersection point is too far away, this will happen for sharp angles
+                    double dxI = cx - xCurrent;
+                    double dyI = cy - yCurrent;
+                    double lenISq = dxI * dxI + dyI * dyI;
+
+                    if (lenISq > Math.abs(2 * offset * offset)) {
+                        // intersection point is too far away, calculate intermittent points for capping
+                        double dxPrev0 = xCurrent0 - xPrev0;
+                        double dyPrev0 = yCurrent0 - yPrev0;
+                        double lenPrev0 = Math.sqrt(dxPrev0 * dxPrev0 + dyPrev0 * dyPrev0);
+                        f = 1 + Math.abs(offset / lenPrev0);
+                        double cxCap = xPrev0 + f * dxPrev;
+                        double cyCap = yPrev0 + f * dyPrev;
+                        xPrev0 = cxCap;
+                        yPrev0 = cyCap;
+                        // calculate a virtual prev point which lies on a line that goes through current and
+                        // is perpendicular to the line that goes through current and the intersection
+                        // so that the next capping point is calculated with it.
+                        double lenI = Math.sqrt(lenISq);
+                        double xv = xCurrent + dyI / lenI;
+                        double yv = yCurrent - dxI / lenI;
+
+                        prev = mapState.getForView(xv, yv);
+                        return mapState.getForView(cxCap, cyCap);
+                    }
+                }
                 ++idx;
                 prev = current;
                 xPrev0 = xCurrent0;
                 yPrev0 = yCurrent0;
-                return new Point(cx, cy);
+                return mapState.getForView(cx, cy);
             }
         }
 
+        private MapViewPoint getForIndex(int i) {
+            return mapState.getPointFor(nodes.get(i));
+        }
+
         @Override
         public void remove() {
             throw new UnsupportedOperationException();
@@ -375,22 +426,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         }
     }
 
-    private static Polygon buildPolygon(Point center, int radius, int sides) {
-        return buildPolygon(center, radius, sides, 0.0);
-    }
-
-    private static Polygon buildPolygon(Point center, int radius, int sides, double rotation) {
-        Polygon polygon = new Polygon();
-        for (int i = 0; i < sides; i++) {
-            double angle = ((2 * Math.PI / sides) * i) - rotation;
-            int x = (int) Math.round(center.x + radius * Math.cos(angle));
-            int y = (int) Math.round(center.y + radius * Math.sin(angle));
-            polygon.addPoint(x, y);
-        }
-        return polygon;
-    }
-
-    private void displaySegments(GeneralPath path, GeneralPath orientationArrows, GeneralPath onewayArrows, GeneralPath onewayArrowsCasing,
+    private void displaySegments(Path2D path, Path2D orientationArrows, Path2D onewayArrows, Path2D onewayArrowsCasing,
             Color color, BasicStroke line, BasicStroke dashes, Color dashedColor) {
         g.setColor(isInactiveMode ? inactiveColor : color);
         if (useStrokes) {
@@ -488,7 +524,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
     protected void drawArea(OsmPrimitive osm, Path2D.Double path, Color color,
             MapImage fillImage, Float extent, Path2D.Double pfClip, boolean disabled, TextLabel text) {
 
-        Shape area = path.createTransformedShape(nc.getAffineTransform());
+        Shape area = path.createTransformedShape(mapState.getAffineTransform());
 
         if (!isOutlineOnly) {
             g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
@@ -503,7 +539,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
                     Shape oldClip = g.getClip();
                     Shape clip = area;
                     if (pfClip != null) {
-                        clip = pfClip.createTransformedShape(nc.getAffineTransform());
+                        clip = pfClip.createTransformedShape(mapState.getAffineTransform());
                     }
                     g.clip(clip);
                     g.setStroke(new BasicStroke(2 * extent, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 4));
@@ -526,7 +562,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
                     g.clip(stroke.createStrokedShape(area));
                     Shape fill = area;
                     if (pfClip != null) {
-                        fill = pfClip.createTransformedShape(nc.getAffineTransform());
+                        fill = pfClip.createTransformedShape(mapState.getAffineTransform());
                     }
                     g.fill(fill);
                     g.setClip(oldClip);
@@ -698,7 +734,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         if (!isShowNames() || bs == null)
             return;
 
-        Point p = nc.getPoint(n);
+        MapViewPoint p = mapState.getPointFor(n);
         TextLabel text = bs.text;
         String s = text.labelCompositionStrategy.compose(n);
         if (s == null) return;
@@ -706,8 +742,8 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         Font defaultFont = g.getFont();
         g.setFont(text.font);
 
-        int x = p.x + text.xOffset;
-        int y = p.y + text.yOffset;
+        int x = (int) (Math.round(p.getInViewX()) + text.xOffset);
+        int y = (int) (Math.round(p.getInViewY()) + text.yOffset);
         /**
          *
          *       left-above __center-above___ right-above
@@ -769,7 +805,6 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         final double repeat = imgWidth + spacing;
         final int imgHeight = pattern.getHeight();
 
-        Point lastP = null;
         double currentWayLength = phase % repeat;
         if (currentWayLength < 0) {
             currentWayLength += repeat;
@@ -793,22 +828,23 @@ public class StyledMapRenderer extends AbstractMapRenderer {
                 throw new AssertionError();
         }
 
+        MapViewPoint lastP = null;
         OffsetIterator it = new OffsetIterator(way.getNodes(), offset);
         while (it.hasNext()) {
-            Point thisP = it.next();
+            MapViewPoint thisP = it.next();
 
             if (lastP != null) {
-                final double segmentLength = thisP.distance(lastP);
+                final double segmentLength = thisP.distanceToInView(lastP);
 
-                final double dx = (double) thisP.x - lastP.x;
-                final double dy = (double) thisP.y - lastP.y;
+                final double dx = thisP.getInViewX() - lastP.getInViewX();
+                final double dy = thisP.getInViewY() - lastP.getInViewY();
 
                 // pos is the position from the beginning of the current segment
                 // where an image should be painted
                 double pos = repeat - (currentWayLength % repeat);
 
                 AffineTransform saveTransform = g.getTransform();
-                g.translate(lastP.x, lastP.y);
+                g.translate(lastP.getInViewX(), lastP.getInViewY());
                 g.rotate(Math.atan2(dy, dx));
 
                 // draw the rest of the image from the last segment in case it
@@ -849,14 +885,13 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         if (size <= 0 && !n.isHighlighted())
             return;
 
-        Point p = nc.getPoint(n);
+        MapViewPoint p = mapState.getPointFor(n);
 
         if (n.isHighlighted()) {
-            drawPointHighlight(p, size);
+            drawPointHighlight(p.getInView(), size);
         }
 
-        if (size > 1) {
-            if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth()) || (p.y > nc.getHeight())) return;
+        if (size > 1 && p.isInView()) {
             int radius = size / 2;
 
             if (isInactiveMode || n.isDisabled()) {
@@ -864,31 +899,47 @@ public class StyledMapRenderer extends AbstractMapRenderer {
             } else {
                 g.setColor(color);
             }
+            Rectangle2D rect = new Rectangle2D.Double(p.getInViewX()-radius-1, p.getInViewY()-radius-1, size + 1, size + 1);
             if (fill) {
-                g.fillRect(p.x-radius-1, p.y-radius-1, size + 1, size + 1);
+                g.fill(rect);
             } else {
-                g.drawRect(p.x-radius-1, p.y-radius-1, size, size);
+                g.draw(rect);
             }
         }
     }
 
+    /**
+     * Draw the icon for a given node.
+     * @param n The node
+     * @param img The icon to draw at the node position
+     * @param disabled {@code} true to render disabled version, {@code false} for the standard version
+     * @param selected {@code} true to render it as selected, {@code false} otherwise
+     * @param member {@code} true to render it as a relation member, {@code false} otherwise
+     * @param theta the angle of rotation in radians
+     */
     public void drawNodeIcon(Node n, MapImage img, boolean disabled, boolean selected, boolean member, double theta) {
-        Point p = nc.getPoint(n);
+        MapViewPoint p = mapState.getPointFor(n);
 
-        final int w = img.getWidth(), h = img.getHeight();
+        int w = img.getWidth();
+        int h = img.getHeight();
         if (n.isHighlighted()) {
-            drawPointHighlight(p, Math.max(w, h));
+            drawPointHighlight(p.getInView(), Math.max(w, h));
         }
 
         float alpha = img.getAlphaFloat();
 
+        Graphics2D temporaryGraphics = (Graphics2D) g.create();
         if (!Utils.equalsEpsilon(alpha, 1f)) {
-            g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
+            temporaryGraphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
         }
-        g.rotate(theta, p.x, p.y);
-        g.drawImage(img.getImage(disabled), p.x - w/2 + img.offsetX, p.y - h/2 + img.offsetY, nc);
-        g.rotate(-theta, p.x, p.y);
-        g.setPaintMode();
+
+        double x = Math.round(p.getInViewX());
+        double y = Math.round(p.getInViewY());
+        temporaryGraphics.translate(x, y);
+        temporaryGraphics.rotate(theta);
+        int drawX = -w/2 + img.offsetX;
+        int drawY = -h/2 + img.offsetY;
+        temporaryGraphics.drawImage(img.getImage(disabled), drawX, drawY, nc);
         if (selected || member) {
             Color color;
             if (disabled) {
@@ -898,88 +949,38 @@ public class StyledMapRenderer extends AbstractMapRenderer {
             } else {
                 color = relationSelectedColor;
             }
-            g.setColor(color);
-            g.drawRect(p.x - w/2 + img.offsetX - 2, p.y - h/2 + img.offsetY - 2, w + 4, h + 4);
+            temporaryGraphics.setColor(color);
+            temporaryGraphics.draw(new Rectangle2D.Double(drawX - 2, drawY - 2, w + 4, h + 4));
         }
     }
 
+    /**
+     * Draw the symbol and possibly a highlight marking on a given node.
+     * @param n The position to draw the symbol on
+     * @param s The symbol to draw
+     * @param fillColor The color to fill the symbol with
+     * @param strokeColor The color to use for the outer corner of the symbol
+     */
     public void drawNodeSymbol(Node n, Symbol s, Color fillColor, Color strokeColor) {
-        Point p = nc.getPoint(n);
-        int radius = s.size / 2;
+        MapViewPoint p = mapState.getPointFor(n);
 
         if (n.isHighlighted()) {
-            drawPointHighlight(p, s.size);
+            drawPointHighlight(p.getInView(), s.size);
         }
 
-        if (fillColor != null) {
-            g.setColor(fillColor);
-            switch (s.symbol) {
-            case SQUARE:
-                g.fillRect(p.x - radius, p.y - radius, s.size, s.size);
-                break;
-            case CIRCLE:
-                g.fillOval(p.x - radius, p.y - radius, s.size, s.size);
-                break;
-            case TRIANGLE:
-                g.fillPolygon(buildPolygon(p, radius, 3, Math.PI / 2));
-                break;
-            case PENTAGON:
-                g.fillPolygon(buildPolygon(p, radius, 5, Math.PI / 2));
-                break;
-            case HEXAGON:
-                g.fillPolygon(buildPolygon(p, radius, 6));
-                break;
-            case HEPTAGON:
-                g.fillPolygon(buildPolygon(p, radius, 7, Math.PI / 2));
-                break;
-            case OCTAGON:
-                g.fillPolygon(buildPolygon(p, radius, 8, Math.PI / 8));
-                break;
-            case NONAGON:
-                g.fillPolygon(buildPolygon(p, radius, 9, Math.PI / 2));
-                break;
-            case DECAGON:
-                g.fillPolygon(buildPolygon(p, radius, 10));
-                break;
-            default:
-                throw new AssertionError();
+        if (fillColor != null || strokeColor != null) {
+            Shape shape = s.buildShapeAround(p.getInViewX(), p.getInViewY());
+
+            if (fillColor != null) {
+                g.setColor(fillColor);
+                g.fill(shape);
             }
-        }
-        if (s.stroke != null) {
-            g.setStroke(s.stroke);
-            g.setColor(strokeColor);
-            switch (s.symbol) {
-            case SQUARE:
-                g.drawRect(p.x - radius, p.y - radius, s.size - 1, s.size - 1);
-                break;
-            case CIRCLE:
-                g.drawOval(p.x - radius, p.y - radius, s.size - 1, s.size - 1);
-                break;
-            case TRIANGLE:
-                g.drawPolygon(buildPolygon(p, radius, 3, Math.PI / 2));
-                break;
-            case PENTAGON:
-                g.drawPolygon(buildPolygon(p, radius, 5, Math.PI / 2));
-                break;
-            case HEXAGON:
-                g.drawPolygon(buildPolygon(p, radius, 6));
-                break;
-            case HEPTAGON:
-                g.drawPolygon(buildPolygon(p, radius, 7, Math.PI / 2));
-                break;
-            case OCTAGON:
-                g.drawPolygon(buildPolygon(p, radius, 8, Math.PI / 8));
-                break;
-            case NONAGON:
-                g.drawPolygon(buildPolygon(p, radius, 9, Math.PI / 2));
-                break;
-            case DECAGON:
-                g.drawPolygon(buildPolygon(p, radius, 10));
-                break;
-            default:
-                throw new AssertionError();
+            if (s.stroke != null) {
+                g.setStroke(s.stroke);
+                g.setColor(strokeColor);
+                g.draw(shape);
+                g.setStroke(new BasicStroke());
             }
-            g.setStroke(new BasicStroke());
         }
     }
 
@@ -993,8 +994,8 @@ public class StyledMapRenderer extends AbstractMapRenderer {
      * @param clr The color to use for drawing the text.
      */
     public void drawOrderNumber(Node n1, Node n2, int orderNumber, Color clr) {
-        Point p1 = nc.getPoint(n1);
-        Point p2 = nc.getPoint(n2);
+        MapViewPoint p1 = mapState.getPointFor(n1);
+        MapViewPoint p2 = mapState.getPointFor(n2);
         drawOrderNumber(p1, p2, orderNumber, clr);
     }
 
@@ -1004,7 +1005,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
      * @param path path to draw
      * @param line line style
      */
-    private void drawPathHighlight(GeneralPath path, BasicStroke line) {
+    private void drawPathHighlight(Path2D path, BasicStroke line) {
         if (path == null)
             return;
         g.setColor(highlightColorTransparent);
@@ -1023,13 +1024,13 @@ public class StyledMapRenderer extends AbstractMapRenderer {
      * @param p point
      * @param size highlight size
      */
-    private void drawPointHighlight(Point p, int size) {
+    private void drawPointHighlight(Point2D p, int size) {
         g.setColor(highlightColorTransparent);
         int s = size + highlightPointRadius;
         if (useWiderHighlight) s += widerHighlight;
         while (s >= size) {
             int r = (int) Math.floor(s/2d);
-            g.fillRoundRect(p.x-r, p.y-r, s, s, r, r);
+            g.fill(new RoundRectangle2D.Double(p.getX()-r, p.getY()-r, s, s, r, r));
             s -= highlightStep;
         }
     }
@@ -1218,6 +1219,43 @@ public class StyledMapRenderer extends AbstractMapRenderer {
     }
 
     /**
+     * A half segment that can be used to place text on it. Used in the drawTextOnPath algorithm.
+     * @author Michael Zangl
+     */
+    private static class HalfSegment {
+        /**
+         * start point of half segment (as length along the way)
+         */
+        final double start;
+        /**
+         * end point of half segment (as length along the way)
+         */
+        final double end;
+        /**
+         * quality factor (off screen / partly on screen / fully on screen)
+         */
+        final double quality;
+
+        /**
+         * Create a new half segment
+         * @param start The start along the way
+         * @param end The end of the segment
+         * @param quality A quality factor.
+         */
+        HalfSegment(double start, double end, double quality) {
+            super();
+            this.start = start;
+            this.end = end;
+            this.quality = quality;
+        }
+
+        @Override
+        public String toString() {
+            return "HalfSegment [start=" + start + ", end=" + end + ", quality=" + quality + "]";
+        }
+    }
+
+    /**
      * Draws a text along a given way.
      * @param way The way to draw the text on.
      * @param text The text definition (font/.../text content) to draw.
@@ -1234,97 +1272,37 @@ public class StyledMapRenderer extends AbstractMapRenderer {
 
         Rectangle bounds = g.getClipBounds();
 
-        Polygon poly = new Polygon();
-        Point lastPoint = null;
-        Iterator<Node> it = way.getNodes().iterator();
-        double pathLength = 0;
-        long dx, dy;
+        List<MapViewPoint> points = way.getNodes().stream().map(mapState::getPointFor).collect(Collectors.toList());
 
         // find half segments that are long enough to draw text on (don't draw text over the cross hair in the center of each segment)
-        List<Double> longHalfSegmentStart = new ArrayList<>(); // start point of half segment (as length along the way)
-        List<Double> longHalfSegmentEnd = new ArrayList<>(); // end point of half segment (as length along the way)
-        List<Double> longHalfsegmentQuality = new ArrayList<>(); // quality factor (off screen / partly on screen / fully on screen)
+        List<HalfSegment> longHalfSegment = new ArrayList<>();
 
-        while (it.hasNext()) {
-            Node n = it.next();
-            Point p = nc.getPoint(n);
-            poly.addPoint(p.x, p.y);
-
-            if (lastPoint != null) {
-                dx = (long) p.x - lastPoint.x;
-                dy = (long) p.y - lastPoint.y;
-                double segmentLength = Math.sqrt(dx*dx + dy*dy);
-                if (segmentLength > 2*(rec.getWidth()+4)) {
-                    Point center = new Point((lastPoint.x + p.x)/2, (lastPoint.y + p.y)/2);
-                    double q = 0;
-                    if (bounds != null) {
-                        if (bounds.contains(lastPoint) && bounds.contains(center)) {
-                            q = 2;
-                        } else if (bounds.contains(lastPoint) || bounds.contains(center)) {
-                            q = 1;
-                        }
-                    }
-                    longHalfSegmentStart.add(pathLength);
-                    longHalfSegmentEnd.add(pathLength + segmentLength / 2);
-                    longHalfsegmentQuality.add(q);
-
-                    q = 0;
-                    if (bounds != null) {
-                        if (bounds.contains(center) && bounds.contains(p)) {
-                            q = 2;
-                        } else if (bounds.contains(center) || bounds.contains(p)) {
-                            q = 1;
-                        }
-                    }
-                    longHalfSegmentStart.add(pathLength + segmentLength / 2);
-                    longHalfSegmentEnd.add(pathLength + segmentLength);
-                    longHalfsegmentQuality.add(q);
-                }
-                pathLength += segmentLength;
-            }
-            lastPoint = p;
-        }
+        double pathLength = computePath(2 * (rec.getWidth() + 4), bounds, points, longHalfSegment);
 
         if (rec.getWidth() > pathLength)
             return;
 
         double t1, t2;
 
-        if (!longHalfSegmentStart.isEmpty()) {
-            if (way.getNodesCount() == 2) {
-                // For 2 node ways, the two half segments are exactly the same size and distance from the center.
-                // Prefer the first one for consistency.
-                longHalfsegmentQuality.set(0, longHalfsegmentQuality.get(0) + 0.5);
-            }
-
-            // find the long half segment that is closest to the center of the way
-            // candidates with higher quality value are preferred
-            double bestStart = Double.NaN;
-            double bestEnd = Double.NaN;
-            double bestDistanceToCenter = Double.MAX_VALUE;
-            double bestQuality = -1;
-            for (int i = 0; i < longHalfSegmentStart.size(); i++) {
-                double start = longHalfSegmentStart.get(i);
-                double end = longHalfSegmentEnd.get(i);
-                double dist = Math.abs(0.5 * (end + start) - 0.5 * pathLength);
-                if (longHalfsegmentQuality.get(i) > bestQuality
-                        || (dist < bestDistanceToCenter && Utils.equalsEpsilon(longHalfsegmentQuality.get(i), bestQuality))) {
-                    bestStart = start;
-                    bestEnd = end;
-                    bestDistanceToCenter = dist;
-                    bestQuality = longHalfsegmentQuality.get(i);
-                }
-            }
-            double remaining = bestEnd - bestStart - rec.getWidth(); // total space left and right from the text
+        if (!longHalfSegment.isEmpty()) {
+            // find the segment with the best quality. If there are several with best quality, the one close to the center is prefered.
+            Optional<HalfSegment> besto = longHalfSegment.stream().max(
+                    Comparator.comparingDouble(segment ->
+                        segment.quality - 1e-5 * Math.abs(0.5 * (segment.end + segment.start) - 0.5 * pathLength)
+                    ));
+            if (!besto.isPresent())
+                throw new IllegalStateException("Unable to find the segment with the best quality for " + way);
+            HalfSegment best = besto.get();
+            double remaining = best.end - best.start - rec.getWidth(); // total space left and right from the text
             // The space left and right of the text should be distributed 20% - 80% (towards the center),
             // but the smaller space should not be less than 7 px.
             // However, if the total remaining space is less than 14 px, then distribute it evenly.
             double smallerSpace = Math.min(Math.max(0.2 * remaining, 7), 0.5 * remaining);
-            if ((bestEnd + bestStart)/2 < pathLength/2) {
-                t2 = bestEnd - smallerSpace;
+            if ((best.end + best.start)/2 < pathLength/2) {
+                t2 = best.end - smallerSpace;
                 t1 = t2 - rec.getWidth();
             } else {
-                t1 = bestStart + smallerSpace;
+                t1 = best.start + smallerSpace;
                 t2 = t1 + rec.getWidth();
             }
         } else {
@@ -1335,8 +1313,8 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         t1 /= pathLength;
         t2 /= pathLength;
 
-        double[] p1 = pointAt(t1, poly, pathLength);
-        double[] p2 = pointAt(t2, poly, pathLength);
+        double[] p1 = pointAt(t1, points, pathLength);
+        double[] p2 = pointAt(t2, points, pathLength);
 
         if (p1 == null || p2 == null)
             return;
@@ -1364,7 +1342,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
             for (int i = 0; i < gv.getNumGlyphs(); ++i) {
                 Rectangle2D rect = gv.getGlyphLogicalBounds(i).getBounds2D();
                 double t = tStart + offsetSign * (gvOffset + rect.getX() + rect.getWidth()/2) / pathLength;
-                double[] p = pointAt(t, poly, pathLength);
+                double[] p = pointAt(t, points, pathLength);
                 if (p != null) {
                     AffineTransform trfm = AffineTransform.getTranslateInstance(p[0] - rect.getX(), p[1]);
                     trfm.rotate(p[2]+angleOffset);
@@ -1384,6 +1362,47 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         }
     }
 
+    private static double computePath(double minSegmentLength, Rectangle bounds, List<MapViewPoint> points,
+            List<HalfSegment> longHalfSegment) {
+        MapViewPoint lastPoint = points.get(0);
+        double pathLength = 0;
+        for (MapViewPoint p : points.subList(1, points.size())) {
+            double segmentLength = p.distanceToInView(lastPoint);
+            if (segmentLength > minSegmentLength) {
+                Point2D center = new Point2D.Double((lastPoint.getInViewX() + p.getInViewX())/2, (lastPoint.getInViewY() + p.getInViewY())/2);
+                double q = computeQuality(bounds, lastPoint, center);
+                // prefer the first one for quality equality.
+                longHalfSegment.add(new HalfSegment(pathLength, pathLength + segmentLength / 2, q));
+
+                q = 0;
+                if (bounds != null) {
+                    if (bounds.contains(center) && bounds.contains(p.getInView())) {
+                        q = 2;
+                    } else if (bounds.contains(center) || bounds.contains(p.getInView())) {
+                        q = 1;
+                    }
+                }
+                longHalfSegment.add(new HalfSegment(pathLength + segmentLength / 2, pathLength + segmentLength, q));
+            }
+            pathLength += segmentLength;
+            lastPoint = p;
+        }
+        return pathLength;
+    }
+
+    private static double computeQuality(Rectangle bounds, MapViewPoint p1, Point2D p2) {
+        double q = 0;
+        if (bounds != null) {
+            if (bounds.contains(p1.getInView())) {
+                q += 1;
+            }
+            if (bounds.contains(p2)) {
+                q += 1;
+            }
+        }
+        return q;
+    }
+
     /**
      * draw way. This method allows for two draw styles (line using color, dashes using dashedColor) to be passed.
      * @param way The way to draw
@@ -1403,115 +1422,76 @@ public class StyledMapRenderer extends AbstractMapRenderer {
             boolean showOrientation, boolean showHeadArrowOnly,
             boolean showOneway, boolean onewayReversed) {
 
-        GeneralPath path = new GeneralPath();
-        GeneralPath orientationArrows = showOrientation ? new GeneralPath() : null;
-        GeneralPath onewayArrows = showOneway ? new GeneralPath() : null;
-        GeneralPath onewayArrowsCasing = showOneway ? new GeneralPath() : null;
+        MapPath2D path = new MapPath2D();
+        MapPath2D orientationArrows = showOrientation ? new MapPath2D() : null;
+        MapPath2D onewayArrows = showOneway ? new MapPath2D() : null;
+        MapPath2D onewayArrowsCasing = showOneway ? new MapPath2D() : null;
         Rectangle bounds = g.getClipBounds();
         if (bounds != null) {
             // avoid arrow heads at the border
             bounds.grow(100, 100);
         }
 
-        double wayLength = 0;
-        Point lastPoint = null;
         boolean initialMoveToNeeded = true;
         List<Node> wayNodes = way.getNodes();
         if (wayNodes.size() < 2) return;
 
         // only highlight the segment if the way itself is not highlighted
         if (!way.isHighlighted() && highlightWaySegments != null) {
-            GeneralPath highlightSegs = null;
+            MapViewPath highlightSegs = null;
             for (WaySegment ws : highlightWaySegments) {
                 if (ws.way != way || ws.lowerIndex < offset) {
                     continue;
                 }
                 if (highlightSegs == null) {
-                    highlightSegs = new GeneralPath();
+                    highlightSegs = new MapViewPath(mapState);
                 }
 
-                Point p1 = nc.getPoint(ws.getFirstNode());
-                Point p2 = nc.getPoint(ws.getSecondNode());
-                highlightSegs.moveTo(p1.x, p1.y);
-                highlightSegs.lineTo(p2.x, p2.y);
+                highlightSegs.moveTo(ws.getFirstNode());
+                highlightSegs.lineTo(ws.getSecondNode());
             }
 
             drawPathHighlight(highlightSegs, line);
         }
 
-        Iterator<Point> it = new OffsetIterator(wayNodes, offset);
+        MapViewPoint lastPoint = null;
+        double wayLength = 0;
+        Iterator<MapViewPoint> it = new OffsetIterator(wayNodes, offset);
         while (it.hasNext()) {
-            Point p = it.next();
+            MapViewPoint p = it.next();
             if (lastPoint != null) {
-                Point p1 = lastPoint;
-                Point p2 = p;
-
-                /**
-                 * Do custom clipping to work around openjdk bug. It leads to
-                 * drawing artefacts when zooming in a lot. (#4289, #4424)
-                 * (Looks like int overflow.)
-                 */
-                LineClip clip = new LineClip(p1, p2, bounds);
-                if (clip.execute()) {
-                    if (!p1.equals(clip.getP1())) {
-                        p1 = clip.getP1();
-                        path.moveTo(p1.x, p1.y);
-                    } else if (initialMoveToNeeded) {
-                        initialMoveToNeeded = false;
-                        path.moveTo(p1.x, p1.y);
-                    }
-                    p2 = clip.getP2();
-                    path.lineTo(p2.x, p2.y);
+                MapViewPoint p1 = lastPoint;
+                MapViewPoint p2 = p;
 
-                    /* draw arrow */
-                    if (showHeadArrowOnly ? !it.hasNext() : showOrientation) {
-                        final double segmentLength = p1.distance(p2);
-                        if (segmentLength != 0) {
-                            final double l = (10. + line.getLineWidth()) / segmentLength;
-
-                            final double sx = l * (p1.x - p2.x);
-                            final double sy = l * (p1.y - p2.y);
+                if (initialMoveToNeeded) {
+                    initialMoveToNeeded = false;
+                    path.moveTo(p1);
+                }
+                path.lineTo(p2);
 
-                            orientationArrows.moveTo(p2.x + cosPHI * sx - sinPHI * sy, p2.y + sinPHI * sx + cosPHI * sy);
-                            orientationArrows.lineTo(p2.x, p2.y);
-                            orientationArrows.lineTo(p2.x + cosPHI * sx + sinPHI * sy, p2.y - sinPHI * sx + cosPHI * sy);
-                        }
-                    }
-                    if (showOneway) {
-                        final double segmentLength = p1.distance(p2);
-                        if (segmentLength != 0) {
-                            final double nx = (p2.x - p1.x) / segmentLength;
-                            final double ny = (p2.y - p1.y) / segmentLength;
-
-                            final double interval = 60;
-                            // distance from p1
-                            double dist = interval - (wayLength % interval);
-
-                            while (dist < segmentLength) {
-                                for (int i = 0; i < 2; ++i) {
-                                    double onewaySize = i == 0 ? 3d : 2d;
-                                    GeneralPath onewayPath = i == 0 ? onewayArrowsCasing : onewayArrows;
-
-                                    // scale such that border is 1 px
-                                    final double fac = -(onewayReversed ? -1 : 1) * onewaySize * (1 + sinPHI) / (sinPHI * cosPHI);
-                                    final double sx = nx * fac;
-                                    final double sy = ny * fac;
-
-                                    // Attach the triangle at the incenter and not at the tip.
-                                    // Makes the border even at all sides.
-                                    final double x = p1.x + nx * (dist + (onewayReversed ? -1 : 1) * (onewaySize / sinPHI));
-                                    final double y = p1.y + ny * (dist + (onewayReversed ? -1 : 1) * (onewaySize / sinPHI));
-
-                                    onewayPath.moveTo(x, y);
-                                    onewayPath.lineTo(x + cosPHI * sx - sinPHI * sy, y + sinPHI * sx + cosPHI * sy);
-                                    onewayPath.lineTo(x + cosPHI * sx + sinPHI * sy, y - sinPHI * sx + cosPHI * sy);
-                                    onewayPath.lineTo(x, y);
-                                }
-                                dist += interval;
-                            }
+                /* draw arrow */
+                if (showHeadArrowOnly ? !it.hasNext() : showOrientation) {
+                    //TODO: Cache
+                    ArrowPaintHelper drawHelper = new ArrowPaintHelper(PHI, 10 + line.getLineWidth());
+                    drawHelper.paintArrowAt(orientationArrows, p2, p1);
+                }
+                if (showOneway) {
+                    final double segmentLength = p1.distanceToInView(p2);
+                    if (segmentLength != 0) {
+                        final double nx = (p2.getInViewX() - p1.getInViewX()) / segmentLength;
+                        final double ny = (p2.getInViewY() - p1.getInViewY()) / segmentLength;
+
+                        final double interval = 60;
+                        // distance from p1
+                        double dist = interval - (wayLength % interval);
+
+                        while (dist < segmentLength) {
+                            appenOnewayPath(onewayReversed, p1, nx, ny, dist, 3d, onewayArrowsCasing);
+                            appenOnewayPath(onewayReversed, p1, nx, ny, dist, 2d, onewayArrows);
+                            dist += interval;
                         }
-                        wayLength += segmentLength;
                     }
+                    wayLength += segmentLength;
                 }
             }
             lastPoint = p;
@@ -1522,6 +1502,24 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         displaySegments(path, orientationArrows, onewayArrows, onewayArrowsCasing, color, line, dashes, dashedColor);
     }
 
+    private static void appenOnewayPath(boolean onewayReversed, MapViewPoint p1, double nx, double ny, double dist,
+            double onewaySize, Path2D onewayPath) {
+        // scale such that border is 1 px
+        final double fac = -(onewayReversed ? -1 : 1) * onewaySize * (1 + sinPHI) / (sinPHI * cosPHI);
+        final double sx = nx * fac;
+        final double sy = ny * fac;
+
+        // Attach the triangle at the incenter and not at the tip.
+        // Makes the border even at all sides.
+        final double x = p1.getInViewX() + nx * (dist + (onewayReversed ? -1 : 1) * (onewaySize / sinPHI));
+        final double y = p1.getInViewY() + ny * (dist + (onewayReversed ? -1 : 1) * (onewaySize / sinPHI));
+
+        onewayPath.moveTo(x, y);
+        onewayPath.lineTo(x + cosPHI * sx - sinPHI * sy, y + sinPHI * sx + cosPHI * sy);
+        onewayPath.lineTo(x + cosPHI * sx + sinPHI * sy, y - sinPHI * sx + cosPHI * sy);
+        onewayPath.lineTo(x, y);
+    }
+
     /**
      * Gets the "circum". This is the distance on the map in meters that 100 screen pixels represent.
      * @return The "circum"
@@ -1711,15 +1709,20 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         return null;
     }
 
+    /**
+     * Test if the area is visible
+     * @param area The area, interpreted in east/north space.
+     * @return true if it is visible.
+     */
     private boolean isAreaVisible(Path2D.Double area) {
         Rectangle2D bounds = area.getBounds2D();
         if (bounds.isEmpty()) return false;
-        Point2D p = nc.getPoint2D(new EastNorth(bounds.getX(), bounds.getY()));
-        if (p.getX() > nc.getWidth()) return false;
-        if (p.getY() < 0) return false;
-        p = nc.getPoint2D(new EastNorth(bounds.getX() + bounds.getWidth(), bounds.getY() + bounds.getHeight()));
-        if (p.getX() < 0) return false;
-        if (p.getY() > nc.getHeight()) return false;
+        MapViewPoint p = mapState.getPointFor(new EastNorth(bounds.getX(), bounds.getY()));
+        if (p.getInViewX() > mapState.getViewWidth()) return false;
+        if (p.getInViewY() < 0) return false;
+        p = mapState.getPointFor(new EastNorth(bounds.getX() + bounds.getWidth(), bounds.getY() + bounds.getHeight()));
+        if (p.getInViewX() < 0) return false;
+        if (p.getInViewY() > mapState.getViewHeight()) return false;
         return true;
     }
 
@@ -1735,25 +1738,25 @@ public class StyledMapRenderer extends AbstractMapRenderer {
         return showNames;
     }
 
-    private static double[] pointAt(double t, Polygon poly, double pathLength) {
+    private static double[] pointAt(double t, List<MapViewPoint> poly, double pathLength) {
         double totalLen = t * pathLength;
         double curLen = 0;
-        long dx, dy;
+        double dx, dy;
         double segLen;
 
         // Yes, it is inefficient to iterate from the beginning for each glyph.
         // Can be optimized if it turns out to be slow.
-        for (int i = 1; i < poly.npoints; ++i) {
-            dx = (long) poly.xpoints[i] - poly.xpoints[i-1];
-            dy = (long) poly.ypoints[i] - poly.ypoints[i-1];
+        for (int i = 1; i < poly.size(); ++i) {
+            dx = poly.get(i).getInViewX() - poly.get(i - 1).getInViewX();
+            dy = poly.get(i).getInViewY() - poly.get(i - 1).getInViewY();
             segLen = Math.sqrt(dx*dx + dy*dy);
             if (totalLen > curLen + segLen) {
                 curLen += segLen;
                 continue;
             }
             return new double[] {
-                    poly.xpoints[i-1]+(totalLen - curLen)/segLen*dx,
-                    poly.ypoints[i-1]+(totalLen - curLen)/segLen*dy,
+                    poly.get(i - 1).getInViewX() + (totalLen - curLen) / segLen * dx,
+                    poly.get(i - 1).getInViewY() + (totalLen - curLen) / segLen * dy,
                     Math.atan2(dy, dx)};
         }
         return null;
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
index 4414c36..214b38d 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
@@ -4,11 +4,13 @@ package org.openstreetmap.josm.data.osm.visitor.paint;
 import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Graphics2D;
-import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.RenderingHints;
 import java.awt.Stroke;
+import java.awt.geom.Ellipse2D;
 import java.awt.geom.GeneralPath;
+import java.awt.geom.Rectangle2D;
+import java.awt.geom.Rectangle2D.Double;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -25,7 +27,10 @@ import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
 import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
+import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle;
 import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.gui.draw.MapPath2D;
 
 /**
  * A map renderer that paints a simple scheme of every primitive it visits to a
@@ -74,7 +79,7 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
     /** Color cache to draw subsequent segments of same color as one <code>Path</code>. */
     protected Color currentColor;
     /** Path store to draw subsequent segments of same color as one <code>Path</code>. */
-    protected GeneralPath currentPath = new GeneralPath();
+    protected MapPath2D currentPath = new MapPath2D();
     /**
       * <code>DataSet</code> passed to the @{link render} function to overcome the argument
       * limitations of @{link Visitor} interface. Only valid until end of rendering call.
@@ -82,15 +87,12 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
     private DataSet ds;
 
     /** Helper variable for {@link #drawSegment} */
-    private static final double PHI = Math.toRadians(20);
-    /** Helper variable for {@link #drawSegment} */
-    private static final double cosPHI = Math.cos(PHI);
-    /** Helper variable for {@link #drawSegment} */
-    private static final double sinPHI = Math.sin(PHI);
+    private static final ArrowPaintHelper ARROW_PAINT_HELPER = new ArrowPaintHelper(Math.toRadians(20), 10);
 
     /** Helper variable for {@link #visit(Relation)} */
     private final Stroke relatedWayStroke = new BasicStroke(
             4, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL);
+    private MapViewRectangle viewClip;
 
     /**
      * Creates an wireframe render
@@ -116,7 +118,7 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
         taggedColor = PaintColors.TAGGED.get();
         connectionColor = PaintColors.CONNECTION.get();
 
-        if (taggedColor != nodeColor) {
+        if (!taggedColor.equals(nodeColor)) {
             taggedConnectionColor = taggedColor;
         } else {
             taggedConnectionColor = connectionColor;
@@ -145,17 +147,13 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
                         RenderingHints.VALUE_ANTIALIAS_ON : RenderingHints.VALUE_ANTIALIAS_OFF);
     }
 
-    /**
-     * Renders the dataset for display.
-     *
-     * @param data <code>DataSet</code> to display
-     * @param virtual <code>true</code> if virtual nodes are used
-     * @param bounds display boundaries
-     */
     @Override
     public void render(DataSet data, boolean virtual, Bounds bounds) {
         BBox bbox = bounds.toBBox();
         this.ds = data;
+        Rectangle clip = g.getClipBounds();
+        clip.grow(50, 50);
+        viewClip = mapState.getViewArea(clip);
         getSettings(virtual);
 
         for (final Relation rel : data.searchRelations(bbox)) {
@@ -209,7 +207,7 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
         // in most of the cases there won't be more than one segment. Since the wireframe
         // renderer does not feature any transparency there should be no visual difference.
         for (final WaySegment wseg : data.getHighlightedWaySegments()) {
-            drawSegment(nc.getPoint(wseg.getFirstNode()), nc.getPoint(wseg.getSecondNode()), highlightColor, false);
+            drawSegment(mapState.getPointFor(wseg.getFirstNode()), mapState.getPointFor(wseg.getSecondNode()), highlightColor, false);
         }
         displaySegments();
     }
@@ -314,15 +312,20 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
 
         Iterator<Node> it = w.getNodes().iterator();
         if (it.hasNext()) {
-            Point lastP = nc.getPoint(it.next());
+            MapViewPoint lastP = mapState.getPointFor(it.next());
+            int lastPOutside = lastP.getOutsideRectangleFlags(viewClip);
             for (int orderNumber = 1; it.hasNext(); orderNumber++) {
-                Point p = nc.getPoint(it.next());
-                drawSegment(lastP, p, wayColor,
-                        showOnlyHeadArrowOnly ? !it.hasNext() : showThisDirectionArrow);
-                if (showOrderNumber && !isInactiveMode) {
-                    drawOrderNumber(lastP, p, orderNumber, g.getColor());
+                MapViewPoint p = mapState.getPointFor(it.next());
+                int pOutside = p.getOutsideRectangleFlags(viewClip);
+                if ((pOutside & lastPOutside) == 0) {
+                    drawSegment(lastP, p, wayColor,
+                            showOnlyHeadArrowOnly ? !it.hasNext() : showThisDirectionArrow);
+                    if (showOrderNumber && !isInactiveMode) {
+                        drawOrderNumber(lastP, p, orderNumber, g.getColor());
+                    }
                 }
                 lastP = p;
+                lastPOutside = pOutside;
             }
         }
     }
@@ -353,13 +356,11 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
             }
 
             if (m.isNode()) {
-                Point p = nc.getPoint(m.getNode());
-                if (p.x < 0 || p.y < 0
-                        || p.x > nc.getWidth() || p.y > nc.getHeight()) {
-                    continue;
+                MapViewPoint p = mapState.getPointFor(m.getNode());
+                if (p.isInView()) {
+                    g.draw(new Ellipse2D.Double(p.getInViewX()-4, p.getInViewY()-4, 9, 9));
                 }
 
-                g.drawOval(p.x-4, p.y-4, 9, 9);
             } else if (m.isWay()) {
                 GeneralPath path = new GeneralPath();
 
@@ -368,12 +369,12 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
                     if (!n.isDrawable()) {
                         continue;
                     }
-                    Point p = nc.getPoint(n);
+                    MapViewPoint p = mapState.getPointFor(n);
                     if (first) {
-                        path.moveTo(p.x, p.y);
+                        path.moveTo(p.getInViewX(), p.getInViewY());
                         first = false;
                     } else {
-                        path.lineTo(p.x, p.y);
+                        path.lineTo(p.getInViewX(), p.getInViewY());
                     }
                 }
 
@@ -392,18 +393,16 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
     @Override
     public void drawNode(Node n, Color color, int size, boolean fill) {
         if (size > 1) {
-            int radius = size / 2;
-            Point p = nc.getPoint(n);
-            if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth())
-                    || (p.y > nc.getHeight()))
+            MapViewPoint p = mapState.getPointFor(n);
+            if (!p.isInView())
                 return;
+            int radius = size / 2;
+            Double shape = new Rectangle2D.Double(p.getInViewX() - radius, p.getInViewY() - radius, size, size);
             g.setColor(color);
             if (fill) {
-                g.fillRect(p.x - radius, p.y - radius, size, size);
-                g.drawRect(p.x - radius, p.y - radius, size, size);
-            } else {
-                g.drawRect(p.x - radius, p.y - radius, size, size);
+                g.fill(shape);
             }
+            g.draw(shape);
         }
     }
 
@@ -411,30 +410,16 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
      * Draw a line with the given color.
      *
      * @param path The path to append this segment.
-     * @param p1 First point of the way segment.
-     * @param p2 Second point of the way segment.
+     * @param mv1 First point of the way segment.
+     * @param mv2 Second point of the way segment.
      * @param showDirection <code>true</code> if segment direction should be indicated
+     * @since 10827
      */
-    protected void drawSegment(GeneralPath path, Point p1, Point p2, boolean showDirection) {
-        Rectangle bounds = g.getClipBounds();
-        bounds.grow(100, 100);                  // avoid arrow heads at the border
-        LineClip clip = new LineClip(p1, p2, bounds);
-        if (clip.execute()) {
-            p1 = clip.getP1();
-            p2 = clip.getP2();
-            path.moveTo(p1.x, p1.y);
-            path.lineTo(p2.x, p2.y);
-
-            if (showDirection) {
-                final double l = 10. / p1.distance(p2);
-
-                final double sx = l * (p1.x - p2.x);
-                final double sy = l * (p1.y - p2.y);
-
-                path.lineTo(p2.x + (double) Math.round(cosPHI * sx - sinPHI * sy), p2.y + (double) Math.round(sinPHI * sx + cosPHI * sy));
-                path.moveTo(p2.x + (double) Math.round(cosPHI * sx + sinPHI * sy), p2.y + (double) Math.round(-sinPHI * sx + cosPHI * sy));
-                path.lineTo(p2.x, p2.y);
-            }
+    protected void drawSegment(MapPath2D path, MapViewPoint mv1, MapViewPoint mv2, boolean showDirection) {
+        path.moveTo(mv1);
+        path.lineTo(mv2);
+        if (showDirection) {
+            ARROW_PAINT_HELPER.paintArrowAt(path, mv2, mv1);
         }
     }
 
@@ -445,9 +430,10 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
      * @param p2 Second point of the way segment.
      * @param col The color to use for drawing line.
      * @param showDirection <code>true</code> if segment direction should be indicated.
+     * @since 10827
      */
-    protected void drawSegment(Point p1, Point p2, Color col, boolean showDirection) {
-        if (col != currentColor) {
+    protected void drawSegment(MapViewPoint p1, MapViewPoint p2, Color col, boolean showDirection) {
+        if (!col.equals(currentColor)) {
             displaySegments(col);
         }
         drawSegment(currentPath, p1, p2, showDirection);
@@ -469,7 +455,7 @@ public class WireframeMapRenderer extends AbstractMapRenderer implements Visitor
         if (currentPath != null) {
             g.setColor(currentColor);
             g.draw(currentPath);
-            currentPath = new GeneralPath();
+            currentPath = new MapPath2D();
             currentColor = newColor;
         }
     }
diff --git a/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java b/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
index 1516d42..a87ad31 100644
--- a/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
@@ -2,12 +2,147 @@
 package org.openstreetmap.josm.data.preferences;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
 
 /**
  * Captures the common functionality of preference properties
  * @param <T> The type of object accessed by this property
  */
 public abstract class AbstractProperty<T> {
+
+    private final class PreferenceChangedListenerAdapter implements PreferenceChangedListener {
+        private final ValueChangeListener<? super T> listener;
+
+        PreferenceChangedListenerAdapter(ValueChangeListener<? super T> listener) {
+            this.listener = listener;
+        }
+
+        @Override
+        public void preferenceChanged(PreferenceChangeEvent e) {
+            listener.valueChanged(new ValueChangeEvent<>(e, AbstractProperty.this));
+        }
+
+        @Override
+        public int hashCode() {
+            final int prime = 31;
+            int result = 1;
+            result = prime * result + getOuterType().hashCode();
+            result = prime * result + ((listener == null) ? 0 : listener.hashCode());
+            return result;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (obj == null)
+                return false;
+            if (getClass() != obj.getClass())
+                return false;
+            @SuppressWarnings("unchecked")
+            PreferenceChangedListenerAdapter other = (PreferenceChangedListenerAdapter) obj;
+            if (!getOuterType().equals(other.getOuterType()))
+                return false;
+            if (listener == null) {
+                if (other.listener != null)
+                    return false;
+            } else if (!listener.equals(other.listener))
+                return false;
+            return true;
+        }
+
+        private AbstractProperty<T> getOuterType() {
+            return AbstractProperty.this;
+        }
+
+        @Override
+        public String toString() {
+            return "PreferenceChangedListenerAdapter [listener=" + listener + ']';
+        }
+    }
+
+    /**
+     * A listener that listens to changes in the properties value.
+     * @author michael
+     * @param <T> property type
+     * @since 10824
+     */
+    public interface ValueChangeListener<T> {
+        /**
+         * Method called when a property value has changed.
+         * @param e property change event
+         */
+        void valueChanged(ValueChangeEvent<? extends T> e);
+    }
+
+    /**
+     * An event that is triggered if the value of a property changes.
+     * @author Michael Zangl
+     * @param <T> property type
+     * @since 10824
+     */
+    public static class ValueChangeEvent<T> {
+        private final PreferenceChangeEvent base;
+
+        private final AbstractProperty<T> source;
+
+        ValueChangeEvent(PreferenceChangeEvent base, AbstractProperty<T> source) {
+            this.base = base;
+            this.source = source;
+        }
+
+        /**
+         * Get the property that was changed
+         * @return The property.
+         */
+        public AbstractProperty<T> getProperty() {
+            return source;
+        }
+    }
+
+    /**
+     * An exception that is thrown if a preference value is invalid.
+     * @author Michael Zangl
+     * @since 10824
+     */
+    public static class InvalidPreferenceValueException extends RuntimeException {
+
+        /**
+         * Constructs a new {@code InvalidPreferenceValueException} with the specified detail message and cause.
+         * @param message the detail message (which is saved for later retrieval by the {@link #getMessage()} method).
+         * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method).
+         */
+        public InvalidPreferenceValueException(String message, Throwable cause) {
+            super(message, cause);
+        }
+
+        /**
+         * Constructs a new {@code InvalidPreferenceValueException} with the specified detail message.
+         * The cause is not initialized, and may subsequently be initialized by a call to {@link #initCause}.
+         *
+         * @param message the detail message. The detail message is saved for later retrieval by the {@link #getMessage()} method.
+         */
+        public InvalidPreferenceValueException(String message) {
+            super(message);
+        }
+
+        /**
+         * Constructs a new {@code InvalidPreferenceValueException} with the specified cause and a detail message of
+         * <tt>(cause==null ? null : cause.toString())</tt> (which typically contains the class and detail message of <tt>cause</tt>).
+         *
+         * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method).
+         */
+        public InvalidPreferenceValueException(Throwable cause) {
+            super(cause);
+        }
+    }
+
+    /**
+     * The preferences object this property is for.
+     */
+    protected final Preferences preferences;
     protected final String key;
     protected final T defaultValue;
 
@@ -18,11 +153,22 @@ public abstract class AbstractProperty<T> {
      * @since 5464
      */
     public AbstractProperty(String key, T defaultValue) {
+        // Main.pref should not change in production but may change during tests.
+        preferences = Main.pref;
         this.key = key;
         this.defaultValue = defaultValue;
     }
 
     /**
+     * Store the default value to {@link Preferences}.
+     */
+    protected void storeDefaultValue() {
+        if (getPreferences() != null) {
+            get();
+        }
+    }
+
+    /**
      * Replies the property key.
      * @return The property key
      */
@@ -35,7 +181,7 @@ public abstract class AbstractProperty<T> {
      * @return true if {@code Main.pref} contains this property.
      */
     public boolean isSet() {
-        return !Main.pref.get(key).isEmpty();
+        return !getPreferences().get(key).isEmpty();
     }
 
     /**
@@ -50,7 +196,7 @@ public abstract class AbstractProperty<T> {
      * Removes this property from JOSM preferences (i.e replace it by its default value).
      */
     public void remove() {
-        Main.pref.put(getKey(), String.valueOf(getDefaultValue()));
+        put(getDefaultValue());
     }
 
     /**
@@ -67,4 +213,83 @@ public abstract class AbstractProperty<T> {
      * @since 5464
      */
     public abstract boolean put(T value);
+
+    /**
+     * Gets the preferences used for this property.
+     * @return The preferences for this property.
+     * @since 10824
+     */
+    protected Preferences getPreferences() {
+        return preferences;
+    }
+
+    /**
+     * Adds a listener that listens only for changes to this preference key.
+     * @param listener The listener to add.
+     * @since 10824
+     */
+    public void addListener(ValueChangeListener<? super T> listener) {
+        addListenerImpl(new PreferenceChangedListenerAdapter(listener));
+    }
+
+    protected void addListenerImpl(PreferenceChangedListener adapter) {
+        getPreferences().addKeyPreferenceChangeListener(getKey(), adapter);
+    }
+
+    /**
+     * Adds a weak listener that listens only for changes to this preference key.
+     * @param listener The listener to add.
+     * @since 10824
+     */
+    public void addWeakListener(ValueChangeListener<? super T> listener) {
+        addWeakListenerImpl(new PreferenceChangedListenerAdapter(listener));
+    }
+
+    protected void addWeakListenerImpl(PreferenceChangedListener adapter) {
+        getPreferences().addWeakKeyPreferenceChangeListener(getKey(), adapter);
+    }
+
+    /**
+     * Removes a listener that listens only for changes to this preference key.
+     * @param listener The listener to add.
+     * @since 10824
+     */
+    public void removeListener(ValueChangeListener<? super T> listener) {
+        removeListenerImpl(new PreferenceChangedListenerAdapter(listener));
+    }
+
+    protected void removeListenerImpl(PreferenceChangedListener adapter) {
+        getPreferences().removeKeyPreferenceChangeListener(getKey(), adapter);
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((key == null) ? 0 : key.hashCode());
+        result = prime * result + ((preferences == null) ? 0 : preferences.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        AbstractProperty<?> other = (AbstractProperty<?>) obj;
+        if (key == null) {
+            if (other.key != null)
+                return false;
+        } else if (!key.equals(other.key))
+            return false;
+        if (preferences == null) {
+            if (other.preferences != null)
+                return false;
+        } else if (!preferences.equals(other.preferences))
+            return false;
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/preferences/AbstractToStringProperty.java b/src/org/openstreetmap/josm/data/preferences/AbstractToStringProperty.java
new file mode 100644
index 0000000..1ac7e18
--- /dev/null
+++ b/src/org/openstreetmap/josm/data/preferences/AbstractToStringProperty.java
@@ -0,0 +1,161 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.preferences;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
+import org.openstreetmap.josm.tools.bugreport.BugReport;
+
+/**
+ * This class represents a property that can be represented as String.
+ *
+ * @author Michael Zangl
+ *
+ * @param <T> The property content type.
+ * @since 10824
+ */
+public abstract class AbstractToStringProperty<T> extends AbstractProperty<T> {
+
+    /**
+     * This is a version of this property that attempts to get the property with a more specialized key and - if that fails - uses the property
+     * value as default.
+     *
+     * @author Michael Zangl
+     * @param <T> The content type
+     */
+    public static class ChildProperty<T> extends AbstractToStringProperty<T> {
+        private final AbstractToStringProperty<T> parent;
+
+        ChildProperty(AbstractToStringProperty<T> parent, String key) {
+            super(key, null);
+            CheckParameterUtil.ensureParameterNotNull(parent, "parent");
+            this.parent = parent;
+        }
+
+        @Override
+        protected void storeDefaultValue() {
+            // Default value hidden in preferences.
+        }
+
+        @Override
+        public T getDefaultValue() {
+            return parent.get();
+        }
+
+        @Override
+        protected T fromString(String string) {
+            return parent.fromString(string);
+        }
+
+        @Override
+        protected String toString(T t) {
+            return parent.toString(t);
+        }
+
+        @Override
+        protected void addListenerImpl(PreferenceChangedListener adapter) {
+            super.addListenerImpl(adapter);
+            parent.addListenerImpl(adapter);
+        }
+
+        @Override
+        protected void addWeakListenerImpl(PreferenceChangedListener adapter) {
+            super.addWeakListenerImpl(adapter);
+            parent.addWeakListenerImpl(adapter);
+        }
+
+        @Override
+        protected void removeListenerImpl(PreferenceChangedListener adapter) {
+            super.removeListenerImpl(adapter);
+            parent.removeListenerImpl(adapter);
+        }
+
+        @Override
+        public CachingProperty<T> cached() {
+            throw new UnsupportedOperationException("Not implemented yet.");
+        }
+    }
+
+    /**
+     * Create a new property and store the default value.
+     * @param key The key
+     * @param defaultValue The default value.
+     * @see AbstractProperty#AbstractProperty(String, Object)
+     */
+    public AbstractToStringProperty(String key, T defaultValue) {
+        super(key, defaultValue);
+        storeDefaultValue();
+    }
+
+    @Override
+    public T get() {
+        String string = getAsString();
+        if (!string.isEmpty()) {
+            try {
+                return fromString(string);
+            } catch (InvalidPreferenceValueException e) {
+                Main.warn(BugReport.intercept(e).put("key", key).put("value", string));
+            }
+        }
+        return getDefaultValue();
+    }
+
+    /**
+     * Converts the string to an object of the given type.
+     * @param string The string
+     * @return The object.
+     * @throws InvalidPreferenceValueException If the value could not be converted.
+     */
+    protected abstract T fromString(String string);
+
+    @Override
+    public boolean put(T value) {
+        String string = value == null ? null : toString(value);
+        return getPreferences().put(getKey(), string);
+    }
+
+    /**
+     * Converts the string to an object of the given type.
+     * @param t The object.
+     * @return The string representing the object
+     * @throws InvalidPreferenceValueException If the value could not be converted.
+     */
+    protected abstract String toString(T t);
+
+    /**
+     * Gets the preference value as String.
+     * @return The string preference value.
+     */
+    protected String getAsString() {
+        T def = getDefaultValue();
+        return getPreferences().get(key, def == null ? "" : toString(def));
+    }
+
+    /**
+     * Gets a specialized setting value that has the current value as default
+     * <p>
+     * The key will be getKey().spec
+     * @param spec The key specialization
+     * @return The property
+     */
+    public AbstractToStringProperty<T> getSpecialized(String spec) {
+        return getChildProperty(getKey() + "." + spec);
+    }
+
+    /**
+     * Gets a setting that defaults to this setting if the key is not set.
+     * @param key The more specialized key.
+     * @return The new setting.
+     */
+    protected AbstractToStringProperty<T> getChildProperty(String key) {
+        return new ChildProperty<>(this, key);
+    }
+
+    /**
+     * Creates a new {@link CachingProperty} instance for this property.
+     * @return The new caching property instance.
+     */
+    public CachingProperty<T> cached() {
+        return new CachingProperty<>(this);
+    }
+}
diff --git a/src/org/openstreetmap/josm/data/preferences/BooleanProperty.java b/src/org/openstreetmap/josm/data/preferences/BooleanProperty.java
index 578edca..93ab3b1 100644
--- a/src/org/openstreetmap/josm/data/preferences/BooleanProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/BooleanProperty.java
@@ -1,12 +1,10 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.preferences;
 
-import org.openstreetmap.josm.Main;
-
 /**
  * A property containing a {@code Boolean} value.
  */
-public class BooleanProperty extends AbstractProperty<Boolean> {
+public class BooleanProperty extends AbstractToStringProperty<Boolean> {
 
     /**
      * Constructs a new {@code BooleanProperty}.
@@ -15,18 +13,27 @@ public class BooleanProperty extends AbstractProperty<Boolean> {
      */
     public BooleanProperty(String key, boolean defaultValue) {
         super(key, defaultValue);
-        if (Main.pref != null) {
-            get();
-        }
     }
 
     @Override
     public Boolean get() {
-        return Main.pref.getBoolean(getKey(), defaultValue);
+        // Removing this implementation breaks binary compatibility
+        return super.get();
     }
 
     @Override
     public boolean put(Boolean value) {
-        return Main.pref.put(getKey(), value);
+        // Removing this implementation breaks binary compatibility
+        return super.put(value);
+    }
+
+    @Override
+    protected Boolean fromString(String string) {
+        return Boolean.valueOf(string);
+    }
+
+    @Override
+    protected String toString(Boolean t) {
+        return t.toString();
     }
 }
diff --git a/src/org/openstreetmap/josm/data/preferences/CachedProperty.java b/src/org/openstreetmap/josm/data/preferences/CachedProperty.java
index d8e36a4..c3459e7 100644
--- a/src/org/openstreetmap/josm/data/preferences/CachedProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/CachedProperty.java
@@ -13,7 +13,7 @@ public abstract class CachedProperty<T> extends AbstractProperty<T> implements P
 
     protected CachedProperty(String key, String defaultValueAsString) {
         super(key, null);
-        Main.pref.addPreferenceChangeListener(this);
+        Main.pref.addKeyPreferenceChangeListener(key, this);
         this.defaultValueAsString = defaultValueAsString;
         updateValue();
     }
@@ -60,7 +60,7 @@ public abstract class CachedProperty<T> extends AbstractProperty<T> implements P
     }
 
     public String getAsString() {
-        return Main.pref.get(getKey(), getDefaultValueAsString());
+        return getPreferences().get(getKey(), getDefaultValueAsString());
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/data/preferences/CachingProperty.java b/src/org/openstreetmap/josm/data/preferences/CachingProperty.java
new file mode 100644
index 0000000..4a0235c
--- /dev/null
+++ b/src/org/openstreetmap/josm/data/preferences/CachingProperty.java
@@ -0,0 +1,48 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.preferences;
+
+import org.openstreetmap.josm.data.preferences.AbstractProperty.ValueChangeListener;
+
+/**
+ * This is a special wrapper of {@link AbstractProperty}.
+ * The current preference value is cached. The value is invalidated if the preference was changed.
+ * @author Michael Zangl
+ *
+ * @param <T> property type
+ * @since 10824
+ */
+public class CachingProperty<T> extends AbstractProperty<T> implements ValueChangeListener<T> {
+
+    private T cache;
+    private boolean cacheActive;
+    private final AbstractProperty<T> toCache;
+
+    /**
+     * Create a new caching property.
+     * @param toCache The property to cache.
+     */
+    CachingProperty(AbstractProperty<T> toCache) {
+        super(toCache.getKey(), toCache.getDefaultValue());
+        this.toCache = toCache;
+        addWeakListener(this);
+    }
+
+    @Override
+    public synchronized T get() {
+        if (!cacheActive) {
+            cache = toCache.get();
+            cacheActive = true;
+        }
+        return cache;
+    }
+
+    @Override
+    public boolean put(T value) {
+        return toCache.put(cache);
+    }
+
+    @Override
+    public synchronized void valueChanged(ValueChangeEvent<? extends T> e) {
+        cacheActive = false;
+    }
+}
diff --git a/src/org/openstreetmap/josm/data/preferences/CollectionProperty.java b/src/org/openstreetmap/josm/data/preferences/CollectionProperty.java
index 0b5c854..44f6864 100644
--- a/src/org/openstreetmap/josm/data/preferences/CollectionProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/CollectionProperty.java
@@ -24,11 +24,11 @@ public class CollectionProperty extends AbstractProperty<Collection<String>> {
 
     @Override
     public Collection<String> get() {
-        return Main.pref.getCollection(getKey(), getDefaultValue());
+        return getPreferences().getCollection(getKey(), getDefaultValue());
     }
 
     @Override
     public boolean put(Collection<String> value) {
-        return Main.pref.putCollection(getKey(), value);
+        return getPreferences().putCollection(getKey(), value);
     }
 }
diff --git a/src/org/openstreetmap/josm/data/preferences/ColorProperty.java b/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
index b597bb2..ade3a4d 100644
--- a/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
@@ -4,38 +4,73 @@ package org.openstreetmap.josm.data.preferences;
 import java.awt.Color;
 import java.util.Locale;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.Preferences.ColorKey;
+import org.openstreetmap.josm.tools.ColorHelper;
 
 /**
  * A property containing a {@link Color} value.
  * @since 5464
  */
-public class ColorProperty extends AbstractProperty<Color> implements ColorKey {
+public class ColorProperty extends AbstractToStringProperty<Color> {
 
     private final String name;
 
     /**
      * Constructs a new {@code ColorProperty}.
      * @param colName The color name
+     * @param defaultValue The default value as HTML string
+     */
+    public ColorProperty(String colName, String defaultValue) {
+        this(colName, defaultValue == null ? null : ColorHelper.html2color(defaultValue));
+    }
+
+    /**
+     * Constructs a new {@code ColorProperty}.
+     * @param colName The color name
      * @param defaultValue The default value
      */
     public ColorProperty(String colName, Color defaultValue) {
         super(getColorKey(colName), defaultValue);
         this.name = colName;
-        if (Main.pref != null) {
-            get();
-        }
+        getPreferences().registerColor(getColorKey(colName), colName);
     }
 
     @Override
     public Color get() {
-        return Main.pref.getColor(this);
+        // Removing this implementation breaks binary compatibility due to the way generics work
+        return super.get();
     }
 
     @Override
     public boolean put(Color value) {
-        return Main.pref.putColor(getColorKey(name), value);
+        // Removing this implementation breaks binary compatibility due to the way generics work
+        return super.put(value);
+    }
+
+    @Override
+    protected Color fromString(String string) {
+        return ColorHelper.html2color(string);
+    }
+
+    @Override
+    protected String toString(Color t) {
+        return ColorHelper.color2html(t, true);
+    }
+
+    /**
+     * Gets a color of which the value can be set.
+     * @param colorName the name of the color.
+     * @return The child property that inherits this value if it is not set.
+     */
+    public AbstractToStringProperty<Color> getChildColor(String colorName) {
+        return getChildProperty(getColorKey(colorName));
+    }
+
+    /**
+     * Gets the name this color was registered with.
+     * @return The name.
+     */
+    public String getName() {
+        return name;
     }
 
     /**
@@ -44,16 +79,11 @@ public class ColorProperty extends AbstractProperty<Color> implements ColorKey {
      * @return The color key for this property
      */
     public static String getColorKey(String colName) {
-        return colName == null ? null : colName.toLowerCase(Locale.ENGLISH).replaceAll("[^a-z0-9]+", ".");
-    }
-
-    @Override
-    public String getColorName() {
-        return name;
+        return colName == null ? null : "color." + colName.toLowerCase(Locale.ENGLISH).replaceAll("[^a-z0-9]+", ".");
     }
 
     @Override
-    public String getSpecialName() {
-        return null;
+    public String toString() {
+        return "ColorProperty [name=" + name + ", defaultValue=" + getDefaultValue() + "]";
     }
 }
diff --git a/src/org/openstreetmap/josm/data/preferences/DoubleProperty.java b/src/org/openstreetmap/josm/data/preferences/DoubleProperty.java
index 44ca4c2..a44066d 100644
--- a/src/org/openstreetmap/josm/data/preferences/DoubleProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/DoubleProperty.java
@@ -1,13 +1,11 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.preferences;
 
-import org.openstreetmap.josm.Main;
-
 /**
  * A property containing an {@code Double} value.
  * @since 3246
  */
-public class DoubleProperty extends AbstractProperty<Double> {
+public class DoubleProperty extends AbstractToStringProperty<Double> {
 
     /**
      * Constructs a new {@code DoubleProperty}.
@@ -20,12 +18,28 @@ public class DoubleProperty extends AbstractProperty<Double> {
 
     @Override
     public Double get() {
-        return Main.pref.getDouble(getKey(), getDefaultValue());
+        // Removing this implementation breaks binary compatibility
+        return super.get();
     }
 
     @Override
     public boolean put(Double value) {
-        return Main.pref.putDouble(getKey(), value);
+        // Removing this implementation breaks binary compatibility
+        return super.put(value);
+    }
+
+    @Override
+    protected Double fromString(String string) {
+        try {
+            return Double.valueOf(string);
+        } catch (NumberFormatException e) {
+            throw new InvalidPreferenceValueException(e);
+        }
+    }
+
+    @Override
+    protected String toString(Double t) {
+        return t.toString();
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/preferences/IntegerProperty.java b/src/org/openstreetmap/josm/data/preferences/IntegerProperty.java
index f15d082..36beb5a 100644
--- a/src/org/openstreetmap/josm/data/preferences/IntegerProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/IntegerProperty.java
@@ -7,7 +7,7 @@ import org.openstreetmap.josm.Main;
  * A property containing an {@code Integer} value.
  * @since 3246
  */
-public class IntegerProperty extends AbstractProperty<Integer> {
+public class IntegerProperty extends AbstractToStringProperty<Integer> {
 
     /**
      * Constructs a new {@code IntegerProperty}.
@@ -23,12 +23,28 @@ public class IntegerProperty extends AbstractProperty<Integer> {
 
     @Override
     public Integer get() {
-        return Main.pref.getInteger(getKey(), getDefaultValue());
+        // Removing this implementation breaks binary compatibility
+        return super.get();
     }
 
     @Override
     public boolean put(Integer value) {
-        return Main.pref.putInteger(getKey(), value);
+        // Removing this implementation breaks binary compatibility
+        return super.put(value);
+    }
+
+    @Override
+    protected Integer fromString(String string) {
+        try {
+            return Integer.valueOf(string);
+        } catch (NumberFormatException e) {
+            throw new InvalidPreferenceValueException(e);
+        }
+    }
+
+    @Override
+    protected String toString(Integer t) {
+        return t.toString();
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/preferences/LongProperty.java b/src/org/openstreetmap/josm/data/preferences/LongProperty.java
index d480e9e..689f354 100644
--- a/src/org/openstreetmap/josm/data/preferences/LongProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/LongProperty.java
@@ -1,14 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.preferences;
 
-import org.openstreetmap.josm.Main;
-
 /**
  * A property containing an {@code Long} value.
  * @since 10087
  *
  */
-public class LongProperty extends AbstractProperty<Long> {
+public class LongProperty extends AbstractToStringProperty<Long> {
 
     /**
      * Constructs a new {@code LongProperty}
@@ -17,19 +15,31 @@ public class LongProperty extends AbstractProperty<Long> {
      */
     public LongProperty(String key, long defaultValue) {
         super(key, defaultValue);
-        if (Main.pref != null) {
-            get();
-        }
     }
 
     @Override
     public Long get() {
-        return Main.pref.getLong(getKey(), getDefaultValue());
+        // Removing this implementation breaks binary compatibility
+        return super.get();
     }
 
     @Override
     public boolean put(Long value) {
-        return Main.pref.putLong(getKey(), value);
+        // Removing this implementation breaks binary compatibility
+        return super.put(value);
+    }
+
+    @Override
+    protected Long fromString(String string) {
+        try {
+            return Long.valueOf(string);
+        } catch (NumberFormatException e) {
+            throw new InvalidPreferenceValueException(e);
+        }
     }
 
+    @Override
+    protected String toString(Long t) {
+        return t.toString();
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java b/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java
index f247cde..80fd8d9 100644
--- a/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java
+++ b/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java
@@ -5,6 +5,7 @@ import java.io.PrintWriter;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Stream;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Version;
@@ -37,6 +38,15 @@ public class PreferencesWriter extends XmlWriter implements SettingVisitor {
      * @param settings preferences settings to write
      */
     public void write(Collection<Map.Entry<String, Setting<?>>> settings) {
+        write(settings.stream());
+    }
+
+    /**
+     * Write preferences.
+     *
+     * @param settings preferences settings to write as stream.
+     */
+    public void write(Stream<Map.Entry<String, Setting<?>>> settings) {
         out.write(String.format("<?xml version=\"1.0\" encoding=\"UTF-8\"?>%n"));
         String rootElement = defaults ? "preferences-defaults" : "preferences";
         out.write(String.format("<%s xmlns='%s/preferences-1.0'", rootElement, Main.getXMLBase()));
@@ -44,10 +54,10 @@ public class PreferencesWriter extends XmlWriter implements SettingVisitor {
             out.write(" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'");
         }
         out.write(String.format(" version='%d'>%n", Version.getInstance().getVersion()));
-        for (Map.Entry<String, Setting<?>> e : settings) {
+        settings.forEachOrdered(e -> {
             setKey(e.getKey());
             e.getValue().visit(this);
-        }
+        });
         out.write(String.format("</%s>%n", rootElement));
     }
 
diff --git a/src/org/openstreetmap/josm/data/preferences/StringProperty.java b/src/org/openstreetmap/josm/data/preferences/StringProperty.java
index 25e42a1..cab4539 100644
--- a/src/org/openstreetmap/josm/data/preferences/StringProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/StringProperty.java
@@ -1,12 +1,10 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.preferences;
 
-import org.openstreetmap.josm.Main;
-
 /**
  * A property containing an {@code String} value.
  */
-public class StringProperty extends AbstractProperty<String> {
+public class StringProperty extends AbstractToStringProperty<String> {
 
     /**
      * Constructs a new {@code StringProperty}.
@@ -15,18 +13,27 @@ public class StringProperty extends AbstractProperty<String> {
      */
     public StringProperty(String key, String defaultValue) {
         super(key, defaultValue);
-        if (Main.pref != null) {
-            get();
-        }
     }
 
     @Override
     public String get() {
-        return Main.pref.get(getKey(), getDefaultValue());
+        // Removing this implementation breaks binary compatibility
+        return super.get();
     }
 
     @Override
     public boolean put(String value) {
-        return Main.pref.put(getKey(), value);
+        // Removing this implementation breaks binary compatibility
+        return super.put(value);
+    }
+
+    @Override
+    protected String fromString(String string) {
+        return string;
+    }
+
+    @Override
+    protected String toString(String string) {
+        return string;
     }
 }
diff --git a/src/org/openstreetmap/josm/data/preferences/StrokeProperty.java b/src/org/openstreetmap/josm/data/preferences/StrokeProperty.java
new file mode 100644
index 0000000..fe0193a
--- /dev/null
+++ b/src/org/openstreetmap/josm/data/preferences/StrokeProperty.java
@@ -0,0 +1,111 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.preferences;
+
+import java.awt.BasicStroke;
+import java.util.Collections;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * A property that stores a {@link BasicStroke}.
+ * @author Michael Zangl
+ * @since 10874
+ */
+public class StrokeProperty extends AbstractToStringProperty<BasicStroke> {
+
+    /**
+     * Create a new stroke property from a string.
+     * @param key The key to use
+     * @param defaultValue The default stroke as string
+     */
+    public StrokeProperty(String key, String defaultValue) {
+        super(key, getFromString(defaultValue));
+    }
+
+    /**
+     * Create a new stroke property from a stroke object.
+     * @param key The key
+     * @param defaultStroke The default stroke.
+     */
+    public StrokeProperty(String key, BasicStroke defaultStroke) {
+        super(key, defaultStroke);
+    }
+
+    @Override
+    protected BasicStroke fromString(String string) {
+        return getFromString(string);
+    }
+
+    @Override
+    protected String toString(BasicStroke t) {
+        StringBuilder string = new StringBuilder();
+        string.append(t.getLineWidth());
+
+        float[] dashes = t.getDashArray();
+        if (dashes != null) {
+            for (float d : dashes) {
+                string.append(' ').append(d);
+            }
+        }
+
+        return string.toString();
+    }
+
+    /**
+     * Return s new BasicStroke object with given thickness and style
+     * @param code = 3.5 -> thickness=3.5px; 3.5 10 5 -> thickness=3.5px, dashed: 10px filled + 5px empty
+     * @return stroke for drawing
+     */
+    public static BasicStroke getFromString(String code) {
+        Pattern floatPattern = Pattern.compile("(\\.\\d+|\\d+(\\.\\d+)?)");
+
+        List<Double> captures = Pattern.compile("[^\\d.]+").splitAsStream(code)
+                .filter(s -> floatPattern.matcher(s).matches())
+                .map(Double::valueOf).collect(Collectors.toList());
+
+        double w = 1;
+        List<Double> dashes = Collections.emptyList();
+        if (!captures.isEmpty()) {
+            w = captures.get(0);
+            dashes = captures.subList(1, captures.size());
+        }
+
+        if (!dashes.isEmpty()) {
+            double sumAbs = dashes.stream().mapToDouble(Math::abs).sum();
+
+            if (sumAbs < 1e-1) {
+                Main.error("Error in stroke dash format (all zeros): " + code);
+                dashes = Collections.emptyList();
+            }
+        }
+
+        int cap;
+        int join;
+        if (w > 1) {
+            // thick stroke
+            cap = BasicStroke.CAP_ROUND;
+            join = BasicStroke.JOIN_ROUND;
+        } else {
+            // thin stroke
+            cap = BasicStroke.CAP_BUTT;
+            join = BasicStroke.JOIN_MITER;
+        }
+
+        return new BasicStroke((float) w, cap, join, 10.0f, toDashArray(dashes), 0.0f);
+    }
+
+    private static float[] toDashArray(List<Double> dashes) {
+        if (dashes.isEmpty()) {
+            return null;
+        } else {
+            float[] array = new float[dashes.size()];
+            for (int i = 0; i < array.length; i++) {
+                array[i] = (float) (double) dashes.get(i);
+            }
+            return array;
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/data/projection/AbstractProjection.java b/src/org/openstreetmap/josm/data/projection/AbstractProjection.java
index c9a5ebf..8129cbc 100644
--- a/src/org/openstreetmap/josm/data/projection/AbstractProjection.java
+++ b/src/org/openstreetmap/josm/data/projection/AbstractProjection.java
@@ -1,12 +1,18 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.projection;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.DoubleUnaryOperator;
+
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.ProjectionBounds;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.datum.Datum;
 import org.openstreetmap.josm.data.projection.proj.Proj;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
  * Implementation of the Projection interface that represents a coordinate reference system and delegates
@@ -115,12 +121,51 @@ public abstract class AbstractProjection implements Projection {
 
     @Override
     public LatLon eastNorth2latlon(EastNorth en) {
+        return eastNorth2latlon(en, LatLon::normalizeLon);
+    }
+
+    @Override
+    public LatLon eastNorth2latlonClamped(EastNorth en) {
+        LatLon ll = eastNorth2latlon(en, lon -> Utils.clamp(lon, -180, 180));
+        Bounds bounds = getWorldBoundsLatLon();
+        return new LatLon(Utils.clamp(ll.lat(), bounds.getMinLat(), bounds.getMaxLat()),
+                Utils.clamp(ll.lon(), bounds.getMinLon(), bounds.getMaxLon()));
+    }
+
+    private LatLon eastNorth2latlon(EastNorth en, DoubleUnaryOperator normalizeLon) {
         double[] latlonRad = proj.invproject((en.east() * toMeter - x0) / ellps.a / k0, (en.north() * toMeter - y0) / ellps.a / k0);
-        LatLon ll = new LatLon(Math.toDegrees(latlonRad[0]), LatLon.normalizeLon(Math.toDegrees(latlonRad[1]) + lon0 + pm));
+        double lon = Math.toDegrees(latlonRad[1]) + lon0 + pm;
+        LatLon ll = new LatLon(Math.toDegrees(latlonRad[0]), normalizeLon.applyAsDouble(lon));
         return datum.toWGS84(ll);
     }
 
     @Override
+    public Map<ProjectionBounds, Projecting> getProjectingsForArea(ProjectionBounds area) {
+        if (proj.lonIsLinearToEast()) {
+            //FIXME: Respect datum?
+            // wrap the wrold around
+            Bounds bounds = getWorldBoundsLatLon();
+            double minEast = latlon2eastNorth(bounds.getMin()).east();
+            double maxEast = latlon2eastNorth(bounds.getMax()).east();
+            double dEast = maxEast - minEast;
+            if ((area.minEast < minEast || area.maxEast > maxEast) && dEast > 0) {
+                // We could handle the dEast < 0 case but we don't need it atm.
+                int minChunk = (int) Math.floor((area.minEast - minEast) / dEast);
+                int maxChunk = (int) Math.floor((area.maxEast - minEast) / dEast);
+                HashMap<ProjectionBounds, Projecting> ret = new HashMap<>();
+                for (int chunk = minChunk; chunk <= maxChunk; chunk++) {
+                    ret.put(new ProjectionBounds(Math.max(area.minEast, minEast + chunk * dEast), area.minNorth,
+                            Math.min(area.maxEast, maxEast + chunk * dEast), area.maxNorth),
+                            new ShiftedProjecting(this, new EastNorth(-chunk * dEast, 0)));
+                }
+                return ret;
+            }
+        }
+
+        return Collections.singletonMap(area, this);
+    }
+
+    @Override
     public double getDefaultZoomInPPD() {
         // this will set the map scaler to about 1000 m
         return 10;
@@ -178,4 +223,9 @@ public abstract class AbstractProjection implements Projection {
         }
         return projectionBoundsBox;
     }
+
+    @Override
+    public Projection getBaseProjection() {
+        return this;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/projection/CustomProjection.java b/src/org/openstreetmap/josm/data/projection/CustomProjection.java
index 6574b0f..8a009b5 100644
--- a/src/org/openstreetmap/josm/data/projection/CustomProjection.java
+++ b/src/org/openstreetmap/josm/data/projection/CustomProjection.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.data.projection;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.List;
@@ -31,6 +32,7 @@ import org.openstreetmap.josm.data.projection.proj.Mercator;
 import org.openstreetmap.josm.data.projection.proj.Proj;
 import org.openstreetmap.josm.data.projection.proj.ProjParameters;
 import org.openstreetmap.josm.tools.Utils;
+import org.openstreetmap.josm.tools.bugreport.BugReport;
 
 /**
  * Custom projection.
@@ -63,6 +65,8 @@ public class CustomProjection extends AbstractProjection {
     private double metersPerUnitWMTS;
     private String axis = "enu"; // default axis orientation is East, North, Up
 
+    private static final List<String> LON_LAT_VALUES = Arrays.asList("longlat", "latlon", "latlong");
+
     /**
      * Proj4-like projection parameters. See <a href="https://trac.osgeo.org/proj/wiki/GenParms">reference</a>.
      * @since 7370 (public)
@@ -154,6 +158,8 @@ public class CustomProjection extends AbstractProjection {
             for (Param p : Param.values()) {
                 paramsByKey.put(p.key, p);
             }
+            // alias
+            paramsByKey.put("k", Param.k_0);
         }
 
         Param(String key, boolean hasValue) {
@@ -162,16 +168,23 @@ public class CustomProjection extends AbstractProjection {
         }
     }
 
-    private enum Polarity { NORTH, SOUTH }
+    private enum Polarity {
+        NORTH(LatLon.NORTH_POLE),
+        SOUTH(LatLon.SOUTH_POLE);
 
-    private EnumMap<Polarity, EastNorth> polesEN;
-    private EnumMap<Polarity, LatLon> polesLL;
-    {
-        polesLL = new EnumMap<>(Polarity.class);
-        polesLL.put(Polarity.NORTH, LatLon.NORTH_POLE);
-        polesLL.put(Polarity.SOUTH, LatLon.SOUTH_POLE);
+        private final LatLon latlon;
+
+        Polarity(LatLon latlon) {
+            this.latlon = latlon;
+        }
+
+        private LatLon getLatLon() {
+            return latlon;
+        }
     }
 
+    private EnumMap<Polarity, EastNorth> polesEN;
+
     /**
      * Constructs a new empty {@code CustomProjection}.
      */
@@ -208,7 +221,7 @@ public class CustomProjection extends AbstractProjection {
             try {
                 update(null);
             } catch (ProjectionConfigurationException ex1) {
-                throw new RuntimeException(ex1);
+                throw BugReport.intercept(ex1).put("name", name).put("code", code).put("pref", pref);
             }
         }
     }
@@ -239,9 +252,9 @@ public class CustomProjection extends AbstractProjection {
             // "utm" is a shortcut for a set of parameters
             if ("utm".equals(parameters.get(Param.proj.key))) {
                 String zoneStr = parameters.get(Param.zone.key);
-                Integer zone;
                 if (zoneStr == null)
                     throw new ProjectionConfigurationException(tr("UTM projection (''+proj=utm'') requires ''+zone=...'' parameter."));
+                Integer zone;
                 try {
                     zone = Integer.valueOf(zoneStr);
                 } catch (NumberFormatException e) {
@@ -331,42 +344,38 @@ public class CustomProjection extends AbstractProjection {
      */
     public static Map<String, String> parseParameterList(String pref, boolean ignoreUnknownParameter) throws ProjectionConfigurationException {
         Map<String, String> parameters = new HashMap<>();
-        String[] parts = Utils.WHITE_SPACES_PATTERN.split(pref.trim());
         if (pref.trim().isEmpty()) {
-            parts = new String[0];
+            return parameters;
         }
+
+        Pattern keyPattern = Pattern.compile("\\+(?<key>[a-zA-Z0-9_]+)(=(?<value>.*))?");
+        String[] parts = Utils.WHITE_SPACES_PATTERN.split(pref.trim());
         for (String part : parts) {
-            if (part.isEmpty() || part.charAt(0) != '+')
-                throw new ProjectionConfigurationException(tr("Parameter must begin with a ''+'' character (found ''{0}'')", part));
-            Matcher m = Pattern.compile("\\+([a-zA-Z0-9_]+)(=(.*))?").matcher(part);
+            Matcher m = keyPattern.matcher(part);
             if (m.matches()) {
-                String key = m.group(1);
-                // alias
-                if ("k".equals(key)) {
-                    key = Param.k_0.key;
+                String key = m.group("key");
+                String value = m.group("value");
+                // some aliases
+                if (key.equals(Param.proj.key) && LON_LAT_VALUES.contains(value)) {
+                    value = "lonlat";
                 }
-                String value = null;
-                if (m.groupCount() >= 3) {
-                    value = m.group(3);
-                    // some aliases
-                    if (key.equals(Param.proj.key)) {
-                        if ("longlat".equals(value) || "latlon".equals(value) || "latlong".equals(value)) {
-                            value = "lonlat";
-                        }
-                    }
-                }
-                if (!Param.paramsByKey.containsKey(key)) {
+                Param param = Param.paramsByKey.get(key);
+                if (param == null) {
                     if (!ignoreUnknownParameter)
                         throw new ProjectionConfigurationException(tr("Unknown parameter: ''{0}''.", key));
                 } else {
-                    if (Param.paramsByKey.get(key).hasValue && value == null)
+                    if (param.hasValue && value == null)
                         throw new ProjectionConfigurationException(tr("Value expected for parameter ''{0}''.", key));
-                    if (!Param.paramsByKey.get(key).hasValue && value != null)
+                    if (!param.hasValue && value != null)
                         throw new ProjectionConfigurationException(tr("No value expected for parameter ''{0}''.", key));
+                    key = param.key; // To be really sure, we might have an alias.
                 }
                 parameters.put(key, value);
-            } else
+            } else if (!part.startsWith("+")) {
+                throw new ProjectionConfigurationException(tr("Parameter must begin with a ''+'' character (found ''{0}'')", part));
+            } else {
                 throw new ProjectionConfigurationException(tr("Unexpected parameter format (''{0}'')", part));
+            }
         }
         return parameters;
     }
@@ -400,6 +409,12 @@ public class CustomProjection extends AbstractProjection {
         return parameters;
     }
 
+    /**
+     * Gets the ellipsoid
+     * @param parameters The parameters to get the value from
+     * @return The Ellipsoid as specified with the parameters
+     * @throws ProjectionConfigurationException in case of invalid parameters
+     */
     public Ellipsoid parseEllipsoid(Map<String, String> parameters) throws ProjectionConfigurationException {
         String code = parameters.get(Param.ellps.key);
         if (code != null) {
@@ -439,6 +454,13 @@ public class CustomProjection extends AbstractProjection {
         return null;
     }
 
+    /**
+     * Gets the datum
+     * @param parameters The parameters to get the value from
+     * @param ellps The ellisoid that was previously computed
+     * @return The Datum as specified with the parameters
+     * @throws ProjectionConfigurationException in case of invalid parameters
+     */
     public Datum parseDatum(Map<String, String> parameters, Ellipsoid ellps) throws ProjectionConfigurationException {
         String datumId = parameters.get(Param.datum.key);
         if (datumId != null) {
@@ -518,6 +540,13 @@ public class CustomProjection extends AbstractProjection {
                     towgs84Param.get(6));
     }
 
+    /**
+     * Gets a projection using the given ellipsoid
+     * @param parameters Additional parameters
+     * @param ellps The {@link Ellipsoid}
+     * @return The projection
+     * @throws ProjectionConfigurationException in case of invalid parameters
+     */
     public Proj parseProjection(Map<String, String> parameters, Ellipsoid ellps) throws ProjectionConfigurationException {
         String id = parameters.get(Param.proj.key);
         if (id == null) throw new ProjectionConfigurationException(tr("Projection required (+proj=*)"));
@@ -577,6 +606,13 @@ public class CustomProjection extends AbstractProjection {
         return proj;
     }
 
+    /**
+     * Converts a string to a bounds object
+     * @param boundsStr The string as comma separated list of angles.
+     * @return The bounds.
+     * @throws ProjectionConfigurationException in case of invalid parameter
+     * @see CustomProjection#parseAngle(String, String)
+     */
     public static Bounds parseBounds(String boundsStr) throws ProjectionConfigurationException {
         String[] numStr = boundsStr.split(",");
         if (numStr.length != 4)
@@ -606,65 +642,44 @@ public class CustomProjection extends AbstractProjection {
         }
     }
 
+    /**
+     * Convert an angle string to a double value
+     * @param angleStr The string. e.g. -1.1 or 50d 10' 3"
+     * @param parameterName Only for error message.
+     * @return The angle value, in degrees.
+     * @throws ProjectionConfigurationException in case of invalid parameter
+     */
     public static double parseAngle(String angleStr, String parameterName) throws ProjectionConfigurationException {
-        String s = angleStr;
+        final String floatPattern = "(\\d+(\\.\\d*)?)";
+        // pattern does all error handling.
+        Matcher in = Pattern.compile("^(?<neg1>-)?"
+                + "(?=\\d)(?:(?<single>" + floatPattern + ")|"
+                + "((?<degree>" + floatPattern + ")d)?"
+                + "((?<minutes>" + floatPattern + ")\')?"
+                + "((?<seconds>" + floatPattern + ")\")?)"
+                + "(?:[NE]|(?<neg2>[SW]))?$").matcher(angleStr);
+
+        if (!in.find()) {
+            throw new ProjectionConfigurationException(
+                    tr("Unable to parse value ''{1}'' of parameter ''{0}'' as coordinate value.", parameterName, angleStr));
+        }
+
         double value = 0;
-        boolean neg = false;
-        Matcher m = Pattern.compile("^-").matcher(s);
-        if (m.find()) {
-            neg = true;
-            s = s.substring(m.end());
+        if (in.group("single") != null) {
+            value += Double.parseDouble(in.group("single"));
         }
-        final String floatPattern = "(\\d+(\\.\\d*)?)";
-        boolean dms = false;
-        double deg = 0.0, min = 0.0, sec = 0.0;
-        // degrees
-        m = Pattern.compile("^"+floatPattern+"d").matcher(s);
-        if (m.find()) {
-            s = s.substring(m.end());
-            deg = Double.parseDouble(m.group(1));
-            dms = true;
-        }
-        // minutes
-        m = Pattern.compile("^"+floatPattern+"'").matcher(s);
-        if (m.find()) {
-            s = s.substring(m.end());
-            min = Double.parseDouble(m.group(1));
-            dms = true;
-        }
-        // seconds
-        m = Pattern.compile("^"+floatPattern+"\"").matcher(s);
-        if (m.find()) {
-            s = s.substring(m.end());
-            sec = Double.parseDouble(m.group(1));
-            dms = true;
-        }
-        // plain number (in degrees)
-        if (dms) {
-            value = deg + (min/60.0) + (sec/3600.0);
-        } else {
-            m = Pattern.compile("^"+floatPattern).matcher(s);
-            if (m.find()) {
-                s = s.substring(m.end());
-                value += Double.parseDouble(m.group(1));
-            }
+        if (in.group("degree") != null) {
+            value += Double.parseDouble(in.group("degree"));
         }
-        m = Pattern.compile("^(N|E)", Pattern.CASE_INSENSITIVE).matcher(s);
-        if (m.find()) {
-            s = s.substring(m.end());
-        } else {
-            m = Pattern.compile("^(S|W)", Pattern.CASE_INSENSITIVE).matcher(s);
-            if (m.find()) {
-                s = s.substring(m.end());
-                neg = !neg;
-            }
+        if (in.group("minutes") != null) {
+            value += Double.parseDouble(in.group("minutes")) / 60;
         }
-        if (neg) {
-            value = -value;
+        if (in.group("seconds") != null) {
+            value += Double.parseDouble(in.group("seconds")) / 3600;
         }
-        if (!s.isEmpty()) {
-            throw new ProjectionConfigurationException(
-                    tr("Unable to parse value ''{1}'' of parameter ''{0}'' as coordinate value.", parameterName, angleStr));
+
+        if (in.group("neg1") != null ^ in.group("neg2") != null) {
+            value = -value;
         }
         return value;
     }
@@ -683,27 +698,39 @@ public class CustomProjection extends AbstractProjection {
 
     @Override
     public String toCode() {
-        return code != null ? code : "proj:" + (pref == null ? "ERROR" : pref);
+        if (code != null) {
+            return code;
+        } else if (pref != null) {
+            return "proj:" + pref;
+        } else {
+            return "proj:ERROR";
+        }
     }
 
     @Override
     public String getCacheDirectoryName() {
-        return cacheDir != null ? cacheDir : "proj-"+Utils.md5Hex(pref == null ? "" : pref).substring(0, 4);
+        if (cacheDir != null) {
+            return cacheDir;
+        } else {
+            return "proj-" + Utils.md5Hex(pref == null ? "" : pref).substring(0, 4);
+        }
     }
 
     @Override
     public Bounds getWorldBoundsLatLon() {
-        if (bounds != null) return bounds;
-        Bounds ab = proj.getAlgorithmBounds();
-        if (ab != null) {
-            double minlon = Math.max(ab.getMinLon() + lon0 + pm, -180);
-            double maxlon = Math.min(ab.getMaxLon() + lon0 + pm, 180);
-            return new Bounds(ab.getMinLat(), minlon, ab.getMaxLat(), maxlon, false);
-        } else {
-            return new Bounds(
-                new LatLon(-90.0, -180.0),
-                new LatLon(90.0, 180.0));
+        if (bounds == null) {
+            Bounds ab = proj.getAlgorithmBounds();
+            if (ab != null) {
+                double minlon = Math.max(ab.getMinLon() + lon0 + pm, -180);
+                double maxlon = Math.min(ab.getMaxLon() + lon0 + pm, 180);
+                bounds = new Bounds(ab.getMinLat(), minlon, ab.getMaxLat(), maxlon, false);
+            } else {
+                bounds = new Bounds(
+                    new LatLon(-90.0, -180.0),
+                    new LatLon(90.0, 180.0));
+            }
         }
+        return bounds;
     }
 
     @Override
@@ -804,7 +831,7 @@ public class CustomProjection extends AbstractProjection {
             polesEN = new EnumMap<>(Polarity.class);
             for (Polarity p : Polarity.values()) {
                 polesEN.put(p, null);
-                LatLon ll = polesLL.get(p);
+                LatLon ll = p.getLatLon();
                 try {
                     EastNorth enPole = latlon2eastNorth(ll);
                     if (enPole.isValid()) {
@@ -852,7 +879,7 @@ public class CustomProjection extends AbstractProjection {
         for (Polarity p : Polarity.values()) {
             EastNorth pole = getPole(p);
             if (pole != null && r.contains(pole)) {
-                result.extend(polesLL.get(p));
+                result.extend(p.getLatLon());
             }
         }
         return result;
diff --git a/src/org/openstreetmap/josm/data/projection/Projecting.java b/src/org/openstreetmap/josm/data/projection/Projecting.java
new file mode 100644
index 0000000..80d0101
--- /dev/null
+++ b/src/org/openstreetmap/josm/data/projection/Projecting.java
@@ -0,0 +1,50 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.projection;
+
+import java.util.Map;
+
+import org.openstreetmap.josm.data.ProjectionBounds;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+
+/**
+ * Classes implementing this are able to project between screen (east/north) and {@link LatLon} coordinates.
+ * <p>
+ * Each instance is backed by a base projection but may e.g. offset the resulting position.
+ * @author Michael Zangl
+ * @since 10805
+ */
+public interface Projecting {
+
+    /**
+     * Convert from lat/lon to easting/northing.
+     *
+     * @param ll the geographical point to convert (in WGS84 lat/lon)
+     * @return the corresponding east/north coordinates
+     */
+    EastNorth latlon2eastNorth(LatLon ll);
+
+    /**
+     * Convert a east/north coordinate to the {@link LatLon} coordinate.
+     * This method clamps the lat/lon coordinate to the nearest point in the world bounds.
+     * @param en east/north
+     * @return The lat/lon coordinate.
+     */
+    LatLon eastNorth2latlonClamped(EastNorth en);
+
+    /**
+     * Gets the base projection instance used.
+     * @return The projection.
+     */
+    Projection getBaseProjection();
+
+    /**
+     * Returns an map or (subarea, projecting) paris that contains projecting instances to convert the coordinates inside the given area.
+     * This can be used by projections to support continuous projections.
+     *
+     * It is possible that the area covered by the map is bigger than the one given as area. There may be holes.
+     * @param area The base area
+     * @return a map of non-overlapping {@link ProjectionBounds} instances mapped to the {@link Projecting} object to use for that area.
+     */
+    Map<ProjectionBounds, Projecting> getProjectingsForArea(ProjectionBounds area);
+}
diff --git a/src/org/openstreetmap/josm/data/projection/Projection.java b/src/org/openstreetmap/josm/data/projection/Projection.java
index b2bd016..e2739d1 100644
--- a/src/org/openstreetmap/josm/data/projection/Projection.java
+++ b/src/org/openstreetmap/josm/data/projection/Projection.java
@@ -13,7 +13,7 @@ import org.openstreetmap.josm.data.coor.LatLon;
  * The conversion from east/north to the screen coordinates is simply a scale
  * factor and x/y offset.
  */
-public interface Projection {
+public interface Projection extends Projecting {
     /**
      * The default scale factor in east/north units per pixel
      * ({@link org.openstreetmap.josm.gui.NavigatableComponent#getState})).
@@ -23,14 +23,6 @@ public interface Projection {
     double getDefaultZoomInPPD();
 
     /**
-     * Convert from lat/lon to easting/northing.
-     *
-     * @param ll the geographical point to convert (in WGS84 lat/lon)
-     * @return the corresponding east/north coordinates
-     */
-    EastNorth latlon2eastNorth(LatLon ll);
-
-    /**
      * Convert from easting/norting to lat/lon.
      *
      * @param en the geographical point to convert (in projected coordinates)
@@ -110,4 +102,13 @@ public interface Projection {
      * @return true if natural order of coordinates is North East, false if East North
      */
     boolean switchXY();
+
+    /**
+     * Gets the object used as cache identifier when caching results of this projection.
+     * @return The object to use as cache key
+     * @since 10827
+     */
+    default Object getCacheKey() {
+        return this;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/projection/ShiftedProjecting.java b/src/org/openstreetmap/josm/data/projection/ShiftedProjecting.java
new file mode 100644
index 0000000..3b30174
--- /dev/null
+++ b/src/org/openstreetmap/josm/data/projection/ShiftedProjecting.java
@@ -0,0 +1,55 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.projection;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.openstreetmap.josm.data.ProjectionBounds;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+
+/**
+ * This is a projecting instance that shifts the projection by a given eastnorth offset.
+ * @author Michael Zangl
+ * @since 10805
+ */
+public class ShiftedProjecting implements Projecting {
+    private final Projecting base;
+    private final EastNorth offset;
+
+    /**
+     * Create a new {@link ShiftedProjecting}
+     * @param base The base to use
+     * @param offset The offset to move base. Subtracted when converting lat/lon->east/north.
+     */
+    public ShiftedProjecting(Projecting base, EastNorth offset) {
+        this.base = base;
+        this.offset = offset;
+    }
+
+    @Override
+    public EastNorth latlon2eastNorth(LatLon ll) {
+        return base.latlon2eastNorth(ll).add(offset);
+    }
+
+    @Override
+    public LatLon eastNorth2latlonClamped(EastNorth en) {
+        return base.eastNorth2latlonClamped(en.subtract(offset));
+    }
+
+    @Override
+    public Projection getBaseProjection() {
+        return base.getBaseProjection();
+    }
+
+    @Override
+    public Map<ProjectionBounds, Projecting> getProjectingsForArea(ProjectionBounds area) {
+        Map<ProjectionBounds, Projecting> forArea = base
+                .getProjectingsForArea(new ProjectionBounds(area.getMin().subtract(offset), area.getMax().subtract(offset)));
+        HashMap<ProjectionBounds, Projecting> ret = new HashMap<>();
+        forArea.forEach((pb, projecting) -> ret.put(
+                new ProjectionBounds(pb.getMin().add(offset), pb.getMax().add(offset)),
+                new ShiftedProjecting(projecting, offset)));
+        return ret;
+    }
+}
diff --git a/src/org/openstreetmap/josm/data/projection/proj/Mercator.java b/src/org/openstreetmap/josm/data/projection/proj/Mercator.java
index 10d61ca..592d9ef 100644
--- a/src/org/openstreetmap/josm/data/projection/proj/Mercator.java
+++ b/src/org/openstreetmap/josm/data/projection/proj/Mercator.java
@@ -119,4 +119,9 @@ public class Mercator extends AbstractProj implements IScaleFactorProvider {
     public double getScaleFactor() {
         return scaleFactor;
     }
+
+    @Override
+    public boolean lonIsLinearToEast() {
+        return true;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/projection/proj/ObliqueMercator.java b/src/org/openstreetmap/josm/data/projection/proj/ObliqueMercator.java
index 3d66cf8..3f0877e 100644
--- a/src/org/openstreetmap/josm/data/projection/proj/ObliqueMercator.java
+++ b/src/org/openstreetmap/josm/data/projection/proj/ObliqueMercator.java
@@ -158,20 +158,20 @@ public class ObliqueMercator extends AbstractProj implements ICentralMeridianPro
     /**
      * Constants used in the transformation.
      */
-    private double b, a, e;
+    private double b, e;
 
     /**
-     * Convenience value equal to {@link #a} / {@link #b}.
+     * Convenience value equal to {@code a} / {@link #b}.
      */
     private double arb;
 
     /**
-     * Convenience value equal to {@link #a}×{@link #b}.
+     * Convenience value equal to {@code a}×{@link #b}.
      */
     private double ab;
 
     /**
-     * Convenience value equal to {@link #b} / {@link #a}.
+     * Convenience value equal to {@link #b} / {@code a}.
      */
     private double bra;
 
@@ -236,7 +236,7 @@ public class ObliqueMercator extends AbstractProj implements ICentralMeridianPro
         final double con = 1. - e2 * sinph0 * sinph0;
         double temp = cosph0 * cosph0;
         b = Math.sqrt(1.0 + e2 * (temp * temp) / (1.0 - e2));
-        a = b * com / con;
+        double a = b * com / con;
         final double d = b * com / (cosph0 * Math.sqrt(con));
         double f = d * d - 1.0;
         if (f < 0.0) {
@@ -413,14 +413,14 @@ public class ObliqueMercator extends AbstractProj implements ICentralMeridianPro
         double vp = Math.sin(bra * u);
         double up = (vp * cosgamma0 + sp * singamma0) / (0.5 * (qp + temp));
         if (Math.abs(Math.abs(up) - 1.0) < EPSILON) {
-            x = 0.0;
-            y = up < 0.0 ? -Math.PI / 2.0 : Math.PI / 2.0;
+            return new double[] {
+                up < 0.0 ? -(Math.PI / 2.0) : (Math.PI / 2.0),
+                0.0};
         } else {
-            y = Math.pow(e / Math.sqrt((1. + up) / (1. - up)), 1.0 / b);  //calculate t
-            y = cphi2(y);
-            x = -Math.atan2(sp * cosgamma0 - vp * singamma0, Math.cos(bra * u)) / b;
+            return new double[] {
+                cphi2(Math.pow(e / Math.sqrt((1. + up) / (1. - up)), 1.0 / b)), //calculate t
+                -Math.atan2(sp * cosgamma0 - vp * singamma0, Math.cos(bra * u)) / b};
         }
-        return new double[] {y, x};
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/data/projection/proj/Proj.java b/src/org/openstreetmap/josm/data/projection/proj/Proj.java
index fa9b3fe..0dcca47 100644
--- a/src/org/openstreetmap/josm/data/projection/proj/Proj.java
+++ b/src/org/openstreetmap/josm/data/projection/proj/Proj.java
@@ -90,4 +90,14 @@ public interface Proj {
      * @return true, if it is geographic
      */
     boolean isGeographic();
+
+    /**
+     * Checks wether the result of projecting a lon coordinate only has a linear relation to the east coordinate and
+     * is not related to lat/north at all.
+     * @return <code>true</code> if lon has a linear relationship to east only.
+     * @since 10805
+     */
+    default boolean lonIsLinearToEast() {
+        return false;
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/validation/OsmValidator.java b/src/org/openstreetmap/josm/data/validation/OsmValidator.java
index fc4da6b..86dad1e 100644
--- a/src/org/openstreetmap/josm/data/validation/OsmValidator.java
+++ b/src/org/openstreetmap/josm/data/validation/OsmValidator.java
@@ -5,9 +5,7 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.io.File;
 import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
@@ -182,7 +180,7 @@ public final class OsmValidator {
 
     private static void loadIgnoredErrors() {
         ignoredErrors.clear();
-        if (Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true)) {
+        if (ValidatorPreference.PREF_USE_IGNORE.get()) {
             Path path = Paths.get(getValidatorDir()).resolve("ignorederrors");
             if (Files.exists(path)) {
                 try {
@@ -205,8 +203,7 @@ public final class OsmValidator {
     }
 
     public static void saveIgnoredErrors() {
-        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(
-                new File(getValidatorDir(), "ignorederrors")), StandardCharsets.UTF_8), false)) {
+        try (PrintWriter out = new PrintWriter(new File(getValidatorDir(), "ignorederrors"), StandardCharsets.UTF_8.name())) {
             for (String e : ignoredErrors) {
                 out.println(e);
             }
@@ -216,7 +213,7 @@ public final class OsmValidator {
     }
 
     public static synchronized void initializeErrorLayer() {
-        if (!Main.pref.getBoolean(ValidatorPreference.PREF_LAYER, true))
+        if (!ValidatorPreference.PREF_LAYER.get())
             return;
         if (errorLayer == null) {
             errorLayer = new ValidatorLayer();
diff --git a/src/org/openstreetmap/josm/data/validation/Severity.java b/src/org/openstreetmap/josm/data/validation/Severity.java
index 70ac073..e377b24 100644
--- a/src/org/openstreetmap/josm/data/validation/Severity.java
+++ b/src/org/openstreetmap/josm/data/validation/Severity.java
@@ -7,16 +7,17 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.awt.Color;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 
 /** The error severity */
 public enum Severity {
     // CHECKSTYLE.OFF: SingleSpaceSeparator
     /** Error messages */
-    ERROR(tr("Errors"), /* ICON(data/) */"error",       Main.pref.getColor(marktr("validation error"), Color.RED)),
+    ERROR(tr("Errors"), /* ICON(data/) */"error",       new ColorProperty(marktr("validation error"), Color.RED).get()),
     /** Warning messages */
-    WARNING(tr("Warnings"), /* ICON(data/) */"warning", Main.pref.getColor(marktr("validation warning"), Color.YELLOW)),
+    WARNING(tr("Warnings"), /* ICON(data/) */"warning", new ColorProperty(marktr("validation warning"), Color.YELLOW).get()),
     /** Other messages */
-    OTHER(tr("Other"), /* ICON(data/) */"other",        Main.pref.getColor(marktr("validation other"), Color.CYAN));
+    OTHER(tr("Other"), /* ICON(data/) */"other",        new ColorProperty(marktr("validation other"), Color.CYAN).get());
     // CHECKSTYLE.ON: SingleSpaceSeparator
 
     /** Description of the severity code */
diff --git a/src/org/openstreetmap/josm/data/validation/TestError.java b/src/org/openstreetmap/josm/data/validation/TestError.java
index d9d86a7..9379629 100644
--- a/src/org/openstreetmap/josm/data/validation/TestError.java
+++ b/src/org/openstreetmap/josm/data/validation/TestError.java
@@ -268,6 +268,10 @@ public class TestError implements Comparable<TestError>, DataSetListener {
         return tester;
     }
 
+    /**
+     * Set the tester that raised the error.
+     * @param tester te tester
+     */
     public void setTester(Test tester) {
         this.tester = tester;
     }
diff --git a/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java b/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
index fc87ef0..d8b75b1 100644
--- a/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
+++ b/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
@@ -156,19 +156,19 @@ public final class DomainValidator extends AbstractValidator {
         if (domain == null) {
             return false;
         }
-        domain = unicodeToASCII(domain);
+        String asciiDomain = unicodeToASCII(domain);
         // hosts must be equally reachable via punycode and Unicode
         // Unicode is never shorter than punycode, so check punycode
         // if domain did not convert, then it will be caught by ASCII
         // checks in the regexes below
-        if (domain.length() > MAX_DOMAIN_LENGTH) {
+        if (asciiDomain.length() > MAX_DOMAIN_LENGTH) {
             return false;
         }
-        String[] groups = domainRegex.match(domain);
+        String[] groups = domainRegex.match(asciiDomain);
         if (groups != null && groups.length > 0) {
             return isValidTld(groups[0]);
         }
-        return allowLocal && hostnameRegex.isValid(domain);
+        return allowLocal && hostnameRegex.isValid(asciiDomain);
     }
 
     @Override
@@ -182,17 +182,17 @@ public final class DomainValidator extends AbstractValidator {
         if (domain == null) {
             return false;
         }
-        domain = unicodeToASCII(domain);
+        String asciiDomain = unicodeToASCII(domain);
         // hosts must be equally reachable via punycode and Unicode
         // Unicode is never shorter than punycode, so check punycode
         // if domain did not convert, then it will be caught by ASCII
         // checks in the regexes below
-        if (domain.length() > MAX_DOMAIN_LENGTH) {
+        if (asciiDomain.length() > MAX_DOMAIN_LENGTH) {
             return false;
         }
-        String[] groups = domainRegex.match(domain);
+        String[] groups = domainRegex.match(asciiDomain);
         return (groups != null && groups.length > 0)
-                || hostnameRegex.isValid(domain);
+                || hostnameRegex.isValid(asciiDomain);
     }
 
     /**
@@ -203,13 +203,13 @@ public final class DomainValidator extends AbstractValidator {
      * @return true if the parameter is a TLD
      */
     public boolean isValidTld(String tld) {
-        tld = unicodeToASCII(tld);
-        if (allowLocal && isValidLocalTld(tld)) {
+        String asciiTld = unicodeToASCII(tld);
+        if (allowLocal && isValidLocalTld(asciiTld)) {
             return true;
         }
-        return isValidInfrastructureTld(tld)
-                || isValidGenericTld(tld)
-                || isValidCountryCodeTld(tld);
+        return isValidInfrastructureTld(asciiTld)
+                || isValidGenericTld(asciiTld)
+                || isValidCountryCodeTld(asciiTld);
     }
 
     /**
@@ -291,7 +291,7 @@ public final class DomainValidator extends AbstractValidator {
 
     // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search
     private static final String[] GENERIC_TLDS = new String[] {
-        // Taken from Version 2016081100, Last Updated Thu Aug 11 07:07:01 2016 UTC
+        // Taken from Version 2016083001, Last Updated Wed Aug 31 07:07:01 2016 UTC
         "aaa", // aaa American Automobile Association, Inc.
         "aarp", // aarp AARP
         "abarth", // abarth Fiat Chrysler Automobiles N.V.
@@ -320,6 +320,7 @@ public final class DomainValidator extends AbstractValidator {
         "agakhan", // agakhan Fondation Aga Khan (Aga Khan Foundation)
         "agency", // agency Steel Falls, LLC
         "aig", // aig American International Group, Inc.
+        "aigo", // aigo aigo Digital Technology Co,Ltd.
         "airbus", // airbus Airbus S.A.S.
         "airforce", // airforce United TLD Holdco Ltd.
         "airtel", // airtel Bharti Airtel Limited
@@ -351,6 +352,7 @@ public final class DomainValidator extends AbstractValidator {
         "army", // army United TLD Holdco Ltd.
         "art", // art UK Creative Ideas Limited
         "arte", // arte Association Relative à la Télévision Européenne G.E.I.E.
+        "asda", // asda Wal-Mart Stores, Inc.
         "asia", // asia DotAsia Organisation Ltd.
         "associates", // associates Baxter Hill, LLC
         "athleta", // athleta The Gap, Inc.
@@ -359,6 +361,7 @@ public final class DomainValidator extends AbstractValidator {
         "audi", // audi AUDI Aktiengesellschaft
         "audible", // audible Amazon Registry Service, Inc.
         "audio", // audio Uniregistry, Corp.
+        "auspost", // auspost Australian Postal Corporation
         "author", // author Amazon Registry Services, Inc.
         "auto", // auto Uniregistry, Corp.
         "autos", // autos DERAutos, LLC
@@ -573,6 +576,7 @@ public final class DomainValidator extends AbstractValidator {
         "discount", // discount Holly Hill, LLC
         "discover", // discover Discover Financial Services
         "dish", // dish Dish DBS Corporation
+        "diy", // diy Lifestyle Domain Holdings, Inc.
         "dnp", // dnp Dai Nippon Printing Co., Ltd.
         "docs", // docs Charleston Road Registry Inc.
         "doctor", // doctor Brice Trail, LLC
@@ -593,6 +597,7 @@ public final class DomainValidator extends AbstractValidator {
         "dvag", // dvag Deutsche Vermögensberatung Aktiengesellschaft DVAG
         "earth", // earth Interlink Co., Ltd.
         "eat", // eat Charleston Road Registry Inc.
+        "eco", // eco Big Room Inc.
         "edeka", // edeka EDEKA Verband kaufmännischer Genossenschaften e.V.
         "edu", // edu EDUCAUSE
         "education", // education Brice Way, LLC
@@ -687,6 +692,7 @@ public final class DomainValidator extends AbstractValidator {
         "gea", // gea GEA Group Aktiengesellschaft
         "gent", // gent COMBELL GROUP NV/SA
         "genting", // genting Resorts World Inc. Pte. Ltd.
+        "george", // george Wal-Mart Stores, Inc.
         "ggee", // ggee GMO Internet, Inc.
         "gift", // gift Uniregistry, Corp.
         "gifts", // gifts Goose Sky, LLC
@@ -728,6 +734,8 @@ public final class DomainValidator extends AbstractValidator {
         "hamburg", // hamburg Hamburg Top-Level-Domain GmbH
         "hangout", // hangout Charleston Road Registry Inc.
         "haus", // haus United TLD Holdco, LTD.
+        "hbo", // hbo HBO Registry Services, Inc.
+        "hdfc", // hdfc HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED
         "hdfcbank", // hdfcbank HDFC Bank Limited
         "health", // health DotHealth, LLC
         "healthcare", // healthcare Silver Glen, LLC
@@ -912,8 +920,8 @@ public final class DomainValidator extends AbstractValidator {
         "maserati", // maserati Fiat Chrysler Automobiles N.V.
         "mattel", // mattel Mattel Sites, Inc.
         "mba", // mba Lone Hollow, LLC
-        "mcd", // mcd McDonald’s Corporation
-        "mcdonalds", // mcdonalds McDonald’s Corporation
+        "mcd", // mcd McDonald's Corporation
+        "mcdonalds", // mcdonalds McDonald's Corporation
         "mckinsey", // mckinsey McKinsey Holdings, Inc.
         "med", // med Medistry LLC
         "media", // media Grand Glen, LLC
@@ -959,6 +967,7 @@ public final class DomainValidator extends AbstractValidator {
         "museum", // museum Museum Domain Management Association
         "mutual", // mutual Northwestern Mutual MU TLD Registry, LLC
         "mutuelle", // mutuelle Fédération Nationale de la Mutualité Française
+        "nab", // nab National Australia Bank Limited
         "nadex", // nadex Nadex Domains, Inc
         "nagoya", // nagoya GMO Registry, Inc.
         "name", // name VeriSign Information Services, Inc.
@@ -1130,6 +1139,7 @@ public final class DomainValidator extends AbstractValidator {
         "sakura", // sakura SAKURA Internet Inc.
         "sale", // sale United TLD Holdco, Ltd
         "salon", // salon Outer Orchard, LLC
+        "samsclub", // samsclub Wal-Mart Stores, Inc.
         "samsung", // samsung SAMSUNG SDS CO., LTD
         "sandvik", // sandvik Sandvik AB
         "sandvikcoromant", // sandvikcoromant Sandvik AB
@@ -1297,6 +1307,7 @@ public final class DomainValidator extends AbstractValidator {
         "tunes", // tunes Amazon Registry Services, Inc.
         "tushu", // tushu Amazon Registry Services, Inc.
         "tvs", // tvs T V SUNDRAM IYENGAR  & SONS PRIVATE LIMITED
+        "ubank", // ubank National Australia Bank Limited
         "ubs", // ubs UBS AG
         "uconnect", // uconnect FCA US LLC.
         "unicom", // unicom China United Network Communications Corporation Limited
@@ -1306,6 +1317,7 @@ public final class DomainValidator extends AbstractValidator {
         "ups", // ups UPS Market Driver, Inc.
         "vacations", // vacations Atomic Tigers, LLC
         "vana", // vana Lifestyle Domain Holdings, Inc.
+        "vanguard", // vanguard The Vanguard Group, Inc.
         "vegas", // vegas Dot Vegas, Inc.
         "ventures", // ventures Binky Lake, LLC
         "verisign", // verisign VeriSign, Inc.
@@ -1334,6 +1346,7 @@ public final class DomainValidator extends AbstractValidator {
         "voyage", // voyage Ruby House, LLC
         "vuelos", // vuelos Travel Reservations SRL
         "wales", // wales Nominet UK
+        "walmart", // walmart Wal-Mart Stores, Inc.
         "walter", // walter Sandvik AB
         "wang", // wang Zodiac Registry Limited
         "wanggou", // wanggou Amazon Registry Services, Inc.
@@ -1376,6 +1389,7 @@ public final class DomainValidator extends AbstractValidator {
         "xn--30rr7y", // 慈善 Excellent First Limited
         "xn--3bst00m", // 集团 Eagle Horizon Limited
         "xn--3ds443g", // 在线 TLD REGISTRY LIMITED
+        "xn--3oq18vl8pn36a", // 大众汽车 Volkswagen (China) Investment Co., Ltd.
         "xn--3pxu8k", // 点看 VeriSign Sarl
         "xn--42c2d9a", // คอม VeriSign Sarl
         "xn--45q11c", // 八卦 Zodiac Scorpio Limited
diff --git a/src/org/openstreetmap/josm/data/validation/routines/package.html b/src/org/openstreetmap/josm/data/validation/routines/package.html
index ec28ef5..a181343 100644
--- a/src/org/openstreetmap/josm/data/validation/routines/package.html
+++ b/src/org/openstreetmap/josm/data/validation/routines/package.html
@@ -84,7 +84,7 @@
    by creating a new instance, which caches and re-uses compiled Patterns.
 </p>
 <ul>
-   <li><b>Method Flavours</b> - three <i>flavours</i> of validation metods are provided:</li>
+   <li><b>Method Flavours</b> - three <i>flavours</i> of validation metods are provided:
     <ul>
         <li><code>isValid()</code> methods return true/false to indicate
             whether validation was successful.</li>
@@ -94,6 +94,7 @@
         <li><code>match()</code> methods return a <code>String</code> array
             of the matched <i>groups</i> or <code>null</code> if invalid.</li>
     </ul>
+   </li>
    <li><b>Case Sensitivity</b> - matching can be done in either a <i>case
        sensitive</i> or <i>case in-sensitive</i> way.</li>
    <li><b>Multiple Expressions</b> - instances of the
diff --git a/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java b/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
index 987cdfd..6006b7b 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
@@ -7,11 +7,9 @@ import java.awt.geom.Point2D;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
@@ -40,8 +38,6 @@ public abstract class CrossingWays extends Test {
 
     /** All way segments, grouped by cells */
     private final Map<Point2D, List<WaySegment>> cellSegments = new HashMap<>(1000);
-    /** The already detected errors */
-    private final Set<WaySegment> errorSegments = new HashSet<>();
     /** The already detected ways in error */
     private final Map<List<Way>, List<WaySegment>> seenWays = new HashMap<>(50);
 
@@ -188,7 +184,6 @@ public abstract class CrossingWays extends Test {
     public void startTest(ProgressMonitor monitor) {
         super.startTest(monitor);
         cellSegments.clear();
-        errorSegments.clear();
         seenWays.clear();
     }
 
@@ -196,7 +191,6 @@ public abstract class CrossingWays extends Test {
     public void endTest() {
         super.endTest();
         cellSegments.clear();
-        errorSegments.clear();
         seenWays.clear();
     }
 
@@ -241,9 +235,7 @@ public abstract class CrossingWays extends Test {
                     List<Way> prims;
                     List<WaySegment> highlight;
 
-                    if ((errorSegments.contains(es1) && errorSegments.contains(es2))
-                            || !es1.intersects(es2)
-                            || ignoreWaySegmentCombination(es1.way, es2.way)) {
+                    if (!es1.intersects(es2) || ignoreWaySegmentCombination(es1.way, es2.way)) {
                         continue;
                     }
 
@@ -278,7 +270,7 @@ public abstract class CrossingWays extends Test {
      * @param n2 The second EastNorth
      * @return A list with all the cells the segment crosses
      */
-    public List<List<WaySegment>> getSegments(EastNorth n1, EastNorth n2) {
+    private List<List<WaySegment>> getSegments(EastNorth n1, EastNorth n2) {
 
         List<List<WaySegment>> cells = new ArrayList<>();
         for (Point2D cell : ValUtil.getSegmentCells(n1, n2, OsmValidator.griddetail)) {
diff --git a/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java b/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
index 6a53352..d881ac5 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
@@ -20,7 +20,6 @@ import java.util.Set;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.MergeNodesAction;
 import org.openstreetmap.josm.command.Command;
-import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Hash;
 import org.openstreetmap.josm.data.osm.Node;
@@ -407,7 +406,7 @@ public class DuplicateNode extends Test {
                 target = nodes.iterator().next();
             }
 
-            if (DeleteCommand.checkAndConfirmOutlyingDelete(nodes, Collections.singleton(target)))
+            if (Command.checkOutlyingOrIncompleteOperation("delete", nodes, Collections.singleton(target)) == Command.IS_OK)
                 return MergeNodesAction.mergeNodes(Main.getLayerManager().getEditLayer(), nodes, target);
         }
 
@@ -419,6 +418,8 @@ public class DuplicateNode extends Test {
         if (!(testError.getTester() instanceof DuplicateNode)) return false;
         // never merge nodes with different tags.
         if (testError.getCode() == DUPLICATE_NODE) return false;
+        // cannot merge nodes outside download area
+        if (testError.getPrimitives().iterator().next().isOutsideDownloadArea()) return false;
         // everything else is ok to merge
         return true;
     }
diff --git a/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java b/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
index 7aa8b80..5983c8d 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
@@ -47,7 +47,7 @@ import org.openstreetmap.josm.gui.mappaint.Environment;
 import org.openstreetmap.josm.gui.mappaint.Keyword;
 import org.openstreetmap.josm.gui.mappaint.MultiCascade;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.ClassCondition;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.ClassCondition;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Expression;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Instruction;
 import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSRule;
@@ -798,6 +798,7 @@ public class MapCSSTagChecker extends Test.TagTest {
                 if (Main.isDebugEnabled()) {
                     Main.debug("- Errors: "+pErrors);
                 }
+                @SuppressWarnings({"EqualsBetweenInconvertibleTypes", "EqualsIncompatibleType"})
                 final boolean isError = pErrors.stream().anyMatch(e -> e.getTester().equals(check.rule));
                 if (isError != i.getValue()) {
                     final String error = MessageFormat.format("Expecting test ''{0}'' (i.e., {1}) to {2} {3} (i.e., {4})",
diff --git a/src/org/openstreetmap/josm/gui/ExtendedDialog.java b/src/org/openstreetmap/josm/gui/ExtendedDialog.java
index 7dd0285..602a9bc 100644
--- a/src/org/openstreetmap/josm/gui/ExtendedDialog.java
+++ b/src/org/openstreetmap/josm/gui/ExtendedDialog.java
@@ -22,7 +22,6 @@ import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.Icon;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
@@ -40,6 +39,7 @@ import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
@@ -145,6 +145,14 @@ public class ExtendedDialog extends JDialog {
         this(parent, title, buttonTexts, modal, true);
     }
 
+    /**
+     * Same as above but lets you define if the dialog should be disposed on close.
+     * @param parent The parent element that will be used for position and maximum size
+     * @param title The text that will be shown in the window titlebar
+     * @param buttonTexts String Array of the text that will appear on the buttons. The first button is the default one.
+     * @param modal Set it to {@code true} if you want the dialog to be modal
+     * @param disposeOnClose whether to call {@link #dispose} when closing the dialog
+     */
     public ExtendedDialog(Component parent, String title, String[] buttonTexts, boolean modal, boolean disposeOnClose) {
         super(searchRealParent(parent), title, modal ? ModalityType.DOCUMENT_MODAL : ModalityType.MODELESS);
         this.parent = parent;
@@ -328,15 +336,7 @@ public class ExtendedDialog extends JDialog {
         JPanel buttonsPanel = new JPanel(new GridBagLayout());
 
         for (int i = 0; i < bTexts.length; i++) {
-            final int finalI = i;
-            Action action = new AbstractAction(bTexts[i]) {
-                @Override
-                public void actionPerformed(ActionEvent evt) {
-                    buttonAction(finalI, evt);
-                }
-            };
-
-            button = new JButton(action);
+            button = new JButton(createButtonAction(i));
             if (i == defaultButtonIdx-1) {
                 defaultButton = button;
             }
@@ -431,6 +431,15 @@ public class ExtendedDialog extends JDialog {
         setLocationRelativeTo(parent);
     }
 
+    protected Action createButtonAction(final int i) {
+        return new AbstractAction(bTexts[i]) {
+            @Override
+            public void actionPerformed(ActionEvent evt) {
+                buttonAction(i, evt);
+            }
+        };
+    }
+
     /**
      * This gets performed whenever a button is clicked or activated
      * @param buttonIndex the button index (first index is 0)
@@ -472,9 +481,7 @@ public class ExtendedDialog extends JDialog {
             }
         };
 
-        getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
-            .put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE");
-        getRootPane().getActionMap().put("ESCAPE", actionListener);
+        InputMapUtils.addEscapeAction(getRootPane(), actionListener);
     }
 
     protected final void rememberWindowGeometry(WindowGeometry geometry) {
diff --git a/src/org/openstreetmap/josm/gui/GettingStarted.java b/src/org/openstreetmap/josm/gui/GettingStarted.java
index 3c05eea..f04b348 100644
--- a/src/org/openstreetmap/josm/gui/GettingStarted.java
+++ b/src/org/openstreetmap/josm/gui/GettingStarted.java
@@ -23,7 +23,7 @@ import javax.swing.event.HyperlinkListener;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Version;
-import org.openstreetmap.josm.gui.datatransfer.FileTransferHandler;
+import org.openstreetmap.josm.gui.datatransfer.OpenTransferHandler;
 import org.openstreetmap.josm.gui.preferences.server.ProxyPreference;
 import org.openstreetmap.josm.gui.preferences.server.ProxyPreferenceListener;
 import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
@@ -132,7 +132,7 @@ public final class GettingStarted extends JPanel implements ProxyPreferenceListe
 
         getMOTD();
 
-        setTransferHandler(new FileTransferHandler());
+        setTransferHandler(new OpenTransferHandler());
     }
 
     private void getMOTD() {
diff --git a/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java b/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
index d62b418..16edfbb 100644
--- a/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
+++ b/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
@@ -7,7 +7,6 @@ import java.awt.Component;
 import java.awt.Dialog.ModalityType;
 import java.awt.GraphicsEnvironment;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.util.ArrayList;
@@ -19,10 +18,8 @@ import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.Icon;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 
@@ -286,9 +283,7 @@ public final class HelpAwareOptionPane {
                 }
             }
         });
-        dialog.getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
-                KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close");
-        dialog.getRootPane().getActionMap().put("close", new AbstractAction() {
+        InputMapUtils.addEscapeAction(dialog.getRootPane(), new AbstractAction() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 pane.setValue(JOptionPane.CLOSED_OPTION);
@@ -300,14 +295,12 @@ public final class HelpAwareOptionPane {
             for (int i = 0; i < options.length; i++) {
                 final DefaultAction action = new DefaultAction(dialog, pane, i);
                 buttons.get(i).addActionListener(action);
-                buttons.get(i).getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
-                buttons.get(i).getActionMap().put("enter", action);
+                InputMapUtils.addEnterAction(buttons.get(i), action);
             }
         } else {
             final DefaultAction action = new DefaultAction(dialog, pane, 0);
             buttons.get(0).addActionListener(action);
-            buttons.get(0).getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
-            buttons.get(0).getActionMap().put("enter", action);
+            InputMapUtils.addEnterAction(buttons.get(0), action);
         }
 
         dialog.pack();
diff --git a/src/org/openstreetmap/josm/gui/MainApplication.java b/src/org/openstreetmap/josm/gui/MainApplication.java
index b65e16c..8388440 100644
--- a/src/org/openstreetmap/josm/gui/MainApplication.java
+++ b/src/org/openstreetmap/josm/gui/MainApplication.java
@@ -24,15 +24,14 @@ import java.security.PermissionCollection;
 import java.security.Permissions;
 import java.security.Policy;
 import java.security.cert.CertificateException;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.EnumMap;
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.logging.Level;
 
 import javax.swing.JOptionPane;
 import javax.swing.RepaintManager;
@@ -45,6 +44,7 @@ import org.openstreetmap.josm.actions.RestartAction;
 import org.openstreetmap.josm.data.AutosaveTask;
 import org.openstreetmap.josm.data.CustomConfigurator;
 import org.openstreetmap.josm.data.Version;
+import org.openstreetmap.josm.gui.ProgramArguments.Option;
 import org.openstreetmap.josm.gui.SplashScreen.SplashProgressMonitor;
 import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.preferences.server.OAuthAccessTokenHolder;
@@ -56,21 +56,21 @@ import org.openstreetmap.josm.io.MessageNotifier;
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.io.auth.CredentialsManager;
 import org.openstreetmap.josm.io.auth.DefaultAuthenticator;
+import org.openstreetmap.josm.io.protocols.data.Handler;
 import org.openstreetmap.josm.io.remotecontrol.RemoteControl;
 import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.plugins.PluginInformation;
 import org.openstreetmap.josm.tools.FontsManager;
 import org.openstreetmap.josm.tools.HttpClient;
 import org.openstreetmap.josm.tools.I18n;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.OsmUrlToBounds;
 import org.openstreetmap.josm.tools.PlatformHookWindows;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.WindowGeometry;
+import org.openstreetmap.josm.tools.bugreport.BugReport;
 import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
 
-import gnu.getopt.Getopt;
-import gnu.getopt.LongOpt;
-
 /**
  * Main window class application.
  *
@@ -170,128 +170,6 @@ public class MainApplication extends Main {
     }
 
     /**
-     * JOSM command line options.
-     * @see <a href="https://josm.openstreetmap.de/wiki/Help/CommandLineOptions">Help/CommandLineOptions</a>
-     * @since 5279
-     */
-    public enum Option {
-        /** --help|-h                                  Show this help */
-        HELP(false),
-        /** --version                                  Displays the JOSM version and exits */
-        VERSION(false),
-        /** --debug                                    Print debugging messages to console */
-        DEBUG(false),
-        /** --trace                                    Print detailed debugging messages to console */
-        TRACE(false),
-        /** --language=<language>                Set the language */
-        LANGUAGE(true),
-        /** --reset-preferences                        Reset the preferences to default */
-        RESET_PREFERENCES(false),
-        /** --load-preferences=<url-to-xml>      Changes preferences according to the XML file */
-        LOAD_PREFERENCES(true),
-        /** --set=<key>=<value>            Set preference key to value */
-        SET(true),
-        /** --geometry=widthxheight(+|-)x(+|-)y        Standard unix geometry argument */
-        GEOMETRY(true),
-        /** --no-maximize                              Do not launch in maximized mode */
-        NO_MAXIMIZE(false),
-        /** --maximize                                 Launch in maximized mode */
-        MAXIMIZE(false),
-        /** --download=minlat,minlon,maxlat,maxlon     Download the bounding box <br>
-         *  --download=<URL>                     Download the location at the URL (with lat=x&lon=y&zoom=z) <br>
-         *  --download=<filename>                Open a file (any file type that can be opened with File/Open) */
-        DOWNLOAD(true),
-        /** --downloadgps=minlat,minlon,maxlat,maxlon  Download the bounding box as raw GPS <br>
-         *  --downloadgps=<URL>                  Download the location at the URL (with lat=x&lon=y&zoom=z) as raw GPS */
-        DOWNLOADGPS(true),
-        /** --selection=<searchstring>           Select with the given search */
-        SELECTION(true),
-        /** --offline=<osm_api|josm_website|all> Disable access to the given resource(s), delimited by comma */
-        OFFLINE(true),
-        /** --skip-plugins */
-        SKIP_PLUGINS(false);
-
-        private final String name;
-        private final boolean requiresArg;
-
-        Option(boolean requiresArgument) {
-            this.name = name().toLowerCase(Locale.ENGLISH).replace('_', '-');
-            this.requiresArg = requiresArgument;
-        }
-
-        /**
-         * Replies the option name
-         * @return The option name, in lowercase
-         */
-        public String getName() {
-            return name;
-        }
-
-        /**
-         * Determines if this option requires an argument.
-         * @return {@code true} if this option requires an argument, {@code false} otherwise
-         */
-        public boolean requiresArgument() {
-            return requiresArg;
-        }
-    }
-
-    /**
-     * Builds the command-line argument map.
-     * @param args command-line arguments array
-     * @return command-line argument map
-     */
-    public static Map<Option, Collection<String>> buildCommandLineArgumentMap(String ... args) {
-
-        List<LongOpt> los = new ArrayList<>();
-        for (Option o : Option.values()) {
-            los.add(new LongOpt(o.getName(), o.requiresArgument() ? LongOpt.REQUIRED_ARGUMENT : LongOpt.NO_ARGUMENT, null, 0));
-        }
-
-        Getopt g = new Getopt("JOSM", args, "hv", los.toArray(new LongOpt[los.size()]));
-
-        Map<Option, Collection<String>> argMap = new EnumMap<>(Option.class);
-
-        int c;
-        while ((c = g.getopt()) != -1) {
-            Option opt;
-            switch (c) {
-                case 'h':
-                    opt = Option.HELP;
-                    break;
-                case 'v':
-                    opt = Option.VERSION;
-                    break;
-                case 0:
-                    opt = Option.values()[g.getLongind()];
-                    break;
-                default:
-                    opt = null;
-            }
-            if (opt != null) {
-                Collection<String> values = argMap.get(opt);
-                if (values == null) {
-                    values = new ArrayList<>();
-                    argMap.put(opt, values);
-                }
-                values.add(g.getOptarg());
-            } else
-                throw new IllegalArgumentException("Invalid option: "+c);
-        }
-        // positional arguments are a shortcut for the --download ... option
-        for (int i = g.getOptind(); i < args.length; ++i) {
-            Collection<String> values = argMap.get(Option.DOWNLOAD);
-            if (values == null) {
-                values = new ArrayList<>();
-                argMap.put(Option.DOWNLOAD, values);
-            }
-            values.add(args[i]);
-        }
-
-        return argMap;
-    }
-
-    /**
      * Main application Startup
      * @param argArray Command-line arguments
      */
@@ -299,21 +177,20 @@ public class MainApplication extends Main {
         I18n.init();
 
         // construct argument table
-        Map<Option, Collection<String>> args = null;
+        ProgramArguments args = null;
         try {
-            args = buildCommandLineArgumentMap(argArray);
+            args = new ProgramArguments(argArray);
         } catch (IllegalArgumentException e) {
             System.exit(1);
             return;
         }
 
-        final boolean languageGiven = args.containsKey(Option.LANGUAGE);
-
-        if (languageGiven) {
-            I18n.set(args.get(Option.LANGUAGE).iterator().next());
-        }
+        Level logLevel = args.getLogLevel();
+        Logging.setLogLevel(logLevel);
+        Main.info(tr("Log level is at {0} ({1}, {2})", logLevel.getLocalizedName(), logLevel.getName(), logLevel.intValue()));
 
-        initApplicationPreferences();
+        Optional<String> language = args.getSingle(Option.LANGUAGE);
+        I18n.set(language.orElse(null));
 
         Policy.setPolicy(new Policy() {
             // Permissions for plug-ins loaded when josm is started via webstart
@@ -339,41 +216,30 @@ public class MainApplication extends Main {
 
         Main.COMMAND_LINE_ARGS.addAll(Arrays.asList(argArray));
 
-        if (args.containsKey(Option.VERSION)) {
+        if (args.showVersion()) {
             System.out.println(Version.getInstance().getAgentString());
             System.exit(0);
+        } else if (args.showHelp()) {
+            showHelp();
+            System.exit(0);
         }
 
-        if (args.containsKey(Option.DEBUG) || args.containsKey(Option.TRACE)) {
-            // Enable JOSM debug level
-            logLevel = 4;
-            Main.info(tr("Printing debugging messages to console"));
-        }
-
-        boolean skipLoadingPlugins = false;
-        if (args.containsKey(Option.SKIP_PLUGINS)) {
-            skipLoadingPlugins = true;
+        boolean skipLoadingPlugins = args.hasOption(Option.SKIP_PLUGINS);
+        if (skipLoadingPlugins) {
             Main.info(tr("Plugin loading skipped"));
         }
 
-        if (args.containsKey(Option.TRACE)) {
-            // Enable JOSM debug level
-            logLevel = 5;
+        if (Logging.isLoggingEnabled(Logging.LEVEL_TRACE)) {
             // Enable debug in OAuth signpost via system preference, but only at trace level
             Utils.updateSystemProperty("debug", "true");
             Main.info(tr("Enabled detailed debug level (trace)"));
         }
 
-        Main.pref.init(args.containsKey(Option.RESET_PREFERENCES));
+        Main.pref.init(args.hasOption(Option.RESET_PREFERENCES));
 
-        if (args.containsKey(Option.SET)) {
-            for (String i : args.get(Option.SET)) {
-                String[] kv = i.split("=", 2);
-                Main.pref.put(kv[0], "null".equals(kv[1]) ? null : kv[1]);
-            }
-        }
+        args.getPreferencesToSet().forEach(Main.pref::put);
 
-        if (!languageGiven) {
+        if (!language.isPresent()) {
             I18n.set(Main.pref.get("language", null));
         }
         Main.pref.updateSystemProperties();
@@ -381,7 +247,7 @@ public class MainApplication extends Main {
         checkIPv6();
 
         // asking for help? show help and exit
-        if (args.containsKey(Option.HELP)) {
+        if (args.hasOption(Option.HELP)) {
             showHelp();
             System.exit(0);
         }
@@ -394,20 +260,22 @@ public class MainApplication extends Main {
 
         I18n.setupLanguageFonts();
 
+        Handler.install();
+
         WindowGeometry geometry = WindowGeometry.mainWindow("gui.geometry",
-                args.containsKey(Option.GEOMETRY) ? args.get(Option.GEOMETRY).iterator().next() : null,
-                !args.containsKey(Option.NO_MAXIMIZE) && Main.pref.getBoolean("gui.maximized", false));
+                args.getSingle(Option.GEOMETRY).orElse(null),
+                !args.hasOption(Option.NO_MAXIMIZE) && Main.pref.getBoolean("gui.maximized", false));
         final MainFrame mainFrame = new MainFrame(contentPanePrivate, mainPanel, geometry);
         Main.parent = mainFrame;
 
-        if (args.containsKey(Option.LOAD_PREFERENCES)) {
+        if (args.hasOption(Option.LOAD_PREFERENCES)) {
             CustomConfigurator.XMLCommandProcessor config = new CustomConfigurator.XMLCommandProcessor(Main.pref);
             for (String i : args.get(Option.LOAD_PREFERENCES)) {
                 info("Reading preferences from " + i);
                 try (InputStream is = HttpClient.create(new URL(i)).connect().getContent()) {
                     config.openAndReadXML(is);
                 } catch (IOException ex) {
-                    throw new RuntimeException(ex);
+                    throw BugReport.intercept(ex).put("file", i);
                 }
             }
         }
@@ -450,7 +318,7 @@ public class MainApplication extends Main {
         }
 
         monitor.indeterminateSubTask(tr("Setting defaults"));
-        preConstructorInit(args);
+        preConstructorInit();
 
         monitor.indeterminateSubTask(tr("Creating main GUI"));
         final Main main = new MainApplication(mainFrame);
@@ -470,7 +338,7 @@ public class MainApplication extends Main {
         Main.MasterWindowListener.setup();
 
         boolean maximized = Main.pref.getBoolean("gui.maximized", false);
-        if ((!args.containsKey(Option.NO_MAXIMIZE) && maximized) || args.containsKey(Option.MAXIMIZE)) {
+        if ((!args.hasOption(Option.NO_MAXIMIZE) && maximized) || args.hasOption(Option.MAXIMIZE)) {
             mainFrame.setMaximized(true);
         }
         if (main.menu.fullscreenToggleAction != null) {
@@ -528,9 +396,9 @@ public class MainApplication extends Main {
         toolbar.refreshToolbarControl();
     }
 
-    private static void processOffline(Map<Option, Collection<String>> args) {
-        if (args.containsKey(Option.OFFLINE)) {
-            for (String s : args.get(Option.OFFLINE).iterator().next().split(",")) {
+    private static void processOffline(ProgramArguments args) {
+        for (String offlineNames : args.get(Option.OFFLINE)) {
+            for (String s : offlineNames.split(",")) {
                 try {
                     Main.setOffline(OnlineResource.valueOf(s.toUpperCase(Locale.ENGLISH)));
                 } catch (IllegalArgumentException e) {
@@ -540,12 +408,12 @@ public class MainApplication extends Main {
                     return;
                 }
             }
-            Set<OnlineResource> offline = Main.getOfflineResources();
-            if (!offline.isEmpty()) {
-                Main.warn(trn("JOSM is running in offline mode. This resource will not be available: {0}",
-                        "JOSM is running in offline mode. These resources will not be available: {0}",
-                        offline.size(), offline.size() == 1 ? offline.iterator().next() : Arrays.toString(offline.toArray())));
-            }
+        }
+        Set<OnlineResource> offline = Main.getOfflineResources();
+        if (!offline.isEmpty()) {
+            Main.warn(trn("JOSM is running in offline mode. This resource will not be available: {0}",
+                    "JOSM is running in offline mode. These resources will not be available: {0}",
+                    offline.size(), offline.size() == 1 ? offline.iterator().next() : Arrays.toString(offline.toArray())));
         }
     }
 
@@ -600,10 +468,10 @@ public class MainApplication extends Main {
 
     private static class GuiFinalizationWorker implements Runnable {
 
-        private final Map<Option, Collection<String>> args;
+        private final ProgramArguments args;
         private final DefaultProxySelector proxySelector;
 
-        GuiFinalizationWorker(Map<Option, Collection<String>> args, DefaultProxySelector proxySelector) {
+        GuiFinalizationWorker(ProgramArguments args, DefaultProxySelector proxySelector) {
             this.args = args;
             this.proxySelector = proxySelector;
         }
diff --git a/src/org/openstreetmap/josm/gui/MainMenu.java b/src/org/openstreetmap/josm/gui/MainMenu.java
index 4783813..6429f2c 100644
--- a/src/org/openstreetmap/josm/gui/MainMenu.java
+++ b/src/org/openstreetmap/josm/gui/MainMenu.java
@@ -43,6 +43,7 @@ import org.openstreetmap.josm.actions.DialogsToggleAction;
 import org.openstreetmap.josm.actions.DistributeAction;
 import org.openstreetmap.josm.actions.DownloadAction;
 import org.openstreetmap.josm.actions.DownloadNotesInViewAction;
+import org.openstreetmap.josm.actions.DownloadOsmInViewAction;
 import org.openstreetmap.josm.actions.DownloadPrimitiveAction;
 import org.openstreetmap.josm.actions.DownloadReferrersAction;
 import org.openstreetmap.josm.actions.DuplicateAction;
@@ -157,6 +158,8 @@ public class MainMenu extends JMenuBar {
     public final GpxExportAction gpxExport = new GpxExportAction();
     /** File / Download from OSM... **/
     public final DownloadAction download = new DownloadAction();
+    /** File / Download in current view **/
+    public final DownloadOsmInViewAction downloadInView = new DownloadOsmInViewAction();
     /** File / Download from Overpass API... **/
     public final OverpassDownloadAction overpassDownload = new OverpassDownloadAction();
     /** File / Download object... **/
@@ -655,6 +658,7 @@ public class MainMenu extends JMenuBar {
         add(fileMenu, gpxExport, true);
         fileMenu.addSeparator();
         add(fileMenu, download);
+        add(fileMenu, downloadInView, true);
         add(fileMenu, overpassDownload, true);
         add(fileMenu, downloadPrimitive);
         add(fileMenu, searchNotes);
diff --git a/src/org/openstreetmap/josm/gui/MapFrame.java b/src/org/openstreetmap/josm/gui/MapFrame.java
index 54d8c2d..9a12018 100644
--- a/src/org/openstreetmap/josm/gui/MapFrame.java
+++ b/src/org/openstreetmap/josm/gui/MapFrame.java
@@ -32,6 +32,7 @@ import javax.swing.JComponent;
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.JSplitPane;
+import javax.swing.JToggleButton;
 import javax.swing.JToolBar;
 import javax.swing.KeyStroke;
 import javax.swing.border.Border;
@@ -380,6 +381,21 @@ public class MapFrame extends JPanel implements Destroyable, ActiveLayerChangeLi
         return button;
     }
 
+    /**
+     * Call this to remove existing toggle dialog from the left button-list
+     * @param dlg The toggle dialog. It must be already in the list.
+     * @since 10851
+     */
+    public void removeToggleDialog(final ToggleDialog dlg) {
+        final JToggleButton button = dlg.getButton();
+        if (button != null) {
+            allDialogButtons.remove(button);
+            toolBarToggle.remove(button);
+        }
+        dialogsPanel.remove(dlg);
+        allDialogs.remove(dlg);
+    }
+
     public void addMapMode(IconToggleButton b) {
         if (b.getAction() instanceof MapMode) {
             mapModes.add((MapMode) b.getAction());
@@ -759,6 +775,7 @@ public class MapFrame extends JPanel implements Destroyable, ActiveLayerChangeLi
                 selectMapMode(newMapMode, newLayer);
             } else if (mapMode != null) {
                 mapMode.exitMode(); // if new mode is null - simply exit from previous mode
+                mapMode = null;
             }
         }
         // if this is really a change (and not the first active layer)
diff --git a/src/org/openstreetmap/josm/gui/MapScaler.java b/src/org/openstreetmap/josm/gui/MapScaler.java
index 4ec3b0a..0526308 100644
--- a/src/org/openstreetmap/josm/gui/MapScaler.java
+++ b/src/org/openstreetmap/josm/gui/MapScaler.java
@@ -14,7 +14,7 @@ import javax.accessibility.AccessibleContext;
 import javax.accessibility.AccessibleValue;
 import javax.swing.JComponent;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.help.Helpful;
 
 /**
@@ -28,6 +28,8 @@ public class MapScaler extends JComponent implements Helpful, Accessible {
     private static final int PADDING_LEFT = 5;
     private static final int PADDING_RIGHT = 50;
 
+    private static final ColorProperty SCALER_COLOR = new ColorProperty(marktr("scale"), Color.WHITE);
+
     /**
      * Constructs a new {@code MapScaler}.
      * @param mv map view
@@ -60,7 +62,7 @@ public class MapScaler extends JComponent implements Helpful, Accessible {
      * @return the color of map scaler
      */
     public static Color getColor() {
-        return Main.pref.getColor(marktr("scale"), Color.white);
+        return SCALER_COLOR.get();
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/gui/MapStatus.java b/src/org/openstreetmap/josm/gui/MapStatus.java
index 50ef27c..d59d8fe 100644
--- a/src/org/openstreetmap/josm/gui/MapStatus.java
+++ b/src/org/openstreetmap/josm/gui/MapStatus.java
@@ -64,7 +64,10 @@ import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.preferences.AbstractProperty;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
 import org.openstreetmap.josm.data.preferences.ColorProperty;
+import org.openstreetmap.josm.data.preferences.DoubleProperty;
 import org.openstreetmap.josm.gui.help.Helpful;
 import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor;
@@ -92,21 +95,23 @@ import org.openstreetmap.josm.tools.ImageProvider;
 public final class MapStatus extends JPanel implements Helpful, Destroyable, PreferenceChangedListener, SoMChangeListener {
 
     private final DecimalFormat DECIMAL_FORMAT = new DecimalFormat(Main.pref.get("statusbar.decimal-format", "0.0"));
-    private final double DISTANCE_THRESHOLD = Main.pref.getDouble("statusbar.distance-threshold", 0.01);
+    private static final AbstractProperty<Double> DISTANCE_THRESHOLD = new DoubleProperty("statusbar.distance-threshold", 0.01).cached();
+
+    private static final AbstractProperty<Boolean> SHOW_ID = new BooleanProperty("osm-primitives.showid", false);
 
     /**
      * Property for map status background color.
      * @since 6789
      */
     public static final ColorProperty PROP_BACKGROUND_COLOR = new ColorProperty(
-            marktr("Status bar background"), Color.decode("#b8cfe5"));
+            marktr("Status bar background"), "#b8cfe5");
 
     /**
      * Property for map status background color (active state).
      * @since 6789
      */
     public static final ColorProperty PROP_ACTIVE_BACKGROUND_COLOR = new ColorProperty(
-            marktr("Status bar background: active"), Color.decode("#aaff5e"));
+            marktr("Status bar background: active"), "#aaff5e");
 
     /**
      * Property for map status foreground color.
@@ -567,7 +572,7 @@ public final class MapStatus extends JPanel implements Helpful, Destroyable, Pre
             }
             text.append(name);
 
-            boolean idShown = Main.pref.getBoolean("osm-primitives.showid");
+            boolean idShown = SHOW_ID.get();
             // fix #7557 - do not show ID twice
 
             if (!osm.isNew() && !idShown) {
@@ -1020,7 +1025,7 @@ public final class MapStatus extends JPanel implements Helpful, Destroyable, Pre
      */
     public void setDist(double dist) {
         distValue = dist;
-        distText.setText(dist < 0 ? "--" : NavigatableComponent.getDistText(dist, DECIMAL_FORMAT, DISTANCE_THRESHOLD));
+        distText.setText(dist < 0 ? "--" : NavigatableComponent.getDistText(dist, DECIMAL_FORMAT, DISTANCE_THRESHOLD.get()));
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/MapView.java b/src/org/openstreetmap/josm/gui/MapView.java
index 63e4bb4..8dcb0f7 100644
--- a/src/org/openstreetmap/josm/gui/MapView.java
+++ b/src/org/openstreetmap/josm/gui/MapView.java
@@ -17,7 +17,6 @@ import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseMotionListener;
 import java.awt.geom.Area;
-import java.awt.geom.GeneralPath;
 import java.awt.image.BufferedImage;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
@@ -26,6 +25,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.IdentityHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
@@ -45,7 +45,6 @@ import org.openstreetmap.josm.data.ProjectionBounds;
 import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.ViewportData;
 import org.openstreetmap.josm.data.coor.EastNorth;
-import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
@@ -77,7 +76,6 @@ import org.openstreetmap.josm.tools.AudioPlayer;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.bugreport.BugReport;
-import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
 
 /**
  * This is a component used in the {@link MapFrame} for browsing the map. It use is to
@@ -149,9 +147,21 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
      */
     private class LayerInvalidatedListener implements PaintableInvalidationListener {
         private boolean ignoreRepaint;
+
+        private final Set<MapViewPaintable> invalidatedLayers = Collections.newSetFromMap(new IdentityHashMap<MapViewPaintable, Boolean>());
+
         @Override
         public void paintableInvalidated(PaintableInvalidationEvent event) {
+            invalidate(event.getLayer());
+        }
+
+        /**
+         * Invalidate contents and repaint map view
+         * @param mapViewPaintable invalidated layer
+         */
+        public synchronized void invalidate(MapViewPaintable mapViewPaintable) {
             ignoreRepaint = true;
+            invalidatedLayers.add(mapViewPaintable);
             repaint();
         }
 
@@ -159,7 +169,7 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
          * Temporary until all {@link MapViewPaintable}s support this.
          * @param p The paintable.
          */
-        public void addTo(MapViewPaintable p) {
+        public synchronized void addTo(MapViewPaintable p) {
             if (p instanceof AbstractMapViewPaintable) {
                 ((AbstractMapViewPaintable) p).addInvalidationListener(this);
             }
@@ -169,10 +179,11 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
          * Temporary until all {@link MapViewPaintable}s support this.
          * @param p The paintable.
          */
-        public void removeFrom(MapViewPaintable p) {
+        public synchronized void removeFrom(MapViewPaintable p) {
             if (p instanceof AbstractMapViewPaintable) {
                 ((AbstractMapViewPaintable) p).removeInvalidationListener(this);
             }
+            invalidatedLayers.remove(p);
         }
 
         /**
@@ -185,6 +196,17 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
             }
             ignoreRepaint = false;
         }
+
+        /**
+         * Retrieves a set of all layers that have been marked as invalid since the last call to this method.
+         * @return The layers
+         */
+        protected synchronized Set<MapViewPaintable> collectInvalidatedLayers() {
+            Set<MapViewPaintable> layers = Collections.newSetFromMap(new IdentityHashMap<MapViewPaintable, Boolean>());
+            layers.addAll(invalidatedLayers);
+            invalidatedLayers.clear();
+            return layers;
+        }
     }
 
     /**
@@ -419,11 +441,11 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
     @Deprecated
     public static void addLayerChangeListener(LayerChangeListener listener, boolean initialFire) {
         if (listener != null) {
-            initialFire = initialFire && (Main.isDisplayingMapView() || fireDeprecatedListenerOnAdd);
+            boolean doInitialFire = initialFire && (Main.isDisplayingMapView() || fireDeprecatedListenerOnAdd);
 
-            LayerChangeAdapter adapter = new LayerChangeAdapter(listener, initialFire);
-            Main.getLayerManager().addLayerChangeListener(adapter, initialFire);
-            if (initialFire) {
+            LayerChangeAdapter adapter = new LayerChangeAdapter(listener, doInitialFire);
+            Main.getLayerManager().addLayerChangeListener(adapter, doInitialFire);
+            if (doInitialFire) {
                 Main.getLayerManager().addAndFireActiveLayerChangeListener(adapter);
             } else {
                 Main.getLayerManager().addActiveLayerChangeListener(adapter);
@@ -505,7 +527,6 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
     private transient BufferedImage offscreenBuffer;
     // Layers that wasn't changed since last paint
     private final transient List<Layer> nonChangedLayers = new ArrayList<>();
-    private transient Layer changedLayer;
     private int lastViewID;
     private boolean paintPreferencesChanged = true;
     private Rectangle lastClipBounds = new Rectangle();
@@ -826,8 +847,7 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
             painter.paint(paintGraphics);
             g.setPaintMode();
         } catch (RuntimeException t) {
-            //TODO: only display.
-            throw BugReport.intercept(t).put("layer", layer).put("bounds", box);
+            BugReport.intercept(t).put("layer", layer).put("bounds", box).warn();
         }
     }
 
@@ -836,15 +856,21 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
      */
     @Override
     public void paint(Graphics g) {
-        if (!prepareToDraw()) {
+        try {
+            if (!prepareToDraw()) {
+                return;
+            }
+        } catch (RuntimeException e) {
+            BugReport.intercept(e).put("center", this::getCenter).warn();
             return;
         }
 
         List<Layer> visibleLayers = layerManager.getVisibleLayersInZOrder();
 
         int nonChangedLayersCount = 0;
+        Set<MapViewPaintable> invalidated = invalidatedListener.collectInvalidatedLayers();
         for (Layer l: visibleLayers) {
-            if (l.isChanged() || l == changedLayer) {
+            if (l.isChanged() || invalidated.contains(l)) {
                 break;
             } else {
                 nonChangedLayersCount++;
@@ -901,7 +927,6 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
         }
 
         nonChangedLayers.clear();
-        changedLayer = null;
         for (int i = 0; i < nonChangedLayersCount; i++) {
             nonChangedLayers.add(visibleLayers.get(i));
         }
@@ -914,21 +939,18 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
             paintLayer(visibleLayers.get(i), tempG, box);
         }
 
-        synchronized (temporaryLayers) {
-            for (MapViewPaintable mvp : temporaryLayers) {
-                try {
-                    mvp.paint(tempG, this, box);
-                } catch (RuntimeException e) {
-                    throw BugReport.intercept(e).put("mvp", mvp);
-                }
-            }
+        try {
+            drawTemporaryLayers(tempG, box);
+        } catch (RuntimeException e) {
+            BugReport.intercept(e).put("temporaryLayers", temporaryLayers).warn();
         }
 
         // draw world borders
         try {
             drawWorldBorders(tempG);
         } catch (RuntimeException e) {
-            throw BugReport.intercept(e).put("bounds", getProjection()::getWorldBoundsLatLon);
+            // getProjection() needs to be inside lambda to catch errors.
+            BugReport.intercept(e).put("bounds", () -> getProjection().getWorldBoundsLatLon()).warn();
         }
 
         if (Main.isDisplayingMapView() && Main.map.filterDialog != null) {
@@ -970,44 +992,27 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
         super.paint(g);
     }
 
+    private void drawTemporaryLayers(Graphics2D tempG, Bounds box) {
+        synchronized (temporaryLayers) {
+            for (MapViewPaintable mvp : temporaryLayers) {
+                try {
+                    mvp.paint(tempG, this, box);
+                } catch (RuntimeException e) {
+                    throw BugReport.intercept(e).put("mvp", mvp);
+                }
+            }
+        }
+    }
+
     private void drawWorldBorders(Graphics2D tempG) {
         tempG.setColor(Color.WHITE);
         Bounds b = getProjection().getWorldBoundsLatLon();
-        double lat = b.getMinLat();
-        double lon = b.getMinLon();
-
-        Point p = getPoint(b.getMin());
-
-        GeneralPath path = new GeneralPath();
-
-        double d = 1.0;
-        path.moveTo(p.x, p.y);
-        double max = b.getMax().lat();
-        for (; lat <= max; lat += d) {
-            p = getPoint(new LatLon(lat >= max ? max : lat, lon));
-            path.lineTo(p.x, p.y);
-        }
-        lat = max; max = b.getMax().lon();
-        for (; lon <= max; lon += d) {
-            p = getPoint(new LatLon(lat, lon >= max ? max : lon));
-            path.lineTo(p.x, p.y);
-        }
-        lon = max; max = b.getMinLat();
-        for (; lat >= max; lat -= d) {
-            p = getPoint(new LatLon(lat <= max ? max : lat, lon));
-            path.lineTo(p.x, p.y);
-        }
-        lat = max; max = b.getMinLon();
-        for (; lon >= max; lon -= d) {
-            p = getPoint(new LatLon(lat, lon <= max ? max : lon));
-            path.lineTo(p.x, p.y);
-        }
 
         int w = getWidth();
         int h = getHeight();
 
         // Work around OpenJDK having problems when drawing out of bounds
-        final Area border = new Area(path);
+        final Area border = getState().getArea(b);
         // Make the viewport 1px larger in every direction to prevent an
         // additional 1px border when zooming in
         final Area viewport = new Area(new Rectangle(-1, -1, w + 2, h + 2));
@@ -1025,8 +1030,6 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
             zoomTo(initialViewport);
             initialViewport = null;
         }
-        if (BugReportExceptionHandler.exceptionHandlingInProgress())
-            return false;
 
         if (getCenter() == null)
             return false; // no data loaded yet.
@@ -1235,8 +1238,7 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
                 evt.getPropertyName().equals(Layer.FILTER_STATE_PROP)) {
             Layer l = (Layer) evt.getSource();
             if (l.isVisible()) {
-                changedLayer = l;
-                repaint();
+                invalidatedListener.invalidate(l);
             }
         }
     }
@@ -1279,6 +1281,7 @@ LayerManager.LayerChangeListener, MainLayerManager.ActiveLayerChangeListener {
             temporaryLayers.clear();
         }
         nonChangedLayersBuffer = null;
+        offscreenBuffer = null;
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/MapViewState.java b/src/org/openstreetmap/josm/gui/MapViewState.java
index f7dcd8d..d38365a 100644
--- a/src/org/openstreetmap/josm/gui/MapViewState.java
+++ b/src/org/openstreetmap/josm/gui/MapViewState.java
@@ -3,11 +3,13 @@ package org.openstreetmap.josm.gui;
 
 import java.awt.Container;
 import java.awt.Point;
-import java.awt.Rectangle;
 import java.awt.geom.AffineTransform;
+import java.awt.geom.Area;
+import java.awt.geom.Path2D;
 import java.awt.geom.Point2D;
 import java.awt.geom.Point2D.Double;
 import java.awt.geom.Rectangle2D;
+import java.io.Serializable;
 
 import javax.swing.JComponent;
 
@@ -16,6 +18,8 @@ import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.ProjectionBounds;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.projection.Projecting;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.tools.bugreport.BugReport;
@@ -25,9 +29,35 @@ import org.openstreetmap.josm.tools.bugreport.BugReport;
  * @author Michael Zangl
  * @since 10343
  */
-public final class MapViewState {
+public final class MapViewState implements Serializable {
 
-    private final Projection projection;
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * A flag indicating that the point is outside to the top of the map view.
+     * @since 10827
+     */
+    public static final int OUTSIDE_TOP = 1;
+
+    /**
+     * A flag indicating that the point is outside to the bottom of the map view.
+     * @since 10827
+     */
+    public static final int OUTSIDE_BOTTOM = 2;
+
+    /**
+     * A flag indicating that the point is outside to the left of the map view.
+     * @since 10827
+     */
+    public static final int OUTSIDE_LEFT = 4;
+
+    /**
+     * A flag indicating that the point is outside to the right of the map view.
+     * @since 10827
+     */
+    public static final int OUTSIDE_RIGHT = 8;
+
+    private final transient Projecting projecting;
 
     private final int viewWidth;
     private final int viewHeight;
@@ -50,8 +80,8 @@ public final class MapViewState {
      * @param scale The scale to use
      * @param topLeft The top left corner in east/north space.
      */
-    private MapViewState(Projection projection, int viewWidth, int viewHeight, double scale, EastNorth topLeft) {
-        this.projection = projection;
+    private MapViewState(Projecting projection, int viewWidth, int viewHeight, double scale, EastNorth topLeft) {
+        this.projecting = projection;
         this.scale = scale;
         this.topLeft = topLeft;
 
@@ -62,7 +92,7 @@ public final class MapViewState {
     }
 
     private MapViewState(EastNorth topLeft, MapViewState mapViewState) {
-        this.projection = mapViewState.projection;
+        this.projecting = mapViewState.projecting;
         this.scale = mapViewState.scale;
         this.topLeft = topLeft;
 
@@ -73,7 +103,7 @@ public final class MapViewState {
     }
 
     private MapViewState(double scale, MapViewState mapViewState) {
-        this.projection = mapViewState.projection;
+        this.projecting = mapViewState.projecting;
         this.scale = scale;
         this.topLeft = mapViewState.topLeft;
 
@@ -84,7 +114,7 @@ public final class MapViewState {
     }
 
     private MapViewState(JComponent position, MapViewState mapViewState) {
-        this.projection = mapViewState.projection;
+        this.projecting = mapViewState.projecting;
         this.scale = mapViewState.scale;
         this.topLeft = mapViewState.topLeft;
 
@@ -105,8 +135,8 @@ public final class MapViewState {
         }
     }
 
-    private MapViewState(Projection projection, MapViewState mapViewState) {
-        this.projection = projection;
+    private MapViewState(Projecting projecting, MapViewState mapViewState) {
+        this.projecting = projecting;
         this.scale = mapViewState.scale;
         this.topLeft = mapViewState.topLeft;
 
@@ -154,6 +184,17 @@ public final class MapViewState {
     }
 
     /**
+     * Gets the {@link MapViewPoint} for the given node. This is faster than {@link #getPointFor(LatLon)} because it uses the node east/north
+     * cache.
+     * @param node The node
+     * @return The position of that node.
+     * @since 10827
+     */
+    public MapViewPoint getPointFor(Node node) {
+        return getPointFor(node.getEastNorth(getProjection()));
+    }
+
+    /**
      * Gets a rectangle representing the whole view area.
      * @return The rectangle.
      */
@@ -165,9 +206,9 @@ public final class MapViewState {
      * Gets a rectangle of the view as map view area.
      * @param rectangle The rectangle to get.
      * @return The view area.
-     * @since 10458
+     * @since 10827
      */
-    public MapViewRectangle getViewArea(Rectangle rectangle) {
+    public MapViewRectangle getViewArea(Rectangle2D rectangle) {
         return getForView(rectangle.getMinX(), rectangle.getMinY()).rectTo(getForView(rectangle.getMaxX(), rectangle.getMaxY()));
     }
 
@@ -180,6 +221,15 @@ public final class MapViewState {
     }
 
     /**
+     * Gets the center of the view, rounded to a pixel coordinate
+     * @return The center position.
+     * @since 10856
+     */
+    public MapViewPoint getCenterAtPixel() {
+        return getForView(viewWidth / 2, viewHeight / 2);
+    }
+
+    /**
      * Gets the width of the view on the Screen;
      * @return The width of the view component in screen pixel.
      */
@@ -200,7 +250,7 @@ public final class MapViewState {
      * @return The projection.
      */
     public Projection getProjection() {
-        return projection;
+        return projecting.getBaseProjection();
     }
 
     /**
@@ -214,6 +264,25 @@ public final class MapViewState {
     }
 
     /**
+     * Returns the area for the given bounds.
+     * @param bounds bounds
+     * @return the area for the given bounds
+     */
+    public Area getArea(Bounds bounds) {
+        Path2D area = new Path2D.Double();
+        bounds.visitEdge(getProjection(), latlon -> {
+            MapViewPoint point = getPointFor(latlon);
+            if (area.getCurrentPoint() == null) {
+                area.moveTo(point.getInViewX(), point.getInViewY());
+            } else {
+                area.lineTo(point.getInViewX(), point.getInViewY());
+            }
+        });
+        area.closePath();
+        return new Area(area);
+    }
+
+    /**
      * Creates a new state that is the same as the current state except for that it is using a new center.
      * @param newCenter The new center coordinate.
      * @return The new state.
@@ -268,7 +337,7 @@ public final class MapViewState {
      * @since 10486
      */
     public MapViewState usingProjection(Projection projection) {
-        if (projection.equals(this.projection)) {
+        if (projection.equals(this.projecting)) {
             return this;
         } else {
             return new MapViewState(projection, this);
@@ -313,9 +382,19 @@ public final class MapViewState {
             return new Point2D.Double(getInViewX(), getInViewY());
         }
 
-        protected abstract double getInViewX();
+        /**
+         * Get the x coordinate in view space without creating an intermediate object.
+         * @return The x coordinate
+         * @since 10827
+         */
+        public abstract double getInViewX();
 
-        protected abstract double getInViewY();
+        /**
+         * Get the y coordinate in view space without creating an intermediate object.
+         * @return The y coordinate
+         * @since 10827
+         */
+        public abstract double getInViewY();
 
         /**
          * Convert this point to window coordinates.
@@ -357,9 +436,19 @@ public final class MapViewState {
         /**
          * Gets the current position in LatLon coordinates according to the current projection.
          * @return The positon as LatLon.
+         * @see #getLatLonClamped()
          */
         public LatLon getLatLon() {
-            return projection.eastNorth2latlon(getEastNorth());
+            return projecting.getBaseProjection().eastNorth2latlon(getEastNorth());
+        }
+
+        /**
+         * Gets the latlon coordinate clamped to the current world area.
+         * @return The lat/lon coordinate
+         * @since 10805
+         */
+        public LatLon getLatLonClamped() {
+            return projecting.eastNorth2latlonClamped(getEastNorth());
         }
 
         /**
@@ -371,6 +460,87 @@ public final class MapViewState {
         public MapViewPoint add(EastNorth en) {
             return new MapViewEastNorthPoint(getEastNorth().add(en));
         }
+
+        /**
+         * Check if this point is inside the view bounds.
+         *
+         * This is the case iff <code>getOutsideRectangleFlags(getViewArea())</code> returns no flags
+         * @return true if it is.
+         * @since 10827
+         */
+        public boolean isInView() {
+            return inRange(getInViewX(), 0, getViewWidth()) && inRange(getInViewY(), 0, getViewHeight());
+        }
+
+        private boolean inRange(double val, int min, double max) {
+            return val >= min && val < max;
+        }
+
+        /**
+         * Gets the direction in which this point is outside of the given view rectangle.
+         * @param rect The rectangle to check agains.
+         * @return The direction in which it is outside of the view, as OUTSIDE_... flags.
+         * @since 10827
+         */
+        public int getOutsideRectangleFlags(MapViewRectangle rect) {
+            Rectangle2D bounds = rect.getInView();
+            int flags = 0;
+            if (getInViewX() < bounds.getMinX()) {
+                flags |= OUTSIDE_LEFT;
+            } else if (getInViewX() > bounds.getMaxX()) {
+                flags |= OUTSIDE_RIGHT;
+            }
+            if (getInViewY() < bounds.getMinY()) {
+                flags |= OUTSIDE_TOP;
+            } else if (getInViewY() > bounds.getMaxY()) {
+                flags |= OUTSIDE_BOTTOM;
+            }
+
+            return flags;
+        }
+
+        /**
+         * Gets the sum of the x/y view distances between the points. |x1 - x2| + |y1 - y2|
+         * @param p2 The other point
+         * @return The norm
+         * @since 10827
+         */
+        public double oneNormInView(MapViewPoint p2) {
+            return Math.abs(getInViewX() - p2.getInViewX()) + Math.abs(getInViewY() - p2.getInViewY());
+        }
+
+        /**
+         * Gets the squared distance between this point and an other point.
+         * @param p2 The other point
+         * @return The squared distance.
+         * @since 10827
+         */
+        public double distanceToInViewSq(MapViewPoint p2) {
+            double dx = getInViewX() - p2.getInViewX();
+            double dy = getInViewY() - p2.getInViewY();
+            return dx * dx + dy * dy;
+        }
+
+        /**
+         * Gets the distance between this point and an other point.
+         * @param p2 The other point
+         * @return The distance.
+         * @since 10827
+         */
+        public double distanceToInView(MapViewPoint p2) {
+            return Math.sqrt(distanceToInViewSq(p2));
+        }
+
+        /**
+         * Do a linear interpolation to the other point
+         * @param p1 The other point
+         * @param i The interpolation factor. 0 is at the current point, 1 at the other point.
+         * @return The new point
+         * @since 10874
+         */
+        public MapViewPoint interpolate(MapViewPoint p1, int i) {
+            return new MapViewViewPoint((1 - i) * getInViewX() + i * p1.getInViewX(), (1 - i) * getInViewY() + i * p1.getInViewY());
+        }
     }
 
     private class MapViewViewPoint extends MapViewPoint {
@@ -383,12 +553,12 @@ public final class MapViewState {
         }
 
         @Override
-        protected double getInViewX() {
+        public double getInViewX() {
             return x;
         }
 
         @Override
-        protected double getInViewY() {
+        public double getInViewY() {
             return y;
         }
 
@@ -407,12 +577,12 @@ public final class MapViewState {
         }
 
         @Override
-        protected double getInViewX() {
+        public double getInViewX() {
             return (eastNorth.east() - topLeft.east()) / scale;
         }
 
         @Override
-        protected double getInViewY() {
+        public double getInViewY() {
             return (topLeft.north() - eastNorth.north()) / scale;
         }
 
@@ -473,7 +643,8 @@ public final class MapViewState {
          * @since 10458
          */
         public Bounds getLatLonBoundsBox() {
-            return projection.getLatLonBoundsBox(getProjectionBounds());
+            // TODO @michael2402: Use hillclimb.
+            return projecting.getBaseProjection().getLatLonBoundsBox(getProjectionBounds());
         }
 
         /**
@@ -488,6 +659,15 @@ public final class MapViewState {
             double y2 = p2.getInViewY();
             return new Rectangle2D.Double(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x1 - x2), Math.abs(y1 - y2));
         }
+
+        /**
+         * Check if the rectangle intersects the map view area.
+         * @return <code>true</code> if it intersects.
+         * @since 10827
+         */
+        public boolean isInView() {
+            return getInView().intersects(getViewArea().getInView());
+        }
     }
 
 }
diff --git a/src/org/openstreetmap/josm/gui/NavigatableComponent.java b/src/org/openstreetmap/josm/gui/NavigatableComponent.java
index 7e4d6e7..56db076 100644
--- a/src/org/openstreetmap/josm/gui/NavigatableComponent.java
+++ b/src/org/openstreetmap/josm/gui/NavigatableComponent.java
@@ -293,14 +293,14 @@ public class NavigatableComponent extends JComponent implements Helpful {
      * Zoom in current view. Use configured zoom step and scaling settings.
      */
     public void zoomIn() {
-        zoomTo(getCenter(), scaleZoomIn());
+        zoomTo(state.getCenterAtPixel().getEastNorth(), scaleZoomIn());
     }
 
     /**
      * Zoom out current view. Use configured zoom step and scaling settings.
      */
     public void zoomOut() {
-        zoomTo(getCenter(), scaleZoomOut());
+        zoomTo(state.getCenterAtPixel().getEastNorth(), scaleZoomOut());
     }
 
     /**
@@ -407,7 +407,7 @@ public class NavigatableComponent extends JComponent implements Helpful {
      * @return the current center of the viewport
      */
     public EastNorth getCenter() {
-        return state.getCenter().getEastNorth();
+        return state.getCenterAtPixel().getEastNorth();
     }
 
     /**
@@ -503,22 +503,34 @@ public class NavigatableComponent extends JComponent implements Helpful {
         return getPoint2D(n.getEastNorth());
     }
 
-    // looses precision, may overflow (depends on p and current scale)
-    //@Deprecated
+    /**
+     * looses precision, may overflow (depends on p and current scale)
+     * @param p east/north
+     * @return point
+     * @see #getPoint2D(EastNorth)
+     */
     public Point getPoint(EastNorth p) {
         Point2D d = getPoint2D(p);
         return new Point((int) d.getX(), (int) d.getY());
     }
 
-    // looses precision, may overflow (depends on p and current scale)
-    //@Deprecated
+    /**
+     * looses precision, may overflow (depends on p and current scale)
+     * @param latlon lat/lon
+     * @return point
+     * @see #getPoint2D(LatLon)
+     */
     public Point getPoint(LatLon latlon) {
         Point2D d = getPoint2D(latlon);
         return new Point((int) d.getX(), (int) d.getY());
     }
 
-    // looses precision, may overflow (depends on p and current scale)
-    //@Deprecated
+    /**
+     * looses precision, may overflow (depends on p and current scale)
+     * @param n node
+     * @return point
+     * @see #getPoint2D(Node)
+     */
     public Point getPoint(Node n) {
         Point2D d = getPoint2D(n);
         return new Point((int) d.getX(), (int) d.getY());
@@ -537,24 +549,25 @@ public class NavigatableComponent extends JComponent implements Helpful {
     /**
      * Zoom to the given coordinate and scale.
      *
-     * @param newCenter The center x-value (easting) to zoom to.
-     * @param newScale The scale to use.
+     * @param center The center x-value (easting) to zoom to.
+     * @param scale The scale to use.
      * @param initial true if this call initializes the viewport.
      */
-    public void zoomTo(EastNorth newCenter, double newScale, boolean initial) {
+    public void zoomTo(EastNorth center, double scale, boolean initial) {
         Bounds b = getProjection().getWorldBoundsLatLon();
         ProjectionBounds pb = getProjection().getWorldBoundsBoxEastNorth();
+        double newScale = scale;
         int width = getWidth();
         int height = getHeight();
 
         // make sure, the center of the screen is within projection bounds
-        double east = newCenter.east();
-        double north = newCenter.north();
+        double east = center.east();
+        double north = center.north();
         east = Math.max(east, pb.minEast);
         east = Math.min(east, pb.maxEast);
         north = Math.max(north, pb.minNorth);
         north = Math.min(north, pb.maxNorth);
-        newCenter = new EastNorth(east, north);
+        EastNorth newCenter = new EastNorth(east, north);
 
         // don't zoom out too much, the world bounds should be at least
         // half the size of the screen
@@ -601,7 +614,7 @@ public class NavigatableComponent extends JComponent implements Helpful {
     private void zoomNoUndoTo(EastNorth newCenter, double newScale, boolean initial) {
         if (!newCenter.equals(getCenter())) {
             EastNorth oldCenter = getCenter();
-            state = state.usingCenter(newCenter);
+            state = state.movedTo(state.getCenterAtPixel(), newCenter);
             if (!initial) {
                 firePropertyChange(PROPNAME_CENTER, oldCenter, newCenter);
             }
@@ -610,7 +623,7 @@ public class NavigatableComponent extends JComponent implements Helpful {
             double oldScale = getScale();
             state = state.usingScale(newScale);
             // temporary. Zoom logic needs to be moved.
-            state = state.movedTo(state.getCenter(), newCenter);
+            state = state.movedTo(state.getCenterAtPixel(), newCenter);
             if (!initial) {
                 firePropertyChange(PROPNAME_SCALE, oldScale, newScale);
             }
diff --git a/src/org/openstreetmap/josm/gui/Notification.java b/src/org/openstreetmap/josm/gui/Notification.java
index 19e15d9..70bb0b8 100644
--- a/src/org/openstreetmap/josm/gui/Notification.java
+++ b/src/org/openstreetmap/josm/gui/Notification.java
@@ -31,6 +31,9 @@ import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
  */
 public class Notification {
 
+    /**
+     * Default width of a notification
+     */
     public static final int DEFAULT_CONTENT_WIDTH = 350;
 
     // some standard duration values (in milliseconds)
@@ -58,7 +61,7 @@ public class Notification {
     public static final int TIME_VERY_LONG = Main.pref.getInteger("notification-time-very_long-ms", 20000);
 
     private Component content;
-    private int duration;
+    private int duration = Notification.TIME_DEFAULT;
     private Icon icon;
     private String helpTopic;
 
@@ -66,7 +69,7 @@ public class Notification {
      * Constructs a new {@code Notification} without content.
      */
     public Notification() {
-        duration = NotificationManager.defaultNotificationTime;
+        // nothing to do.
     }
 
     /**
@@ -169,18 +172,34 @@ public class Notification {
         return this;
     }
 
+    /**
+     * Gets the content component to use.
+     * @return The content
+     */
     public Component getContent() {
         return content;
     }
 
+    /**
+     * Gets the time the notification should be displayed
+     * @return The time to display the notification
+     */
     public int getDuration() {
         return duration;
     }
 
+    /**
+     * Gets the icon that should be displayed next to the notification
+     * @return The icon to display
+     */
     public Icon getIcon() {
         return icon;
     }
 
+    /**
+     * Gets the help topic for this notification
+     * @return The help topic
+     */
     public String getHelpTopic() {
         return helpTopic;
     }
diff --git a/src/org/openstreetmap/josm/gui/NotificationManager.java b/src/org/openstreetmap/josm/gui/NotificationManager.java
index 49291a2..ffd3a59 100644
--- a/src/org/openstreetmap/josm/gui/NotificationManager.java
+++ b/src/org/openstreetmap/josm/gui/NotificationManager.java
@@ -36,6 +36,7 @@ import javax.swing.SwingUtilities;
 import javax.swing.Timer;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.IntegerProperty;
 import org.openstreetmap.josm.gui.help.HelpBrowser;
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -63,34 +64,31 @@ class NotificationManager {
     private NotificationPanel currentNotificationPanel;
     private final Queue<Notification> queue;
 
-    private static int pauseTime = Main.pref.getInteger("notification-default-pause-time-ms", 300); // milliseconds
-    static int defaultNotificationTime = Main.pref.getInteger("notification-default-time-ms", 5000); // milliseconds
+    private static IntegerProperty pauseTime = new IntegerProperty("notification-default-pause-time-ms", 300); // milliseconds
 
     private long displayTimeStart;
     private long elapsedTime;
 
-    private static NotificationManager INSTANCE;
+    private static NotificationManager instance;
 
     private static final Color PANEL_SEMITRANSPARENT = new Color(224, 236, 249, 230);
     private static final Color PANEL_OPAQUE = new Color(224, 236, 249);
 
-    public static synchronized NotificationManager getInstance() {
-        if (INSTANCE == null) {
-            INSTANCE = new NotificationManager();
-        }
-        return INSTANCE;
-    }
-
     NotificationManager() {
         queue = new LinkedList<>();
-        hideTimer = new Timer(defaultNotificationTime, new HideEvent());
+        hideTimer = new Timer(Notification.TIME_DEFAULT, e -> this.stopHideTimer());
         hideTimer.setRepeats(false);
-        pauseTimer = new Timer(pauseTime, new PauseFinishedEvent());
+        pauseTimer = new Timer(pauseTime.get(), new PauseFinishedEvent());
         pauseTimer.setRepeats(false);
         unfreezeDelayTimer = new Timer(10, new UnfreezeEvent());
         unfreezeDelayTimer.setRepeats(false);
     }
 
+    /**
+     * Show the given notification
+     * @param note The note to show.
+     * @see Notification#show()
+     */
     public void showNotification(Notification note) {
         synchronized (queue) {
             queue.add(note);
@@ -104,7 +102,7 @@ class NotificationManager {
         currentNotification = queue.poll();
         if (currentNotification == null) return;
 
-        currentNotificationPanel = new NotificationPanel(currentNotification);
+        currentNotificationPanel = new NotificationPanel(currentNotification, new FreezeMouseListener(), e -> this.stopHideTimer());
         currentNotificationPanel.validate();
 
         int margin = 5;
@@ -146,21 +144,17 @@ class NotificationManager {
         hideTimer.restart();
     }
 
-    private class HideEvent implements ActionListener {
-
-        @Override
-        public void actionPerformed(ActionEvent e) {
-            hideTimer.stop();
-            if (currentNotificationPanel != null) {
-                currentNotificationPanel.setVisible(false);
-                JFrame parent = (JFrame) Main.parent;
-                if (parent != null) {
-                    parent.getLayeredPane().remove(currentNotificationPanel);
-                }
-                currentNotificationPanel = null;
+    private void stopHideTimer() {
+        hideTimer.stop();
+        if (currentNotificationPanel != null) {
+            currentNotificationPanel.setVisible(false);
+            JFrame parent = (JFrame) Main.parent;
+            if (parent != null) {
+                parent.getLayeredPane().remove(currentNotificationPanel);
             }
-            pauseTimer.restart();
+            currentNotificationPanel = null;
         }
+        pauseTimer.restart();
     }
 
     private class PauseFinishedEvent implements ActionListener {
@@ -186,21 +180,23 @@ class NotificationManager {
         }
     }
 
-    private class NotificationPanel extends JPanel {
+    private static class NotificationPanel extends JPanel {
 
         private JPanel innerPanel;
 
-        NotificationPanel(Notification note) {
+        NotificationPanel(Notification note, MouseListener freeze, ActionListener hideListener) {
             setVisible(false);
-            build(note);
+            build(note, freeze, hideListener);
         }
 
         public void setNotificationBackground(Color c) {
             innerPanel.setBackground(c);
         }
 
-        private void build(final Notification note) {
-            JButton btnClose = new JButton(new HideAction());
+        private void build(final Notification note, MouseListener freeze, ActionListener hideListener) {
+            JButton btnClose = new JButton();
+            btnClose.addActionListener(hideListener);
+            btnClose.setIcon(ImageProvider.get("misc", "grey_x"));
             btnClose.setPreferredSize(new Dimension(50, 50));
             btnClose.setMargin(new Insets(0, 0, 1, 1));
             btnClose.setContentAreaFilled(false);
@@ -294,11 +290,10 @@ class NotificationManager {
              * of a second, background color is switched twice), so there is
              * a tiny delay before the timer really resumes.
              */
-            MouseListener freeze = new FreezeMouseListener();
             addMouseListenerToAllChildComponents(this, freeze);
         }
 
-        private void addMouseListenerToAllChildComponents(Component comp, MouseListener listener) {
+        private static void addMouseListenerToAllChildComponents(Component comp, MouseListener listener) {
             comp.addMouseListener(listener);
             if (comp instanceof Container) {
                 for (Component c: ((Container) comp).getComponents()) {
@@ -306,36 +301,24 @@ class NotificationManager {
                 }
             }
         }
+    }
 
-        class HideAction extends AbstractAction {
-
-            HideAction() {
-                putValue(SMALL_ICON, ImageProvider.get("misc", "grey_x"));
-            }
-
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                new HideEvent().actionPerformed(null);
+    class FreezeMouseListener extends MouseAdapter {
+        @Override
+        public void mouseEntered(MouseEvent e) {
+            if (unfreezeDelayTimer.isRunning()) {
+                unfreezeDelayTimer.stop();
+            } else {
+                hideTimer.stop();
+                elapsedTime += System.currentTimeMillis() - displayTimeStart;
+                currentNotificationPanel.setNotificationBackground(PANEL_OPAQUE);
+                currentNotificationPanel.repaint();
             }
         }
 
-        class FreezeMouseListener extends MouseAdapter {
-            @Override
-            public void mouseEntered(MouseEvent e) {
-                if (unfreezeDelayTimer.isRunning()) {
-                    unfreezeDelayTimer.stop();
-                } else {
-                    hideTimer.stop();
-                    elapsedTime += System.currentTimeMillis() - displayTimeStart;
-                    currentNotificationPanel.setNotificationBackground(PANEL_OPAQUE);
-                    currentNotificationPanel.repaint();
-                }
-            }
-
-            @Override
-            public void mouseExited(MouseEvent e) {
-                unfreezeDelayTimer.restart();
-            }
+        @Override
+        public void mouseExited(MouseEvent e) {
+            unfreezeDelayTimer.restart();
         }
     }
 
@@ -370,4 +353,11 @@ class NotificationManager {
             super.paintComponent(graphics);
         }
     }
+
+    public static synchronized NotificationManager getInstance() {
+        if (instance == null) {
+            instance = new NotificationManager();
+        }
+        return instance;
+    }
 }
diff --git a/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java b/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java
index c2deeb8..01e9adf 100644
--- a/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java
+++ b/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java
@@ -44,7 +44,7 @@ public class OsmPrimitivRenderer implements ListCellRenderer<OsmPrimitive>, Tabl
     @Override
     public Component getListCellRendererComponent(JList<? extends OsmPrimitive> list, OsmPrimitive value, int index,
             boolean isSelected, boolean cellHasFocus) {
-        Component def = defaultListCellRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+        Component def = defaultListCellRenderer.getListCellRendererComponent(list, null, index, isSelected, cellHasFocus);
         return renderer(def, value, list.getModel().getSize() > 1000);
     }
 
diff --git a/src/org/openstreetmap/josm/gui/ProgramArguments.java b/src/org/openstreetmap/josm/gui/ProgramArguments.java
new file mode 100644
index 0000000..a892268
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/ProgramArguments.java
@@ -0,0 +1,226 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Optional;
+import java.util.logging.Level;
+import java.util.stream.Stream;
+
+import org.openstreetmap.josm.tools.Logging;
+
+import gnu.getopt.Getopt;
+import gnu.getopt.LongOpt;
+
+/**
+ * This class holds the arguments passed on to Main.
+ * @author Michael Zangl
+ * @since 10899
+ */
+public class ProgramArguments {
+
+    /**
+     * JOSM command line options.
+     * @see <a href="https://josm.openstreetmap.de/wiki/Help/CommandLineOptions">Help/CommandLineOptions</a>
+     */
+    public enum Option {
+        /** --help|-h                                  Show this help */
+        HELP(false),
+        /** --version                                  Displays the JOSM version and exits */
+        VERSION(false),
+        /** --debug                                    Print debugging messages to console */
+        DEBUG(false),
+        /** --trace                                    Print detailed debugging messages to console */
+        TRACE(false),
+        /** --language=<language>                Set the language */
+        LANGUAGE(true),
+        /** --reset-preferences                        Reset the preferences to default */
+        RESET_PREFERENCES(false),
+        /** --load-preferences=<url-to-xml>      Changes preferences according to the XML file */
+        LOAD_PREFERENCES(true),
+        /** --set=<key>=<value>            Set preference key to value */
+        SET(true),
+        /** --geometry=widthxheight(+|-)x(+|-)y        Standard unix geometry argument */
+        GEOMETRY(true),
+        /** --no-maximize                              Do not launch in maximized mode */
+        NO_MAXIMIZE(false),
+        /** --maximize                                 Launch in maximized mode */
+        MAXIMIZE(false),
+        /** --download=minlat,minlon,maxlat,maxlon     Download the bounding box <br>
+         *  --download=<URL>                     Download the location at the URL (with lat=x&lon=y&zoom=z) <br>
+         *  --download=<filename>                Open a file (any file type that can be opened with File/Open) */
+        DOWNLOAD(true),
+        /** --downloadgps=minlat,minlon,maxlat,maxlon  Download the bounding box as raw GPS <br>
+         *  --downloadgps=<URL>                  Download the location at the URL (with lat=x&lon=y&zoom=z) as raw GPS */
+        DOWNLOADGPS(true),
+        /** --selection=<searchstring>           Select with the given search */
+        SELECTION(true),
+        /** --offline=<osm_api|josm_website|all> Disable access to the given resource(s), delimited by comma */
+        OFFLINE(true),
+        /** --skip-plugins */
+        SKIP_PLUGINS(false);
+
+        private final String name;
+        private final boolean requiresArg;
+
+        Option(boolean requiresArgument) {
+            this.name = name().toLowerCase(Locale.ENGLISH).replace('_', '-');
+            this.requiresArg = requiresArgument;
+        }
+
+        /**
+         * Replies the option name
+         * @return The option name, in lowercase
+         */
+        public String getName() {
+            return name;
+        }
+
+        /**
+         * Determines if this option requires an argument.
+         * @return {@code true} if this option requires an argument, {@code false} otherwise
+         */
+        public boolean requiresArgument() {
+            return requiresArg;
+        }
+
+        LongOpt toLongOpt() {
+            return new LongOpt(getName(), requiresArgument() ? LongOpt.REQUIRED_ARGUMENT : LongOpt.NO_ARGUMENT, null, 0);
+        }
+    }
+
+    private final Map<Option, List<String>> argMap = new EnumMap<>(Option.class);
+
+    /**
+     * Construct the program arguments object
+     * @param args The args passed to main.
+     * @since 10936
+     */
+    public ProgramArguments(String ... args) {
+        Stream.of(Option.values()).forEach(o -> argMap.put(o, new ArrayList<>()));
+        buildCommandLineArgumentMap(args);
+    }
+
+    /**
+     * Builds the command-line argument map.
+     * @param args command-line arguments array
+     */
+    private void buildCommandLineArgumentMap(String ... args) {
+        LongOpt[] los = Stream.of(Option.values()).map(Option::toLongOpt).toArray(i -> new LongOpt[i]);
+
+        Getopt g = new Getopt("JOSM", args, "hv", los);
+
+        int c;
+        while ((c = g.getopt()) != -1) {
+            Option opt;
+            switch (c) {
+            case 'h':
+                opt = Option.HELP;
+                break;
+            case 'v':
+                opt = Option.VERSION;
+                break;
+            case 0:
+                opt = Option.values()[g.getLongind()];
+                break;
+            default:
+                opt = null;
+            }
+            if (opt != null) {
+                addOption(opt, g.getOptarg());
+            } else
+                throw new IllegalArgumentException("Invalid option: "+c);
+        }
+        // positional arguments are a shortcut for the --download ... option
+        for (int i = g.getOptind(); i < args.length; ++i) {
+            addOption(Option.DOWNLOAD, args[i]);
+        }
+    }
+
+    private void addOption(Option opt, String optarg) {
+        argMap.get(opt).add(optarg);
+    }
+
+    /**
+     * Gets a single argument (the first) that was given for the given option.
+     * @param option The option to search
+     * @return The argument as optional value.
+     */
+    public Optional<String> getSingle(Option option) {
+        return get(option).stream().findFirst();
+    }
+
+    /**
+     * Gets all values that are given for a given option
+     * @param option The option
+     * @return The values that were given. May be empty.
+     */
+    public Collection<String> get(Option option) {
+        return Collections.unmodifiableList(argMap.get(option));
+    }
+
+    /**
+     * Test if a given option was used by the user.
+     * @param option The option to test for
+     * @return <code>true</code> if the user used it.
+     */
+    public boolean hasOption(Option option) {
+        return !get(option).isEmpty();
+    }
+
+    /**
+     * Helper method to indicate if version should be displayed.
+     * @return <code>true</code> to display version
+     */
+    public boolean showVersion() {
+        return hasOption(Option.VERSION);
+    }
+
+    /**
+     * Helper method to indicate if help should be displayed.
+     * @return <code>true</code> to display version
+     */
+    public boolean showHelp() {
+        return !get(Option.HELP).isEmpty();
+    }
+
+    /**
+     * Get the log level the user wants us to use.
+     * @return The log level.
+     */
+    public Level getLogLevel() {
+        if (hasOption(Option.TRACE)) {
+            return Logging.LEVEL_TRACE;
+        } else if (hasOption(Option.DEBUG)) {
+            return Logging.LEVEL_DEBUG;
+        } else {
+            return Logging.LEVEL_INFO;
+        }
+    }
+
+    /**
+     * Gets a map of all preferences the user wants to set.
+     * @return The preferences to set. It contains null values for preferences to unset
+     */
+    public Map<String, String> getPreferencesToSet() {
+        HashMap<String, String> map = new HashMap<>();
+        get(Option.SET).stream().map(i -> i.split("=", 2)).forEach(kv -> map.put(kv[0], getValue(kv)));
+        return map;
+    }
+
+    private static String getValue(String ... kv) {
+        if (kv.length < 2) {
+            return "";
+        } else if ("null".equals(kv[1])) {
+            return null;
+        } else {
+            return kv[1];
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/conflict/ConflictColors.java b/src/org/openstreetmap/josm/gui/conflict/ConflictColors.java
index 2d5e7e3..96e5a29 100644
--- a/src/org/openstreetmap/josm/gui/conflict/ConflictColors.java
+++ b/src/org/openstreetmap/josm/gui/conflict/ConflictColors.java
@@ -5,14 +5,13 @@ import static org.openstreetmap.josm.tools.I18n.marktr;
 
 import java.awt.Color;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.Preferences.ColorKey;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 
 /**
  * Conflict color constants.
  * @since 4162
  */
-public enum ConflictColors implements ColorKey {
+public enum ConflictColors {
 
     /** Conflict background: no conflict */
     BGCOLOR_NO_CONFLICT(marktr("Conflict background: no conflict"), new Color(234, 234, 234)),
@@ -82,27 +81,10 @@ public enum ConflictColors implements ColorKey {
     /** Conflict foreground: remove member */
     FGCOLOR_MEMBER_REMOVE(marktr("Conflict foreground: remove member"), Color.black);
 
-    private final String name;
-    private final Color defaultColor;
+    private final ColorProperty property;
 
     ConflictColors(String name, Color defaultColor) {
-        this.name = name;
-        this.defaultColor = defaultColor;
-    }
-
-    @Override
-    public String getColorName() {
-        return name;
-    }
-
-    @Override
-    public Color getDefaultValue() {
-        return defaultColor;
-    }
-
-    @Override
-    public String getSpecialName() {
-        return null;
+        property = new ColorProperty(name, defaultColor);
     }
 
     /**
@@ -110,7 +92,7 @@ public enum ConflictColors implements ColorKey {
      * @return the color
      */
     public Color get() {
-        return Main.pref.getColor(this);
+        return property.get();
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java b/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
index 3cc5032..7a5a49b 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
@@ -48,6 +48,7 @@ import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.StreamUtils;
 import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.WindowGeometry;
@@ -169,6 +170,7 @@ public class CombinePrimitiveResolverDialog extends JDialog {
         getContentPane().add(pnlButtons, BorderLayout.SOUTH);
         addWindowListener(new AdjustDividerLocationAction());
         HelpUtil.setHelpContext(getRootPane(), ht("/"));
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
     }
 
     protected JPanel buildTagConflictResolverPanel() {
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java b/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java
index 6b4cc6c..511f7c3 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java
@@ -40,6 +40,7 @@ import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.tagging.TagTableColumnModelBuilder;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
 public class PasteTagsConflictResolverDialog extends JDialog implements PropertyChangeListener {
@@ -103,6 +104,8 @@ public class PasteTagsConflictResolverDialog extends JDialog implements Property
         gc.weightx = 1.0;
         gc.weighty = 0.0;
         getContentPane().add(buildButtonPanel(), gc);
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
+
     }
 
     protected JPanel buildButtonPanel() {
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java b/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
index a347d4c..45afad4 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
@@ -21,7 +21,7 @@ public class TagConflictResolverModel extends DefaultTableModel {
 
     private transient TagCollection tags;
     private List<String> displayedKeys;
-    private Set<String> keysWithConflicts = new HashSet<>();
+    private final Set<String> keysWithConflicts = new HashSet<>();
     private transient Map<String, MultiValueResolutionDecision> decisions;
     private int numConflicts;
     private final PropertyChangeSupport support;
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/AbstractStackTransferHandler.java b/src/org/openstreetmap/josm/gui/datatransfer/AbstractStackTransferHandler.java
new file mode 100644
index 0000000..228fa31
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/datatransfer/AbstractStackTransferHandler.java
@@ -0,0 +1,67 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer;
+
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+
+import javax.swing.JComponent;
+import javax.swing.TransferHandler;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.gui.datatransfer.importers.AbstractOsmDataPaster;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.tools.bugreport.BugReport;
+
+/**
+ * A transfer handler class that allows you to manage a prioritized stack of transfer handlers.
+ * @author Michael Zangl
+ * @since 10881
+ */
+public abstract class AbstractStackTransferHandler extends TransferHandler {
+
+    protected abstract Collection<AbstractOsmDataPaster> getSupportedPasters();
+
+    @Override
+    public int getSourceActions(JComponent c) {
+        return COPY;
+    }
+
+    @Override
+    public boolean canImport(TransferSupport support) {
+        // import everything for now, only support copy.
+        for (AbstractOsmDataPaster df : getSupportedPasters()) {
+            if (df.supports(support)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public boolean importData(TransferSupport support) {
+        return importData(support, Main.getLayerManager().getEditLayer(), null);
+    }
+
+    protected boolean importData(TransferSupport support, OsmDataLayer layer, EastNorth center) {
+        for (AbstractOsmDataPaster df : getSupportedPasters()) {
+            if (df.supports(support)) {
+                try {
+                    if (Main.isDebugEnabled()) {
+                        Main.debug("{0} pasting {1} at {2}", df.getClass().getSimpleName(), Arrays.toString(support.getDataFlavors()), center);
+                    }
+                    if (df.importData(support, layer, center)) {
+                        return true;
+                    }
+                } catch (UnsupportedFlavorException | IOException e) {
+                    Main.warn(e);
+                } catch (RuntimeException e) {
+                    BugReport.intercept(e).put("paster", df).put("flavors", support::getDataFlavors).warn();
+                }
+            }
+        }
+        return super.importData(support);
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java b/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
index daa70ff..e4e847f 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
@@ -147,4 +147,20 @@ public final class ClipboardUtils {
             }
         });
     }
+
+    /**
+     * Returns a new {@link DataFlavor} for the given class and human-readable name.
+     * @param c class
+     * @param humanPresentableName the human-readable string used to identify this flavor
+     * @return a new {@link DataFlavor} for the given class and human-readable name
+     * @since 10801
+     */
+    public static DataFlavor newDataFlavor(Class<?> c, String humanPresentableName) {
+        try {
+            return new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + ";class=" + c.getName(),
+                    humanPresentableName, c.getClassLoader());
+        } catch (ClassNotFoundException e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
 }
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/FileTransferHandler.java b/src/org/openstreetmap/josm/gui/datatransfer/FileTransferHandler.java
deleted file mode 100644
index 2274dfe..0000000
--- a/src/org/openstreetmap/josm/gui/datatransfer/FileTransferHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.gui.datatransfer;
-
-import java.awt.datatransfer.UnsupportedFlavorException;
-import java.io.IOException;
-
-import javax.swing.JComponent;
-import javax.swing.TransferHandler;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.gui.datatransfer.importers.FilePaster;
-
-/**
- * This transfer handler allows to drop files to open them.
- *
- * @author Michael Zangl
- * @since 10620
- */
-public class FileTransferHandler extends TransferHandler {
-
-    private static final FilePaster filePaster = new FilePaster();
-
-    @Override
-    public int getSourceActions(JComponent c) {
-        return COPY;
-    }
-
-    @Override
-    public boolean canImport(TransferSupport support) {
-        return filePaster.supports(support);
-    }
-
-    @Override
-    public boolean importData(TransferSupport support) {
-        try {
-            if (filePaster.supports(support)) {
-                return filePaster.importData(support, null, null);
-            }
-        } catch (UnsupportedFlavorException | IOException e) {
-            Main.warn(e, "Error while importing file.");
-        }
-        return super.importData(support);
-    }
-}
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/LayerTransferable.java b/src/org/openstreetmap/josm/gui/datatransfer/LayerTransferable.java
index 6ecc485..3e96910 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/LayerTransferable.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/LayerTransferable.java
@@ -62,8 +62,7 @@ public class LayerTransferable implements Transferable {
     /**
      * Data flavor for {@link Layer}s which are wrapped in {@link Data}.
      */
-    public static final DataFlavor LAYER_DATA = new DataFlavor(
-            DataFlavor.javaJVMLocalObjectMimeType + ";class=" + Data.class.getName(), "Layers");
+    public static final DataFlavor LAYER_DATA = ClipboardUtils.newDataFlavor(Data.class, "Layers");
 
     private final Data data;
 
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/OpenTransferHandler.java b/src/org/openstreetmap/josm/gui/datatransfer/OpenTransferHandler.java
new file mode 100644
index 0000000..1305ae3
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/datatransfer/OpenTransferHandler.java
@@ -0,0 +1,27 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.openstreetmap.josm.gui.datatransfer.importers.AbstractOsmDataPaster;
+import org.openstreetmap.josm.gui.datatransfer.importers.FilePaster;
+import org.openstreetmap.josm.gui.datatransfer.importers.OsmLinkPaster;
+
+/**
+ * This transfer handler allows to e.g. drop files to open them.
+ *
+ * @author Michael Zangl
+ * @since 10620
+ * @since 10881 rename
+ */
+public class OpenTransferHandler extends AbstractStackTransferHandler {
+
+    private static final Collection<AbstractOsmDataPaster> SUPPORTED = Arrays.asList(new FilePaster(), new OsmLinkPaster());
+
+    @Override
+    protected Collection<AbstractOsmDataPaster> getSupportedPasters() {
+        return Collections.unmodifiableCollection(SUPPORTED);
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java b/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java
index fdc8b89..a389742 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java
@@ -7,14 +7,14 @@ import java.awt.datatransfer.UnsupportedFlavorException;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collection;
-
-import javax.swing.TransferHandler;
+import java.util.Collections;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.datatransfer.importers.AbstractOsmDataPaster;
 import org.openstreetmap.josm.gui.datatransfer.importers.FilePaster;
+import org.openstreetmap.josm.gui.datatransfer.importers.OsmLinkPaster;
 import org.openstreetmap.josm.gui.datatransfer.importers.PrimitiveDataPaster;
 import org.openstreetmap.josm.gui.datatransfer.importers.PrimitiveTagTransferPaster;
 import org.openstreetmap.josm.gui.datatransfer.importers.TagTransferPaster;
@@ -26,42 +26,16 @@ import org.openstreetmap.josm.gui.layer.OsmDataLayer;
  * @author Michael Zangl
  * @since 10604
  */
-public class OsmTransferHandler extends TransferHandler {
+public class OsmTransferHandler extends AbstractStackTransferHandler {
 
     private static final Collection<AbstractOsmDataPaster> SUPPORTED = Arrays.asList(
             new FilePaster(), new PrimitiveDataPaster(),
             new PrimitiveTagTransferPaster(),
-            new TagTransferPaster(), new TextTagPaster());
+            new TagTransferPaster(), new OsmLinkPaster(), new TextTagPaster());
 
     @Override
-    public boolean canImport(TransferSupport support) {
-        // import everything for now, only support copy.
-        for (AbstractOsmDataPaster df : SUPPORTED) {
-            if (df.supports(support)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public boolean importData(TransferSupport support) {
-        return importData(support, Main.getLayerManager().getEditLayer(), null);
-    }
-
-    private boolean importData(TransferSupport support, OsmDataLayer layer, EastNorth center) {
-        for (AbstractOsmDataPaster df : SUPPORTED) {
-            if (df.supports(support)) {
-                try {
-                    if (df.importData(support, layer, center)) {
-                        return true;
-                    }
-                } catch (UnsupportedFlavorException | IOException e) {
-                    Main.warn(e);
-                }
-            }
-        }
-        return super.importData(support);
+    protected Collection<AbstractOsmDataPaster> getSupportedPasters() {
+        return Collections.unmodifiableCollection(SUPPORTED);
     }
 
     private boolean importTags(TransferSupport support, Collection<? extends OsmPrimitive> primitives) {
@@ -122,6 +96,9 @@ public class OsmTransferHandler extends TransferHandler {
             }
         } catch (IllegalStateException e) {
             Main.debug(e);
+        } catch (NullPointerException e) {
+            // JDK-6322854: On Linux/X11, NPE can happen for unknown reasons, on all versions of Java
+            Main.error(e);
         }
         return false;
     }
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java b/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java
index 8d6c9a0..fb8d5af 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java
@@ -88,7 +88,7 @@ public class PrimitiveTransferable implements Transferable {
 
     protected String getStringData() {
         final StringBuilder sb = new StringBuilder();
-        for (PrimitiveData primitive : primitives.getAll()) {
+        for (PrimitiveData primitive : primitives.getDirectlyAdded()) {
             if (sb.length() > 0) {
                 sb.append("\n");
             }
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/SingleLayerTransferable.java b/src/org/openstreetmap/josm/gui/datatransfer/SingleLayerTransferable.java
deleted file mode 100644
index fa8a4d1..0000000
--- a/src/org/openstreetmap/josm/gui/datatransfer/SingleLayerTransferable.java
+++ /dev/null
@@ -1,56 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.gui.datatransfer;
-
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.Transferable;
-import java.awt.datatransfer.UnsupportedFlavorException;
-import java.io.IOException;
-import java.util.List;
-
-import org.openstreetmap.josm.gui.datatransfer.data.LayerTransferData;
-import org.openstreetmap.josm.gui.datatransfer.data.OsmLayerTransferData;
-import org.openstreetmap.josm.gui.layer.Layer;
-import org.openstreetmap.josm.gui.layer.LayerManager;
-import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-
-/**
- * This class handles the transfer of a layer inside this JOSM instance.
- * @author Michael Zangl
- * @since 10605
- */
-public class SingleLayerTransferable implements Transferable {
-    private final LayerTransferData data;
-
-    /**
-     * Create a new {@link SingleLayerTransferable}
-     * @param manager The manager the layer belongs to
-     * @param layer The layer that is transfered.
-     */
-    public SingleLayerTransferable(LayerManager manager, Layer layer) {
-        if (layer instanceof OsmDataLayer) {
-            this.data = new OsmLayerTransferData(manager, (OsmDataLayer) layer);
-        } else {
-            this.data = new LayerTransferData(manager, layer);
-        }
-    }
-
-    @Override
-    public DataFlavor[] getTransferDataFlavors() {
-        List<DataFlavor> flavors = data.getSupportedFlavors();
-        return flavors.toArray(new DataFlavor[flavors.size()]);
-    }
-
-    @Override
-    public boolean isDataFlavorSupported(DataFlavor flavor) {
-        return data.getSupportedFlavors().contains(flavor);
-    }
-
-    @Override
-    public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
-        if (isDataFlavorSupported(flavor)) {
-            return data;
-        } else {
-            throw new UnsupportedFlavorException(flavor);
-        }
-    }
-}
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/data/LayerTransferData.java b/src/org/openstreetmap/josm/gui/datatransfer/data/LayerTransferData.java
index 130fc65..d15b7c7 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/data/LayerTransferData.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/data/LayerTransferData.java
@@ -6,6 +6,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
 import org.openstreetmap.josm.gui.datatransfer.LayerTransferable;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.LayerManager;
@@ -19,8 +20,7 @@ public class LayerTransferData extends LayerTransferable.Data {
     /**
      * This is a data flavor for all layer types
      */
-    public static final DataFlavor FLAVOR = new DataFlavor(
-            DataFlavor.javaJVMLocalObjectMimeType + ";class=" + LayerTransferData.class.getName(), "Layer");
+    public static final DataFlavor FLAVOR = ClipboardUtils.newDataFlavor(LayerTransferData.class, "Layer");
 
     /**
      * The flavors that are supported by this data type.
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/data/OsmLayerTransferData.java b/src/org/openstreetmap/josm/gui/datatransfer/data/OsmLayerTransferData.java
index b086d78..d753fbe 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/data/OsmLayerTransferData.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/data/OsmLayerTransferData.java
@@ -6,6 +6,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
 import org.openstreetmap.josm.gui.datatransfer.LayerTransferable;
 import org.openstreetmap.josm.gui.layer.LayerManager;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -22,8 +23,7 @@ public class OsmLayerTransferData extends LayerTransferData {
      * @see LayerTransferData#FLAVOR
      * @see #FLAVORS
      */
-    public static final DataFlavor OSM_FLAVOR = new DataFlavor(
-            DataFlavor.javaJVMLocalObjectMimeType + ";class=" + LayerTransferData.class.getName(), "Layer");
+    public static final DataFlavor OSM_FLAVOR = ClipboardUtils.newDataFlavor(OsmLayerTransferData.class, "Layer");
 
     /**
      * The flavors that are supported by this data type.
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/data/PrimitiveTransferData.java b/src/org/openstreetmap/josm/gui/datatransfer/data/PrimitiveTransferData.java
index 1acd354..91a235c 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/data/PrimitiveTransferData.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/data/PrimitiveTransferData.java
@@ -149,11 +149,6 @@ public final class PrimitiveTransferData implements Serializable {
      * @return <code>true</code> if invalid data is contained in this set.
      */
     public boolean hasIncompleteData() {
-        for (PrimitiveData pd : getAll()) {
-            if (pd.isIncomplete()) {
-                return true;
-            }
-        }
-        return false;
+        return getAll().stream().anyMatch(p -> p.isIncomplete() || !p.isVisible());
     }
 }
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/importers/AbstractOsmDataPaster.java b/src/org/openstreetmap/josm/gui/datatransfer/importers/AbstractOsmDataPaster.java
index f9aa4c3..619b9f9 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/importers/AbstractOsmDataPaster.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/importers/AbstractOsmDataPaster.java
@@ -56,7 +56,7 @@ public abstract class AbstractOsmDataPaster {
     /**
      * Attempts to import the given transfer data.
      * @param support The transfer support to import from.
-     * @param layer The layer to paste at.
+     * @param layer The layer to paste at. May be null.
      * @param pasteAt The position to paste at.
      * @return <code>true</code> if the import was successful.
      * @throws UnsupportedFlavorException if the requested data flavor is not supported
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/importers/OsmLinkPaster.java b/src/org/openstreetmap/josm/gui/datatransfer/importers/OsmLinkPaster.java
new file mode 100644
index 0000000..d92e95c
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/datatransfer/importers/OsmLinkPaster.java
@@ -0,0 +1,114 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer.importers;
+
+import java.awt.Component;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.TransferHandler.TransferSupport;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
+import org.openstreetmap.josm.data.osm.PrimitiveId;
+import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.io.DownloadPrimitivesWithReferrersTask;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+/**
+ * Handles the paste / drop of an OSM address.
+ * <p>
+ * e.g. http://www.openstreetmap.org/node/123 downloads node 123
+ *
+ * @author Michael Zangl
+ * @since 10881
+ */
+public class OsmLinkPaster extends AbstractOsmDataPaster {
+
+    private static final BooleanProperty PASTE_REFERRERS = new BooleanProperty("paste.url.download-referrers", true);
+    private static final String OSM_SERVER = "^https?\\://(\\w+\\.)?(osm|openstreetmap)\\.org/";
+
+    /**
+     * Create a new Osm address paster
+     */
+    public OsmLinkPaster() {
+        super(DataFlavor.stringFlavor);
+    }
+
+    @Override
+    public boolean importData(TransferSupport support, OsmDataLayer layer, EastNorth pasteAt)
+            throws UnsupportedFlavorException, IOException {
+        if (!supports(support)) {
+            throw new UnsupportedFlavorException(df);
+        }
+
+        String transferData = (String) support.getTransferable().getTransferData(df);
+        List<PrimitiveId> ids = parseIds(transferData);
+
+        if (!ids.isEmpty()) {
+            Main.worker.submit(new DownloadPrimitivesWithReferrersTask(layer == null,
+                    ids, PASTE_REFERRERS.get(), PASTE_REFERRERS.get(), null, null));
+            return true;
+        }
+
+        LatLon ll = parseLatLon(transferData);
+        if (ll != null) {
+            Component comp = support.getComponent();
+            if (comp instanceof MapView) {
+                ((MapView) comp).zoomTo(ll);
+            }
+        }
+
+        return false;
+    }
+
+    protected static LatLon parseLatLon(String transferData) {
+        Matcher matcher = Pattern
+                .compile(OSM_SERVER + "#map=(?<zoom>\\d+)/(?<lat>-?\\d+\\.\\d+)/(?<lon>-?\\d+\\.\\d+)$")
+                .matcher(transferData);
+
+        if (!matcher.matches()) {
+            return null;
+        } else {
+            return new LatLon(Double.parseDouble(matcher.group("lat")), Double.parseDouble(matcher.group("lon")));
+        }
+    }
+
+    static List<PrimitiveId> parseIds(String transferData) {
+        Matcher matcher = Pattern
+                .compile(OSM_SERVER + "(?<type>node|way|relation)/(?<id>\\d+)(\\/.*)?$")
+                .matcher(transferData);
+
+        if (!matcher.matches()) {
+            return Collections.emptyList();
+        }
+
+        OsmPrimitiveType type;
+        switch (matcher.group("type")) {
+        case "way":
+            type = OsmPrimitiveType.WAY;
+            break;
+
+        case "node":
+            type = OsmPrimitiveType.NODE;
+            break;
+
+        case "relation":
+            type = OsmPrimitiveType.RELATION;
+            break;
+
+        default:
+            throw new AssertionError();
+        }
+
+        return Collections.singletonList(new SimplePrimitiveId(Long.parseLong(matcher.group("id")), type));
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/importers/PrimitiveDataPaster.java b/src/org/openstreetmap/josm/gui/datatransfer/importers/PrimitiveDataPaster.java
index 804b209..a6d0841 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/importers/PrimitiveDataPaster.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/importers/PrimitiveDataPaster.java
@@ -25,6 +25,7 @@ import org.openstreetmap.josm.data.osm.WayData;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.datatransfer.data.PrimitiveTransferData;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.tools.bugreport.BugReport;
 
 /**
  * This transfer support allows us to transfer primitives. This is the default paste action when primitives were copied.
@@ -66,13 +67,17 @@ public final class PrimitiveDataPaster extends AbstractOsmDataPaster {
 
         // Update references in copied buffer
         for (PrimitiveData data : bufferCopy) {
-            if (data instanceof NodeData) {
-                NodeData nodeData = (NodeData) data;
-                nodeData.setEastNorth(nodeData.getEastNorth().add(offset));
-            } else if (data instanceof WayData) {
-                updateNodes(newIds.get(OsmPrimitiveType.NODE), data);
-            } else if (data instanceof RelationData) {
-                updateMembers(newIds, data);
+            try {
+                if (data instanceof NodeData) {
+                    NodeData nodeData = (NodeData) data;
+                    nodeData.setEastNorth(nodeData.getEastNorth().add(offset));
+                } else if (data instanceof WayData) {
+                    updateNodes(newIds.get(OsmPrimitiveType.NODE), data);
+                } else if (data instanceof RelationData) {
+                    updateMembers(newIds, data);
+                }
+            } catch (RuntimeException e) {
+                throw BugReport.intercept(e).put("data", data);
             }
         }
         return new AddPrimitivesCommand(bufferCopy, toSelect, layer);
@@ -86,7 +91,7 @@ public final class PrimitiveDataPaster extends AbstractOsmDataPaster {
         newIds.put(OsmPrimitiveType.RELATION, new HashMap<Long, Long>());
 
         for (PrimitiveData data : pasteBuffer.getAll()) {
-            if (data.isIncomplete()) {
+            if (data.isIncomplete() || !data.isVisible()) {
                 continue;
             }
             PrimitiveData copy = data.makeCopy();
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
index 681af62..a4dd813 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
@@ -85,7 +85,6 @@ public class ChangesetDialog extends ToggleDialog {
     private ReadChangesetsAction readChangesetAction;
     private ShowChangesetInfoAction showChangesetInfoAction;
     private CloseOpenChangesetsAction closeChangesetAction;
-    private LaunchChangesetManagerAction launchChangesetManagerAction;
 
     private ChangesetDialogPopup popupMenu;
 
@@ -205,9 +204,6 @@ public class ChangesetDialog extends ToggleDialog {
         showChangesetInfoAction = new ShowChangesetInfoAction();
         cbInSelectionOnly.addItemListener(showChangesetInfoAction);
 
-        // -- launch changeset manager action
-        launchChangesetManagerAction = new LaunchChangesetManagerAction();
-
         popupMenu = new ChangesetDialogPopup(lstInActiveDataLayer, lstInSelection);
 
         PopupMenuLauncher popupMenuLauncher = new PopupMenuLauncher(popupMenu);
@@ -219,7 +215,7 @@ public class ChangesetDialog extends ToggleDialog {
             new SideButton(readChangesetAction, false),
             new SideButton(closeChangesetAction, false),
             new SideButton(showChangesetInfoAction, false),
-            new SideButton(launchChangesetManagerAction, false)
+            new SideButton(new LaunchChangesetManagerAction(), false)
         }));
     }
 
diff --git a/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java b/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
index c803b2e..a093b18 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
@@ -11,6 +11,7 @@ import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
@@ -44,11 +45,11 @@ import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
-import org.openstreetmap.josm.tools.FilteredCollection;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 
 /**
  * Dialog displaying list of all executed commands (undo/redo buffer).
@@ -330,10 +331,10 @@ public class CommandStackDialog extends ToggleDialog implements CommandQueueList
      * @param path GUI elements
      * @return collection of affected primitives, onluy usable ones
      */
-    protected static FilteredCollection<? extends OsmPrimitive> getAffectedPrimitives(TreePath path) {
+    protected static Collection<? extends OsmPrimitive> getAffectedPrimitives(TreePath path) {
         PseudoCommand c = ((CommandListMutableTreeNode) path.getLastPathComponent()).getCommand();
         final OsmDataLayer currentLayer = Main.getLayerManager().getEditLayer();
-        return new FilteredCollection<>(
+        return new SubclassFilteredCollection<>(
                 c.getParticipatingPrimitives(),
                 o -> {
                     OsmPrimitive p = currentLayer.data.getPrimitiveById(o);
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
index 21530f9..f378d43 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
@@ -52,6 +52,7 @@ import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.visitor.AbstractVisitor;
 import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec;
 import org.openstreetmap.josm.gui.NavigatableComponent;
@@ -75,6 +76,9 @@ import org.openstreetmap.josm.tools.Shortcut;
  */
 public final class ConflictDialog extends ToggleDialog implements ActiveLayerChangeListener, IConflictListener, SelectionChangedListener {
 
+    private static final ColorProperty CONFLICT_COLOR = new ColorProperty(marktr("conflict"), Color.GRAY);
+    private static final ColorProperty BACKGROUND_COLOR = new ColorProperty(marktr("background"), Color.BLACK);
+
     /** the collection of conflicts displayed by this conflict dialog */
     private transient ConflictCollection conflicts;
 
@@ -109,7 +113,7 @@ public final class ConflictDialog extends ToggleDialog implements ActiveLayerCha
      * @since 1221
      */
     public static Color getColor() {
-        return Main.pref.getColor(marktr("conflict"), Color.gray);
+        return CONFLICT_COLOR.get();
     }
 
     /**
@@ -217,7 +221,7 @@ public final class ConflictDialog extends ToggleDialog implements ActiveLayerCha
         Conflict<? extends OsmPrimitive> c = conflicts.get(index);
         ConflictResolutionDialog dialog = new ConflictResolutionDialog(Main.parent);
         dialog.getConflictResolver().populate(c);
-        dialog.setVisible(true);
+        dialog.showDialog();
 
         lstConflicts.setSelectedIndex(index);
 
@@ -258,7 +262,7 @@ public final class ConflictDialog extends ToggleDialog implements ActiveLayerCha
      */
     public void paintConflicts(final Graphics g, final NavigatableComponent nc) {
         Color preferencesColor = getColor();
-        if (preferencesColor.equals(Main.pref.getColor(marktr("background"), Color.black)))
+        if (preferencesColor.equals(BACKGROUND_COLOR.get()))
             return;
         g.setColor(preferencesColor);
         Visitor conflictPainter = new ConflictPainter(nc, g);
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
index fcd2344..c5be067 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
@@ -6,43 +6,53 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.BorderLayout;
 import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
 import javax.swing.AbstractAction;
 import javax.swing.Action;
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
-import javax.swing.WindowConstants;
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
+import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.conflict.pair.ConflictResolver;
 import org.openstreetmap.josm.gui.help.HelpBrowser;
 import org.openstreetmap.josm.gui.help.HelpUtil;
-import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.WindowGeometry;
 
 /**
  * This is an extended dialog for resolving conflict between {@link OsmPrimitive}s.
  * @since 1622
  */
-public class ConflictResolutionDialog extends JDialog implements PropertyChangeListener {
+public class ConflictResolutionDialog extends ExtendedDialog implements PropertyChangeListener {
     /** the conflict resolver component */
-    private ConflictResolver resolver;
-    private JLabel titleLabel;
+    private final ConflictResolver resolver = new ConflictResolver();
+    private final JLabel titleLabel = new JLabel("", null, JLabel.CENTER);
 
-    private ApplyResolutionAction applyResolutionAction;
+    private final ApplyResolutionAction applyResolutionAction = new ApplyResolutionAction();
+
+    private boolean isRegistered;
+
+    /**
+     * Constructs a new {@code ConflictResolutionDialog}.
+     * @param parent parent component
+     */
+    public ConflictResolutionDialog(Component parent) {
+        // We define our own actions, but need to give a hint about number of buttons
+        super(parent, tr("Resolve conflicts"), new String[] {null, null, null});
+        setDefaultButton(1);
+        setCancelButton(2);
+        build();
+        pack();
+        if (getInsets().top > 0) {
+            titleLabel.setVisible(false);
+        }
+    }
 
     @Override
     public void removeNotify() {
@@ -56,93 +66,51 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
         registerListeners();
     }
 
-    @Override
-    public void setVisible(boolean isVisible) {
-        String geom = getClass().getName() + ".geometry";
-        if (isVisible) {
-            toFront();
-            new WindowGeometry(geom, WindowGeometry.centerInWindow(Main.parent,
-                new Dimension(600, 400))).applySafe(this);
-        } else {
-            if (isShowing()) { // Avoid IllegalComponentStateException like in #8775
-                new WindowGeometry(this).remember(geom);
-            }
+    private synchronized void registerListeners() {
+        if (!isRegistered) {
+            resolver.addPropertyChangeListener(applyResolutionAction);
+            resolver.registerListeners();
+            isRegistered = true;
         }
-        super.setVisible(isVisible);
     }
 
-    private void closeDialog() {
-        setVisible(false);
-        dispose();
-    }
-
-    /**
-     * builds the sub panel with the control buttons
-     *
-     * @return the panel
-     */
-    protected JPanel buildButtonRow() {
-        JPanel pnl = new JPanel(new FlowLayout(FlowLayout.CENTER));
-
-        applyResolutionAction = new ApplyResolutionAction();
-        JButton btn = new JButton(applyResolutionAction);
-        btn.setName("button.apply");
-        pnl.add(btn);
-
-        btn = new JButton(new CancelAction());
-        btn.setName("button.cancel");
-        pnl.add(btn);
-
-        btn = new JButton(new HelpAction());
-        btn.setName("button.help");
-        pnl.add(btn);
-
-        pnl.setBorder(BorderFactory.createLoweredBevelBorder());
-        return pnl;
-    }
-
-    private void registerListeners() {
-        resolver.addPropertyChangeListener(applyResolutionAction);
-        resolver.registerListeners();
-    }
-
-    private void unregisterListeners() {
-        resolver.removePropertyChangeListener(applyResolutionAction);
-        resolver.unregisterListeners();
+    private synchronized void unregisterListeners() {
+        // See #13479 - See https://bugs.openjdk.java.net/browse/JDK-4387314
+        // Owner window keep a list of owned windows, and does not remove the references when the child is disposed.
+        // There's no easy way to remove ourselves from this list, so we must keep track of register state
+        if (isRegistered) {
+            resolver.removePropertyChangeListener(applyResolutionAction);
+            resolver.unregisterListeners();
+            isRegistered = false;
+        }
     }
 
     /**
      * builds the GUI
      */
     protected void build() {
-        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
-        getContentPane().setLayout(new BorderLayout());
+        JPanel p = new JPanel(new BorderLayout());
 
-        titleLabel = new JLabel();
-        titleLabel.setHorizontalAlignment(JLabel.CENTER);
-        getContentPane().add(titleLabel, BorderLayout.NORTH);
+        p.add(titleLabel, BorderLayout.NORTH);
 
         updateTitle();
 
-        resolver = new ConflictResolver();
         resolver.setName("panel.conflictresolver");
-        getContentPane().add(resolver, BorderLayout.CENTER);
-        getContentPane().add(buildButtonRow(), BorderLayout.SOUTH);
+        p.add(resolver, BorderLayout.CENTER);
 
         resolver.addPropertyChangeListener(this);
         HelpUtil.setHelpContext(this.getRootPane(), ht("Dialog/Conflict"));
+
+        setContent(p);
     }
 
-    /**
-     * Constructs a new {@code ConflictResolutionDialog}.
-     * @param parent parent component
-     */
-    public ConflictResolutionDialog(Component parent) {
-        super(GuiHelper.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
-        build();
-        pack();
-        if (getInsets().top > 0) {
-            titleLabel.setVisible(false);
+    @Override
+    protected Action createButtonAction(int i) {
+        switch (i) {
+            case 0: return applyResolutionAction;
+            case 1: return new CancelAction();
+            case 2: return new HelpAction();
+            default: return super.createButtonAction(i);
         }
     }
 
@@ -166,8 +134,8 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
         }
 
         @Override
-        public void actionPerformed(ActionEvent arg0) {
-            closeDialog();
+        public void actionPerformed(ActionEvent evt) {
+            buttonAction(2, evt);
         }
     }
 
@@ -183,7 +151,7 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
         }
 
         @Override
-        public void actionPerformed(ActionEvent arg0) {
+        public void actionPerformed(ActionEvent evt) {
             HelpBrowser.setUrlForHelpTopic(ht("/Dialog/Conflict"));
         }
     }
@@ -205,7 +173,7 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
         }
 
         @Override
-        public void actionPerformed(ActionEvent arg0) {
+        public void actionPerformed(ActionEvent evt) {
             if (!resolver.isResolvedCompletely()) {
                 Object[] options = {
                         tr("Close anyway"),
@@ -228,15 +196,14 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
                 );
                 switch(ret) {
                 case JOptionPane.YES_OPTION:
-                    closeDialog();
+                    buttonAction(1, evt);
                     break;
                 default:
                     return;
                 }
             }
-            Command cmd = resolver.buildResolveCommand();
-            Main.main.undoRedo.add(cmd);
-            closeDialog();
+            Main.main.undoRedo.add(resolver.buildResolveCommand());
+            buttonAction(1, evt);
         }
 
         @Override
diff --git a/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java b/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
index 2b7798b..9dbc439 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import javax.swing.AbstractAction;
@@ -44,6 +45,7 @@ import javax.swing.table.TableModel;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.MergeLayerAction;
+import org.openstreetmap.josm.data.preferences.AbstractProperty;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.SideButton;
@@ -545,28 +547,18 @@ public class LayerListDialog extends ToggleDialog {
                 label.setFont(label.getFont().deriveFont(Font.BOLD));
             }
             if (Main.pref.getBoolean("dialog.layer.colorname", true)) {
-                Color c = layer.getColor(false);
-                if (c != null) {
-                    Color oc = null;
-                    for (Layer l : model.getLayers()) {
-                        oc = l.getColor(false);
-                        if (oc != null) {
-                            if (oc.equals(c)) {
-                                oc = null;
-                            } else {
-                                break;
-                            }
-                        }
-                    }
+                AbstractProperty<Color> prop = layer.getColorProperty();
+                Color c = prop == null ? null : prop.get();
+                if (c == null || !model.getLayers().stream()
+                        .map(Layer::getColorProperty)
+                        .filter(Objects::nonNull)
+                        .map(AbstractProperty::get)
+                        .anyMatch(oc -> oc != null && !oc.equals(c))) {
                     /* not more than one color, don't use coloring */
-                    if (oc == null) {
-                        c = null;
-                    }
-                }
-                if (c == null) {
-                    c = UIManager.getColor(isSelected ? "Table.selectionForeground" : "Table.foreground");
+                    label.setForeground(UIManager.getColor(isSelected ? "Table.selectionForeground" : "Table.foreground"));
+                } else {
+                    label.setForeground(c);
                 }
-                label.setForeground(c);
             }
             label.setIcon(layer.getIcon());
             label.setToolTipText(layer.getToolTipText());
diff --git a/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java b/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java
index d076bd5..38624eb 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java
@@ -9,6 +9,7 @@ import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import javax.swing.AbstractAction;
@@ -74,7 +75,8 @@ public class LayerListPopup extends JPopupMenu {
 
         List<Action> actions;
         if (selectedLayers.size() == 1) {
-            actions = Arrays.asList(selectedLayers.get(0).getMenuEntries());
+            Action[] entries = selectedLayers.get(0).getMenuEntries();
+            actions = entries != null ? Arrays.asList(entries) : Collections.emptyList();
         } else {
             // Very simple algorithm - first selected layer has actions order as in getMenuEntries, actions from other layers go to the end
             actions = new ArrayList<>();
diff --git a/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java b/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
index a1c433d..9aad569 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
@@ -192,6 +192,12 @@ public class RelationListDialog extends ToggleDialog
         updateActionsRelationLists();
     }
 
+    @Override
+    public void destroy() {
+        model.clear();
+        super.destroy();
+    }
+
     public void enableRecentRelations() {
         recentRelationsAction.enableArrow();
     }
@@ -381,7 +387,6 @@ public class RelationListDialog extends ToggleDialog
 
     /**
      * The list model for the list of relations displayed in the relation list dialog.
-     *
      */
     private class RelationListModel extends AbstractListModel<Relation> {
         private final transient List<Relation> relations = new ArrayList<>();
@@ -393,6 +398,19 @@ public class RelationListDialog extends ToggleDialog
             this.selectionModel = selectionModel;
         }
 
+        /**
+         * Clears the model.
+         */
+        public void clear() {
+            relations.clear();
+            if (filteredRelations != null)
+                filteredRelations.clear();
+            filter = null;
+        }
+
+        /**
+         * Sorts the model using {@link DefaultNameFormatter} relation comparator.
+         */
         public void sort() {
             relations.sort(DefaultNameFormatter.getInstance().getRelationComparator());
         }
diff --git a/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java b/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
index de4c0e4..1a4e234 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
@@ -58,7 +58,6 @@ public class UserListDialog extends ToggleDialog implements SelectionChangedList
     private JTable userTable;
     private UserTableModel model;
     private SelectUsersPrimitivesAction selectionUsersPrimitivesAction;
-    private ShowUserInfoAction showUserInfoAction;
 
     /**
      * Constructs a new {@code UserListDialog}.
@@ -94,7 +93,7 @@ public class UserListDialog extends ToggleDialog implements SelectionChangedList
 
         // -- info action
         //
-        showUserInfoAction = new ShowUserInfoAction();
+        ShowUserInfoAction showUserInfoAction = new ShowUserInfoAction();
         userTable.getSelectionModel().addListSelectionListener(showUserInfoAction);
 
         createLayout(userTable, true, Arrays.asList(new SideButton[] {
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
index a3e121a..7ae55df 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
@@ -150,7 +150,7 @@ public class ValidatorDialog extends ToggleDialog implements SelectionChangedLis
         fixButton.setEnabled(false);
         buttons.add(fixButton);
 
-        if (Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true)) {
+        if (ValidatorPreference.PREF_USE_IGNORE.get()) {
             ignoreButton = new SideButton(new AbstractAction() {
                 {
                     putValue(NAME, tr("Ignore"));
@@ -192,7 +192,6 @@ public class ValidatorDialog extends ToggleDialog implements SelectionChangedLis
             tree.setVisible(v);
         }
         super.setVisible(v);
-        Main.map.repaint();
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
index 63e4880..cad3bae 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
@@ -57,6 +57,7 @@ import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.io.ChangesetQuery;
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
 /**
@@ -256,8 +257,7 @@ public class ChangesetCacheManager extends JFrame {
                 model.getSelectionModel()
         );
         tblChangesets.addMouseListener(new MouseEventHandler());
-        tblChangesets.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "showDetails");
-        tblChangesets.getActionMap().put("showDetails", new ShowDetailAction(model));
+        InputMapUtils.addEnterAction(tblChangesets, new ShowDetailAction(model));
         model.getSelectionModel().addListSelectionListener(new ChangesetDetailViewSynchronizer(model));
 
         // activate DEL on the table
@@ -290,9 +290,7 @@ public class ChangesetCacheManager extends JFrame {
         HelpUtil.setHelpContext(getRootPane(), HelpUtil.ht("/Dialog/ChangesetManager"));
 
         // make the dialog respond to ESC
-        getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
-                KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "cancelAndClose");
-        getRootPane().getActionMap().put("cancelAndClose", new CancelAction());
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
 
         // install a window event handler
         addWindowListener(new WindowEventHandler());
diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
index ce84b1d..73bd718 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
@@ -399,23 +399,19 @@ public class ChangesetContentPanel extends JPanel implements PropertyChangeListe
 
     private static class HeaderPanel extends JPanel {
 
-        private JMultilineLabel lblMessage;
         private transient Changeset current;
 
+        HeaderPanel() {
+            build();
+        }
+
         protected final void build() {
             setLayout(new FlowLayout(FlowLayout.LEFT));
-            lblMessage = new JMultilineLabel(
-                    tr("The content of this changeset is not downloaded yet.")
-            );
-            add(lblMessage);
+            add(new JMultilineLabel(tr("The content of this changeset is not downloaded yet.")));
             add(new JButton(new DownloadAction()));
 
         }
 
-        HeaderPanel() {
-            build();
-        }
-
         public void setChangeset(Changeset cs) {
             setVisible(cs != null && cs.getContent() == null);
             this.current = cs;
diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java
index d76c9ea..bd4a8e2 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java
@@ -9,18 +9,15 @@ import java.awt.Dimension;
 import java.awt.FlowLayout;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 
 import javax.swing.AbstractAction;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JTabbedPane;
-import javax.swing.KeyStroke;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane;
@@ -28,6 +25,7 @@ import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction;
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.io.ChangesetQuery;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
 /**
@@ -89,8 +87,7 @@ public class ChangesetQueryDialog extends JDialog {
         cp.add(buildButtonPanel(), BorderLayout.SOUTH);
 
         // cancel on ESC
-        getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "cancel");
-        getRootPane().getActionMap().put("cancel", new CancelAction());
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
 
         // context sensitive help
         HelpUtil.setHelpContext(getRootPane(), HelpUtil.ht("/Dialog/ChangesetQueryDialog"));
diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
index 7eb11e4..cbadf74 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
@@ -16,11 +16,14 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import javax.swing.JLabel;
 import javax.swing.JTable;
 import javax.swing.UIDefaults;
+import javax.swing.UIManager;
 import javax.swing.table.DefaultTableCellRenderer;
 import javax.swing.table.TableCellRenderer;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
+import org.openstreetmap.josm.data.preferences.CachingProperty;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 
 /**
  * Cell renderer of tags table.
@@ -28,20 +31,32 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
  */
 public class PropertiesCellRenderer extends DefaultTableCellRenderer {
 
+    private static final CachingProperty<Color> SELECTED_FG
+            = new ColorProperty(marktr("Discardable key: selection Foreground"), Color.GRAY).cached();
+    private static final CachingProperty<Color> SELECTED_BG;
+    private static final CachingProperty<Color> NORMAL_FG
+            = new ColorProperty(marktr("Discardable key: foreground"), Color.GRAY).cached();
+    private static final CachingProperty<Color> NORMAL_BG;
+    private static final CachingProperty<Boolean> DISCARDABLE
+            = new BooleanProperty("display.discardable-keys", false).cached();
+
+    static {
+        UIDefaults defaults = UIManager.getDefaults();
+        SELECTED_BG = new ColorProperty(marktr("Discardable key: selection Background"),
+                defaults.getColor("Table.selectionBackground")).cached();
+        NORMAL_BG = new ColorProperty(marktr("Discardable key: background"),
+                defaults.getColor("Table.background")).cached();
+    }
+
     private final Collection<TableCellRenderer> customRenderer = new CopyOnWriteArrayList<>();
 
     private static void setColors(Component c, String key, boolean isSelected) {
-        UIDefaults defaults = javax.swing.UIManager.getDefaults();
+
         if (OsmPrimitive.getDiscardableKeys().contains(key)) {
-            if (isSelected) {
-                c.setForeground(Main.pref.getColor(marktr("Discardable key: selection Foreground"), Color.GRAY));
-                c.setBackground(Main.pref.getColor(marktr("Discardable key: selection Background"),
-                        defaults.getColor("Table.selectionBackground")));
-            } else {
-                c.setForeground(Main.pref.getColor(marktr("Discardable key: foreground"), Color.GRAY));
-                c.setBackground(Main.pref.getColor(marktr("Discardable key: background"), defaults.getColor("Table.background")));
-            }
+            c.setForeground((isSelected ? SELECTED_FG : NORMAL_FG).get());
+            c.setBackground((isSelected ? SELECTED_BG : NORMAL_BG).get());
         } else {
+            UIDefaults defaults = UIManager.getDefaults();
             c.setForeground(defaults.getColor("Table."+(isSelected ? "selectionF" : "f")+"oreground"));
             c.setBackground(defaults.getColor("Table."+(isSelected ? "selectionB" : "b")+"ackground"));
         }
@@ -55,9 +70,9 @@ public class PropertiesCellRenderer extends DefaultTableCellRenderer {
                 return component;
             }
         }
-        Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
         if (value == null)
             return this;
+        Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
         if (c instanceof JLabel) {
             String str = null;
             if (value instanceof String) {
@@ -76,12 +91,10 @@ public class PropertiesCellRenderer extends DefaultTableCellRenderer {
                     }
                     StringBuilder sb = new StringBuilder("<");
                     if (otherCount == 1) {
-                        for (Map.Entry<?, ?> entry : v.entrySet()) { // Find the non-blank value in the map
-                            if (!Objects.equals(entry.getKey(), "")) {
-                                /* I18n: properties display partial string joined with comma, frst is count, second is value */
-                                sb.append(tr("{0} ''{1}''", entry.getValue().toString(), entry.getKey()));
-                            }
-                        }
+                        // Find the non-blank value in the map
+                        v.entrySet().stream().filter(entry -> !Objects.equals(entry.getKey(), ""))
+                                /* I18n: properties display partial string joined with comma, first is count, second is value */
+                            .findAny().ifPresent(entry -> sb.append(tr("{0} ''{1}''", entry.getValue().toString(), entry.getKey())));
                     } else {
                         /* I18n: properties display partial string joined with comma */
                         sb.append(trn("{0} different", "{0} different", otherCount, otherCount));
@@ -101,7 +114,7 @@ public class PropertiesCellRenderer extends DefaultTableCellRenderer {
             }
             ((JLabel) c).putClientProperty("html.disable", Boolean.TRUE); // Fix #8730
             ((JLabel) c).setText(str);
-            if (Main.pref.getBoolean("display.discardable-keys", false)) {
+            if (DISCARDABLE.get()) {
                 String key = null;
                 if (column == 0) {
                     key = str;
diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
index 70c3a4f..30ea7a2 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
@@ -63,7 +63,7 @@ import org.openstreetmap.josm.actions.search.SearchCompiler;
 import org.openstreetmap.josm.command.ChangeCommand;
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.Command;
-import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
 import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.osm.IRelation;
 import org.openstreetmap.josm.data.osm.Node;
@@ -225,6 +225,13 @@ implements SelectionChangedListener, ActiveLayerChangeListener, DataSetListenerA
     private final JLabel selectSth = new JLabel("<html><p>"
             + tr("Select objects for which to change tags.") + "</p></html>");
 
+    private final PreferenceChangedListener preferenceListener = e -> {
+                if (Main.getLayerManager().getEditDataSet() != null) {
+                    // Re-load data when display preference change
+                    updateSelection();
+                }
+            };
+
     private final transient TaggingPresetHandler presetHandler = new TaggingPresetHandler() {
         @Override
         public void updateTags(List<Tag> tags) {
@@ -297,7 +304,7 @@ implements SelectionChangedListener, ActiveLayerChangeListener, DataSetListenerA
 
         editHelper.loadTagsIfNeeded();
 
-        Main.pref.addPreferenceChangeListener(this);
+        Main.pref.addKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
     }
 
     private void buildTagsTable() {
@@ -495,12 +502,8 @@ implements SelectionChangedListener, ActiveLayerChangeListener, DataSetListenerA
     private void setupKeyboardShortcuts() {
 
         // ENTER = editAction, open "edit" dialog
-        tagTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
-                .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onTableEnter");
-        tagTable.getActionMap().put("onTableEnter", editAction);
-        membershipTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
-                .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onTableEnter");
-        membershipTable.getActionMap().put("onTableEnter", editAction);
+        InputMapUtils.addEnterActionWhenAncestor(tagTable, editAction);
+        InputMapUtils.addEnterActionWhenAncestor(membershipTable, editAction);
 
         // INSERT button = addAction, open "add tag" dialog
         tagTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
@@ -605,7 +608,7 @@ implements SelectionChangedListener, ActiveLayerChangeListener, DataSetListenerA
     @Override
     public void destroy() {
         super.destroy();
-        Main.pref.removePreferenceChangeListener(this);
+        Main.pref.removeKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
         Container parent = pluginHook.getParent();
         if (parent != null) {
             parent.remove(pluginHook);
@@ -1393,15 +1396,6 @@ implements SelectionChangedListener, ActiveLayerChangeListener, DataSetListenerA
         return ss;
     }
 
-    @Override
-    public void preferenceChanged(PreferenceChangeEvent e) {
-        super.preferenceChanged(e);
-        if ("display.discardable-keys".equals(e.getKey()) && Main.getLayerManager().getEditDataSet() != null) {
-            // Re-load data when display preference change
-            updateSelection();
-        }
-    }
-
     /**
      * Clears the row selection when it is filtered away by the row sorter.
      */
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CancelAction.java b/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CancelAction.java
index e310967..df1c722 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CancelAction.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CancelAction.java
@@ -5,10 +5,7 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.event.ActionEvent;
 
-import javax.swing.JComponent;
 import javax.swing.JOptionPane;
-import javax.swing.JRootPane;
-import javax.swing.KeyStroke;
 import javax.swing.RootPaneContainer;
 
 import org.openstreetmap.josm.Main;
@@ -22,6 +19,7 @@ import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.tagging.TagEditorModel;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 
 /**
  * Cancel the updates and close the dialog
@@ -46,9 +44,7 @@ public class CancelAction extends SavingAction {
         putValue(NAME, tr("Cancel"));
 
         if (editor instanceof RootPaneContainer) {
-            JRootPane root = ((RootPaneContainer) editor).getRootPane();
-            root.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE");
-            root.getActionMap().put("ESCAPE", this);
+            InputMapUtils.addEscapeAction(((RootPaneContainer) editor).getRootPane(), this);
         }
         setEnabled(true);
     }
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java b/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java
index 2cf4c16..1f68587 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java
@@ -7,6 +7,7 @@ import java.awt.event.ActionEvent;
 
 import javax.swing.TransferHandler.TransferSupport;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
 import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
 import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
@@ -32,7 +33,11 @@ public class PasteMembersAction extends AddFromSelectionAction implements Flavor
 
     @Override
     public void actionPerformed(ActionEvent e) {
-        new MemberTransferHandler().importData(getSupport());
+        try {
+            new MemberTransferHandler().importData(getSupport());
+        } catch (IllegalStateException ex) {
+            Main.error(ex);
+        }
     }
 
     private TransferSupport getSupport() {
@@ -41,7 +46,11 @@ public class PasteMembersAction extends AddFromSelectionAction implements Flavor
 
     @Override
     protected void updateEnabledState() {
-        setEnabled(new MemberTransferHandler().canImport(getSupport()));
+        try {
+            setEnabled(new MemberTransferHandler().canImport(getSupport()));
+        } catch (IllegalStateException ex) {
+            Main.error(ex);
+        }
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java b/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java
index d2f5c8c..33af48c 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java
@@ -70,7 +70,7 @@ public class WayConnectionTypeCalculator {
                 }
                 firstGroupIdx = i;
             }
-            lastWct = wct;
+            return wct;
         }
         return lastWct;
     }
diff --git a/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java b/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
index fd212c8..969b52e 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
@@ -10,13 +10,13 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.EnumMap;
 import java.util.Enumeration;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import javax.swing.JTree;
 import javax.swing.ToolTipManager;
@@ -35,7 +35,7 @@ import org.openstreetmap.josm.data.validation.util.MultipleNameVisitor;
 import org.openstreetmap.josm.gui.preferences.validator.ValidatorPreference;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.Destroyable;
-import org.openstreetmap.josm.tools.MultiMap;
+import org.openstreetmap.josm.tools.ListenerList;
 
 /**
  * A panel that displays the error tree. The selection manager
@@ -72,8 +72,7 @@ public class ValidatorTreePanel extends JTree implements Destroyable {
      */
     private transient Set<? extends OsmPrimitive> filter;
 
-    /** a counter to check if tree has been rebuild */
-    private int updateCount;
+    private final ListenerList<Runnable> invalidationListeners = ListenerList.create();
 
     /**
      * Constructor
@@ -134,13 +133,13 @@ public class ValidatorTreePanel extends JTree implements Destroyable {
             valTreeModel.setRoot(new DefaultMutableTreeNode());
         }
         super.setVisible(v);
+        invalidationListeners.fireEvent(Runnable::run);
     }
 
     /**
      * Builds the errors tree
      */
     public void buildTree() {
-        updateCount++;
         final DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode();
 
         if (errors == null || errors.isEmpty()) {
@@ -171,56 +170,21 @@ public class ValidatorTreePanel extends JTree implements Destroyable {
             }
         }
 
-        Map<Severity, MultiMap<String, TestError>> errorTree = new EnumMap<>(Severity.class);
-        Map<Severity, HashMap<String, MultiMap<String, TestError>>> errorTreeDeep = new EnumMap<>(Severity.class);
-        for (Severity s : Severity.values()) {
-            errorTree.put(s, new MultiMap<String, TestError>(20));
-            errorTreeDeep.put(s, new HashMap<String, MultiMap<String, TestError>>());
+        Predicate<TestError> filterToUse = e -> !e.isIgnored();
+        if (!ValidatorPreference.PREF_OTHER.get()) {
+            filterToUse = filterToUse.and(e -> e.getSeverity() != Severity.OTHER);
         }
-
-        final Boolean other = ValidatorPreference.PREF_OTHER.get();
-        for (TestError e : errors) {
-            if (e.isIgnored()) {
-                continue;
-            }
-            Severity s = e.getSeverity();
-            if (!other && s == Severity.OTHER) {
-                continue;
-            }
-            String d = e.getDescription();
-            String m = e.getMessage();
-            if (filter != null) {
-                boolean found = false;
-                for (OsmPrimitive p : e.getPrimitives()) {
-                    if (filter.contains(p)) {
-                        found = true;
-                        break;
-                    }
-                }
-                if (!found) {
-                    continue;
-                }
-            }
-            if (d != null) {
-                MultiMap<String, TestError> b = errorTreeDeep.get(s).get(m);
-                if (b == null) {
-                    b = new MultiMap<>(20);
-                    errorTreeDeep.get(s).put(m, b);
-                }
-                b.put(d, e);
-            } else {
-                errorTree.get(s).put(m, e);
-            }
+        if (filter != null) {
+            filterToUse = filterToUse.and(e -> e.getPrimitives().stream().anyMatch(filter::contains));
         }
+        Map<Severity, Map<String, Map<String, List<TestError>>>> errorTreeDeep
+            = errors.stream().filter(filterToUse).collect(
+                    Collectors.groupingBy(e -> e.getSeverity(), () -> new EnumMap<>(Severity.class),
+                            Collectors.groupingBy(e -> e.getDescription() == null ? "" : e.getDescription(),
+                                    Collectors.groupingBy(e -> e.getMessage()))));
 
         List<TreePath> expandedPaths = new ArrayList<>();
-        for (Severity s : Severity.values()) {
-            MultiMap<String, TestError> severityErrors = errorTree.get(s);
-            Map<String, MultiMap<String, TestError>> severityErrorsDeep = errorTreeDeep.get(s);
-            if (severityErrors.isEmpty() && severityErrorsDeep.isEmpty()) {
-                continue;
-            }
-
+        errorTreeDeep.forEach((s, severityErrorsDeep) -> {
             // Severity node
             DefaultMutableTreeNode severityNode = new GroupTreeNode(s);
             rootNode.add(severityNode);
@@ -229,43 +193,46 @@ public class ValidatorTreePanel extends JTree implements Destroyable {
                 expandedPaths.add(new TreePath(new Object[] {rootNode, severityNode}));
             }
 
-            for (Entry<String, Set<TestError>> msgErrors : severityErrors.entrySet()) {
-                // Message node
-                Set<TestError> errs = msgErrors.getValue();
-                String msg = tr("{0} ({1})", msgErrors.getKey(), errs.size());
-                DefaultMutableTreeNode messageNode = new DefaultMutableTreeNode(msg);
-                severityNode.add(messageNode);
+            Map<String, List<TestError>> severityErrors = severityErrorsDeep.get("");
+            if (severityErrors != null) {
+                for (Entry<String, List<TestError>> msgErrors : severityErrors.entrySet()) {
+                    // Message node
+                    List<TestError> errs = msgErrors.getValue();
+                    String msg = tr("{0} ({1})", msgErrors.getKey(), errs.size());
+                    DefaultMutableTreeNode messageNode = new DefaultMutableTreeNode(msg);
+                    severityNode.add(messageNode);
 
-                if (oldSelectedRows.contains(msgErrors.getKey())) {
-                    expandedPaths.add(new TreePath(new Object[] {rootNode, severityNode, messageNode}));
-                }
+                    if (oldSelectedRows.contains(msgErrors.getKey())) {
+                        expandedPaths.add(new TreePath(new Object[] {rootNode, severityNode, messageNode}));
+                    }
 
-                for (TestError error : errs) {
-                    // Error node
-                    DefaultMutableTreeNode errorNode = new DefaultMutableTreeNode(error);
-                    messageNode.add(errorNode);
+                    errs.stream().map(DefaultMutableTreeNode::new).forEach(messageNode::add);
                 }
             }
-            for (Entry<String, MultiMap<String, TestError>> bag : severityErrorsDeep.entrySet()) {
+
+            severityErrorsDeep.forEach((description, errorlist) -> {
+                if (description.isEmpty()) {
+                    return;
+                }
                 // Group node
-                MultiMap<String, TestError> errorlist = bag.getValue();
-                DefaultMutableTreeNode groupNode = null;
+                DefaultMutableTreeNode groupNode;
                 if (errorlist.size() > 1) {
-                    groupNode = new GroupTreeNode(bag.getKey());
+                    groupNode = new GroupTreeNode(description);
                     severityNode.add(groupNode);
-                    if (oldSelectedRows.contains(bag.getKey())) {
+                    if (oldSelectedRows.contains(description)) {
                         expandedPaths.add(new TreePath(new Object[] {rootNode, severityNode, groupNode}));
                     }
+                } else {
+                    groupNode = null;
                 }
 
-                for (Entry<String, Set<TestError>> msgErrors : errorlist.entrySet()) {
+                errorlist.forEach((message, errs) -> {
                     // Message node
-                    Set<TestError> errs = msgErrors.getValue();
                     String msg;
                     if (groupNode != null) {
-                        msg = tr("{0} ({1})", msgErrors.getKey(), errs.size());
+                        msg = tr("{0} ({1})", message, errs.size());
                     } else {
-                        msg = tr("{0} - {1} ({2})", msgErrors.getKey(), bag.getKey(), errs.size());
+                        msg = tr("{0} - {1} ({2})", message, description, errs.size());
                     }
                     DefaultMutableTreeNode messageNode = new DefaultMutableTreeNode(msg);
                     if (groupNode != null) {
@@ -274,7 +241,7 @@ public class ValidatorTreePanel extends JTree implements Destroyable {
                         severityNode.add(messageNode);
                     }
 
-                    if (oldSelectedRows.contains(msgErrors.getKey())) {
+                    if (oldSelectedRows.contains(message)) {
                         if (groupNode != null) {
                             expandedPaths.add(new TreePath(new Object[] {rootNode, severityNode, groupNode, messageNode}));
                         } else {
@@ -282,19 +249,34 @@ public class ValidatorTreePanel extends JTree implements Destroyable {
                         }
                     }
 
-                    for (TestError error : errs) {
-                        // Error node
-                        DefaultMutableTreeNode errorNode = new DefaultMutableTreeNode(error);
-                        messageNode.add(errorNode);
-                    }
-                }
-            }
-        }
+                    errs.stream().map(DefaultMutableTreeNode::new).forEach(messageNode::add);
+                });
+            });
+        });
 
         valTreeModel.setRoot(rootNode);
         for (TreePath path : expandedPaths) {
             this.expandPath(path);
         }
+
+        invalidationListeners.fireEvent(Runnable::run);
+    }
+
+    /**
+     * Add a new invalidation listener
+     * @param listener The listener
+     */
+    public void addInvalidationListener(Runnable listener) {
+        invalidationListeners.addListener(listener);
+    }
+
+    /**
+     * Remove an invalidation listener
+     * @param listener The listener
+     * @since 10880
+     */
+    public void removeInvalidationListener(Runnable listener) {
+        invalidationListeners.removeListener(listener);
     }
 
     /**
@@ -425,14 +407,6 @@ public class ValidatorTreePanel extends JTree implements Destroyable {
         return (DefaultMutableTreeNode) valTreeModel.getRoot();
     }
 
-    /**
-     * Returns a value to check if tree has been rebuild
-     * @return the current counter
-     */
-    public int getUpdateCount() {
-        return updateCount;
-    }
-
     private void clearErrors() {
         if (errors != null) {
             DataSet ds = Main.getLayerManager().getEditDataSet();
diff --git a/src/org/openstreetmap/josm/gui/download/DownloadDialog.java b/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
index 8bd2e67..48a8401 100644
--- a/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
+++ b/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
@@ -83,11 +83,6 @@ public class DownloadDialog extends JDialog {
     private final DownloadAction actDownload = new DownloadAction();
     protected final JButton btnDownload = new JButton(actDownload);
 
-    private void makeCheckBoxRespondToEnter(JCheckBox cb) {
-        cb.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "doDownload");
-        cb.getActionMap().put("doDownload", actDownload);
-    }
-
     protected final JPanel buildMainPanel() {
         JPanel pnl = new JPanel(new GridBagLayout());
 
@@ -181,10 +176,10 @@ public class DownloadDialog extends JDialog {
         pnl.add(btnDownload);
         InputMapUtils.enableEnter(btnDownload);
 
-        makeCheckBoxRespondToEnter(cbDownloadGpxData);
-        makeCheckBoxRespondToEnter(cbDownloadOsmData);
-        makeCheckBoxRespondToEnter(cbDownloadNotes);
-        makeCheckBoxRespondToEnter(cbNewLayer);
+        InputMapUtils.addEnterActionWhenAncestor(cbDownloadGpxData, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbDownloadOsmData, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbDownloadNotes, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbNewLayer, actDownload);
 
         // -- cancel button
         JButton btnCancel;
@@ -194,8 +189,7 @@ public class DownloadDialog extends JDialog {
         InputMapUtils.enableEnter(btnCancel);
 
         // -- cancel on ESC
-        getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "cancel");
-        getRootPane().getActionMap().put("cancel", actCancel);
+        InputMapUtils.addEscapeAction(getRootPane(), actCancel);
 
         // -- help button
         JButton btnHelp = new JButton(new ContextSensitiveHelpAction(getRootPane().getClientProperty("help").toString()));
diff --git a/src/org/openstreetmap/josm/gui/draw/MapPath2D.java b/src/org/openstreetmap/josm/gui/draw/MapPath2D.java
new file mode 100644
index 0000000..467b5c7
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/draw/MapPath2D.java
@@ -0,0 +1,52 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.draw;
+
+import java.awt.geom.Path2D;
+
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
+
+/**
+ * An extension of {@link Path2D} with special methods for map positions.
+ * @author Michael Zangl
+ * @since 10875
+ */
+public class MapPath2D extends Path2D.Double {
+    /**
+     * Create a new, empty path.
+     */
+    public MapPath2D() {
+        // no default definitions
+    }
+
+    /**
+     * Move the path to the view position of given point
+     * @param p The point
+     * @return this for easy chaining.
+     */
+    public MapPath2D moveTo(MapViewPoint p) {
+        moveTo(p.getInViewX(), p.getInViewY());
+        return this;
+    }
+
+    /**
+     * Draw a line to the view position of given point
+     * @param p The point
+     * @return this for easy chaining.
+     */
+    public MapPath2D lineTo(MapViewPoint p) {
+        lineTo(p.getInViewX(), p.getInViewY());
+        return this;
+    }
+
+    /**
+     * Add the given shape centered around the given point
+     * @param p The point to draw around
+     * @param symbol The symbol type
+     * @param size The size of the symbol in pixel
+     * @return this for easy chaining.
+     */
+    public MapPath2D shapeAround(MapViewPoint p, SymbolShape symbol, double size) {
+        append(symbol.shapeAround(p.getInViewX(), p.getInViewY(), size), false);
+        return this;
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/draw/MapViewPath.java b/src/org/openstreetmap/josm/gui/draw/MapViewPath.java
new file mode 100644
index 0000000..1bc651b
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/draw/MapViewPath.java
@@ -0,0 +1,157 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.draw;
+
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.MapViewState;
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
+
+/**
+ * This is a version of a java Path2D that allows you to add points to it by simply giving their east/north, lat/lon or node coordinates.
+ * @author Michael Zangl
+ * @since 10875
+ */
+public class MapViewPath extends MapPath2D {
+
+    private final MapViewState state;
+
+    /**
+     * Create a new path
+     * @param mv The map view to use for coordinate conversion.
+     */
+    public MapViewPath(MapView mv) {
+        this(mv.getState());
+    }
+
+    /**
+     * Create a new path
+     * @param state The state to use for coordinate conversion.
+     */
+    public MapViewPath(MapViewState state) {
+        this.state = state;
+    }
+
+    /**
+     * Move the cursor to the given node.
+     * @param n The node
+     * @return this for easy chaining.
+     */
+    public MapViewPath moveTo(Node n) {
+        moveTo(n.getEastNorth());
+        return this;
+    }
+
+    /**
+     * Move the cursor to the given position.
+     * @param eastNorth The position
+     * @return this for easy chaining.
+     */
+    public MapViewPath moveTo(EastNorth eastNorth) {
+        moveTo(state.getPointFor(eastNorth));
+        return this;
+    }
+
+    @Override
+    public MapViewPath moveTo(MapViewPoint p) {
+        super.moveTo(p);
+        return this;
+    }
+
+    /**
+     * Draw a line to the node.
+     * @param n The node
+     * @return this for easy chaining.
+     */
+    public MapViewPath lineTo(Node n) {
+        lineTo(n.getEastNorth());
+        return this;
+    }
+
+    /**
+     * Draw a line to the position.
+     * @param eastNorth The position
+     * @return this for easy chaining.
+     */
+    public MapViewPath lineTo(EastNorth eastNorth) {
+        lineTo(state.getPointFor(eastNorth));
+        return this;
+    }
+
+    @Override
+    public MapViewPath lineTo(MapViewPoint p) {
+        super.lineTo(p);
+        return this;
+    }
+
+    /**
+     * Add the given shape centered around the current node.
+     * @param p1 The point to draw around
+     * @param symbol The symbol type
+     * @param size The size of the symbol in pixel
+     * @return this for easy chaining.
+     */
+    public MapViewPath shapeAround(Node p1, SymbolShape symbol, double size) {
+        shapeAround(p1.getEastNorth(), symbol, size);
+        return this;
+    }
+
+    /**
+     * Add the given shape centered around the current position.
+     * @param eastNorth The point to draw around
+     * @param symbol The symbol type
+     * @param size The size of the symbol in pixel
+     * @return this for easy chaining.
+     */
+    public MapViewPath shapeAround(EastNorth eastNorth, SymbolShape symbol, double size) {
+        shapeAround(state.getPointFor(eastNorth), symbol, size);
+        return this;
+    }
+
+    @Override
+    public MapViewPath shapeAround(MapViewPoint p, SymbolShape symbol, double size) {
+        super.shapeAround(p, symbol, size);
+        return this;
+    }
+
+    /**
+     * Append a list of nodes
+     * @param nodes The nodes to append
+     * @param connect <code>true</code> if we should use a lineTo as first command.
+     * @return this for easy chaining.
+     */
+    public MapViewPath append(Iterable<Node> nodes, boolean connect) {
+        appendWay(nodes, connect, false);
+        return this;
+    }
+
+    /**
+     * Append a list of nodes as closed way.
+     * @param nodes The nodes to append
+     * @param connect <code>true</code> if we should use a lineTo as first command.
+     * @return this for easy chaining.
+     */
+    public MapViewPath appendClosed(Iterable<Node> nodes, boolean connect) {
+        appendWay(nodes, connect, true);
+        return this;
+    }
+
+    private void appendWay(Iterable<Node> nodes, boolean connect, boolean close) {
+        boolean useMoveTo = !connect;
+        Node first = null;
+        for (Node n : nodes) {
+            if (useMoveTo) {
+                moveTo(n);
+            } else {
+                lineTo(n);
+            }
+            if (close && first == null) {
+                first = n;
+            }
+            useMoveTo = false;
+        }
+        if (first != null) {
+            lineTo(first);
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/draw/SymbolShape.java b/src/org/openstreetmap/josm/gui/draw/SymbolShape.java
new file mode 100644
index 0000000..efbb9a9
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/draw/SymbolShape.java
@@ -0,0 +1,138 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.draw;
+
+import java.awt.Shape;
+import java.awt.geom.Ellipse2D;
+import java.awt.geom.GeneralPath;
+import java.awt.geom.Rectangle2D;
+import java.util.Optional;
+import java.util.stream.Stream;
+
+/**
+ * A list of possible symbol shapes.
+ * @since 10875
+ */
+public enum SymbolShape {
+    /**
+     * A square
+     */
+    SQUARE("square", 4, Math.PI / 4),
+    /**
+     * A circle
+     */
+    CIRCLE("circle", 1, 0),
+    /**
+     * A triangle with sides of equal lengh
+     */
+    TRIANGLE("triangle", 3, Math.PI / 2),
+    /**
+     * A pentagon
+     */
+    PENTAGON("pentagon", 5, Math.PI / 2),
+    /**
+     * A hexagon
+     */
+    HEXAGON("hexagon", 6, 0),
+    /**
+     * A heptagon
+     */
+    HEPTAGON("heptagon", 7, Math.PI / 2),
+    /**
+     * An octagon
+     */
+    OCTAGON("octagon", 8, Math.PI / 8),
+    /**
+     * a nonagon
+     */
+    NONAGON("nonagon", 9, Math.PI / 2),
+    /**
+     * A decagon
+     */
+    DECAGON("decagon", 10, 0);
+
+    private final String name;
+    final int sides;
+
+    final double rotation;
+
+    SymbolShape(String name, int sides, double rotation) {
+        this.name = name;
+        this.sides = sides;
+        this.rotation = rotation;
+    }
+
+    /**
+     * Create the path for this shape around the given position
+     * @param x The x position
+     * @param y The y position
+     * @param size The size (width for rect, diameter for rest)
+     * @return The symbol.
+     * @since 10875
+     */
+    public Shape shapeAround(double x, double y, double size) {
+        double radius = size / 2;
+        Shape shape;
+        switch (this) {
+        case SQUARE:
+            // optimize for performance reasons
+            shape = new Rectangle2D.Double(x - radius, y - radius, size, size);
+            break;
+        case CIRCLE:
+            shape = new Ellipse2D.Double(x - radius, y - radius, size, size);
+            break;
+        default:
+            shape = buildPolygon(x, y, radius);
+            break;
+        }
+        return shape;
+    }
+
+    private Shape buildPolygon(double cx, double cy, double radius) {
+        GeneralPath polygon = new GeneralPath();
+        for (int i = 0; i < sides; i++) {
+            double angle = ((2 * Math.PI / sides) * i) - rotation;
+            double x = cx + radius * Math.cos(angle);
+            double y = cy + radius * Math.sin(angle);
+            if (i == 0) {
+                polygon.moveTo(x, y);
+            } else {
+                polygon.lineTo(x, y);
+            }
+        }
+        polygon.closePath();
+        return polygon;
+    }
+
+    /**
+     * Gets the number of normally straight sides this symbol has. Returns 1 for a circle.
+     * @return The sides of the symbol
+     */
+    public int getSides() {
+        return sides;
+    }
+
+    /**
+     * Gets the rotation of the first point of this symbol.
+     * @return The rotation
+     */
+    public double getRotation() {
+        return rotation;
+    }
+
+    /**
+     * Get the MapCSS name for this shape
+     * @return The name
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Get the shape with the given name
+     * @param val The name to search
+     * @return The shape as optional
+     */
+    public static Optional<SymbolShape> forName(String val) {
+        return Stream.of(values()).filter(shape -> val.equals(shape.name)).findAny();
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/draw/package-info.java b/src/org/openstreetmap/josm/gui/draw/package-info.java
new file mode 100644
index 0000000..383d4c4
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/draw/package-info.java
@@ -0,0 +1,6 @@
+// License: GPL. For details, see LICENSE file.
+
+/**
+ * Provides GUI classes for 2D drawing in the map.
+ */
+package org.openstreetmap.josm.gui.draw;
diff --git a/src/org/openstreetmap/josm/gui/help/HelpBrowser.java b/src/org/openstreetmap/josm/gui/help/HelpBrowser.java
index b7ec99a..0e71b59 100644
--- a/src/org/openstreetmap/josm/gui/help/HelpBrowser.java
+++ b/src/org/openstreetmap/josm/gui/help/HelpBrowser.java
@@ -11,7 +11,6 @@ import java.awt.Dimension;
 import java.awt.GraphicsEnvironment;
 import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.io.BufferedReader;
@@ -23,7 +22,6 @@ import java.util.Locale;
 
 import javax.swing.AbstractAction;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
@@ -31,7 +29,6 @@ import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JSeparator;
 import javax.swing.JToolBar;
-import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
@@ -53,6 +50,7 @@ import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
 import org.openstreetmap.josm.gui.widgets.JosmHTMLEditorKit;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.LanguageInfo.LocaleType;
 import org.openstreetmap.josm.tools.OpenBrowser;
 import org.openstreetmap.josm.tools.WindowGeometry;
@@ -194,8 +192,7 @@ public class HelpBrowser extends JDialog implements IHelpBrowser {
         });
 
         p.add(buildToolBar(), BorderLayout.NORTH);
-        help.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "Close");
-        help.getActionMap().put("Close", new AbstractAction() {
+        InputMapUtils.addEscapeAction(getRootPane(), new AbstractAction() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 setVisible(false);
diff --git a/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialog.java b/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialog.java
index c0f9b58..2943443 100644
--- a/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialog.java
+++ b/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialog.java
@@ -8,17 +8,14 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.awt.BorderLayout;
 import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 
 import javax.swing.AbstractAction;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
-import javax.swing.KeyStroke;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.PrimitiveId;
@@ -29,6 +26,7 @@ import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction;
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 
 /**
  * This is non-modal dialog, always showing on top, which displays history information
@@ -106,11 +104,9 @@ public class HistoryBrowserDialog extends JDialog implements HistoryDataSetListe
 
         btn = new JButton(closeAction);
         final String closeHistoryBrowserDialogKey = "CloseHistoryBrowserDialog";
-        KeyStroke escapeKey = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
-        getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(escapeKey, closeHistoryBrowserDialogKey);
-        getRootPane().getActionMap().put(closeHistoryBrowserDialogKey, closeAction);
         btn.setName("btn.close");
         pnl.add(btn);
+        InputMapUtils.addEscapeAction(getRootPane(), closeAction);
 
         btn = new JButton(new ContextSensitiveHelpAction(ht("/Action/ObjectHistory")));
         btn.setName("btn.help");
diff --git a/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java b/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java
index e193a31..309151c 100644
--- a/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java
+++ b/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java
@@ -7,7 +7,6 @@ import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.util.ArrayList;
@@ -17,13 +16,11 @@ import java.util.List;
 import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
 import javax.swing.DefaultListModel;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
-import javax.swing.KeyStroke;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
 
@@ -90,8 +87,7 @@ public class CloseChangesetDialog extends JDialog {
         getContentPane().add(buildCenterPanel(), BorderLayout.CENTER);
         getContentPane().add(buildSouthPanel(), BorderLayout.SOUTH);
 
-        getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "escape");
-        getRootPane().getActionMap().put("escape", new CancelAction());
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
         addWindowListener(new WindowEventHandler());
     }
 
diff --git a/src/org/openstreetmap/josm/gui/io/CredentialDialog.java b/src/org/openstreetmap/josm/gui/io/CredentialDialog.java
index e93ebda..d0dbed3 100644
--- a/src/org/openstreetmap/josm/gui/io/CredentialDialog.java
+++ b/src/org/openstreetmap/josm/gui/io/CredentialDialog.java
@@ -22,12 +22,10 @@ import java.util.Objects;
 import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
 import javax.swing.JCheckBox;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
-import javax.swing.KeyStroke;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.SideButton;
@@ -39,6 +37,7 @@ import org.openstreetmap.josm.gui.widgets.JosmPasswordField;
 import org.openstreetmap.josm.gui.widgets.JosmTextField;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
 public class CredentialDialog extends JDialog {
@@ -96,9 +95,7 @@ public class CredentialDialog extends JDialog {
         getContentPane().add(createButtonPanel(), BorderLayout.SOUTH);
 
         addWindowListener(new WindowEventHander());
-        getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
-                KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "escape");
-        getRootPane().getActionMap().put("escape", new CancelAction());
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
 
         getRootPane().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
     }
diff --git a/src/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCell.java b/src/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCell.java
index 68b5c96..7a7758a 100644
--- a/src/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCell.java
+++ b/src/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCell.java
@@ -174,7 +174,7 @@ class LayerNameAndFilePathTableCell extends JPanel implements TableCellRenderer,
     }
 
     /**
-     * Makes the given path fit lblFilename, appends ellipsis on the left if it doesn’t fit.
+     * Makes the given path fit lblFilename, appends ellipsis on the left if it doesn't fit.
      * Idea: /home/user/josm → …/user/josm → …/josm; and take the first one that fits
      * @param t complete path
      * @return shorter path
diff --git a/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java b/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
index 909ae2c..6ad4d90 100644
--- a/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
+++ b/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
@@ -29,14 +29,12 @@ import javax.swing.AbstractAction;
 import javax.swing.DefaultListCellRenderer;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
-import javax.swing.KeyStroke;
 import javax.swing.ListCellRenderer;
 import javax.swing.WindowConstants;
 import javax.swing.event.TableModelEvent;
@@ -53,6 +51,7 @@ import org.openstreetmap.josm.gui.progress.SwingRenderingProgressMonitor;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.WindowGeometry;
@@ -298,9 +297,7 @@ public class SaveLayersDialog extends JDialog implements TableModelListener {
             putValue(NAME, tr("Cancel"));
             putValue(SHORT_DESCRIPTION, tr("Close this dialog and resume editing in JOSM"));
             putValue(SMALL_ICON, ImageProvider.get("cancel"));
-            getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
-            .put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE");
-            getRootPane().getActionMap().put("ESCAPE", this);
+            InputMapUtils.addEscapeAction(getRootPane(), this);
         }
 
         protected void cancelWhenInEditingModel() {
diff --git a/src/org/openstreetmap/josm/gui/io/UploadDialog.java b/src/org/openstreetmap/josm/gui/io/UploadDialog.java
index ea8d2a3..42c870a 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadDialog.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadDialog.java
@@ -11,7 +11,6 @@ import java.awt.FlowLayout;
 import java.awt.GraphicsEnvironment;
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.beans.PropertyChangeEvent;
@@ -30,11 +29,9 @@ import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
 import javax.swing.Icon;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JTabbedPane;
-import javax.swing.KeyStroke;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.APIDataSet;
@@ -188,11 +185,7 @@ public class UploadDialog extends AbstractUploadDialog implements PropertyChange
         // -- cancel button
         CancelAction cancelAction = new CancelAction(this);
         pnl.add(new JButton(cancelAction));
-        getRootPane().registerKeyboardAction(
-                cancelAction,
-                KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
-                JComponent.WHEN_IN_FOCUSED_WINDOW
-        );
+        InputMapUtils.addEscapeAction(getRootPane(), cancelAction);
         pnl.add(new JButton(new ContextSensitiveHelpAction(ht("/Dialog/Upload"))));
         HelpUtil.setHelpContext(getRootPane(), ht("/Dialog/Upload"));
         return pnl;
diff --git a/src/org/openstreetmap/josm/gui/io/UploadSelectionDialog.java b/src/org/openstreetmap/josm/gui/io/UploadSelectionDialog.java
index a5499d1..e51f994 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadSelectionDialog.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadSelectionDialog.java
@@ -19,14 +19,12 @@ import javax.swing.AbstractAction;
 import javax.swing.AbstractListModel;
 import javax.swing.Action;
 import javax.swing.BorderFactory;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JSplitPane;
-import javax.swing.KeyStroke;
 import javax.swing.ListSelectionModel;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
@@ -41,6 +39,7 @@ import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction;
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
 /**
@@ -257,9 +256,7 @@ public class UploadSelectionDialog extends JDialog {
             putValue(Action.SHORT_DESCRIPTION, tr("Cancel uploading"));
             putValue(Action.NAME, tr("Cancel"));
             new ImageProvider("cancel").getResource().attachImageIcon(this);
-            getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
-            .put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE");
-            getRootPane().getActionMap().put("ESCAPE", this);
+            InputMapUtils.addEscapeAction(getRootPane(), this);
             setEnabled(true);
         }
 
diff --git a/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java b/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
index faf94af..7f02967 100644
--- a/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
@@ -34,9 +34,14 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
 import javax.swing.AbstractAction;
@@ -50,6 +55,7 @@ import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.JSeparator;
 import javax.swing.JTextField;
+import javax.swing.Timer;
 
 import org.openstreetmap.gui.jmapviewer.AttributionSupport;
 import org.openstreetmap.gui.jmapviewer.MemoryTileCache;
@@ -136,7 +142,6 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
      * Initial zoom lvl is set to bestZoom
      */
     public int currentZoomLevel;
-    private boolean needRedraw;
 
     private final AttributionSupport attribution = new AttributionSupport();
     private final TileHolder clickedTileHolder = new TileHolder();
@@ -158,6 +163,11 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
     protected T tileSource;
     protected TileLoader tileLoader;
 
+    /**
+     * A timer that is used to delay invalidation events if required.
+     */
+    private final Timer invalidateLaterTimer = new Timer(100, e -> this.invalidate());
+
     private final MouseAdapter adapter = new MouseAdapter() {
         @Override
         public void mouseClicked(MouseEvent e) {
@@ -230,7 +240,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
     }
 
     protected void initTileSource(T tileSource) {
-        coordinateConverter = new TileCoordinateConverter(Main.map.mapView, getDisplaySettings());
+        coordinateConverter = new TileCoordinateConverter(Main.map.mapView, tileSource, getDisplaySettings());
         attribution.initialize(tileSource);
 
         currentZoomLevel = getBestZoom();
@@ -263,10 +273,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
             tile.setImage(null);
         }
         tile.setLoaded(success);
-        needRedraw = true;
-        if (Main.map != null) {
-            Main.map.repaint(100);
-        }
+        invalidateLater();
         if (Main.isDebugEnabled()) {
             Main.debug("tileLoadingFinished() tile: " + tile + " success: " + success);
         }
@@ -296,14 +303,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
      * @see #invalidate() To trigger a repaint of all places where the layer is displayed.
      */
     protected void redraw() {
-        needRedraw = true;
-        if (isVisible()) Main.map.repaint();
-    }
-
-    @Override
-    public void invalidate() {
-        needRedraw = true;
-        super.invalidate();
+        invalidate();
     }
 
     /**
@@ -367,17 +367,11 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
      * @return average number of screen pixels per tile pixel
      */
     private double getScaleFactor(int zoom) {
-        if (!Main.isDisplayingMapView()) return 1;
-        MapView mv = Main.map.mapView;
-        LatLon topLeft = mv.getLatLon(0, 0);
-        LatLon botRight = mv.getLatLon(mv.getWidth(), mv.getHeight());
-        TileXY t1 = tileSource.latLonToTileXY(topLeft.toCoordinate(), zoom);
-        TileXY t2 = tileSource.latLonToTileXY(botRight.toCoordinate(), zoom);
-
-        int screenPixels = mv.getWidth()*mv.getHeight();
-        double tilePixels = Math.abs((t2.getY()-t1.getY())*(t2.getX()-t1.getX())*tileSource.getTileSize()*tileSource.getTileSize());
-        if (screenPixels == 0 || tilePixels == 0) return 1;
-        return screenPixels/tilePixels;
+        if (coordinateConverter != null) {
+            return coordinateConverter.getScaleFactor(zoom);
+        } else {
+            return 1;
+        }
     }
 
     protected int getBestZoom() {
@@ -968,6 +962,10 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         return new Tile(tileSource, x, y, zoom);
     }
 
+    private Tile getOrCreateTile(TilePosition tilePosition) {
+        return getOrCreateTile(tilePosition.getX(), tilePosition.getY(), tilePosition.getZoom());
+    }
+
     private Tile getOrCreateTile(int x, int y, int zoom) {
         Tile tile = getTile(x, y, zoom);
         if (tile == null) {
@@ -981,6 +979,10 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         return tile;
     }
 
+    private Tile getTile(TilePosition tilePosition) {
+        return getTile(tilePosition.getX(), tilePosition.getY(), tilePosition.getZoom());
+    }
+
     /**
      * Returns tile at given position.
      * This can and will return null for tiles that are not already in the cache.
@@ -1035,14 +1037,30 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
     @Override
     public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
         boolean done = (infoflags & (ERROR | FRAMEBITS | ALLBITS)) != 0;
-        needRedraw = true;
         if (Main.isDebugEnabled()) {
             Main.debug("imageUpdate() done: " + done + " calling repaint");
         }
-        Main.map.repaint(done ? 0 : 100);
+
+        if (done) {
+            invalidate();
+        } else {
+            invalidateLater();
+        }
         return !done;
     }
 
+    /**
+     * Invalidate the layer at a time in the future so taht the user still sees the interface responsive.
+     */
+    private void invalidateLater() {
+        GuiHelper.runInEDT(() -> {
+            if (!invalidateLaterTimer.isRunning()) {
+                invalidateLaterTimer.setRepeats(false);
+                invalidateLaterTimer.start();
+            }
+        });
+    }
+
     private boolean imageLoaded(Image i) {
         if (i == null)
             return false;
@@ -1121,6 +1139,26 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         }
     }
 
+    private List<Tile> paintTileImages(Graphics g, TileSet ts) {
+        Object paintMutex = new Object();
+        List<TilePosition> missed = Collections.synchronizedList(new ArrayList<>());
+        ts.visitTiles(tile -> {
+            Image img = getLoadedTileImage(tile);
+            if (img == null) {
+                missed.add(new TilePosition(tile));
+                return;
+            }
+            img = applyImageProcessors((BufferedImage) img);
+            Rectangle2D sourceRect = coordinateConverter.getRectangleForTile(tile);
+            synchronized (paintMutex) {
+                //cannot paint in parallel
+                drawImageInside(g, img, sourceRect, null);
+            }
+        }, missed::add);
+
+        return missed.stream().map(this::getOrCreateTile).collect(Collectors.toList());
+    }
+
     // This function is called for several zoom levels, not just
     // the current one.  It should not trigger any tiles to be
     // downloaded.  It should also avoid polluting the tile cache
@@ -1132,10 +1170,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
     // border is null and we draw the entire tile set.
     private List<Tile> paintTileImages(Graphics g, TileSet ts, int zoom, Tile border) {
         if (zoom <= 0) return Collections.emptyList();
-        Rectangle2D borderRect = null;
-        if (border != null) {
-            borderRect = coordinateConverter.getRectangleForTile(border);
-        }
+        Rectangle2D borderRect = coordinateConverter.getRectangleForTile(border);
         List<Tile> missedTiles = new LinkedList<>();
         // The callers of this code *require* that we return any tiles
         // that we do not draw in missedTiles.  ts.allExistingTiles() by
@@ -1245,7 +1280,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
     }
 
     private LatLon getShiftedLatLon(EastNorth en) {
-        return Main.getProjection().eastNorth2latlon(en.add(-getDisplaySettings().getDx(), -getDisplaySettings().getDy()));
+        return coordinateConverter.getProjecting().eastNorth2latlonClamped(en);
     }
 
     private ICoordinate getShiftedCoord(EastNorth en) {
@@ -1289,6 +1324,67 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
             int ySpan = maxY - minY + 1;
             return xSpan * ySpan;
         }
+
+        /**
+         * Gets a stream of all tile positions in this set
+         * @return A stream of all positions
+         */
+        public Stream<TilePosition> tilePositions() {
+            if (zoom == 0) {
+                return Stream.empty();
+            } else {
+                return IntStream.rangeClosed(minX, maxX).mapToObj(
+                        x -> IntStream.rangeClosed(minY, maxY).mapToObj(y -> new TilePosition(x, y, zoom))
+                        ).flatMap(Function.identity());
+            }
+        }
+    }
+
+    /**
+     * The position of a single tile.
+     * @author Michael Zangl
+     * @since xxx
+     */
+    private static class TilePosition {
+        private final int x;
+        private final int y;
+        private final int zoom;
+        TilePosition(int x, int y, int zoom) {
+            super();
+            this.x = x;
+            this.y = y;
+            this.zoom = zoom;
+        }
+
+        TilePosition(Tile tile) {
+            this(tile.getXtile(), tile.getYtile(), tile.getZoom());
+        }
+
+        /**
+         * @return the x position
+         */
+        public int getX() {
+            return x;
+        }
+
+        /**
+         * @return the y position
+         */
+        public int getY() {
+            return y;
+        }
+
+        /**
+         * @return the zoom
+         */
+        public int getZoom() {
+            return zoom;
+        }
+
+        @Override
+        public String toString() {
+            return "TilePosition [x=" + x + ", y=" + y + ", zoom=" + zoom + "]";
+        }
     }
 
     private class TileSet extends TileRange {
@@ -1302,7 +1398,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
          * null tile set
          */
         private TileSet() {
-            return;
+            // default
         }
 
         protected void sanitize() {
@@ -1332,46 +1428,34 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
             return tileCache == null || size() > tileCache.getCacheSize();
         }
 
-        /*
-         * Get all tiles represented by this TileSet that are
-         * already in the tileCache.
+        /**
+         * Get all tiles represented by this TileSet that are already in the tileCache.
+         * @return all tiles represented by this TileSet that are already in the tileCache
          */
         private List<Tile> allExistingTiles() {
-            return this.findAllTiles(false);
+            return allTiles(AbstractTileSourceLayer.this::getTile);
         }
 
         private List<Tile> allTilesCreate() {
-            return this.findAllTiles(true);
+            return allTiles(AbstractTileSourceLayer.this::getOrCreateTile);
         }
 
-        private List<Tile> findAllTiles(boolean create) {
-            // Tileset is either empty or too large
-            if (zoom == 0 || this.insane())
-                return Collections.emptyList();
-            List<Tile> ret = new ArrayList<>();
-            for (int x = minX; x <= maxX; x++) {
-                for (int y = minY; y <= maxY; y++) {
-                    Tile t;
-                    if (create) {
-                        t = getOrCreateTile(x, y, zoom);
-                    } else {
-                        t = getTile(x, y, zoom);
-                    }
-                    if (t != null) {
-                        ret.add(t);
-                    }
-                }
+        private List<Tile> allTiles(Function<TilePosition, Tile> mapper) {
+            return tilePositions().map(mapper).filter(Objects::nonNull).collect(Collectors.toList());
+        }
+
+        @Override
+        public Stream<TilePosition> tilePositions() {
+            if (this.insane()) {
+                // Tileset is either empty or too large
+                return Stream.empty();
+            } else {
+                return super.tilePositions();
             }
-            return ret;
         }
 
         private List<Tile> allLoadedTiles() {
-            List<Tile> ret = new ArrayList<>();
-            for (Tile t : this.allExistingTiles()) {
-                if (t.isLoaded())
-                    ret.add(t);
-            }
-            return ret;
+            return allExistingTiles().stream().filter(Tile::isLoaded).collect(Collectors.toList());
         }
 
         /**
@@ -1380,18 +1464,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         private Comparator<Tile> getTileDistanceComparator() {
             final int centerX = (int) Math.ceil((minX + maxX) / 2d);
             final int centerY = (int) Math.ceil((minY + maxY) / 2d);
-            return new Comparator<Tile>() {
-                private int getDistance(Tile t) {
-                    return Math.abs(t.getXtile() - centerX) + Math.abs(t.getYtile() - centerY);
-                }
-
-                @Override
-                public int compare(Tile o1, Tile o2) {
-                    int distance1 = getDistance(o1);
-                    int distance2 = getDistance(o2);
-                    return Integer.compare(distance1, distance2);
-                }
-            };
+            return Comparator.comparingInt(t -> Math.abs(t.getXtile() - centerX) + Math.abs(t.getYtile() - centerY));
         }
 
         private void loadAllTiles(boolean force) {
@@ -1414,6 +1487,26 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
             }
         }
 
+        /**
+         * Call the given paint method for all tiles in this tile set.
+         * <p>
+         * Uses a parallel stream.
+         * @param visitor A visitor to call for each tile.
+         * @param missed a consumer to call for each missed tile.
+         */
+        public void visitTiles(Consumer<Tile> visitor, Consumer<TilePosition> missed) {
+            tilePositions().parallel().forEach(tp -> visitTilePosition(visitor, tp, missed));
+        }
+
+        private void visitTilePosition(Consumer<Tile> visitor, TilePosition tp, Consumer<TilePosition> missed) {
+            Tile tile = getTile(tp);
+            if (tile == null) {
+                missed.accept(tp);
+            } else {
+                visitor.accept(tile);
+            }
+        }
+
         @Override
         public String toString() {
             return getClass().getName() + ": zoom: " + zoom + " X(" + minX + ", " + maxX + ") Y(" + minY + ", " + maxY + ") size: " + size();
@@ -1453,6 +1546,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         public boolean hasVisibleTiles;
         public boolean hasOverzoomedTiles;
         public boolean hasLoadingTiles;
+        public boolean hasAllLoadedTiles;
     }
 
     private static <S extends AbstractTMSTileSource> TileSetInfo getTileSetInfo(AbstractTileSourceLayer<S>.TileSet ts) {
@@ -1463,6 +1557,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
             if ("no-tile".equals(t.getValue("tile-info"))) {
                 result.hasOverzoomedTiles = true;
             }
+            result.hasAllLoadedTiles &= t.isLoaded();
 
             if (t.isLoaded()) {
                 if (!t.hasError()) {
@@ -1519,10 +1614,10 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
 
     @Override
     public void paint(Graphics2D g, MapView mv, Bounds bounds) {
-        ProjectionBounds pb = mv.getState().getViewArea().getProjectionBounds();
-
-        needRedraw = false;
+        // old and unused.
+    }
 
+    private void drawInViewArea(Graphics2D g, MapView mv, ProjectionBounds pb) {
         int zoom = currentZoomLevel;
         if (getDisplaySettings().isAutoZoom()) {
             zoom = getBestZoom();
@@ -1576,17 +1671,27 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
 
         // Too many tiles... refuse to download
         if (!ts.tooLarge()) {
-            //Main.debug("size: " + ts.size() + " spanned: " + ts.tilesSpanned());
+            // try to load tiles from desired zoom level, no matter what we will show (for example, tiles from previous zoom level
+            // on zoom in)
             ts.loadAllTiles(false);
         }
 
         if (displayZoomLevel != zoom) {
             ts = dts.getTileSet(displayZoomLevel);
+            if (!dts.getTileSetInfo(displayZoomLevel).hasAllLoadedTiles && displayZoomLevel < zoom) {
+                /*
+                 * if we are showing tiles from lower zoom level, ensure that all tiles are loaded
+                 * as they are few, and should not trash the tile cache
+                 * This is especially needed when dts.getTileSet(zoom).tooLarge() is true and we are
+                 * not loading tiles
+                 */
+                ts.loadAllTiles(false);
+            }
         }
 
         g.setColor(Color.DARK_GRAY);
 
-        List<Tile> missedTiles = this.paintTileImages(g, ts, displayZoomLevel, null);
+        List<Tile> missedTiles = this.paintTileImages(g, ts);
         int[] otherZooms = {-1, 1, -2, 2, -3, -4, -5};
         for (int zoomOffset : otherZooms) {
             if (!getDisplaySettings().isAutoZoom()) {
@@ -1758,7 +1863,8 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
 
     @Override
     public boolean isChanged() {
-        return needRedraw;
+        // we use #invalidate()
+        return false;
     }
 
     /**
@@ -1897,10 +2003,16 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         public void paint(MapViewGraphics graphics) {
             allocateCacheMemory();
             if (memory != null) {
-                super.paint(graphics);
+                doPaint(graphics);
             }
         }
 
+        private void doPaint(MapViewGraphics graphics) {
+            ProjectionBounds pb = graphics.getClipBounds().getProjectionBounds();
+
+            drawInViewArea(graphics.getDefaultGraphics(), graphics.getMapView(), pb);
+        }
+
         private void allocateCacheMemory() {
             if (memory == null) {
                 MemoryManager manager = MemoryManager.getInstance();
diff --git a/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java b/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java
index e39f575..1d53e28 100644
--- a/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java
+++ b/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java
@@ -7,8 +7,10 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.event.ActionEvent;
-import java.util.LinkedList;
+import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 import javax.swing.AbstractAction;
 import javax.swing.Action;
@@ -17,12 +19,15 @@ import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.AbstractProperty;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
 import org.openstreetmap.josm.gui.layer.Layer.LayerAction;
 import org.openstreetmap.josm.gui.layer.Layer.MultiLayerAction;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
 
 public class CustomizeColor extends AbstractAction implements LayerAction, MultiLayerAction {
-    private final transient List<Layer> layers;
+    private final transient List<AbstractProperty<Color>> colors;
 
     /**
      * Constructs a new {@code CustomizeColor} for a given list of layers.
@@ -30,8 +35,9 @@ public class CustomizeColor extends AbstractAction implements LayerAction, Multi
      */
     public CustomizeColor(List<Layer> l) {
         super(tr("Customize Color"), ImageProvider.get("colorchooser"));
+        colors = l.stream().map(Layer::getColorProperty).collect(Collectors.toList());
+        CheckParameterUtil.ensureThat(colors.stream().allMatch(Objects::nonNull), "All layers must have colors.");
         putValue("help", ht("/Action/LayerCustomizeColor"));
-        layers = l;
     }
 
     /**
@@ -39,17 +45,12 @@ public class CustomizeColor extends AbstractAction implements LayerAction, Multi
      * @param l layer
      */
     public CustomizeColor(Layer l) {
-        this(new LinkedList<Layer>());
-        layers.add(l);
+        this(Collections.singletonList(l));
     }
 
     @Override
     public boolean supportLayers(List<Layer> layers) {
-        for (Layer layer: layers) {
-            if (layer.getColor(false) == null)
-                return false;
-        }
-        return true;
+        return layers.stream().allMatch(l -> l.getColorProperty() != null);
     }
 
     @Override
@@ -64,9 +65,7 @@ public class CustomizeColor extends AbstractAction implements LayerAction, Multi
 
     @Override
     public void actionPerformed(ActionEvent e) {
-        Color cl = layers.get(0).getColor(false);
-        if (cl == null)
-            cl = Color.gray;
+        Color cl = colors.stream().map(c -> c.get()).filter(Objects::nonNull).findAny().orElse(Color.GRAY);
         JColorChooser c = new JColorChooser(cl);
         Object[] options = new Object[]{tr("OK"), tr("Cancel"), tr("Default")};
         int answer = JOptionPane.showOptionDialog(
@@ -81,18 +80,15 @@ public class CustomizeColor extends AbstractAction implements LayerAction, Multi
         );
         switch (answer) {
         case 0:
-            for (Layer layer : layers) {
-                Main.pref.putColor("layer "+layer.getName(), c.getColor());
-            }
+            colors.stream().forEach(prop -> prop.put(c.getColor()));
             break;
         case 1:
             return;
         case 2:
-            for (Layer layer : layers) {
-                Main.pref.putColor("layer "+layer.getName(), null);
-            }
+            colors.stream().forEach(prop -> prop.put(null));
             break;
         }
-        Main.map.repaint();
+        // TODO: Make the layer dialog listen to property change events so that this is not needed any more.
+        LayerListDialog.getInstance().repaint();
     }
 }
diff --git a/src/org/openstreetmap/josm/gui/layer/GpxLayer.java b/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
index 482d7f7..1b75382 100644
--- a/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
@@ -4,7 +4,6 @@ package org.openstreetmap.josm.gui.layer;
 import static org.openstreetmap.josm.tools.I18n.tr;
 import static org.openstreetmap.josm.tools.I18n.trn;
 
-import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Graphics2D;
 import java.io.File;
@@ -31,6 +30,7 @@ import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxTrack;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
@@ -88,7 +88,7 @@ public class GpxLayer extends Layer {
     public GpxLayer(GpxData d, String name, boolean isLocal) {
         super(d.getString(GpxConstants.META_NAME));
         data = d;
-        drawHelper = new GpxDrawHelper(data);
+        drawHelper = new GpxDrawHelper(data, getColorProperty());
         SystemOfMeasurement.addSoMChangeListener(drawHelper);
         ensureTrackVisibilityLength();
         setName(name);
@@ -96,8 +96,8 @@ public class GpxLayer extends Layer {
     }
 
     @Override
-    public Color getColor(boolean ignoreCustom) {
-        return drawHelper.getColor(getName(), ignoreCustom);
+    protected ColorProperty getBaseColorProperty() {
+        return GpxDrawHelper.DEFAULT_COLOR;
     }
 
     /**
@@ -387,6 +387,7 @@ public class GpxLayer extends Layer {
 
     @Override
     public void destroy() {
+        super.destroy();
         SystemOfMeasurement.removeSoMChangeListener(drawHelper);
     }
 }
diff --git a/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java b/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
index a8dae5c..79f6f78 100644
--- a/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
@@ -325,4 +325,9 @@ public abstract class ImageryLayer extends Layer {
         }
         return img;
     }
+
+    @Override
+    public String toString() {
+        return getClass().getSimpleName() + " [info=" + info + ']';
+    }
 }
diff --git a/src/org/openstreetmap/josm/gui/layer/Layer.java b/src/org/openstreetmap/josm/gui/layer/Layer.java
index 7347110..9ff3303 100644
--- a/src/org/openstreetmap/josm/gui/layer/Layer.java
+++ b/src/org/openstreetmap/josm/gui/layer/Layer.java
@@ -25,6 +25,9 @@ import org.openstreetmap.josm.actions.SaveActionBase;
 import org.openstreetmap.josm.actions.SaveAsAction;
 import org.openstreetmap.josm.data.ProjectionBounds;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.preferences.AbstractProperty;
+import org.openstreetmap.josm.data.preferences.AbstractProperty.ValueChangeListener;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.ProjectionChangeListener;
 import org.openstreetmap.josm.tools.Destroyable;
@@ -145,6 +148,8 @@ public abstract class Layer extends AbstractMapViewPaintable implements Destroya
      */
     private File associatedFile;
 
+    private final ValueChangeListener<Object> invalidateListener = change -> invalidate();
+
     /**
      * Create the layer and fill in the necessary components.
      * @param name Layer name
@@ -181,12 +186,52 @@ public abstract class Layer extends AbstractMapViewPaintable implements Destroya
      *      is used. When this is true, then even for custom coloring the base
      *      color is returned - mainly for layer internal use.
      * @return layer color
+     * @deprecated Use the new {@link #getColorProperty()}. To be removed end of 2016.
      */
+    @Deprecated
     public Color getColor(boolean ignoreCustom) {
         return null;
     }
 
     /**
+     * Gets the color property to use for this layer.
+     * @return The color property.
+     * @since 10824
+     */
+    public AbstractProperty<Color> getColorProperty() {
+        ColorProperty base = getBaseColorProperty();
+        if (base != null) {
+            // cannot cache this - name may change.
+            return base.getChildColor("layer " + getName());
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Gets the color property that stores the default color for this layer.
+     * @return The property or <code>null</code> if this layer is not colored.
+     * @since 10824
+     */
+    protected ColorProperty getBaseColorProperty() {
+        return null;
+    }
+
+    private void addColorPropertyListener() {
+        AbstractProperty<Color> colorProperty = getColorProperty();
+        if (colorProperty != null) {
+            colorProperty.addListener(invalidateListener);
+        }
+    }
+
+    private void removeColorPropertyListener() {
+        AbstractProperty<Color> colorProperty = getColorProperty();
+        if (colorProperty != null) {
+            colorProperty.removeListener(invalidateListener);
+        }
+    }
+
+    /**
      * @return A small tooltip hint about some statistics for this layer.
      */
     public abstract String getToolTipText();
@@ -239,6 +284,7 @@ public abstract class Layer extends AbstractMapViewPaintable implements Destroya
     @Override
     public void destroy() {
         // Override in subclasses if needed
+        removeColorPropertyListener();
     }
 
     public File getAssociatedFile() {
@@ -264,14 +310,22 @@ public abstract class Layer extends AbstractMapViewPaintable implements Destroya
      * @param name the name. If null, the name is set to the empty string.
      */
     public final void setName(String name) {
+        if (this.name != null) {
+            removeColorPropertyListener();
+        }
         if (name == null) {
             name = "";
         }
+
         String oldValue = this.name;
         this.name = name;
         if (!this.name.equals(oldValue)) {
             propertyChangeSupport.firePropertyChange(NAME_PROP, oldValue, this.name);
         }
+
+        // re-add listener
+        addColorPropertyListener();
+        invalidate();
     }
 
     /**
@@ -425,7 +479,11 @@ public abstract class Layer extends AbstractMapViewPaintable implements Destroya
      * Check changed status of layer
      *
      * @return True if layer was changed since last paint
+     * @deprecated This is not supported by multiple map views.
+     * Fire an {@link #invalidate()} to trigger a repaint.
+     * Let this method return false if you only use invalidation events.
      */
+    @Deprecated
     public boolean isChanged() {
         return true;
     }
@@ -593,4 +651,9 @@ public abstract class Layer extends AbstractMapViewPaintable implements Destroya
         visitBoundingBox(v);
         return v.getBounds();
     }
+
+    @Override
+    public String toString() {
+        return getClass().getSimpleName() + " [name=" + name + ", associatedFile=" + associatedFile + ']';
+    }
 }
diff --git a/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java b/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
index 7bdfd1a..5391731 100644
--- a/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
@@ -12,11 +12,11 @@ import java.awt.Composite;
 import java.awt.Graphics2D;
 import java.awt.GraphicsEnvironment;
 import java.awt.GridBagLayout;
-import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.TexturePaint;
 import java.awt.event.ActionEvent;
 import java.awt.geom.Area;
+import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.util.ArrayList;
@@ -51,6 +51,7 @@ import org.openstreetmap.josm.data.ProjectionBounds;
 import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.conflict.ConflictCollection;
+import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxConstants;
 import org.openstreetmap.josm.data.gpx.GpxData;
@@ -75,12 +76,14 @@ import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
 import org.openstreetmap.josm.data.osm.visitor.paint.MapRendererFactory;
 import org.openstreetmap.josm.data.osm.visitor.paint.Rendering;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
 import org.openstreetmap.josm.data.preferences.StringProperty;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.validation.TestError;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
 import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
 import org.openstreetmap.josm.gui.io.AbstractIOTask;
@@ -95,11 +98,11 @@ import org.openstreetmap.josm.gui.widgets.FileChooserManager;
 import org.openstreetmap.josm.gui.widgets.JosmTextArea;
 import org.openstreetmap.josm.io.OsmImporter;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
-import org.openstreetmap.josm.tools.FilteredCollection;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageOverlay;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
+import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 import org.openstreetmap.josm.tools.date.DateUtils;
 
 /**
@@ -110,6 +113,7 @@ import org.openstreetmap.josm.tools.date.DateUtils;
  * @since 17
  */
 public class OsmDataLayer extends AbstractModifiableLayer implements Listener, SelectionChangedListener {
+    private static final int HATCHED_SIZE = 15;
     /** Property used to know if this layer has to be saved on disk */
     public static final String REQUIRES_SAVE_TO_DISK_PROP = OsmDataLayer.class.getName() + ".requiresSaveToDisk";
     /** Property used to know if this layer has to be uploaded */
@@ -117,7 +121,6 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
 
     private boolean requiresSaveToFile;
     private boolean requiresUploadToServer;
-    private boolean isChanged = true;
     private int highlightUpdateCount;
 
     /**
@@ -131,6 +134,8 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
             DEFAULT_RECENT_RELATIONS_NUMBER);
     public static final StringProperty PROPERTY_SAVE_EXTENSION = new StringProperty("save.extension.osm", "osm");
 
+    private static final ColorProperty PROPERTY_BACKGROUND_COLOR = new ColorProperty(marktr("background"), Color.BLACK);
+    private static final ColorProperty PROPERTY_OUTSIDE_COLOR = new ColorProperty(marktr("outside downloaded area"), Color.YELLOW);
 
     /** List of recent relations */
     private final Map<Relation, Void> recentRelations = new LinkedHashMap<Relation, Void>(PROPERTY_RECENT_RELATIONS_NUMBER.get()+1, 1.1f, true) {
@@ -303,9 +308,9 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
     private final ConflictCollection conflicts;
 
     /**
-     * a paint texture for non-downloaded area
+     * a texture for non-downloaded area
      */
-    private static volatile TexturePaint hatched;
+    private static volatile BufferedImage hatched;
 
     static {
         createHatchTexture();
@@ -316,7 +321,7 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
      * @return background color for downloaded areas. Black by default
      */
     public static Color getBackgroundColor() {
-        return Main.pref != null ? Main.pref.getColor(marktr("background"), Color.BLACK) : Color.BLACK;
+        return PROPERTY_BACKGROUND_COLOR.get();
     }
 
     /**
@@ -324,24 +329,23 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
      * @return background color for non-downloaded areas. Yellow by default
      */
     public static Color getOutsideColor() {
-        return Main.pref != null ? Main.pref.getColor(marktr("outside downloaded area"), Color.YELLOW) : Color.YELLOW;
+        return PROPERTY_OUTSIDE_COLOR.get();
     }
 
     /**
      * Initialize the hatch pattern used to paint the non-downloaded area
      */
     public static void createHatchTexture() {
-        BufferedImage bi = new BufferedImage(15, 15, BufferedImage.TYPE_INT_ARGB);
+        BufferedImage bi = new BufferedImage(HATCHED_SIZE, HATCHED_SIZE, BufferedImage.TYPE_INT_ARGB);
         Graphics2D big = bi.createGraphics();
         big.setColor(getBackgroundColor());
         Composite comp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f);
         big.setComposite(comp);
-        big.fillRect(0, 0, 15, 15);
+        big.fillRect(0, 0, HATCHED_SIZE, HATCHED_SIZE);
         big.setColor(getOutsideColor());
         big.drawLine(-1, 6, 6, -1);
         big.drawLine(4, 16, 16, 4);
-        Rectangle r = new Rectangle(0, 0, 15, 15);
-        hatched = new TexturePaint(bi, r);
+        hatched = bi;
     }
 
     /**
@@ -385,7 +389,6 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
      * Draw nodes last to overlap the ways they belong to.
      */
     @Override public void paint(final Graphics2D g, final MapView mv, Bounds box) {
-        isChanged = false;
         highlightUpdateCount = data.getHighlightUpdateCount();
 
         boolean active = mv.getLayerManager().getActiveLayer() == this;
@@ -407,14 +410,14 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
                 if (bounds.isCollapsed()) {
                     continue;
                 }
-                Point p1 = mv.getPoint(bounds.getMin());
-                Point p2 = mv.getPoint(bounds.getMax());
-                Rectangle r = new Rectangle(Math.min(p1.x, p2.x), Math.min(p1.y, p2.y), Math.abs(p2.x-p1.x), Math.abs(p2.y-p1.y));
-                a.subtract(new Area(r));
+                a.subtract(mv.getState().getArea(bounds));
             }
 
             // paint remainder
-            g.setPaint(hatched);
+            MapViewPoint anchor = mv.getState().getPointFor(new EastNorth(0, 0));
+            Rectangle2D anchorRect = new Rectangle2D.Double(anchor.getInView().getX() % HATCHED_SIZE,
+                    anchor.getInView().getY() % HATCHED_SIZE, HATCHED_SIZE, HATCHED_SIZE);
+            g.setPaint(new TexturePaint(hatched, anchorRect));
             g.fill(a);
         }
 
@@ -424,9 +427,9 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
     }
 
     @Override public String getToolTipText() {
-        int nodes = new FilteredCollection<>(data.getNodes(), p -> !p.isDeleted()).size();
-        int ways = new FilteredCollection<>(data.getWays(), p -> !p.isDeleted()).size();
-        int rels = new FilteredCollection<>(data.getRelations(), p -> !p.isDeleted()).size();
+        int nodes = new SubclassFilteredCollection<>(data.getNodes(), p -> !p.isDeleted()).size();
+        int ways = new SubclassFilteredCollection<>(data.getWays(), p -> !p.isDeleted()).size();
+        int rels = new SubclassFilteredCollection<>(data.getRelations(), p -> !p.isDeleted()).size();
 
         String tool = trn("{0} node", "{0} nodes", nodes, nodes)+", ";
         tool += trn("{0} way", "{0} ways", ways, ways)+", ";
@@ -889,7 +892,7 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
 
     @Override
     public boolean isChanged() {
-        return isChanged || highlightUpdateCount != data.getHighlightUpdateCount();
+        return highlightUpdateCount != data.getHighlightUpdateCount();
     }
 
     @Override
@@ -930,6 +933,7 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
 
     @Override
     public void destroy() {
+        super.destroy();
         DataSet.removeSelectionListener(this);
     }
 
@@ -946,12 +950,6 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
     }
 
     @Override
-    public void invalidate() {
-        isChanged = true;
-        super.invalidate();
-    }
-
-    @Override
     public void projectionChanged(Projection oldValue, Projection newValue) {
          // No reprojection required. The dataset itself is registered as projection
          // change listener and already got notified.
diff --git a/src/org/openstreetmap/josm/gui/layer/ValidatorLayer.java b/src/org/openstreetmap/josm/gui/layer/ValidatorLayer.java
index 4044d99..cc52120 100644
--- a/src/org/openstreetmap/josm/gui/layer/ValidatorLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/ValidatorLayer.java
@@ -40,8 +40,7 @@ import org.openstreetmap.josm.tools.MultiMap;
  * @since 10386 (new LayerChangeListener interface)
  */
 public class ValidatorLayer extends Layer implements LayerChangeListener {
-
-    private int updateCount = -1;
+    private final Runnable invalidator = this::invalidate;
 
     /**
      * Constructs a new Validator layer
@@ -49,6 +48,7 @@ public class ValidatorLayer extends Layer implements LayerChangeListener {
     public ValidatorLayer() {
         super(tr("Validation errors"));
         Main.getLayerManager().addLayerChangeListener(this);
+        Main.map.validatorDialog.tree.addInvalidationListener(invalidator);
     }
 
     /**
@@ -67,7 +67,6 @@ public class ValidatorLayer extends Layer implements LayerChangeListener {
     @SuppressWarnings("unchecked")
     @Override
     public void paint(final Graphics2D g, final MapView mv, Bounds bounds) {
-        updateCount = Main.map.validatorDialog.tree.getUpdateCount();
         DefaultMutableTreeNode root = Main.map.validatorDialog.tree.getRoot();
         if (root == null || root.getChildCount() == 0)
             return;
@@ -123,11 +122,6 @@ public class ValidatorLayer extends Layer implements LayerChangeListener {
     }
 
     @Override
-    public boolean isChanged() {
-        return updateCount != Main.map.validatorDialog.tree.getUpdateCount();
-    }
-
-    @Override
     public void visitBoundingBox(BoundingXYVisitor v) {
         // Do nothing
     }
@@ -167,7 +161,6 @@ public class ValidatorLayer extends Layer implements LayerChangeListener {
         if (e.getRemovedLayer() instanceof OsmDataLayer && e.getSource().getLayersOfType(OsmDataLayer.class).size() <= 1) {
             e.scheduleRemoval(Collections.singleton(this));
         } else if (e.getRemovedLayer() == this) {
-            Main.getLayerManager().removeLayerChangeListener(this);
             OsmValidator.errorLayer = null;
         }
     }
@@ -176,4 +169,11 @@ public class ValidatorLayer extends Layer implements LayerChangeListener {
     public LayerPositionStrategy getDefaultLayerPosition() {
         return LayerPositionStrategy.IN_FRONT;
     }
+
+    @Override
+    public void destroy() {
+        Main.map.validatorDialog.tree.removeInvalidationListener(invalidator);
+        Main.getLayerManager().removeLayerChangeListener(this);
+        super.destroy();
+    }
 }
diff --git a/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java b/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
index 4d6a5a6..1d6770a 100644
--- a/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
+++ b/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
@@ -341,24 +341,18 @@ public class CorrelateGpxWithImages extends AbstractAction {
      *
      */
     private class SetOffsetActionListener implements ActionListener {
-        private JPanel panel;
-        private JLabel lbExifTime;
-        private JosmTextField tfGpsTime;
-        private JosmComboBox<String> cbTimezones;
-        private ImageDisplay imgDisp;
-        private JList<String> imgList;
 
         @Override
         public void actionPerformed(ActionEvent arg0) {
             SimpleDateFormat dateFormat = (SimpleDateFormat) DateUtils.getDateTimeFormat(DateFormat.SHORT, DateFormat.MEDIUM);
 
-            panel = new JPanel(new BorderLayout());
+            JPanel panel = new JPanel(new BorderLayout());
             panel.add(new JLabel(tr("<html>Take a photo of your GPS receiver while it displays the time.<br>"
                     + "Display that photo here.<br>"
                     + "And then, simply capture the time you read on the photo and select a timezone<hr></html>")),
                     BorderLayout.NORTH);
 
-            imgDisp = new ImageDisplay();
+            ImageDisplay imgDisp = new ImageDisplay();
             imgDisp.setPreferredSize(new Dimension(300, 225));
             panel.add(imgDisp, BorderLayout.CENTER);
 
@@ -372,7 +366,7 @@ public class CorrelateGpxWithImages extends AbstractAction {
             gc.anchor = GridBagConstraints.WEST;
             panelTf.add(new JLabel(tr("Photo time (from exif):")), gc);
 
-            lbExifTime = new JLabel();
+            JLabel lbExifTime = new JLabel();
             gc.gridx = 1;
             gc.weightx = 1.0;
             gc.fill = GridBagConstraints.HORIZONTAL;
@@ -387,7 +381,7 @@ public class CorrelateGpxWithImages extends AbstractAction {
             gc.anchor = GridBagConstraints.WEST;
             panelTf.add(new JLabel(tr("Gps time (read from the above photo): ")), gc);
 
-            tfGpsTime = new JosmTextField(12);
+            JosmTextField tfGpsTime = new JosmTextField(12);
             tfGpsTime.setEnabled(false);
             tfGpsTime.setMinimumSize(new Dimension(155, tfGpsTime.getMinimumSize().height));
             gc.gridx = 1;
@@ -421,7 +415,7 @@ public class CorrelateGpxWithImages extends AbstractAction {
 
             Collections.sort(vtTimezones);
 
-            cbTimezones = new JosmComboBox<>(vtTimezones.toArray(new String[0]));
+            JosmComboBox<String> cbTimezones = new JosmComboBox<>(vtTimezones.toArray(new String[0]));
 
             String tzId = Main.pref.get("geoimage.timezoneid", "");
             TimeZone defaultTz;
@@ -445,7 +439,7 @@ public class CorrelateGpxWithImages extends AbstractAction {
 
             JPanel panelLst = new JPanel(new BorderLayout());
 
-            imgList = new JList<>(new AbstractListModel<String>() {
+            JList<String> imgList = new JList<>(new AbstractListModel<String>() {
                 @Override
                 public String getElementAt(int i) {
                     return yLayer.data.get(i).getFile().getName();
diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java b/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
index 8e138db..0afbe0f 100644
--- a/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
+++ b/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
@@ -24,6 +24,8 @@ import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxConstants;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.data.preferences.AbstractProperty;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.tools.ColorScale;
 
@@ -32,6 +34,13 @@ import org.openstreetmap.josm.tools.ColorScale;
  * @since 7319
  */
 public class GpxDrawHelper implements SoMChangeListener {
+
+    /**
+     * The color that is used for drawing GPX points.
+     * @since 10824
+     */
+    public static final ColorProperty DEFAULT_COLOR = new ColorProperty(marktr("gps point"), Color.magenta);
+
     private final GpxData data;
 
     // draw lines between points belonging to different segments
@@ -83,8 +92,6 @@ public class GpxDrawHelper implements SoMChangeListener {
     /** Opacity for hdop points **/
     private int hdopAlpha;
 
-    private static final Color DEFAULT_COLOR = Color.magenta;
-
     // lookup array to draw arrows without doing any math
     private static final int ll0 = 9;
     private static final int sl4 = 5;
@@ -133,8 +140,10 @@ public class GpxDrawHelper implements SoMChangeListener {
     /**
      * Constructs a new {@code GpxDrawHelper}.
      * @param gpxData GPX data
+     * @param abstractProperty The color to draw with
+     * @since 10824
      */
-    public GpxDrawHelper(GpxData gpxData) {
+    public GpxDrawHelper(GpxData gpxData, AbstractProperty<Color> abstractProperty) {
         data = gpxData;
         setupColors();
     }
@@ -150,8 +159,11 @@ public class GpxDrawHelper implements SoMChangeListener {
      * @return the color or null if the color is not constant
      */
     public Color getColor(String layerName, boolean ignoreCustom) {
-        Color c = Main.pref.getColor(marktr("gps point"), specName(layerName), DEFAULT_COLOR);
-        return ignoreCustom || getColorMode(layerName) == ColorMode.NONE ? c : null;
+        if (ignoreCustom || getColorMode(layerName) == ColorMode.NONE) {
+            return DEFAULT_COLOR.getChildColor(specName(layerName)).get();
+        } else {
+            return null;
+        }
     }
 
     /**
@@ -173,7 +185,7 @@ public class GpxDrawHelper implements SoMChangeListener {
      * @return the color
      **/
     public static Color getGenericColor() {
-        return Main.pref.getColor(marktr("gps point"), DEFAULT_COLOR);
+        return DEFAULT_COLOR.get();
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java b/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java
index a3e441a..b30bc19 100644
--- a/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java
+++ b/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java
@@ -76,11 +76,12 @@ public class ColorfulImageProcessor implements ImageProcessor {
         }
 
         @Override
-        public BufferedImage filter(BufferedImage src, BufferedImage dest) {
+        public BufferedImage filter(BufferedImage src, BufferedImage dst) {
             if (src.getWidth() == 0 || src.getHeight() == 0) {
                 return src;
             }
 
+            BufferedImage dest = dst;
             if (dest == null) {
                 dest = createCompatibleDestImage(src, null);
             }
diff --git a/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java b/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java
index e8c925d..3103299 100644
--- a/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java
+++ b/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java
@@ -5,8 +5,12 @@ import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 
 import org.openstreetmap.gui.jmapviewer.Tile;
+import org.openstreetmap.gui.jmapviewer.TileXY;
 import org.openstreetmap.gui.jmapviewer.interfaces.ICoordinate;
+import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.projection.Projecting;
+import org.openstreetmap.josm.data.projection.ShiftedProjecting;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 
@@ -18,14 +22,17 @@ import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 public class TileCoordinateConverter {
     private MapView mapView;
     private TileSourceDisplaySettings settings;
+    private final TileSource tileSource;
 
     /**
      * Create a new coordinate converter for the map view.
      * @param mapView The map view.
+     * @param tileSource The tile source to use when converting coordinates.
      * @param settings displacement settings.
      */
-    public TileCoordinateConverter(MapView mapView, TileSourceDisplaySettings settings) {
+    public TileCoordinateConverter(MapView mapView, TileSource tileSource, TileSourceDisplaySettings settings) {
         this.mapView = mapView;
+        this.tileSource = tileSource;
         this.settings = settings;
     }
 
@@ -34,6 +41,14 @@ public class TileCoordinateConverter {
     }
 
     /**
+     * Gets the projecting instance to use to convert between latlon and eastnorth coordinates.
+     * @return The {@link Projecting} instance.
+     */
+    public Projecting getProjecting() {
+        return new ShiftedProjecting(mapView.getProjection(), settings.getDisplacement());
+    }
+
+    /**
      * Gets the top left position of the tile inside the map view.
      * @param tile The tile
      * @return The positon.
@@ -54,4 +69,21 @@ public class TileCoordinateConverter {
 
         return pos(c1).rectTo(pos(c2)).getInView();
     }
+
+    /**
+     * Returns average number of screen pixels per tile pixel for current mapview
+     * @param zoom zoom level
+     * @return average number of screen pixels per tile pixel
+     */
+    public double getScaleFactor(int zoom) {
+        LatLon topLeft = mapView.getLatLon(0, 0);
+        LatLon botRight = mapView.getLatLon(mapView.getWidth(), mapView.getHeight());
+        TileXY t1 = tileSource.latLonToTileXY(topLeft.toCoordinate(), zoom);
+        TileXY t2 = tileSource.latLonToTileXY(botRight.toCoordinate(), zoom);
+
+        int screenPixels = mapView.getWidth()*mapView.getHeight();
+        double tilePixels = Math.abs((t2.getY()-t1.getY())*(t2.getX()-t1.getX())*tileSource.getTileSize()*tileSource.getTileSize());
+        if (screenPixels == 0 || tilePixels == 0) return 1;
+        return screenPixels/tilePixels;
+    }
 }
diff --git a/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java b/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
index 15abf70..43c265b 100644
--- a/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
@@ -37,6 +37,7 @@ import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxLink;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
 import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
@@ -73,6 +74,7 @@ public class MarkerLayer extends Layer implements JumpToMarkerLayer {
     public AudioMarker syncAudioMarker;
 
     private static final Color DEFAULT_COLOR = Color.magenta;
+    private static final ColorProperty COLOR_PROPERTY = new ColorProperty(marktr("gps marker"), DEFAULT_COLOR);
 
     /**
      * Constructs a new {@code MarkerLayer}.
@@ -194,19 +196,19 @@ public class MarkerLayer extends Layer implements JumpToMarkerLayer {
     }
 
     @Override
-    public Color getColor(boolean ignoreCustom) {
-        return Main.pref.getColor(marktr("gps marker"), "layer "+getName(), DEFAULT_COLOR);
+    protected ColorProperty getBaseColorProperty() {
+        return COLOR_PROPERTY;
     }
 
     /* for preferences */
     public static Color getGenericColor() {
-        return Main.pref.getColor(marktr("gps marker"), DEFAULT_COLOR);
+        return COLOR_PROPERTY.get();
     }
 
     @Override
     public void paint(Graphics2D g, MapView mv, Bounds box) {
         boolean showTextOrIcon = isTextOrIconShown();
-        g.setColor(getColor(true));
+        g.setColor(getColorProperty().get());
 
         if (mousePressed) {
             boolean mousePressedTmp = mousePressed;
diff --git a/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java b/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
index 865a0ed..f902fd3 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
@@ -53,6 +53,10 @@ public final class MapPaintStyles {
     private static final String XML_STYLE_MIME_TYPES =
              "application/xml, text/xml, text/plain; q=0.8, application/zip, application/octet-stream; q=0.5";
 
+    private static final Collection<String> DEPRECATED_IMAGE_NAMES = Arrays.asList(
+            "presets/misc/deprecated.svg",
+            "misc/deprecated.png");
+
     private static ElemStyles styles = new ElemStyles();
 
     /**
@@ -107,6 +111,15 @@ public final class MapPaintStyles {
         public String toString() {
             return "IconReference{" + "iconName='" + iconName + "' source='" + source.getDisplayString() + "'}";
         }
+
+        /**
+         * Determines whether this icon represents a deprecated icon
+         * @return whether this icon represents a deprecated icon
+         * @since 10927
+         */
+        public boolean isDeprecatedIcon() {
+            return DEPRECATED_IMAGE_NAMES.contains(iconName);
+        }
     }
 
     /**
@@ -202,7 +215,7 @@ public final class MapPaintStyles {
                     if (style instanceof NodeElement) {
                         MapImage mapImage = ((NodeElement) style).mapImage;
                         if (mapImage != null) {
-                            if (includeDeprecatedIcon || mapImage.name == null || !"misc/deprecated.png".equals(mapImage.name)) {
+                            if (includeDeprecatedIcon || mapImage.name == null || !DEPRECATED_IMAGE_NAMES.contains(mapImage.name)) {
                                 return new ImageIcon(mapImage.getImage(false));
                             } else {
                                 return null; // Deprecated icon found but not wanted
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Condition.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Condition.java
index 0924b68..c383bc7 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Condition.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Condition.java
@@ -1,33 +1,9 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.mappaint.mapcss;
 
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.text.MessageFormat;
-import java.util.Arrays;
-import java.util.EnumSet;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.function.BiFunction;
-import java.util.function.IntFunction;
-import java.util.function.Predicate;
-import java.util.regex.Pattern;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.search.SearchCompiler.InDataSourceArea;
-import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.data.osm.OsmUtils;
-import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Tag;
-import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
-import org.openstreetmap.josm.gui.mappaint.Cascade;
-import org.openstreetmap.josm.gui.mappaint.ElemStyles;
 import org.openstreetmap.josm.gui.mappaint.Environment;
-import org.openstreetmap.josm.tools.CheckParameterUtil;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
  * This is a condition that needs to be fulfilled in order to apply a MapCSS style.
@@ -43,193 +19,6 @@ public interface Condition {
     boolean applies(Environment e);
 
     /**
-     * Create a new condition that checks the key and the value of the object.
-     * @param k The key.
-     * @param v The reference value
-     * @param op The operation to use when comparing the value
-     * @param context The type of context to use.
-     * @param considerValAsKey whether to consider {@code v} as another key and compare the values of key {@code k} and key {@code v}.
-     * @return The new condition.
-     */
-    static Condition createKeyValueCondition(String k, String v, Op op, Context context, boolean considerValAsKey) {
-        switch (context) {
-        case PRIMITIVE:
-            if (KeyValueRegexpCondition.SUPPORTED_OPS.contains(op) && !considerValAsKey)
-                return new KeyValueRegexpCondition(k, v, op, false);
-            if (!considerValAsKey && op.equals(Op.EQ))
-                return new SimpleKeyValueCondition(k, v);
-            return new KeyValueCondition(k, v, op, considerValAsKey);
-        case LINK:
-            if (considerValAsKey)
-                throw new MapCSSException("''considerValAsKey'' not supported in LINK context");
-            if ("role".equalsIgnoreCase(k))
-                return new RoleCondition(v, op);
-            else if ("index".equalsIgnoreCase(k))
-                return new IndexCondition(v, op);
-            else
-                throw new MapCSSException(
-                        MessageFormat.format("Expected key ''role'' or ''index'' in link context. Got ''{0}''.", k));
-
-        default: throw new AssertionError();
-        }
-    }
-
-    /**
-     * Create a condition in which the key and the value need to match a given regexp
-     * @param k The key regexp
-     * @param v The value regexp
-     * @param op The operation to use when comparing the key and the value.
-     * @return The new condition.
-     */
-    static Condition createRegexpKeyRegexpValueCondition(String k, String v, Op op) {
-        return new RegexpKeyValueRegexpCondition(k, v, op);
-    }
-
-    /**
-     * Creates a condition that checks the given key.
-     * @param k The key to test for
-     * @param not <code>true</code> to invert the match
-     * @param matchType The match type to check for.
-     * @param context The context this rule is found in.
-     * @return the new condition.
-     */
-    static Condition createKeyCondition(String k, boolean not, KeyMatchType matchType, Context context) {
-        switch (context) {
-        case PRIMITIVE:
-            return new KeyCondition(k, not, matchType);
-        case LINK:
-            if (matchType != null)
-                throw new MapCSSException("Question mark operator ''?'' and regexp match not supported in LINK context");
-            if (not)
-                return new RoleCondition(k, Op.NEQ);
-            else
-                return new RoleCondition(k, Op.EQ);
-
-        default: throw new AssertionError();
-        }
-    }
-
-    /**
-     * Create a new pseudo class condition
-     * @param id The id of the pseudo class
-     * @param not <code>true</code> to invert the condition
-     * @param context The context the class is found in.
-     * @return The new condition
-     */
-    static PseudoClassCondition createPseudoClassCondition(String id, boolean not, Context context) {
-        return PseudoClassCondition.createPseudoClassCondition(id, not, context);
-    }
-
-    /**
-     * Create a new class condition
-     * @param id The id of the class to match
-     * @param not <code>true</code> to invert the condition
-     * @param context Ignored
-     * @return The new condition
-     */
-    static ClassCondition createClassCondition(String id, boolean not, Context context) {
-        return new ClassCondition(id, not);
-    }
-
-    /**
-     * Create a new condition that a expression needs to be fulfilled
-     * @param e the expression to check
-     * @param context Ignored
-     * @return The new condition
-     */
-    static ExpressionCondition createExpressionCondition(Expression e, Context context) {
-        return new ExpressionCondition(e);
-    }
-
-    /**
-     * This is the operation that {@link KeyValueCondition} uses to match.
-     */
-    enum Op {
-        /** The value equals the given reference. */
-        EQ(Objects::equals),
-        /** The value does not equal the reference. */
-        NEQ(EQ),
-        /** The value is greater than or equal to the given reference value (as float). */
-        GREATER_OR_EQUAL(comparisonResult -> comparisonResult >= 0),
-        /** The value is greater than the given reference value (as float). */
-        GREATER(comparisonResult -> comparisonResult > 0),
-        /** The value is less than or equal to the given reference value (as float). */
-        LESS_OR_EQUAL(comparisonResult -> comparisonResult <= 0),
-        /** The value is less than the given reference value (as float). */
-        LESS(comparisonResult -> comparisonResult < 0),
-        /** The reference is treated as regular expression and the value needs to match it. */
-        REGEX((test, prototype) -> Pattern.compile(prototype).matcher(test).find()),
-        /** The reference is treated as regular expression and the value needs to not match it. */
-        NREGEX(REGEX),
-        /** The reference is treated as a list separated by ';'. Spaces around the ; are ignored.
-         *  The value needs to be equal one of the list elements. */
-        ONE_OF((test, prototype) -> Arrays.asList(test.split("\\s*;\\s*")).contains(prototype)),
-        /** The value needs to begin with the reference string. */
-        BEGINS_WITH(String::startsWith),
-        /** The value needs to end with the reference string. */
-        ENDS_WITH(String::endsWith),
-        /** The value needs to contain the reference string. */
-        CONTAINS(String::contains);
-
-        static final Set<Op> NEGATED_OPS = EnumSet.of(NEQ, NREGEX);
-
-        private final BiFunction<String, String, Boolean> function;
-
-        private final boolean negated;
-
-        /**
-         * Create a new string operation.
-         * @param func The function to apply during {@link #eval(String, String)}.
-         */
-        Op(BiFunction<String, String, Boolean> func) {
-            this.function = func;
-            negated = false;
-        }
-
-        /**
-         * Create a new float operation that compares two float values
-         * @param comparatorResult A function to mapt the result of the comparison
-         */
-        Op(IntFunction<Boolean> comparatorResult) {
-            this.function = (test, prototype) -> {
-                float testFloat;
-                try {
-                    testFloat = Float.parseFloat(test);
-                } catch (NumberFormatException e) {
-                    return false;
-                }
-                float prototypeFloat = Float.parseFloat(prototype);
-
-                int res = Float.compare(testFloat, prototypeFloat);
-                return comparatorResult.apply(res);
-            };
-            negated = false;
-        }
-
-        /**
-         * Create a new Op by negating an other op.
-         * @param negate inverse operation
-         */
-        Op(Op negate) {
-            this.function = (a, b) -> !negate.function.apply(a, b);
-            negated = true;
-        }
-
-        /**
-         * Evaluates a value against a reference string.
-         * @param testString The value. May be <code>null</code>
-         * @param prototypeString The reference string-
-         * @return <code>true</code> if and only if this operation matches for the given value/reference pair.
-         */
-        public boolean eval(String testString, String prototypeString) {
-            if (testString == null)
-                return negated;
-            else
-                return function.apply(testString, prototypeString);
-        }
-    }
-
-    /**
      * Context, where the condition applies.
      */
     enum Context {
@@ -245,613 +34,11 @@ public interface Condition {
     }
 
     /**
-     * Most common case of a KeyValueCondition, this is the basic key=value case.
-     *
-     * Extra class for performance reasons.
-     */
-    class SimpleKeyValueCondition implements Condition, ToTagConvertable {
-        /**
-         * The key to search for.
-         */
-        public final String k;
-        /**
-         * The value to search for.
-         */
-        public final String v;
-
-        /**
-         * Create a new SimpleKeyValueCondition.
-         * @param k The key
-         * @param v The value.
-         */
-        public SimpleKeyValueCondition(String k, String v) {
-            this.k = k;
-            this.v = v;
-        }
-
-        @Override
-        public boolean applies(Environment e) {
-            return v.equals(e.osm.get(k));
-        }
-
-        @Override
-        public Tag asTag(OsmPrimitive primitive) {
-            return new Tag(k, v);
-        }
-
-        @Override
-        public String toString() {
-            return '[' + k + '=' + v + ']';
-        }
-
-    }
-
-    /**
-     * <p>Represents a key/value condition which is either applied to a primitive.</p>
-     *
-     */
-    class KeyValueCondition implements Condition, ToTagConvertable {
-        /**
-         * The key to search for.
-         */
-        public final String k;
-        /**
-         * The value to search for.
-         */
-        public final String v;
-        /**
-         * The key/value match operation.
-         */
-        public final Op op;
-        /**
-         * If this flag is set, {@link #v} is treated as a key and the value is the value set for that key.
-         */
-        public final boolean considerValAsKey;
-
-        /**
-         * <p>Creates a key/value-condition.</p>
-         *
-         * @param k the key
-         * @param v the value
-         * @param op the operation
-         * @param considerValAsKey whether to consider {@code v} as another key and compare the values of key {@code k} and key {@code v}.
-         */
-        public KeyValueCondition(String k, String v, Op op, boolean considerValAsKey) {
-            this.k = k;
-            this.v = v;
-            this.op = op;
-            this.considerValAsKey = considerValAsKey;
-        }
-
-        @Override
-        public boolean applies(Environment env) {
-            return op.eval(env.osm.get(k), considerValAsKey ? env.osm.get(v) : v);
-        }
-
-        @Override
-        public Tag asTag(OsmPrimitive primitive) {
-            return new Tag(k, v);
-        }
-
-        @Override
-        public String toString() {
-            return '[' + k + '\'' + op + '\'' + v + ']';
-        }
-    }
-
-    /**
-     * This condition requires a fixed key to match a given regexp
-     */
-    class KeyValueRegexpCondition extends KeyValueCondition {
-        protected static final Set<Op> SUPPORTED_OPS = EnumSet.of(Op.REGEX, Op.NREGEX);
-
-        final Pattern pattern;
-
-        public KeyValueRegexpCondition(String k, String v, Op op, boolean considerValAsKey) {
-            super(k, v, op, considerValAsKey);
-            CheckParameterUtil.ensureThat(!considerValAsKey, "considerValAsKey is not supported");
-            CheckParameterUtil.ensureThat(SUPPORTED_OPS.contains(op), "Op must be REGEX or NREGEX");
-            this.pattern = Pattern.compile(v);
-        }
-
-        protected boolean matches(Environment env) {
-            final String value = env.osm.get(k);
-            return value != null && pattern.matcher(value).find();
-        }
-
-        @Override
-        public boolean applies(Environment env) {
-            if (Op.REGEX.equals(op)) {
-                return matches(env);
-            } else if (Op.NREGEX.equals(op)) {
-                return !matches(env);
-            } else {
-                throw new IllegalStateException();
-            }
-        }
-    }
-
-    /**
-     * A condition that checks that a key with the matching pattern has a value with the matching pattern.
-     */
-    class RegexpKeyValueRegexpCondition extends KeyValueRegexpCondition {
-
-        public final Pattern keyPattern;
-
-        /**
-         * Create a condition in which the key and the value need to match a given regexp
-         * @param k The key regexp
-         * @param v The value regexp
-         * @param op The operation to use when comparing the key and the value.
-         */
-        public RegexpKeyValueRegexpCondition(String k, String v, Op op) {
-            super(k, v, op, false);
-            this.keyPattern = Pattern.compile(k);
-        }
-
-        @Override
-        protected boolean matches(Environment env) {
-            for (Map.Entry<String, String> kv: env.osm.getKeys().entrySet()) {
-                if (keyPattern.matcher(kv.getKey()).find() && pattern.matcher(kv.getValue()).find()) {
-                    return true;
-                }
-            }
-            return false;
-        }
-    }
-
-    class RoleCondition implements Condition {
-        public final String role;
-        public final Op op;
-
-        public RoleCondition(String role, Op op) {
-            this.role = role;
-            this.op = op;
-        }
-
-        @Override
-        public boolean applies(Environment env) {
-            String testRole = env.getRole();
-            if (testRole == null) return false;
-            return op.eval(testRole, role);
-        }
-    }
-
-    class IndexCondition implements Condition {
-        public final String index;
-        public final Op op;
-
-        public IndexCondition(String index, Op op) {
-            this.index = index;
-            this.op = op;
-        }
-
-        @Override
-        public boolean applies(Environment env) {
-            if (env.index == null) return false;
-            if (index.startsWith("-")) {
-                return env.count != null && op.eval(Integer.toString(env.index - env.count), index);
-            } else {
-                return op.eval(Integer.toString(env.index + 1), index);
-            }
-        }
-    }
-
-    /**
-     * This defines how {@link KeyCondition} matches a given key.
-     */
-    enum KeyMatchType {
-        /**
-         * The key needs to be equal to the given label.
-         */
-        EQ,
-        /**
-         * The key needs to have a true value (yes, ...)
-         * @see OsmUtils#isTrue(String)
-         */
-        TRUE,
-        /**
-         * The key needs to have a false value (no, ...)
-         * @see OsmUtils#isFalse(String)
-         */
-        FALSE,
-        /**
-         * The key needs to match the given regular expression.
-         */
-        REGEX
-    }
-
-    /**
-     * <p>KeyCondition represent one of the following conditions in either the link or the
-     * primitive context:</p>
-     * <pre>
-     *     ["a label"]  PRIMITIVE:   the primitive has a tag "a label"
-     *                  LINK:        the parent is a relation and it has at least one member with the role
-     *                               "a label" referring to the child
-     *
-     *     [!"a label"]  PRIMITIVE:  the primitive doesn't have a tag "a label"
-     *                   LINK:       the parent is a relation but doesn't have a member with the role
-     *                               "a label" referring to the child
-     *
-     *     ["a label"?]  PRIMITIVE:  the primitive has a tag "a label" whose value evaluates to a true-value
-     *                   LINK:       not supported
-     *
-     *     ["a label"?!] PRIMITIVE:  the primitive has a tag "a label" whose value evaluates to a false-value
-     *                   LINK:       not supported
-     * </pre>
-     */
-    class KeyCondition implements Condition, ToTagConvertable {
-
-        /**
-         * The key name.
-         */
-        public final String label;
-        /**
-         * If we should negate the result of the match.
-         */
-        public final boolean negateResult;
-        /**
-         * Describes how to match the label against the key.
-         * @see KeyMatchType
-         */
-        public final KeyMatchType matchType;
-        /**
-         * A predicate used to match a the regexp against the key. Only used if the match type is regexp.
-         */
-        public final Predicate<String> containsPattern;
-
-        /**
-         * Creates a new KeyCondition
-         * @param label The key name (or regexp) to use.
-         * @param negateResult If we should negate the result.,
-         * @param matchType The match type.
-         */
-        public KeyCondition(String label, boolean negateResult, KeyMatchType matchType) {
-            this.label = label;
-            this.negateResult = negateResult;
-            this.matchType = matchType == null ? KeyMatchType.EQ : matchType;
-            this.containsPattern = KeyMatchType.REGEX.equals(matchType)
-                    ? Pattern.compile(label).asPredicate()
-                    : null;
-        }
-
-        @Override
-        public boolean applies(Environment e) {
-            switch(e.getContext()) {
-            case PRIMITIVE:
-                switch (matchType) {
-                case TRUE:
-                    return e.osm.isKeyTrue(label) ^ negateResult;
-                case FALSE:
-                    return e.osm.isKeyFalse(label) ^ negateResult;
-                case REGEX:
-                    return e.osm.keySet().stream().anyMatch(containsPattern) ^ negateResult;
-                default:
-                    return e.osm.hasKey(label) ^ negateResult;
-                }
-            case LINK:
-                Utils.ensure(false, "Illegal state: KeyCondition not supported in LINK context");
-                return false;
-            default: throw new AssertionError();
-            }
-        }
-
-        /**
-         * Get the matched key and the corresponding value.
-         * <p>
-         * WARNING: This ignores {@link #negateResult}.
-         * <p>
-         * WARNING: For regexp, the regular expression is returned instead of a key if the match failed.
-         * @param p The primitive to get the value from.
-         * @return The tag.
-         */
-        @Override
-        public Tag asTag(OsmPrimitive p) {
-            String key = label;
-            if (KeyMatchType.REGEX.equals(matchType)) {
-                key = p.keySet().stream().filter(containsPattern).findAny().orElse(key);
-            }
-            return new Tag(key, p.get(key));
-        }
-
-        @Override
-        public String toString() {
-            return '[' + (negateResult ? "!" : "") + label + ']';
-        }
-    }
-
-    class ClassCondition implements Condition {
-
-        public final String id;
-        public final boolean not;
-
-        public ClassCondition(String id, boolean not) {
-            this.id = id;
-            this.not = not;
-        }
-
-        @Override
-        public boolean applies(Environment env) {
-            Cascade cascade = env.getCascade(env.layer);
-            return cascade != null && (not ^ cascade.containsKey(id));
-        }
-
-        @Override
-        public String toString() {
-            return (not ? "!" : "") + '.' + id;
-        }
-    }
-
-    /**
-     * Like <a href="http://www.w3.org/TR/css3-selectors/#pseudo-classes">CSS pseudo classes</a>, MapCSS pseudo classes
-     * are written in lower case with dashes between words.
-     */
-    final class PseudoClasses {
-
-        private PseudoClasses() {
-            // Hide default constructor for utilities classes
-        }
-
-        /**
-         * {@code closed} tests whether the way is closed or the relation is a closed multipolygon
-         * @param e MapCSS environment
-         * @return {@code true} if the way is closed or the relation is a closed multipolygon
-         */
-        static boolean closed(Environment e) { // NO_UCD (unused code)
-            if (e.osm instanceof Way && ((Way) e.osm).isClosed())
-                return true;
-            if (e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon())
-                return true;
-            return false;
-        }
-
-        /**
-         * {@code :modified} tests whether the object has been modified.
-         * @param e MapCSS environment
-         * @return {@code true} if the object has been modified
-         * @see OsmPrimitive#isModified()
-         */
-        static boolean modified(Environment e) { // NO_UCD (unused code)
-            return e.osm.isModified() || e.osm.isNewOrUndeleted();
-        }
-
-        /**
-         * {@code ;new} tests whether the object is new.
-         * @param e MapCSS environment
-         * @return {@code true} if the object is new
-         * @see OsmPrimitive#isNew()
-         */
-        static boolean _new(Environment e) { // NO_UCD (unused code)
-            return e.osm.isNew();
-        }
-
-        /**
-         * {@code :connection} tests whether the object is a connection node.
-         * @param e MapCSS environment
-         * @return {@code true} if the object is a connection node
-         * @see Node#isConnectionNode()
-         */
-        static boolean connection(Environment e) { // NO_UCD (unused code)
-            return e.osm instanceof Node && e.osm.getDataSet() != null && ((Node) e.osm).isConnectionNode();
-        }
-
-        /**
-         * {@code :tagged} tests whether the object is tagged.
-         * @param e MapCSS environment
-         * @return {@code true} if the object is tagged
-         * @see OsmPrimitive#isTagged()
-         */
-        static boolean tagged(Environment e) { // NO_UCD (unused code)
-            return e.osm.isTagged();
-        }
-
-        /**
-         * {@code :same-tags} tests whether the object has the same tags as its child/parent.
-         * @param e MapCSS environment
-         * @return {@code true} if the object has the same tags as its child/parent
-         * @see OsmPrimitive#hasSameInterestingTags(OsmPrimitive)
-         */
-        static boolean sameTags(Environment e) { // NO_UCD (unused code)
-            return e.osm.hasSameInterestingTags(Utils.firstNonNull(e.child, e.parent));
-        }
-
-        /**
-         * {@code :area-style} tests whether the object has an area style. This is useful for validators.
-         * @param e MapCSS environment
-         * @return {@code true} if the object has an area style
-         * @see ElemStyles#hasAreaElemStyle(OsmPrimitive, boolean)
-         */
-        static boolean areaStyle(Environment e) { // NO_UCD (unused code)
-            // only for validator
-            return ElemStyles.hasAreaElemStyle(e.osm, false);
-        }
-
-        /**
-         * {@code unconnected}: tests whether the object is a unconnected node.
-         * @param e MapCSS environment
-         * @return {@code true} if the object is a unconnected node
-         */
-        static boolean unconnected(Environment e) { // NO_UCD (unused code)
-            return e.osm instanceof Node && OsmPrimitive.getFilteredList(e.osm.getReferrers(), Way.class).isEmpty();
-        }
-
-        /**
-         * {@code righthandtraffic} checks if there is right-hand traffic at the current location.
-         * @param e MapCSS environment
-         * @return {@code true} if there is right-hand traffic at the current location
-         * @see ExpressionFactory.Functions#is_right_hand_traffic(Environment)
-         */
-        static boolean righthandtraffic(Environment e) { // NO_UCD (unused code)
-            return ExpressionFactory.Functions.is_right_hand_traffic(e);
-        }
-
-        /**
-         * {@code clockwise} whether the way is closed and oriented clockwise,
-         * or non-closed and the 1st, 2nd and last node are in clockwise order.
-         * @param e MapCSS environment
-         * @return {@code true} if the way clockwise
-         * @see ExpressionFactory.Functions#is_clockwise(Environment)
-         */
-        static boolean clockwise(Environment e) { // NO_UCD (unused code)
-            return ExpressionFactory.Functions.is_clockwise(e);
-        }
-
-        /**
-         * {@code anticlockwise} whether the way is closed and oriented anticlockwise,
-         * or non-closed and the 1st, 2nd and last node are in anticlockwise order.
-         * @param e MapCSS environment
-         * @return {@code true} if the way clockwise
-         * @see ExpressionFactory.Functions#is_anticlockwise(Environment)
-         */
-        static boolean anticlockwise(Environment e) { // NO_UCD (unused code)
-            return ExpressionFactory.Functions.is_anticlockwise(e);
-        }
-
-        /**
-         * {@code unclosed-multipolygon} tests whether the object is an unclosed multipolygon.
-         * @param e MapCSS environment
-         * @return {@code true} if the object is an unclosed multipolygon
-         */
-        static boolean unclosed_multipolygon(Environment e) { // NO_UCD (unused code)
-            return e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon() &&
-                    !e.osm.isIncomplete() && !((Relation) e.osm).hasIncompleteMembers() &&
-                    !MultipolygonCache.getInstance().get(Main.map.mapView, (Relation) e.osm).getOpenEnds().isEmpty();
-        }
-
-        private static final Predicate<OsmPrimitive> IN_DOWNLOADED_AREA = new InDataSourceArea(false);
-
-        /**
-         * {@code in-downloaded-area} tests whether the object is within source area ("downloaded area").
-         * @param e MapCSS environment
-         * @return {@code true} if the object is within source area ("downloaded area")
-         * @see InDataSourceArea
-         */
-        static boolean inDownloadedArea(Environment e) { // NO_UCD (unused code)
-            return IN_DOWNLOADED_AREA.test(e.osm);
-        }
-
-        static boolean completely_downloaded(Environment e) { // NO_UCD (unused code)
-            if (e.osm instanceof Relation) {
-                return !((Relation) e.osm).hasIncompleteMembers();
-            } else {
-                return true;
-            }
-        }
-
-        static boolean closed2(Environment e) { // NO_UCD (unused code)
-            if (e.osm instanceof Way && ((Way) e.osm).isClosed())
-                return true;
-            if (e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon())
-                return MultipolygonCache.getInstance().get(Main.map.mapView, (Relation) e.osm).getOpenEnds().isEmpty();
-            return false;
-        }
-
-        static boolean selected(Environment e) { // NO_UCD (unused code)
-            Cascade c = e.mc.getCascade(e.layer);
-            c.setDefaultSelectedHandling(false);
-            return e.osm.isSelected();
-        }
-    }
-
-    class PseudoClassCondition implements Condition {
-
-        public final Method method;
-        public final boolean not;
-
-        protected PseudoClassCondition(Method method, boolean not) {
-            this.method = method;
-            this.not = not;
-        }
-
-        /**
-         * Create a new pseudo class condition
-         * @param id The id of the pseudo class
-         * @param not <code>true</code> to invert the condition
-         * @param context The context the class is found in.
-         * @return The new condition
-         */
-        public static PseudoClassCondition createPseudoClassCondition(String id, boolean not, Context context) {
-            CheckParameterUtil.ensureThat(!"sameTags".equals(id) || Context.LINK.equals(context), "sameTags only supported in LINK context");
-            if ("open_end".equals(id)) {
-                return new OpenEndPseudoClassCondition(not);
-            }
-            final Method method = getMethod(id);
-            if (method != null) {
-                return new PseudoClassCondition(method, not);
-            }
-            throw new MapCSSException("Invalid pseudo class specified: " + id);
-        }
-
-        protected static Method getMethod(String id) {
-            id = id.replaceAll("-|_", "");
-            for (Method method : PseudoClasses.class.getDeclaredMethods()) {
-                // for backwards compatibility, consider :sameTags == :same-tags == :same_tags (#11150)
-                final String methodName = method.getName().replaceAll("-|_", "");
-                if (methodName.equalsIgnoreCase(id)) {
-                    return method;
-                }
-            }
-            return null;
-        }
-
-        @Override
-        public boolean applies(Environment e) {
-            try {
-                return not ^ (Boolean) method.invoke(null, e);
-            } catch (IllegalAccessException | InvocationTargetException ex) {
-                throw new RuntimeException(ex);
-            }
-        }
-
-        @Override
-        public String toString() {
-            return (not ? "!" : "") + ':' + method.getName();
-        }
-    }
-
-    class OpenEndPseudoClassCondition extends PseudoClassCondition {
-        public OpenEndPseudoClassCondition(boolean not) {
-            super(null, not);
-        }
-
-        @Override
-        public boolean applies(Environment e) {
-            return true;
-        }
-    }
-
-    /**
-     * A condition that is fulfilled whenever the expression is evaluated to be true.
-     */
-    class ExpressionCondition implements Condition {
-
-        private final Expression e;
-
-        /**
-         * Constructs a new {@code ExpressionFactory}
-         * @param e expression
-         */
-        public ExpressionCondition(Expression e) {
-            this.e = e;
-        }
-
-        @Override
-        public boolean applies(Environment env) {
-            Boolean b = Cascade.convertTo(e.evaluate(env), Boolean.class);
-            return b != null && b;
-        }
-
-        @Override
-        public String toString() {
-            return '[' + e.toString() + ']';
-        }
-    }
-
-    /**
      * This is a condition that can be converted to a tag
      * @author Michael Zangl
      * @since 10674
      */
+    @FunctionalInterface
     public interface ToTagConvertable {
         /**
          * Converts the current condition to a tag
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
new file mode 100644
index 0000000..b4ac2b8
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
@@ -0,0 +1,875 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.mappaint.mapcss;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.function.BiFunction;
+import java.util.function.IntFunction;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.search.SearchCompiler.InDataSourceArea;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.OsmUtils;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.Tag;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
+import org.openstreetmap.josm.gui.mappaint.Cascade;
+import org.openstreetmap.josm.gui.mappaint.ElemStyles;
+import org.openstreetmap.josm.gui.mappaint.Environment;
+import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context;
+import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.ToTagConvertable;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
+import org.openstreetmap.josm.tools.Utils;
+
+/**
+ * Factory to generate {@link Condition}s.
+ * @since 10837 (Extracted from Condition)
+ */
+public final class ConditionFactory {
+
+    private ConditionFactory() {
+        // Hide default constructor for utils classes
+    }
+
+    /**
+     * Create a new condition that checks the key and the value of the object.
+     * @param k The key.
+     * @param v The reference value
+     * @param op The operation to use when comparing the value
+     * @param context The type of context to use.
+     * @param considerValAsKey whether to consider {@code v} as another key and compare the values of key {@code k} and key {@code v}.
+     * @return The new condition.
+     */
+    public static Condition createKeyValueCondition(String k, String v, Op op, Context context, boolean considerValAsKey) {
+        switch (context) {
+        case PRIMITIVE:
+            if (KeyValueRegexpCondition.SUPPORTED_OPS.contains(op) && !considerValAsKey)
+                return new KeyValueRegexpCondition(k, v, op, false);
+            if (!considerValAsKey && op.equals(Op.EQ))
+                return new SimpleKeyValueCondition(k, v);
+            return new KeyValueCondition(k, v, op, considerValAsKey);
+        case LINK:
+            if (considerValAsKey)
+                throw new MapCSSException("''considerValAsKey'' not supported in LINK context");
+            if ("role".equalsIgnoreCase(k))
+                return new RoleCondition(v, op);
+            else if ("index".equalsIgnoreCase(k))
+                return new IndexCondition(v, op);
+            else
+                throw new MapCSSException(
+                        MessageFormat.format("Expected key ''role'' or ''index'' in link context. Got ''{0}''.", k));
+
+        default: throw new AssertionError();
+        }
+    }
+
+    /**
+     * Create a condition in which the key and the value need to match a given regexp
+     * @param k The key regexp
+     * @param v The value regexp
+     * @param op The operation to use when comparing the key and the value.
+     * @return The new condition.
+     */
+    public static Condition createRegexpKeyRegexpValueCondition(String k, String v, Op op) {
+        return new RegexpKeyValueRegexpCondition(k, v, op);
+    }
+
+    /**
+     * Creates a condition that checks the given key.
+     * @param k The key to test for
+     * @param not <code>true</code> to invert the match
+     * @param matchType The match type to check for.
+     * @param context The context this rule is found in.
+     * @return the new condition.
+     */
+    public static Condition createKeyCondition(String k, boolean not, KeyMatchType matchType, Context context) {
+        switch (context) {
+        case PRIMITIVE:
+            return new KeyCondition(k, not, matchType);
+        case LINK:
+            if (matchType != null)
+                throw new MapCSSException("Question mark operator ''?'' and regexp match not supported in LINK context");
+            if (not)
+                return new RoleCondition(k, Op.NEQ);
+            else
+                return new RoleCondition(k, Op.EQ);
+
+        default: throw new AssertionError();
+        }
+    }
+
+    /**
+     * Create a new pseudo class condition
+     * @param id The id of the pseudo class
+     * @param not <code>true</code> to invert the condition
+     * @param context The context the class is found in.
+     * @return The new condition
+     */
+    public static PseudoClassCondition createPseudoClassCondition(String id, boolean not, Context context) {
+        return PseudoClassCondition.createPseudoClassCondition(id, not, context);
+    }
+
+    /**
+     * Create a new class condition
+     * @param id The id of the class to match
+     * @param not <code>true</code> to invert the condition
+     * @param context Ignored
+     * @return The new condition
+     */
+    public static ClassCondition createClassCondition(String id, boolean not, Context context) {
+        return new ClassCondition(id, not);
+    }
+
+    /**
+     * Create a new condition that a expression needs to be fulfilled
+     * @param e the expression to check
+     * @param context Ignored
+     * @return The new condition
+     */
+    public static ExpressionCondition createExpressionCondition(Expression e, Context context) {
+        return new ExpressionCondition(e);
+    }
+
+    /**
+     * This is the operation that {@link KeyValueCondition} uses to match.
+     */
+    public enum Op {
+        /** The value equals the given reference. */
+        EQ(Objects::equals),
+        /** The value does not equal the reference. */
+        NEQ(EQ),
+        /** The value is greater than or equal to the given reference value (as float). */
+        GREATER_OR_EQUAL(comparisonResult -> comparisonResult >= 0),
+        /** The value is greater than the given reference value (as float). */
+        GREATER(comparisonResult -> comparisonResult > 0),
+        /** The value is less than or equal to the given reference value (as float). */
+        LESS_OR_EQUAL(comparisonResult -> comparisonResult <= 0),
+        /** The value is less than the given reference value (as float). */
+        LESS(comparisonResult -> comparisonResult < 0),
+        /** The reference is treated as regular expression and the value needs to match it. */
+        REGEX((test, prototype) -> Pattern.compile(prototype).matcher(test).find()),
+        /** The reference is treated as regular expression and the value needs to not match it. */
+        NREGEX(REGEX),
+        /** The reference is treated as a list separated by ';'. Spaces around the ; are ignored.
+         *  The value needs to be equal one of the list elements. */
+        ONE_OF((test, prototype) -> Arrays.asList(test.split("\\s*;\\s*")).contains(prototype)),
+        /** The value needs to begin with the reference string. */
+        BEGINS_WITH(String::startsWith),
+        /** The value needs to end with the reference string. */
+        ENDS_WITH(String::endsWith),
+        /** The value needs to contain the reference string. */
+        CONTAINS(String::contains);
+
+        static final Set<Op> NEGATED_OPS = EnumSet.of(NEQ, NREGEX);
+
+        private final BiFunction<String, String, Boolean> function;
+
+        private final boolean negated;
+
+        /**
+         * Create a new string operation.
+         * @param func The function to apply during {@link #eval(String, String)}.
+         */
+        Op(BiFunction<String, String, Boolean> func) {
+            this.function = func;
+            negated = false;
+        }
+
+        /**
+         * Create a new float operation that compares two float values
+         * @param comparatorResult A function to mapt the result of the comparison
+         */
+        Op(IntFunction<Boolean> comparatorResult) {
+            this.function = (test, prototype) -> {
+                float testFloat;
+                try {
+                    testFloat = Float.parseFloat(test);
+                } catch (NumberFormatException e) {
+                    return false;
+                }
+                float prototypeFloat = Float.parseFloat(prototype);
+
+                int res = Float.compare(testFloat, prototypeFloat);
+                return comparatorResult.apply(res);
+            };
+            negated = false;
+        }
+
+        /**
+         * Create a new Op by negating an other op.
+         * @param negate inverse operation
+         */
+        Op(Op negate) {
+            this.function = (a, b) -> !negate.function.apply(a, b);
+            negated = true;
+        }
+
+        /**
+         * Evaluates a value against a reference string.
+         * @param testString The value. May be <code>null</code>
+         * @param prototypeString The reference string-
+         * @return <code>true</code> if and only if this operation matches for the given value/reference pair.
+         */
+        public boolean eval(String testString, String prototypeString) {
+            if (testString == null)
+                return negated;
+            else
+                return function.apply(testString, prototypeString);
+        }
+    }
+
+    /**
+     * Most common case of a KeyValueCondition, this is the basic key=value case.
+     *
+     * Extra class for performance reasons.
+     */
+    public static class SimpleKeyValueCondition implements Condition, ToTagConvertable {
+        /**
+         * The key to search for.
+         */
+        public final String k;
+        /**
+         * The value to search for.
+         */
+        public final String v;
+
+        /**
+         * Create a new SimpleKeyValueCondition.
+         * @param k The key
+         * @param v The value.
+         */
+        public SimpleKeyValueCondition(String k, String v) {
+            this.k = k;
+            this.v = v;
+        }
+
+        @Override
+        public boolean applies(Environment e) {
+            return v.equals(e.osm.get(k));
+        }
+
+        @Override
+        public Tag asTag(OsmPrimitive primitive) {
+            return new Tag(k, v);
+        }
+
+        @Override
+        public String toString() {
+            return '[' + k + '=' + v + ']';
+        }
+
+    }
+
+    /**
+     * <p>Represents a key/value condition which is either applied to a primitive.</p>
+     *
+     */
+    public static class KeyValueCondition implements Condition, ToTagConvertable {
+        /**
+         * The key to search for.
+         */
+        public final String k;
+        /**
+         * The value to search for.
+         */
+        public final String v;
+        /**
+         * The key/value match operation.
+         */
+        public final Op op;
+        /**
+         * If this flag is set, {@link #v} is treated as a key and the value is the value set for that key.
+         */
+        public final boolean considerValAsKey;
+
+        /**
+         * <p>Creates a key/value-condition.</p>
+         *
+         * @param k the key
+         * @param v the value
+         * @param op the operation
+         * @param considerValAsKey whether to consider {@code v} as another key and compare the values of key {@code k} and key {@code v}.
+         */
+        public KeyValueCondition(String k, String v, Op op, boolean considerValAsKey) {
+            this.k = k;
+            this.v = v;
+            this.op = op;
+            this.considerValAsKey = considerValAsKey;
+        }
+
+        @Override
+        public boolean applies(Environment env) {
+            return op.eval(env.osm.get(k), considerValAsKey ? env.osm.get(v) : v);
+        }
+
+        @Override
+        public Tag asTag(OsmPrimitive primitive) {
+            return new Tag(k, v);
+        }
+
+        @Override
+        public String toString() {
+            return '[' + k + '\'' + op + '\'' + v + ']';
+        }
+    }
+
+    /**
+     * This condition requires a fixed key to match a given regexp
+     */
+    public static class KeyValueRegexpCondition extends KeyValueCondition {
+        protected static final Set<Op> SUPPORTED_OPS = EnumSet.of(Op.REGEX, Op.NREGEX);
+
+        final Pattern pattern;
+
+        /**
+         * Constructs a new {@code KeyValueRegexpCondition}.
+         * @param k key
+         * @param v value
+         * @param op operation
+         * @param considerValAsKey must be false
+         */
+        public KeyValueRegexpCondition(String k, String v, Op op, boolean considerValAsKey) {
+            super(k, v, op, considerValAsKey);
+            CheckParameterUtil.ensureThat(!considerValAsKey, "considerValAsKey is not supported");
+            CheckParameterUtil.ensureThat(SUPPORTED_OPS.contains(op), "Op must be REGEX or NREGEX");
+            this.pattern = Pattern.compile(v);
+        }
+
+        protected boolean matches(Environment env) {
+            final String value = env.osm.get(k);
+            return value != null && pattern.matcher(value).find();
+        }
+
+        @Override
+        public boolean applies(Environment env) {
+            if (Op.REGEX.equals(op)) {
+                return matches(env);
+            } else if (Op.NREGEX.equals(op)) {
+                return !matches(env);
+            } else {
+                throw new IllegalStateException();
+            }
+        }
+    }
+
+    /**
+     * A condition that checks that a key with the matching pattern has a value with the matching pattern.
+     */
+    public static class RegexpKeyValueRegexpCondition extends KeyValueRegexpCondition {
+
+        final Pattern keyPattern;
+
+        /**
+         * Create a condition in which the key and the value need to match a given regexp
+         * @param k The key regexp
+         * @param v The value regexp
+         * @param op The operation to use when comparing the key and the value.
+         */
+        public RegexpKeyValueRegexpCondition(String k, String v, Op op) {
+            super(k, v, op, false);
+            this.keyPattern = Pattern.compile(k);
+        }
+
+        @Override
+        protected boolean matches(Environment env) {
+            for (Map.Entry<String, String> kv: env.osm.getKeys().entrySet()) {
+                if (keyPattern.matcher(kv.getKey()).find() && pattern.matcher(kv.getValue()).find()) {
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+
+    /**
+     * Role condition.
+     */
+    public static class RoleCondition implements Condition {
+        final String role;
+        final Op op;
+
+        /**
+         * Constructs a new {@code RoleCondition}.
+         * @param role role
+         * @param op operation
+         */
+        public RoleCondition(String role, Op op) {
+            this.role = role;
+            this.op = op;
+        }
+
+        @Override
+        public boolean applies(Environment env) {
+            String testRole = env.getRole();
+            if (testRole == null) return false;
+            return op.eval(testRole, role);
+        }
+    }
+
+    /**
+     * Index condition.
+     */
+    public static class IndexCondition implements Condition {
+        final String index;
+        final Op op;
+
+        /**
+         * Constructs a new {@code IndexCondition}.
+         * @param index index
+         * @param op operation
+         */
+        public IndexCondition(String index, Op op) {
+            this.index = index;
+            this.op = op;
+        }
+
+        @Override
+        public boolean applies(Environment env) {
+            if (env.index == null) return false;
+            if (index.startsWith("-")) {
+                return env.count != null && op.eval(Integer.toString(env.index - env.count), index);
+            } else {
+                return op.eval(Integer.toString(env.index + 1), index);
+            }
+        }
+    }
+
+    /**
+     * This defines how {@link KeyCondition} matches a given key.
+     */
+    public enum KeyMatchType {
+        /**
+         * The key needs to be equal to the given label.
+         */
+        EQ,
+        /**
+         * The key needs to have a true value (yes, ...)
+         * @see OsmUtils#isTrue(String)
+         */
+        TRUE,
+        /**
+         * The key needs to have a false value (no, ...)
+         * @see OsmUtils#isFalse(String)
+         */
+        FALSE,
+        /**
+         * The key needs to match the given regular expression.
+         */
+        REGEX
+    }
+
+    /**
+     * <p>KeyCondition represent one of the following conditions in either the link or the
+     * primitive context:</p>
+     * <pre>
+     *     ["a label"]  PRIMITIVE:   the primitive has a tag "a label"
+     *                  LINK:        the parent is a relation and it has at least one member with the role
+     *                               "a label" referring to the child
+     *
+     *     [!"a label"]  PRIMITIVE:  the primitive doesn't have a tag "a label"
+     *                   LINK:       the parent is a relation but doesn't have a member with the role
+     *                               "a label" referring to the child
+     *
+     *     ["a label"?]  PRIMITIVE:  the primitive has a tag "a label" whose value evaluates to a true-value
+     *                   LINK:       not supported
+     *
+     *     ["a label"?!] PRIMITIVE:  the primitive has a tag "a label" whose value evaluates to a false-value
+     *                   LINK:       not supported
+     * </pre>
+     */
+    public static class KeyCondition implements Condition, ToTagConvertable {
+
+        /**
+         * The key name.
+         */
+        public final String label;
+        /**
+         * If we should negate the result of the match.
+         */
+        public final boolean negateResult;
+        /**
+         * Describes how to match the label against the key.
+         * @see KeyMatchType
+         */
+        public final KeyMatchType matchType;
+        /**
+         * A predicate used to match a the regexp against the key. Only used if the match type is regexp.
+         */
+        public final Predicate<String> containsPattern;
+
+        /**
+         * Creates a new KeyCondition
+         * @param label The key name (or regexp) to use.
+         * @param negateResult If we should negate the result.,
+         * @param matchType The match type.
+         */
+        public KeyCondition(String label, boolean negateResult, KeyMatchType matchType) {
+            this.label = label;
+            this.negateResult = negateResult;
+            this.matchType = matchType == null ? KeyMatchType.EQ : matchType;
+            this.containsPattern = KeyMatchType.REGEX.equals(matchType)
+                    ? Pattern.compile(label).asPredicate()
+                    : null;
+        }
+
+        @Override
+        public boolean applies(Environment e) {
+            switch(e.getContext()) {
+            case PRIMITIVE:
+                switch (matchType) {
+                case TRUE:
+                    return e.osm.isKeyTrue(label) ^ negateResult;
+                case FALSE:
+                    return e.osm.isKeyFalse(label) ^ negateResult;
+                case REGEX:
+                    return e.osm.keySet().stream().anyMatch(containsPattern) ^ negateResult;
+                default:
+                    return e.osm.hasKey(label) ^ negateResult;
+                }
+            case LINK:
+                Utils.ensure(false, "Illegal state: KeyCondition not supported in LINK context");
+                return false;
+            default: throw new AssertionError();
+            }
+        }
+
+        /**
+         * Get the matched key and the corresponding value.
+         * <p>
+         * WARNING: This ignores {@link #negateResult}.
+         * <p>
+         * WARNING: For regexp, the regular expression is returned instead of a key if the match failed.
+         * @param p The primitive to get the value from.
+         * @return The tag.
+         */
+        @Override
+        public Tag asTag(OsmPrimitive p) {
+            String key = label;
+            if (KeyMatchType.REGEX.equals(matchType)) {
+                key = p.keySet().stream().filter(containsPattern).findAny().orElse(key);
+            }
+            return new Tag(key, p.get(key));
+        }
+
+        @Override
+        public String toString() {
+            return '[' + (negateResult ? "!" : "") + label + ']';
+        }
+    }
+
+    /**
+     * Class condition.
+     */
+    public static class ClassCondition implements Condition {
+
+        /** Class identifier */
+        public final String id;
+        final boolean not;
+
+        /**
+         * Constructs a new {@code ClassCondition}.
+         * @param id id
+         * @param not negation or not
+         */
+        public ClassCondition(String id, boolean not) {
+            this.id = id;
+            this.not = not;
+        }
+
+        @Override
+        public boolean applies(Environment env) {
+            Cascade cascade = env.getCascade(env.layer);
+            return cascade != null && (not ^ cascade.containsKey(id));
+        }
+
+        @Override
+        public String toString() {
+            return (not ? "!" : "") + '.' + id;
+        }
+    }
+
+    /**
+     * Like <a href="http://www.w3.org/TR/css3-selectors/#pseudo-classes">CSS pseudo classes</a>, MapCSS pseudo classes
+     * are written in lower case with dashes between words.
+     */
+    public static final class PseudoClasses {
+
+        private PseudoClasses() {
+            // Hide default constructor for utilities classes
+        }
+
+        /**
+         * {@code closed} tests whether the way is closed or the relation is a closed multipolygon
+         * @param e MapCSS environment
+         * @return {@code true} if the way is closed or the relation is a closed multipolygon
+         */
+        static boolean closed(Environment e) { // NO_UCD (unused code)
+            if (e.osm instanceof Way && ((Way) e.osm).isClosed())
+                return true;
+            if (e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon())
+                return true;
+            return false;
+        }
+
+        /**
+         * {@code :modified} tests whether the object has been modified.
+         * @param e MapCSS environment
+         * @return {@code true} if the object has been modified
+         * @see OsmPrimitive#isModified()
+         */
+        static boolean modified(Environment e) { // NO_UCD (unused code)
+            return e.osm.isModified() || e.osm.isNewOrUndeleted();
+        }
+
+        /**
+         * {@code ;new} tests whether the object is new.
+         * @param e MapCSS environment
+         * @return {@code true} if the object is new
+         * @see OsmPrimitive#isNew()
+         */
+        static boolean _new(Environment e) { // NO_UCD (unused code)
+            return e.osm.isNew();
+        }
+
+        /**
+         * {@code :connection} tests whether the object is a connection node.
+         * @param e MapCSS environment
+         * @return {@code true} if the object is a connection node
+         * @see Node#isConnectionNode()
+         */
+        static boolean connection(Environment e) { // NO_UCD (unused code)
+            return e.osm instanceof Node && e.osm.getDataSet() != null && ((Node) e.osm).isConnectionNode();
+        }
+
+        /**
+         * {@code :tagged} tests whether the object is tagged.
+         * @param e MapCSS environment
+         * @return {@code true} if the object is tagged
+         * @see OsmPrimitive#isTagged()
+         */
+        static boolean tagged(Environment e) { // NO_UCD (unused code)
+            return e.osm.isTagged();
+        }
+
+        /**
+         * {@code :same-tags} tests whether the object has the same tags as its child/parent.
+         * @param e MapCSS environment
+         * @return {@code true} if the object has the same tags as its child/parent
+         * @see OsmPrimitive#hasSameInterestingTags(OsmPrimitive)
+         */
+        static boolean sameTags(Environment e) { // NO_UCD (unused code)
+            return e.osm.hasSameInterestingTags(Utils.firstNonNull(e.child, e.parent));
+        }
+
+        /**
+         * {@code :area-style} tests whether the object has an area style. This is useful for validators.
+         * @param e MapCSS environment
+         * @return {@code true} if the object has an area style
+         * @see ElemStyles#hasAreaElemStyle(OsmPrimitive, boolean)
+         */
+        static boolean areaStyle(Environment e) { // NO_UCD (unused code)
+            // only for validator
+            return ElemStyles.hasAreaElemStyle(e.osm, false);
+        }
+
+        /**
+         * {@code unconnected}: tests whether the object is a unconnected node.
+         * @param e MapCSS environment
+         * @return {@code true} if the object is a unconnected node
+         */
+        static boolean unconnected(Environment e) { // NO_UCD (unused code)
+            return e.osm instanceof Node && OsmPrimitive.getFilteredList(e.osm.getReferrers(), Way.class).isEmpty();
+        }
+
+        /**
+         * {@code righthandtraffic} checks if there is right-hand traffic at the current location.
+         * @param e MapCSS environment
+         * @return {@code true} if there is right-hand traffic at the current location
+         * @see ExpressionFactory.Functions#is_right_hand_traffic(Environment)
+         */
+        static boolean righthandtraffic(Environment e) { // NO_UCD (unused code)
+            return ExpressionFactory.Functions.is_right_hand_traffic(e);
+        }
+
+        /**
+         * {@code clockwise} whether the way is closed and oriented clockwise,
+         * or non-closed and the 1st, 2nd and last node are in clockwise order.
+         * @param e MapCSS environment
+         * @return {@code true} if the way clockwise
+         * @see ExpressionFactory.Functions#is_clockwise(Environment)
+         */
+        static boolean clockwise(Environment e) { // NO_UCD (unused code)
+            return ExpressionFactory.Functions.is_clockwise(e);
+        }
+
+        /**
+         * {@code anticlockwise} whether the way is closed and oriented anticlockwise,
+         * or non-closed and the 1st, 2nd and last node are in anticlockwise order.
+         * @param e MapCSS environment
+         * @return {@code true} if the way clockwise
+         * @see ExpressionFactory.Functions#is_anticlockwise(Environment)
+         */
+        static boolean anticlockwise(Environment e) { // NO_UCD (unused code)
+            return ExpressionFactory.Functions.is_anticlockwise(e);
+        }
+
+        /**
+         * {@code unclosed-multipolygon} tests whether the object is an unclosed multipolygon.
+         * @param e MapCSS environment
+         * @return {@code true} if the object is an unclosed multipolygon
+         */
+        static boolean unclosed_multipolygon(Environment e) { // NO_UCD (unused code)
+            return e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon() &&
+                    !e.osm.isIncomplete() && !((Relation) e.osm).hasIncompleteMembers() &&
+                    !MultipolygonCache.getInstance().get(Main.map.mapView, (Relation) e.osm).getOpenEnds().isEmpty();
+        }
+
+        private static final Predicate<OsmPrimitive> IN_DOWNLOADED_AREA = new InDataSourceArea(false);
+
+        /**
+         * {@code in-downloaded-area} tests whether the object is within source area ("downloaded area").
+         * @param e MapCSS environment
+         * @return {@code true} if the object is within source area ("downloaded area")
+         * @see InDataSourceArea
+         */
+        static boolean inDownloadedArea(Environment e) { // NO_UCD (unused code)
+            return IN_DOWNLOADED_AREA.test(e.osm);
+        }
+
+        static boolean completely_downloaded(Environment e) { // NO_UCD (unused code)
+            if (e.osm instanceof Relation) {
+                return !((Relation) e.osm).hasIncompleteMembers();
+            } else {
+                return true;
+            }
+        }
+
+        static boolean closed2(Environment e) { // NO_UCD (unused code)
+            if (e.osm instanceof Way && ((Way) e.osm).isClosed())
+                return true;
+            if (e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon())
+                return MultipolygonCache.getInstance().get(Main.map.mapView, (Relation) e.osm).getOpenEnds().isEmpty();
+            return false;
+        }
+
+        static boolean selected(Environment e) { // NO_UCD (unused code)
+            Cascade c = e.mc.getCascade(e.layer);
+            c.setDefaultSelectedHandling(false);
+            return e.osm.isSelected();
+        }
+    }
+
+    /**
+     * Pseudo class condition.
+     */
+    public static class PseudoClassCondition implements Condition {
+
+        final Method method;
+        final boolean not;
+
+        protected PseudoClassCondition(Method method, boolean not) {
+            this.method = method;
+            this.not = not;
+        }
+
+        /**
+         * Create a new pseudo class condition
+         * @param id The id of the pseudo class
+         * @param not <code>true</code> to invert the condition
+         * @param context The context the class is found in.
+         * @return The new condition
+         */
+        public static PseudoClassCondition createPseudoClassCondition(String id, boolean not, Context context) {
+            CheckParameterUtil.ensureThat(!"sameTags".equals(id) || Context.LINK.equals(context), "sameTags only supported in LINK context");
+            if ("open_end".equals(id)) {
+                return new OpenEndPseudoClassCondition(not);
+            }
+            final Method method = getMethod(id);
+            if (method != null) {
+                return new PseudoClassCondition(method, not);
+            }
+            throw new MapCSSException("Invalid pseudo class specified: " + id);
+        }
+
+        protected static Method getMethod(String id) {
+            String cleanId = id.replaceAll("-|_", "");
+            for (Method method : PseudoClasses.class.getDeclaredMethods()) {
+                // for backwards compatibility, consider :sameTags == :same-tags == :same_tags (#11150)
+                final String methodName = method.getName().replaceAll("-|_", "");
+                if (methodName.equalsIgnoreCase(cleanId)) {
+                    return method;
+                }
+            }
+            return null;
+        }
+
+        @Override
+        public boolean applies(Environment e) {
+            try {
+                return not ^ (Boolean) method.invoke(null, e);
+            } catch (IllegalAccessException | InvocationTargetException ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+
+        @Override
+        public String toString() {
+            return (not ? "!" : "") + ':' + method.getName();
+        }
+    }
+
+    /**
+     * Open end pseudo class condition.
+     */
+    public static class OpenEndPseudoClassCondition extends PseudoClassCondition {
+        /**
+         * Constructs a new {@code OpenEndPseudoClassCondition}.
+         * @param not negation or not
+         */
+        public OpenEndPseudoClassCondition(boolean not) {
+            super(null, not);
+        }
+
+        @Override
+        public boolean applies(Environment e) {
+            return true;
+        }
+    }
+
+    /**
+     * A condition that is fulfilled whenever the expression is evaluated to be true.
+     */
+    public static class ExpressionCondition implements Condition {
+
+        final Expression e;
+
+        /**
+         * Constructs a new {@code ExpressionFactory}
+         * @param e expression
+         */
+        public ExpressionCondition(Expression e) {
+            this.e = e;
+        }
+
+        @Override
+        public boolean applies(Environment env) {
+            Boolean b = Cascade.convertTo(e.evaluate(env), Boolean.class);
+            return b != null && b;
+        }
+
+        @Override
+        public String toString() {
+            return '[' + e.toString() + ']';
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
index 8c406c4..3f626a4 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
@@ -42,8 +42,8 @@ import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 import org.openstreetmap.josm.tools.Utils;
 
 /**
- * Factory to generate Expressions.
- *
+ * Factory to generate {@link Expression}s.
+ * <p>
  * See {@link #createFunctionExpression}.
  */
 public final class ExpressionFactory {
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
index 4a0a8ea..2aa22e4 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
@@ -21,6 +21,9 @@ import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.mappaint.Keyword;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyMatchType;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Expression;
 import org.openstreetmap.josm.gui.mappaint.mapcss.ExpressionFactory;
 import org.openstreetmap.josm.gui.mappaint.mapcss.ExpressionFactory.NullExpression;
@@ -743,7 +746,7 @@ Condition condition(Context context) :
         LOOKAHEAD( simple_key_value_condition(context) s() <RSQUARE> )
             c=simple_key_value_condition(context) s() <RSQUARE> { return c; }
         |
-            e=expression() <RSQUARE> { return Condition.createExpressionCondition(e, context); }
+            e=expression() <RSQUARE> { return ConditionFactory.createExpressionCondition(e, context); }
     )
 }
 
@@ -761,19 +764,19 @@ String tag_key() :
 Condition simple_key_condition(Context context) :
 {
     boolean not = false;
-    Condition.KeyMatchType matchType = null;;
+    KeyMatchType matchType = null;;
     String key;
 }
 {
     ( <EXCLAMATION> { not = true; } )?
     (
-        { matchType = Condition.KeyMatchType.REGEX; } key = regex()
+        { matchType = KeyMatchType.REGEX; } key = regex()
     |
         key = tag_key()
     )
-    ( LOOKAHEAD(2) <QUESTION> <EXCLAMATION> { matchType = Condition.KeyMatchType.FALSE; } )?
-    (              <QUESTION>               { matchType = Condition.KeyMatchType.TRUE;  } )?
-    { return Condition.createKeyCondition(key, not, matchType, context); }
+    ( LOOKAHEAD(2) <QUESTION> <EXCLAMATION> { matchType = KeyMatchType.FALSE; } )?
+    (              <QUESTION>               { matchType = KeyMatchType.TRUE;  } )?
+    { return ConditionFactory.createKeyCondition(key, not, matchType, context); }
 }
 
 Condition simple_key_value_condition(Context context) :
@@ -782,39 +785,39 @@ Condition simple_key_value_condition(Context context) :
     String val;
     float f;
     int i;
-    Condition.KeyMatchType matchType = null;;
-    Condition.Op op;
+    KeyMatchType matchType = null;;
+    Op op;
     boolean considerValAsKey = false;
 }
 {
     (
-        key = regex() s() { matchType = Condition.KeyMatchType.REGEX; }
+        key = regex() s() { matchType = KeyMatchType.REGEX; }
     |
         key=tag_key() s()
     )
     (
         LOOKAHEAD(3)
             (
-                    <EQUAL> <TILDE> { op=Condition.Op.REGEX; }
+                    <EQUAL> <TILDE> { op=Op.REGEX; }
                 |
-                    <EXCLAMATION> <TILDE> { op=Condition.Op.NREGEX; }
+                    <EXCLAMATION> <TILDE> { op=Op.NREGEX; }
             )
             s()
             ( <STAR> { considerValAsKey=true; } )?
             val=regex()
         |
             (
-                    <EXCLAMATION> <EQUAL> { op=Condition.Op.NEQ; }
+                    <EXCLAMATION> <EQUAL> { op=Op.NEQ; }
                 |
-                    <EQUAL> { op=Condition.Op.EQ; }
+                    <EQUAL> { op=Op.EQ; }
                 |
-                    <TILDE> <EQUAL> { op=Condition.Op.ONE_OF; }
+                    <TILDE> <EQUAL> { op=Op.ONE_OF; }
                 |
-                    <CARET> <EQUAL> { op=Condition.Op.BEGINS_WITH; }
+                    <CARET> <EQUAL> { op=Op.BEGINS_WITH; }
                 |
-                    <DOLLAR> <EQUAL> { op=Condition.Op.ENDS_WITH; }
+                    <DOLLAR> <EQUAL> { op=Op.ENDS_WITH; }
                 |
-                    <STAR> <EQUAL> { op=Condition.Op.CONTAINS; }
+                    <STAR> <EQUAL> { op=Op.CONTAINS; }
             )
             s()
             ( <STAR> { considerValAsKey=true; } )?
@@ -828,20 +831,20 @@ Condition simple_key_value_condition(Context context) :
             )
         |
             (
-                    <GREATER_EQUAL> { op=Condition.Op.GREATER_OR_EQUAL; }
+                    <GREATER_EQUAL> { op=Op.GREATER_OR_EQUAL; }
                 |
-                    <GREATER> { op=Condition.Op.GREATER; }
+                    <GREATER> { op=Op.GREATER; }
                 |
-                    <LESS_EQUAL> { op=Condition.Op.LESS_OR_EQUAL; }
+                    <LESS_EQUAL> { op=Op.LESS_OR_EQUAL; }
                 |
-                    <LESS> { op=Condition.Op.LESS; }
+                    <LESS> { op=Op.LESS; }
             )
             s()
             f=float_() { val=Float.toString(f); }
     )
-    { return Condition.KeyMatchType.REGEX == matchType
-            ? Condition.createRegexpKeyRegexpValueCondition(key, val, op)
-            : Condition.createKeyValueCondition(key, val, op, context, considerValAsKey); }
+    { return KeyMatchType.REGEX == matchType
+            ? ConditionFactory.createRegexpKeyRegexpValueCondition(key, val, op)
+            : ConditionFactory.createKeyValueCondition(key, val, op, context, considerValAsKey); }
 }
 
 Condition class_or_pseudoclass(Context context) :
@@ -859,8 +862,8 @@ Condition class_or_pseudoclass(Context context) :
     )
     s=ident()
     { return pseudo
-        ? Condition.createPseudoClassCondition(s, not, context)
-        : Condition.createClassCondition(s, not, context); }
+        ? ConditionFactory.createPseudoClassCondition(s, not, context)
+        : ConditionFactory.createClassCondition(s, not, context); }
 }
 
 Subpart subpart() :
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
index 14dfd73..4f413e3 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
@@ -44,11 +44,11 @@ import org.openstreetmap.josm.gui.mappaint.StyleKeys;
 import org.openstreetmap.josm.gui.mappaint.StyleSetting;
 import org.openstreetmap.josm.gui.mappaint.StyleSetting.BooleanStyleSetting;
 import org.openstreetmap.josm.gui.mappaint.StyleSource;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.KeyCondition;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.KeyMatchType;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.KeyValueCondition;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Op;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.SimpleKeyValueCondition;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyCondition;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyMatchType;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyValueCondition;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.SimpleKeyValueCondition;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.ChildOrParentSelector;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.GeneralSelector;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.OptimizedGeneralSelector;
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
index d2a5f43..b4b5a30 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
@@ -7,6 +7,8 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.NoSuchElementException;
+import java.util.function.IntFunction;
+import java.util.function.IntSupplier;
 import java.util.regex.PatternSyntaxException;
 
 import org.openstreetmap.josm.Main;
@@ -20,6 +22,7 @@ import org.openstreetmap.josm.data.osm.visitor.AbstractVisitor;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
 import org.openstreetmap.josm.gui.mappaint.Environment;
 import org.openstreetmap.josm.gui.mappaint.Range;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.OpenEndPseudoClassCondition;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Geometry;
 import org.openstreetmap.josm.tools.Pair;
@@ -140,50 +143,38 @@ public interface Selector {
                 throw new AssertionError();
             }
 
-            @Override
-            public void visit(Way w) {
-                /*
-                 * If e.parent is already set to the first matching referrer. We skip any following
-                 * referrer injected into the visitor.
-                 */
+            private <T extends OsmPrimitive> void doVisit(T parent, IntSupplier counter, IntFunction<OsmPrimitive> getter) {
+                // If e.parent is already set to the first matching referrer.
+                // We skip any following referrer injected into the visitor.
                 if (e.parent != null) return;
 
-                if (!left.matches(e.withPrimitive(w)))
+                if (!left.matches(e.withPrimitive(parent)))
                     return;
-                for (int i = 0; i < w.getNodesCount(); i++) {
-                    Node n = w.getNode(i);
-                    if (n.equals(e.osm)) {
-                        if (link.matches(e.withParentAndIndexAndLinkContext(w, i, w.getNodesCount()))) {
-                            e.parent = w;
-                            e.index = i;
-                            e.count = w.getNodesCount();
-                            return;
-                        }
+                int count = counter.getAsInt();
+                if (link.conds == null) {
+                    // index is not needed, we can avoid the sequential search below
+                    e.parent = parent;
+                    e.count = count;
+                    return;
+                }
+                for (int i = 0; i < count; i++) {
+                    if (getter.apply(i).equals(e.osm) && link.matches(e.withParentAndIndexAndLinkContext(parent, i, count))) {
+                        e.parent = parent;
+                        e.index = i;
+                        e.count = count;
+                        return;
                     }
                 }
             }
 
             @Override
-            public void visit(Relation r) {
-                /*
-                 * If e.parent is already set to the first matching referrer. We skip any following
-                 * referrer injected into the visitor.
-                 */
-                if (e.parent != null) return;
+            public void visit(Way w) {
+                doVisit(w, w::getNodesCount, w::getNode);
+            }
 
-                if (!left.matches(e.withPrimitive(r)))
-                    return;
-                for (int i = 0; i < r.getMembersCount(); i++) {
-                    RelationMember m = r.getMember(i);
-                    if (m.getMember().equals(e.osm)) {
-                        if (link.matches(e.withParentAndIndexAndLinkContext(r, i, r.getMembersCount()))) {
-                            e.parent = r;
-                            e.index = i;
-                            e.count = r.getMembersCount();
-                            return;
-                        }
-                    }
-                }
+            @Override
+            public void visit(Relation r) {
+                doVisit(r, r::getMembersCount, i -> r.getMember(i).getMember());
             }
         }
 
@@ -376,7 +367,7 @@ public interface Selector {
                 }
             } else if (ChildOrParentSelectorType.CHILD.equals(type)
                     && link.conds != null && !link.conds.isEmpty()
-                    && link.conds.get(0) instanceof Condition.OpenEndPseudoClassCondition) {
+                    && link.conds.get(0) instanceof OpenEndPseudoClassCondition) {
                 if (e.osm instanceof Node) {
                     e.osm.visitReferrers(new MultipolygonOpenEndFinder(e));
                     return e.parent != null;
diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java
index 4aa58e6..3802943 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java
@@ -6,6 +6,7 @@ import java.awt.Color;
 import java.awt.Rectangle;
 import java.awt.Stroke;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.stream.IntStream;
 
 import org.openstreetmap.josm.Main;
@@ -14,6 +15,7 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.visitor.paint.MapPaintSettings;
 import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer;
+import org.openstreetmap.josm.gui.draw.SymbolShape;
 import org.openstreetmap.josm.gui.mappaint.Cascade;
 import org.openstreetmap.josm.gui.mappaint.Environment;
 import org.openstreetmap.josm.gui.mappaint.Keyword;
@@ -32,54 +34,11 @@ import org.openstreetmap.josm.tools.Utils;
 public class NodeElement extends StyleElement {
     public final MapImage mapImage;
     public final RotationAngle mapImageAngle;
+    /**
+     * The symbol that should be used for drawing this node.
+     */
     public final Symbol symbol;
 
-    public enum SymbolShape { SQUARE, CIRCLE, TRIANGLE, PENTAGON, HEXAGON, HEPTAGON, OCTAGON, NONAGON, DECAGON }
-
-    public static class Symbol {
-        public SymbolShape symbol;
-        public int size;
-        public Stroke stroke;
-        public Color strokeColor;
-        public Color fillColor;
-
-        public Symbol(SymbolShape symbol, int size, Stroke stroke, Color strokeColor, Color fillColor) {
-            if (stroke != null && strokeColor == null)
-                throw new IllegalArgumentException("Stroke given without color");
-            if (stroke == null && fillColor == null)
-                throw new IllegalArgumentException("Either a stroke or a fill color must be given");
-            this.symbol = symbol;
-            this.size = size;
-            this.stroke = stroke;
-            this.strokeColor = strokeColor;
-            this.fillColor = fillColor;
-        }
-
-        @Override
-        public boolean equals(Object obj) {
-            if (obj == null || getClass() != obj.getClass())
-                return false;
-            final Symbol other = (Symbol) obj;
-            return symbol == other.symbol &&
-                    size == other.size &&
-                    Objects.equals(stroke, other.stroke) &&
-                    Objects.equals(strokeColor, other.strokeColor) &&
-                    Objects.equals(fillColor, other.fillColor);
-        }
-
-        @Override
-        public int hashCode() {
-            return Objects.hash(symbol, size, stroke, strokeColor, fillColor);
-        }
-
-        @Override
-        public String toString() {
-            return "symbol=" + symbol + " size=" + size +
-                    (stroke != null ? " stroke=" + stroke + " strokeColor=" + strokeColor : "") +
-                    (fillColor != null ? " fillColor=" + fillColor : "");
-        }
-    }
-
     private static final String[] ICON_KEYS = {ICON_IMAGE, ICON_WIDTH, ICON_HEIGHT, ICON_OPACITY, ICON_OFFSET_X, ICON_OFFSET_Y};
 
     public static final NodeElement SIMPLE_NODE_ELEMSTYLE;
@@ -193,33 +152,16 @@ public class NodeElement extends StyleElement {
 
     private static Symbol createSymbol(Environment env) {
         Cascade c = env.mc.getCascade(env.layer);
-        Cascade cDef = env.mc.getCascade("default");
 
-        SymbolShape shape;
         Keyword shapeKW = c.get("symbol-shape", null, Keyword.class);
         if (shapeKW == null)
             return null;
-        if ("square".equals(shapeKW.val)) {
-            shape = SymbolShape.SQUARE;
-        } else if ("circle".equals(shapeKW.val)) {
-            shape = SymbolShape.CIRCLE;
-        } else if ("triangle".equals(shapeKW.val)) {
-            shape = SymbolShape.TRIANGLE;
-        } else if ("pentagon".equals(shapeKW.val)) {
-            shape = SymbolShape.PENTAGON;
-        } else if ("hexagon".equals(shapeKW.val)) {
-            shape = SymbolShape.HEXAGON;
-        } else if ("heptagon".equals(shapeKW.val)) {
-            shape = SymbolShape.HEPTAGON;
-        } else if ("octagon".equals(shapeKW.val)) {
-            shape = SymbolShape.OCTAGON;
-        } else if ("nonagon".equals(shapeKW.val)) {
-            shape = SymbolShape.NONAGON;
-        } else if ("decagon".equals(shapeKW.val)) {
-            shape = SymbolShape.DECAGON;
-        } else
+        Optional<SymbolShape> shape = SymbolShape.forName(shapeKW.val);
+        if (!shape.isPresent()) {
             return null;
+        }
 
+        Cascade cDef = env.mc.getCascade("default");
         Float sizeOnDefault = cDef.get("symbol-size", null, Float.class);
         if (sizeOnDefault != null && sizeOnDefault <= 0) {
             sizeOnDefault = null;
@@ -267,7 +209,7 @@ public class NodeElement extends StyleElement {
             }
         }
 
-        return new Symbol(shape, Math.round(size), stroke, strokeColor, fillColor);
+        return new Symbol(shape.get(), Math.round(size), stroke, strokeColor, fillColor);
     }
 
     @Override
@@ -279,27 +221,7 @@ public class NodeElement extends StyleElement {
                 painter.drawNodeIcon(n, mapImage, painter.isInactiveMode() || n.isDisabled(), selected, member,
                         mapImageAngle == null ? 0.0 : mapImageAngle.getRotationAngle(primitive));
             } else if (symbol != null) {
-                Color fillColor = symbol.fillColor;
-                if (fillColor != null) {
-                    if (painter.isInactiveMode() || n.isDisabled()) {
-                        fillColor = settings.getInactiveColor();
-                    } else if (defaultSelectedHandling && selected) {
-                        fillColor = settings.getSelectedColor(fillColor.getAlpha());
-                    } else if (member) {
-                        fillColor = settings.getRelationSelectedColor(fillColor.getAlpha());
-                    }
-                }
-                Color strokeColor = symbol.strokeColor;
-                if (strokeColor != null) {
-                    if (painter.isInactiveMode() || n.isDisabled()) {
-                        strokeColor = settings.getInactiveColor();
-                    } else if (defaultSelectedHandling && selected) {
-                        strokeColor = settings.getSelectedColor(strokeColor.getAlpha());
-                    } else if (member) {
-                        strokeColor = settings.getRelationSelectedColor(strokeColor.getAlpha());
-                    }
-                }
-                painter.drawNodeSymbol(n, symbol, fillColor, strokeColor);
+                paintWithSymbol(settings, painter, selected, member, n);
             } else {
                 Color color;
                 boolean isConnection = n.isConnectionNode();
@@ -343,6 +265,31 @@ public class NodeElement extends StyleElement {
         }
     }
 
+    private void paintWithSymbol(MapPaintSettings settings, StyledMapRenderer painter, boolean selected, boolean member,
+            Node n) {
+        Color fillColor = symbol.fillColor;
+        if (fillColor != null) {
+            if (painter.isInactiveMode() || n.isDisabled()) {
+                fillColor = settings.getInactiveColor();
+            } else if (defaultSelectedHandling && selected) {
+                fillColor = settings.getSelectedColor(fillColor.getAlpha());
+            } else if (member) {
+                fillColor = settings.getRelationSelectedColor(fillColor.getAlpha());
+            }
+        }
+        Color strokeColor = symbol.strokeColor;
+        if (strokeColor != null) {
+            if (painter.isInactiveMode() || n.isDisabled()) {
+                strokeColor = settings.getInactiveColor();
+            } else if (defaultSelectedHandling && selected) {
+                strokeColor = settings.getSelectedColor(strokeColor.getAlpha());
+            } else if (member) {
+                strokeColor = settings.getRelationSelectedColor(strokeColor.getAlpha());
+            }
+        }
+        painter.drawNodeSymbol(n, symbol, fillColor, strokeColor);
+    }
+
     public BoxProvider getBoxProvider() {
         if (mapImage != null)
             return mapImage.getBoxProvider();
diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/Symbol.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/Symbol.java
new file mode 100644
index 0000000..9b4359e
--- /dev/null
+++ b/src/org/openstreetmap/josm/gui/mappaint/styleelement/Symbol.java
@@ -0,0 +1,87 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.mappaint.styleelement;
+
+import java.awt.Color;
+import java.awt.Shape;
+import java.awt.Stroke;
+import java.util.Objects;
+
+import org.openstreetmap.josm.gui.draw.SymbolShape;
+
+/**
+ * The definition of a symbol that should be rendered at the node position.
+ * @since 10827 Extracted from {@link NodeElement}
+ */
+public class Symbol {
+    private final SymbolShape symbolShape;
+    /**
+     * The width and height of this symbol
+     */
+    public final int size;
+    /**
+     * The stroke to use for the outline
+     */
+    public final Stroke stroke;
+    /**
+     * The color to draw the stroke with
+     */
+    public final Color strokeColor;
+    /**
+     * The color to fill the interiour of the shape.
+     */
+    public final Color fillColor;
+
+    /**
+     * Create a new symbol
+     * @param symbol The symbol type
+     * @param size The overall size of the symbol, both width and height are the same
+     * @param stroke The stroke to use for the outline
+     * @param strokeColor The color to draw the stroke with
+     * @param fillColor The color to fill the interiour of the shape.
+     */
+    public Symbol(SymbolShape symbol, int size, Stroke stroke, Color strokeColor, Color fillColor) {
+        if (stroke != null && strokeColor == null)
+            throw new IllegalArgumentException("Stroke given without color");
+        if (stroke == null && fillColor == null)
+            throw new IllegalArgumentException("Either a stroke or a fill color must be given");
+        this.symbolShape = symbol;
+        this.size = size;
+        this.stroke = stroke;
+        this.strokeColor = strokeColor;
+        this.fillColor = fillColor;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null || getClass() != obj.getClass())
+            return false;
+        final Symbol other = (Symbol) obj;
+        return symbolShape == other.symbolShape &&
+                size == other.size &&
+                Objects.equals(stroke, other.stroke) &&
+                Objects.equals(strokeColor, other.strokeColor) &&
+                Objects.equals(fillColor, other.fillColor);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(symbolShape, size, stroke, strokeColor, fillColor);
+    }
+
+    @Override
+    public String toString() {
+        return "symbolShape=" + symbolShape + " size=" + size +
+                (stroke != null ? (" stroke=" + stroke + " strokeColor=" + strokeColor) : "") +
+                (fillColor != null ? (" fillColor=" + fillColor) : "");
+    }
+
+    /**
+     * Builds the shape for this symbol
+     * @param x The center x coordinate
+     * @param y The center y coordinate
+     * @return The symbol shape.
+     */
+    public Shape buildShapeAround(double x, double y) {
+        return symbolShape.shapeAround(x, y, size);
+    }
+}
diff --git a/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java b/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java
index 127b08c..a3791fb 100644
--- a/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java
+++ b/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java
@@ -398,7 +398,6 @@ public class FullyAutomaticAuthorizationUI extends AbstractAuthorizationUI {
 
     class FullyAutomaticAuthorisationTask extends PleaseWaitRunnable {
         private boolean canceled;
-        private OsmOAuthAuthorizationClient authClient;
 
         FullyAutomaticAuthorisationTask(Component parent) {
             super(parent, tr("Authorize JOSM to access the OSM API"), false /* don't ignore exceptions */);
@@ -479,7 +478,7 @@ public class FullyAutomaticAuthorizationUI extends AbstractAuthorizationUI {
         protected void realRun() throws SAXException, IOException, OsmTransferException {
             try {
                 getProgressMonitor().setTicksCount(3);
-                authClient = new OsmOAuthAuthorizationClient(
+                OsmOAuthAuthorizationClient authClient = new OsmOAuthAuthorizationClient(
                         getAdvancedPropertiesPanel().getAdvancedParameters()
                 );
                 OAuthToken requestToken = authClient.getRequestToken(
diff --git a/src/org/openstreetmap/josm/gui/oauth/OAuthAuthorizationWizard.java b/src/org/openstreetmap/josm/gui/oauth/OAuthAuthorizationWizard.java
index 1c9c7d7..4c17fd4 100644
--- a/src/org/openstreetmap/josm/gui/oauth/OAuthAuthorizationWizard.java
+++ b/src/org/openstreetmap/josm/gui/oauth/OAuthAuthorizationWizard.java
@@ -16,7 +16,6 @@ import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.beans.PropertyChangeEvent;
@@ -26,12 +25,10 @@ import java.util.concurrent.Executor;
 import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
-import javax.swing.KeyStroke;
 import javax.swing.UIManager;
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
@@ -50,6 +47,7 @@ import org.openstreetmap.josm.gui.widgets.HtmlPanel;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.OpenBrowser;
 import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.WindowGeometry;
@@ -231,8 +229,7 @@ public class OAuthAuthorizationWizard extends JDialog {
         getContentPane().add(buildButtonRow(), BorderLayout.SOUTH);
 
         addWindowListener(new WindowEventHandler());
-        getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "cancel");
-        getRootPane().getActionMap().put("cancel", new CancelAction());
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
 
         refreshAuthorisationProcedurePanel();
 
diff --git a/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java b/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java
index c3019b3..f9fcb35 100644
--- a/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java
+++ b/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java
@@ -11,7 +11,6 @@ import java.awt.FlowLayout;
 import java.awt.GridBagLayout;
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 
@@ -19,10 +18,8 @@ import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
 import javax.swing.JButton;
 import javax.swing.JCheckBox;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JPanel;
-import javax.swing.KeyStroke;
 
 import org.openstreetmap.josm.actions.ExpertToggleAction;
 import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction;
@@ -31,6 +28,7 @@ import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane.ValidationLis
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
 public class PreferenceDialog extends JDialog {
@@ -78,8 +76,7 @@ public class PreferenceDialog extends JDialog {
 
         addWindowListener(new WindowEventHandler());
 
-        getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "cancel");
-        getRootPane().getActionMap().put("cancel", new CancelAction());
+        InputMapUtils.addEscapeAction(getRootPane(), new CancelAction());
         HelpUtil.setHelpContext(getRootPane(), HelpUtil.ht("/Action/Preferences"));
     }
 
diff --git a/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java b/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java
index 5f1fb06..4dd51ad 100644
--- a/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java
+++ b/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java
@@ -28,7 +28,7 @@ import javax.swing.UIManager;
 import javax.swing.table.DefaultTableCellRenderer;
 import javax.swing.table.DefaultTableModel;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.data.preferences.ListListSetting;
 import org.openstreetmap.josm.data.preferences.ListSetting;
 import org.openstreetmap.josm.data.preferences.MapListSetting;
@@ -335,12 +335,12 @@ public class PreferencesTable extends JTable {
 
     static final class SettingCellRenderer extends DefaultTableCellRenderer {
         private final Color backgroundColor = UIManager.getColor("Table.background");
-        private final Color changedColor = Main.pref.getColor(
+        private final Color changedColor = new ColorProperty(
                          marktr("Advanced Background: Changed"),
-                         new Color(200, 255, 200));
-        private final Color nonDefaultColor = Main.pref.getColor(
+                         new Color(200, 255, 200)).get();
+        private final Color nonDefaultColor = new ColorProperty(
                             marktr("Advanced Background: NonDefault"),
-                            new Color(255, 255, 200));
+                            new Color(255, 255, 200)).get();
 
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
diff --git a/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java b/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
index ca7c4aa..f7ca354 100644
--- a/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
+++ b/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
@@ -256,7 +256,7 @@ public class ColorPreference implements SubPreferenceSetting {
      * Add all missing color entries.
      */
     private static void fixColorPrefixes() {
-        PaintColors.getColors();
+        PaintColors.values();
         ConflictColors.getColors();
         Severity.getColors();
         MarkerLayer.getGenericColor();
diff --git a/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java b/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
index a09ea03..f9724c4 100644
--- a/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
+++ b/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
@@ -55,6 +55,7 @@ import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryBounds;
 import org.openstreetmap.josm.data.imagery.ImageryLayerInfo;
 import org.openstreetmap.josm.data.imagery.OffsetBookmark;
 import org.openstreetmap.josm.data.imagery.Shape;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
@@ -238,6 +239,10 @@ public final class ImageryPreference extends DefaultTabPreferenceSetting {
          */
         private static class ImageryURLTableCellRenderer extends DefaultTableCellRenderer {
 
+            private static final ColorProperty IMAGERY_BACKGROUND_COLOR = new ColorProperty(
+                    marktr("Imagery Background: Default"),
+                    new Color(200, 255, 200));
+
             private final transient List<ImageryInfo> layers;
 
             ImageryURLTableCellRenderer(List<ImageryInfo> layers) {
@@ -254,9 +259,7 @@ public final class ImageryPreference extends DefaultTabPreferenceSetting {
                     String t = value.toString();
                     for (ImageryInfo l : layers) {
                         if (l.getExtendedUrl().equals(t)) {
-                            GuiHelper.setBackgroundReadable(label, Main.pref.getColor(
-                                    marktr("Imagery Background: Default"),
-                                    new Color(200, 255, 200)));
+                            GuiHelper.setBackgroundReadable(label, IMAGERY_BACKGROUND_COLOR.get());
                             break;
                         }
                     }
diff --git a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java
index 116bdc4..962e209 100644
--- a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java
+++ b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java
@@ -163,8 +163,6 @@ public class PluginListPanel extends VerticallyScrollablePanel {
         }
         revalidate();
         repaint();
-        if (visibleRect != null && visibleRect.width > 0 && visibleRect.height > 0) {
-            SwingUtilities.invokeLater(() -> scrollRectToVisible(visibleRect));
-        }
+        SwingUtilities.invokeLater(() -> scrollRectToVisible(visibleRect));
     }
 }
diff --git a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
index a713087..722298b 100644
--- a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
+++ b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
@@ -16,29 +16,34 @@ import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
 import javax.swing.DefaultListModel;
 import javax.swing.JButton;
+import javax.swing.JCheckBox;
 import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
 import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.ExpertToggleAction;
 import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec;
@@ -57,6 +62,7 @@ import org.openstreetmap.josm.plugins.ReadLocalPluginInformationTask;
 import org.openstreetmap.josm.plugins.ReadRemotePluginInformationTask;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
  * Preference settings for plugins.
@@ -181,11 +187,12 @@ public final class PluginPreference extends DefaultTabPreferenceSetting {
     }
 
     private JPanel buildActionPanel() {
-        JPanel pnl = new JPanel(new GridLayout(1, 3));
+        JPanel pnl = new JPanel(new GridLayout(1, 4));
 
         pnl.add(new JButton(new DownloadAvailablePluginsAction()));
         pnl.add(new JButton(new UpdateSelectedPluginsAction()));
-        pnl.add(new JButton(new ConfigureSitesAction()));
+        ExpertToggleAction.addVisibilitySwitcher(pnl.add(new JButton(new SelectByListAction())));
+        ExpertToggleAction.addVisibilitySwitcher(pnl.add(new JButton(new ConfigureSitesAction())));
         return pnl;
     }
 
@@ -461,6 +468,78 @@ public final class PluginPreference extends DefaultTabPreferenceSetting {
     }
 
     /**
+     * The action for selecting the plugins given by a text file compatible to JOSM bug report.
+     * @author Michael Zangl
+     */
+    class SelectByListAction extends AbstractAction {
+        SelectByListAction() {
+            putValue(NAME, tr("Load from list..."));
+            putValue(SHORT_DESCRIPTION, tr("Load plugins from a list of plugins"));
+        }
+
+        @Override
+        public void actionPerformed(ActionEvent e) {
+            JTextArea textField = new JTextArea(10, 0);
+            JCheckBox deleteNotInList = new JCheckBox(tr("Disable all other plugins"));
+
+            JLabel helpLabel = new JLabel("<html>" + Utils.join("<br/>", Arrays.asList(
+                    tr("Enter a list of plugins you want to download."),
+                    tr("You should add one plugin id per line, version information is ignored."),
+                    tr("You can copy+paste the list of a status report here."))) + "</html>");
+
+            if (JOptionPane.OK_OPTION == JOptionPane.showConfirmDialog(GuiHelper.getFrameForComponent(getTabPane()),
+                    new Object[] {helpLabel, new JScrollPane(textField), deleteNotInList},
+                    tr("Load plugins from list"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) {
+                activatePlugins(textField, deleteNotInList.isSelected());
+            }
+        }
+
+        private void activatePlugins(JTextArea textField, boolean deleteNotInList) {
+            String[] lines = textField.getText().split("\n");
+            List<String> toActivate = new ArrayList<>();
+            List<String> notFound = new ArrayList<>();
+            Pattern regex = Pattern.compile("^[-+\\s]*|\\s[\\(\\)\\d\\s]*");
+            for (String line : lines) {
+                String name = regex.matcher(line).replaceAll("");
+                if (name.isEmpty()) {
+                    continue;
+                }
+                PluginInformation plugin = model.getPluginInformation(name);
+                if (plugin == null) {
+                    notFound.add(name);
+                } else {
+                    toActivate.add(name);
+                }
+            }
+
+            if (notFound.isEmpty() || confirmIgnoreNotFound(notFound)) {
+                activatePlugins(toActivate, deleteNotInList);
+            }
+        }
+
+        private void activatePlugins(List<String> toActivate, boolean deleteNotInList) {
+            if (deleteNotInList) {
+                for (String name : model.getSelectedPluginNames()) {
+                    if (!toActivate.contains(name)) {
+                        model.setPluginSelected(name, false);
+                    }
+                }
+            }
+            for (String name : toActivate) {
+                model.setPluginSelected(name, true);
+            }
+            pnlPluginPreferences.refreshView();
+        }
+
+        private boolean confirmIgnoreNotFound(List<String> notFound) {
+            String list = "<ul><li>" + Utils.join("</li><li>", notFound) + "</li></ul>";
+            String message = "<html>" + tr("The following plugins were not found. Continue anyway?") + list + "</html>";
+            return JOptionPane.showConfirmDialog(GuiHelper.getFrameForComponent(getTabPane()),
+                    message) == JOptionPane.OK_OPTION;
+        }
+    }
+
+    /**
      * Applies the current filter condition in the filter text field to the model.
      */
     class SearchFieldAdapter implements DocumentListener {
diff --git a/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java b/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java
index a8f34b3..de36908 100644
--- a/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java
+++ b/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java
@@ -45,6 +45,7 @@ import javax.swing.table.TableModel;
 import javax.swing.table.TableRowSorter;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JosmComboBox;
 import org.openstreetmap.josm.gui.widgets.JosmTextField;
@@ -157,6 +158,13 @@ public class PrefJPanel extends JPanel {
 
     private class ShortcutTableCellRenderer extends DefaultTableCellRenderer {
 
+        private final transient ColorProperty SHORTCUT_BACKGROUND_USER_COLOR = new ColorProperty(
+                marktr("Shortcut Background: User"),
+                new Color(200, 255, 200));
+        private final transient ColorProperty SHORTCUT_BACKGROUND_MODIFIED_COLOR = new ColorProperty(
+                marktr("Shortcut Background: Modified"),
+                new Color(255, 255, 200));
+
         private final boolean name;
 
         ShortcutTableCellRenderer(boolean name) {
@@ -174,13 +182,9 @@ public class PrefJPanel extends JPanel {
                 table, name ? sc.getLongText() : sc.getKeyText(), isSelected, hasFocus, row, column);
             GuiHelper.setBackgroundReadable(label, UIManager.getColor("Table.background"));
             if (sc.isAssignedUser()) {
-                GuiHelper.setBackgroundReadable(label, Main.pref.getColor(
-                        marktr("Shortcut Background: User"),
-                        new Color(200, 255, 200)));
+                GuiHelper.setBackgroundReadable(label, SHORTCUT_BACKGROUND_USER_COLOR.get());
             } else if (!sc.isAssignedDefault()) {
-                GuiHelper.setBackgroundReadable(label, Main.pref.getColor(
-                        marktr("Shortcut Background: Modified"),
-                        new Color(255, 255, 200)));
+                GuiHelper.setBackgroundReadable(label, SHORTCUT_BACKGROUND_MODIFIED_COLOR.get());
             }
             return label;
         }
diff --git a/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorPreference.java b/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorPreference.java
index f647d56..24ec975 100644
--- a/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorPreference.java
+++ b/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorPreference.java
@@ -39,19 +39,19 @@ public final class ValidatorPreference extends DefaultTabPreferenceSetting {
     public static final String PREFIX = "validator";
 
     /** The preferences key for error layer */
-    public static final String PREF_LAYER = PREFIX + ".layer";
+    public static final BooleanProperty PREF_LAYER = new BooleanProperty(PREFIX + ".layer", true);
 
     /** The preferences key for enabled tests */
     public static final String PREF_SKIP_TESTS = PREFIX + ".skip";
 
     /** The preferences key for enabled tests */
-    public static final String PREF_USE_IGNORE = PREFIX + ".ignore";
+    public static final BooleanProperty PREF_USE_IGNORE = new BooleanProperty(PREFIX + ".ignore", true);
 
     /** The preferences key for enabled tests before upload*/
     public static final String PREF_SKIP_TESTS_BEFORE_UPLOAD = PREFIX + ".skipBeforeUpload";
 
     /** The preferences key for ignored severity other on upload */
-    public static final String PREF_OTHER_UPLOAD = PREFIX + ".otherUpload";
+    public static final BooleanProperty PREF_OTHER_UPLOAD = new BooleanProperty(PREFIX + ".otherUpload", false);
 
     /** The preferences for ignored severity other */
     public static final BooleanProperty PREF_OTHER = new BooleanProperty(PREFIX + ".other", false);
diff --git a/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTestsPreference.java b/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTestsPreference.java
index 67b1a7e..3a4128a 100644
--- a/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTestsPreference.java
+++ b/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTestsPreference.java
@@ -57,11 +57,11 @@ public class ValidatorTestsPreference implements SubPreferenceSetting {
         JPanel testPanel = new VerticallyScrollablePanel(new GridBagLayout());
         testPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
 
-        prefUseIgnore = new JCheckBox(tr("Use ignore list."), Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true));
+        prefUseIgnore = new JCheckBox(tr("Use ignore list."), ValidatorPreference.PREF_USE_IGNORE.get());
         prefUseIgnore.setToolTipText(tr("Use the ignore list to suppress warnings."));
         testPanel.add(prefUseIgnore, GBC.eol());
 
-        prefUseLayer = new JCheckBox(tr("Use error layer."), Main.pref.getBoolean(ValidatorPreference.PREF_LAYER, true));
+        prefUseLayer = new JCheckBox(tr("Use error layer."), ValidatorPreference.PREF_LAYER.get());
         prefUseLayer.setToolTipText(tr("Use the error layer to display problematic elements."));
         testPanel.add(prefUseLayer, GBC.eol());
 
@@ -70,7 +70,7 @@ public class ValidatorTestsPreference implements SubPreferenceSetting {
         testPanel.add(prefOther, GBC.eol());
 
         prefOtherUpload = new JCheckBox(tr("Show informational level on upload."),
-                Main.pref.getBoolean(ValidatorPreference.PREF_OTHER_UPLOAD, false));
+                ValidatorPreference.PREF_OTHER_UPLOAD.get());
         prefOtherUpload.setToolTipText(tr("Show the informational tests in the upload check windows."));
         testPanel.add(prefOtherUpload, GBC.eol());
 
@@ -116,10 +116,10 @@ public class ValidatorTestsPreference implements SubPreferenceSetting {
 
         Main.pref.putCollection(ValidatorPreference.PREF_SKIP_TESTS, tests);
         Main.pref.putCollection(ValidatorPreference.PREF_SKIP_TESTS_BEFORE_UPLOAD, testsBeforeUpload);
-        Main.pref.put(ValidatorPreference.PREF_USE_IGNORE, prefUseIgnore.isSelected());
+        ValidatorPreference.PREF_USE_IGNORE.put(prefUseIgnore.isSelected());
         ValidatorPreference.PREF_OTHER.put(prefOther.isSelected());
-        Main.pref.put(ValidatorPreference.PREF_OTHER_UPLOAD, prefOtherUpload.isSelected());
-        Main.pref.put(ValidatorPreference.PREF_LAYER, prefUseLayer.isSelected());
+        ValidatorPreference.PREF_OTHER_UPLOAD.put(prefOtherUpload.isSelected());
+        ValidatorPreference.PREF_LAYER.put(prefUseLayer.isSelected());
         return false;
     }
 
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
index 7410ba7..0b9b117 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
@@ -49,7 +49,6 @@ import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
 import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
 import org.openstreetmap.josm.gui.tagging.presets.items.Key;
-import org.openstreetmap.josm.gui.tagging.presets.items.Label;
 import org.openstreetmap.josm.gui.tagging.presets.items.Link;
 import org.openstreetmap.josm.gui.tagging.presets.items.Optional;
 import org.openstreetmap.josm.gui.tagging.presets.items.PresetLink;
@@ -173,12 +172,22 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
     }
 
     /**
-     * Returns the preset icon.
+     * Returns the preset icon (16px).
      * @return The preset icon, or {@code null} if none defined
      * @since 6403
      */
     public final ImageIcon getIcon() {
-        Object icon = getValue(Action.SMALL_ICON);
+        return getIcon(Action.SMALL_ICON);
+    }
+
+    /**
+     * Returns the preset icon (16 or 24px).
+     * @param key Key determining icon size: {@code Action.SMALL_ICON} for 16x, {@code Action.LARGE_ICON_KEY} for 24px
+     * @return The preset icon, or {@code null} if none defined
+     * @since 10849
+     */
+    public final ImageIcon getIcon(String key) {
+        Object icon = getValue(key);
         if (icon instanceof ImageIcon) {
             return (ImageIcon) icon;
         }
@@ -288,11 +297,15 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
             label.setToolTipText("<html>" + tr("This preset also sets: {0}", Utils.joinAsHtmlUnorderedList(directlyAppliedTags)));
             pp.add(label);
         }
-        if (pp.getComponentCount() > 0) {
-            p.add(pp, GBC.eol());
+        final int count = pp.getComponentCount();
+        if (preset_name_label) {
+            p.add(new JLabel(getIcon(Action.LARGE_ICON_KEY)), GBC.std(0, 0).span(1, count > 0 ? 2 : 1).insets(0, 0, 5, 0));
+        }
+        if (count > 0) {
+            p.add(pp, GBC.std(1, 0).span(GBC.REMAINDER));
         }
         if (preset_name_label) {
-            Label.addLabel(p, getIcon(), getName());
+            p.add(new JLabel(getName()), GBC.std(1, count > 0 ? 1 : 0).insets(5, 0, 0, 0).span(GBC.REMAINDER).fill(GBC.HORIZONTAL));
         }
 
         boolean presetInitiallyMatches = !selected.isEmpty() && selected.stream().allMatch(this);
@@ -330,7 +343,7 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
         // "Add toolbar button"
         JToggleButton tb = new JToggleButton(new ToolbarButtonAction());
         tb.setFocusable(false);
-        p.add(tb, GBC.std(0, 0).anchor(GBC.LINE_END));
+        p.add(tb, GBC.std(1, 0).anchor(GBC.LINE_END));
         return p;
     }
 
@@ -401,12 +414,21 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
     }
 
     private static class PresetDialog extends ExtendedDialog {
+
+        /**
+         * Constructs a new {@code PresetDialog}.
+         * @param content the content that will be displayed in this dialog
+         * @param title the text that will be shown in the window titlebar
+         * @param icon the image to be displayed as the icon for this window
+         * @param disableApply whether to disable "Apply" button
+         * @param showNewRelation whether to display "New relation" button
+         */
         PresetDialog(Component content, String title, ImageIcon icon, boolean disableApply, boolean showNewRelation) {
             super(Main.parent, title,
                     showNewRelation ?
-                            new String[] {tr("Apply Preset"), tr("New relation"), tr("Cancel")} :
-                                new String[] {tr("Apply Preset"), tr("Cancel")},
-                                true);
+                            (new String[] {tr("Apply Preset"), tr("New relation"), tr("Cancel")}) :
+                            (new String[] {tr("Apply Preset"), tr("Cancel")}),
+                    true);
             if (icon != null)
                 setIconImage(icon.getImage());
             contentInsets = new Insets(10, 5, 0, 5);
@@ -426,14 +448,18 @@ public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi
                 d.width = 350;
                 setSize(d);
             }
-            showDialog();
+            super.showDialog();
         }
     }
 
+    /**
+     * Shows the preset dialog.
+     * @param sel selection
+     * @param showNewRelation whether to display "New relation" button
+     * @return the user choice after the dialog has been closed
+     */
     public int showDialog(Collection<OsmPrimitive> sel, boolean showNewRelation) {
         PresetPanel p = createPanel(sel);
-        if (p == null)
-            return DIALOG_ANSWER_CANCEL;
 
         int answer = 1;
         boolean canCreateRelation = types == null || types.contains(TaggingPresetType.RELATION);
diff --git a/src/org/openstreetmap/josm/gui/util/GuiHelper.java b/src/org/openstreetmap/josm/gui/util/GuiHelper.java
index d964701..9f59dc3 100644
--- a/src/org/openstreetmap/josm/gui/util/GuiHelper.java
+++ b/src/org/openstreetmap/josm/gui/util/GuiHelper.java
@@ -3,7 +3,6 @@ package org.openstreetmap.josm.gui.util;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Container;
@@ -49,6 +48,7 @@ import javax.swing.UIManager;
 import javax.swing.plaf.FontUIResource;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.StrokeProperty;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.widgets.HtmlPanel;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
@@ -299,45 +299,10 @@ public final class GuiHelper {
      * Return s new BasicStroke object with given thickness and style
      * @param code = 3.5 -> thickness=3.5px; 3.5 10 5 -> thickness=3.5px, dashed: 10px filled + 5px empty
      * @return stroke for drawing
+     * @see StrokeProperty
      */
     public static Stroke getCustomizedStroke(String code) {
-        String[] s = code.trim().split("[^\\.0-9]+");
-
-        if (s.length == 0) return new BasicStroke();
-        float w;
-        try {
-            w = Float.parseFloat(s[0]);
-        } catch (NumberFormatException ex) {
-            w = 1.0f;
-        }
-        if (s.length > 1) {
-            float[] dash = new float[s.length-1];
-            float sumAbs = 0;
-            try {
-                for (int i = 0; i < s.length-1; i++) {
-                   dash[i] = Float.parseFloat(s[i+1]);
-                   sumAbs += Math.abs(dash[i]);
-                }
-            } catch (NumberFormatException ex) {
-                Main.error("Error in stroke preference format: "+code);
-                dash = new float[]{5.0f};
-            }
-            if (sumAbs < 1e-1) {
-                Main.error("Error in stroke dash format (all zeros): "+code);
-                return new BasicStroke(w);
-            }
-            // dashed stroke
-            return new BasicStroke(w, BasicStroke.CAP_BUTT,
-                    BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
-        } else {
-            if (w > 1) {
-                // thick stroke
-                return new BasicStroke(w, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
-            } else {
-                // thin stroke
-                return new BasicStroke(w);
-            }
-        }
+        return StrokeProperty.getFromString(code);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/widgets/NativeFileChooser.java b/src/org/openstreetmap/josm/gui/widgets/NativeFileChooser.java
index 2e4a10f..9b32766 100644
--- a/src/org/openstreetmap/josm/gui/widgets/NativeFileChooser.java
+++ b/src/org/openstreetmap/josm/gui/widgets/NativeFileChooser.java
@@ -11,6 +11,7 @@ import javax.swing.JFileChooser;
 import javax.swing.filechooser.FileFilter;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
  * File chooser based on the AWT's {@link FileDialog} implementation,
@@ -134,7 +135,7 @@ public class NativeFileChooser extends AbstractFileChooser {
     public int showOpenDialog(Component parent) {
         boolean appleProperty = Main.isPlatformOsx() && selectionMode == JFileChooser.DIRECTORIES_ONLY;
         if (appleProperty) {
-            System.setProperty("apple.awt.fileDialogForDirectories", "true");
+            Utils.updateSystemProperty("apple.awt.fileDialogForDirectories", "true");
         }
         try {
             fileDialog.setLocale(locale);
@@ -143,7 +144,7 @@ public class NativeFileChooser extends AbstractFileChooser {
             return fileDialog.getFile() == null ? JFileChooser.CANCEL_OPTION : JFileChooser.APPROVE_OPTION;
         } finally {
             if (appleProperty) {
-                System.setProperty("apple.awt.fileDialogForDirectories", "false");
+                Utils.updateSystemProperty("apple.awt.fileDialogForDirectories", "false");
             }
         }
     }
diff --git a/src/org/openstreetmap/josm/io/AbstractParser.java b/src/org/openstreetmap/josm/io/AbstractParser.java
index e947d40..6d0d796 100644
--- a/src/org/openstreetmap/josm/io/AbstractParser.java
+++ b/src/org/openstreetmap/josm/io/AbstractParser.java
@@ -116,6 +116,7 @@ public abstract class AbstractParser extends DefaultHandler {
         if (userStr != null) {
             if (uid != null) {
                 user = User.createOsmUser(uid, userStr);
+                user.setPreferredName(userStr);
             } else {
                 user = User.createLocalUser(userStr);
             }
diff --git a/src/org/openstreetmap/josm/io/DiffResultProcessor.java b/src/org/openstreetmap/josm/io/DiffResultProcessor.java
index 083cc96..8d5be9c 100644
--- a/src/org/openstreetmap/josm/io/DiffResultProcessor.java
+++ b/src/org/openstreetmap/josm/io/DiffResultProcessor.java
@@ -7,6 +7,7 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -134,6 +135,9 @@ public class DiffResultProcessor {
                 }
                 if (cs != null && !cs.isNew()) {
                     p.setChangesetId(cs.getId());
+                    p.setUser(cs.getUser());
+                    // TODO is there a way to obtain the timestamp for non-closed changesets?
+                    p.setTimestamp(Utils.firstNonNull(cs.getClosedAt(), new Date()));
                 }
             }
             return processed;
diff --git a/src/org/openstreetmap/josm/io/GeoJSONExporter.java b/src/org/openstreetmap/josm/io/GeoJSONExporter.java
index 875d044..eadabac 100644
--- a/src/org/openstreetmap/josm/io/GeoJSONExporter.java
+++ b/src/org/openstreetmap/josm/io/GeoJSONExporter.java
@@ -9,49 +9,32 @@ import java.io.Writer;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
-import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
-import org.openstreetmap.josm.tools.Utils;
 
+/**
+ * Exporter to write map data to a GeoJSON file.
+ * @since 4886
+ */
 public class GeoJSONExporter extends FileExporter {
 
-    protected final Projection projection;
+    /** File extension filter for .geojson files */
     public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter(
             "geojson,json", "geojson", tr("GeoJSON Files") + " (*.geojson *.json)");
-    public static final ExtensionFileFilter FILE_FILTER_PROJECTED = new ExtensionFileFilter(
-            "proj.geojson", "proj.geojson", tr("Projected GeoJSON Files") + " (*.proj.geojson)");
-
-    /**
-     * A GeoJSON exporter which obtains the current map projection when exporting ({@link #exportData(File, Layer)}).
-     */
-    public static class CurrentProjection extends GeoJSONExporter {
-        public CurrentProjection() {
-            super(FILE_FILTER_PROJECTED, null);
-        }
-    }
 
     /**
      * Constructs a new {@code GeoJSONExporter} with WGS84 projection.
      */
     public GeoJSONExporter() {
-        this(FILE_FILTER, ProjectionPreference.wgs84.getProjection());
-    }
-
-    private GeoJSONExporter(ExtensionFileFilter fileFilter, Projection projection) {
-        super(fileFilter);
-        this.projection = projection;
+        super(FILE_FILTER);
     }
 
     @Override
     public void exportData(File file, Layer layer) throws IOException {
         if (layer instanceof OsmDataLayer) {
-            String json = new GeoJSONWriter((OsmDataLayer) layer, Utils.firstNonNull(projection, Main.getProjection())).write();
             try (Writer out = Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8)) {
-                out.write(json);
+                out.write(new GeoJSONWriter((OsmDataLayer) layer).write());
             }
         } else {
             throw new IllegalArgumentException(tr("Layer ''{0}'' not supported", layer.getClass().toString()));
diff --git a/src/org/openstreetmap/josm/io/GeoJSONWriter.java b/src/org/openstreetmap/josm/io/GeoJSONWriter.java
index 2771b1e..f3a6704 100644
--- a/src/org/openstreetmap/josm/io/GeoJSONWriter.java
+++ b/src/org/openstreetmap/josm/io/GeoJSONWriter.java
@@ -6,8 +6,10 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.stream.Stream;
 
 import javax.json.Json;
 import javax.json.JsonArrayBuilder;
@@ -19,18 +21,23 @@ import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
-import org.openstreetmap.josm.data.osm.INode;
-import org.openstreetmap.josm.data.osm.IRelation;
-import org.openstreetmap.josm.data.osm.IWay;
+import org.openstreetmap.josm.data.osm.MultipolygonBuilder;
+import org.openstreetmap.josm.data.osm.MultipolygonBuilder.JoinedPolygon;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor;
+import org.openstreetmap.josm.data.osm.visitor.AbstractVisitor;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.mappaint.ElemStyles;
+import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
+import org.openstreetmap.josm.tools.Pair;
 
 /**
  * Writes OSM data as a GeoJSON string, using JSR 353: Java API for JSON Processing (JSON-P).
+ * <p>
+ * See <a href="https://tools.ietf.org/html/rfc7946">RFC7946: The GeoJSON Format</a>
  */
 public class GeoJSONWriter {
 
@@ -41,11 +48,11 @@ public class GeoJSONWriter {
     /**
      * Constructs a new {@code GeoJSONWriter}.
      * @param layer The OSM data layer to save
-     * @param projection The projection to use for coordinates
+     * @since 10852
      */
-    public GeoJSONWriter(OsmDataLayer layer, Projection projection) {
+    public GeoJSONWriter(OsmDataLayer layer) {
         this.layer = layer;
-        this.projection = projection;
+        this.projection = ProjectionPreference.wgs84.getProjection();
     }
 
     /**
@@ -69,8 +76,6 @@ public class GeoJSONWriter {
         try (JsonWriter writer = Json.createWriterFactory(config).createWriter(stringWriter)) {
             JsonObjectBuilder object = Json.createObjectBuilder()
                     .add("type", "FeatureCollection")
-                    .add("crs", Json.createObjectBuilder().add("type", "name").add(
-                            "properties", Json.createObjectBuilder().add("name", projection.toCode())))
                     .add("generator", "JOSM");
             appendLayerBounds(layer.data, object);
             appendLayerFeatures(layer.data, object);
@@ -79,7 +84,7 @@ public class GeoJSONWriter {
         }
     }
 
-    private class GeometryPrimitiveVisitor implements PrimitiveVisitor {
+    private class GeometryPrimitiveVisitor extends AbstractVisitor {
 
         private final JsonObjectBuilder geomObj;
 
@@ -88,32 +93,43 @@ public class GeoJSONWriter {
         }
 
         @Override
-        public void visit(INode n) {
+        public void visit(Node n) {
             geomObj.add("type", "Point");
             LatLon ll = n.getCoor();
             if (ll != null) {
-                geomObj.add("coordinates", getCoorArray(Json.createArrayBuilder(), n.getCoor()));
+                geomObj.add("coordinates", getCoorArray(null, n.getCoor()));
             }
         }
 
         @Override
-        public void visit(IWay w) {
-            geomObj.add("type", "LineString");
-            if (w instanceof Way) {
-                JsonArrayBuilder array = Json.createArrayBuilder();
-                for (Node n : ((Way) w).getNodes()) {
-                    LatLon ll = n.getCoor();
-                    if (ll != null) {
-                        array.add(getCoorArray(Json.createArrayBuilder(), ll));
-                    }
+        public void visit(Way w) {
+            if (w != null) {
+                final JsonArrayBuilder array = getCoorsArray(w.getNodes());
+                if (ElemStyles.hasAreaElemStyle(w, false)) {
+                    final JsonArrayBuilder container = Json.createArrayBuilder().add(array);
+                    geomObj.add("type", "Polygon");
+                    geomObj.add("coordinates", container);
+                } else {
+                    geomObj.add("type", "LineString");
+                    geomObj.add("coordinates", array);
                 }
-                geomObj.add("coordinates", array);
             }
         }
 
         @Override
-        public void visit(IRelation r) {
-            // Do nothing
+        public void visit(Relation r) {
+            if (r != null && r.isMultipolygon() && !r.hasIncompleteMembers()) {
+                final Pair<List<JoinedPolygon>, List<JoinedPolygon>> mp = MultipolygonBuilder.joinWays(r);
+                final JsonArrayBuilder polygon = Json.createArrayBuilder();
+                Stream.concat(mp.a.stream(), mp.b.stream())
+                        .map(p -> getCoorsArray(p.getNodes())
+                                // since first node is not duplicated as last node
+                                .add(getCoorArray(null, p.getNodes().get(0).getCoor())))
+                        .forEach(polygon::add);
+                geomObj.add("type", "MultiPolygon");
+                final JsonArrayBuilder multiPolygon = Json.createArrayBuilder().add(polygon);
+                geomObj.add("coordinates", multiPolygon);
+            }
         }
     }
 
@@ -122,11 +138,22 @@ public class GeoJSONWriter {
     }
 
     private static JsonArrayBuilder getCoorArray(JsonArrayBuilder builder, EastNorth c) {
-        return builder
+        return builder != null ? builder : Json.createArrayBuilder()
                 .add(BigDecimal.valueOf(c.getX()).setScale(11, RoundingMode.HALF_UP))
                 .add(BigDecimal.valueOf(c.getY()).setScale(11, RoundingMode.HALF_UP));
     }
 
+    private JsonArrayBuilder getCoorsArray(Iterable<Node> nodes) {
+        final JsonArrayBuilder builder = Json.createArrayBuilder();
+        for (Node n : nodes) {
+            LatLon ll = n.getCoor();
+            if (ll != null) {
+                builder.add(getCoorArray(null, ll));
+            }
+        }
+        return builder;
+    }
+
     protected void appendPrimitive(OsmPrimitive p, JsonArrayBuilder array) {
         if (p.isIncomplete()) {
             return;
@@ -176,12 +203,7 @@ public class GeoJSONWriter {
     protected void appendLayerFeatures(DataSet ds, JsonObjectBuilder object) {
         JsonArrayBuilder array = Json.createArrayBuilder();
         if (ds != null) {
-            for (Node n : ds.getNodes()) {
-                appendPrimitive(n, array);
-            }
-            for (Way w : ds.getWays()) {
-                appendPrimitive(w, array);
-            }
+            ds.allPrimitives().forEach(p -> appendPrimitive(p, array));
         }
         object.add("features", array);
     }
diff --git a/src/org/openstreetmap/josm/io/NmeaReader.java b/src/org/openstreetmap/josm/io/NmeaReader.java
index 013c9fe..9c975d9 100644
--- a/src/org/openstreetmap/josm/io/NmeaReader.java
+++ b/src/org/openstreetmap/josm/io/NmeaReader.java
@@ -29,29 +29,6 @@ import org.openstreetmap.josm.tools.date.DateUtils;
  */
 public class NmeaReader {
 
-    /** Handler for the different types that NMEA speaks. */
-    public enum NMEA_TYPE {
-
-        /** RMC = recommended minimum sentence C. */
-        GPRMC("$GPRMC"),
-        /** GPS positions. */
-        GPGGA("$GPGGA"),
-        /** SA = satellites active. */
-        GPGSA("$GPGSA"),
-        /** Course over ground and ground speed */
-        GPVTG("$GPVTG");
-
-        private final String type;
-
-        NMEA_TYPE(String type) {
-            this.type = type;
-        }
-
-        public String getType() {
-            return this.type;
-        }
-    }
-
     // GPVTG
     public enum GPVTG {
         COURSE(1), COURSE_REF(2), // true course
diff --git a/src/org/openstreetmap/josm/io/protocols/data/DataConnection.java b/src/org/openstreetmap/josm/io/protocols/data/DataConnection.java
new file mode 100644
index 0000000..2702c6f
--- /dev/null
+++ b/src/org/openstreetmap/josm/io/protocols/data/DataConnection.java
@@ -0,0 +1,36 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io.protocols.data;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Base64;
+
+/**
+ * Connection for "data:" protocol allowing to read inlined base64 images.
+ * <p>
+ * See <a href="http://stackoverflow.com/a/9388757/2257172">StackOverflow</a>.
+ * @since 10931
+ */
+public class DataConnection extends URLConnection {
+
+    /**
+     * Constructs a new {@code DataConnection}.
+     * @param u data url
+     */
+    public DataConnection(URL u) {
+        super(u);
+    }
+
+    @Override
+    public void connect() throws IOException {
+        connected = true;
+    }
+
+    @Override
+    public InputStream getInputStream() throws IOException {
+        return new ByteArrayInputStream(Base64.getDecoder().decode(url.toString().replaceFirst("^.*;base64,", "")));
+    }
+}
diff --git a/src/org/openstreetmap/josm/io/protocols/data/Handler.java b/src/org/openstreetmap/josm/io/protocols/data/Handler.java
new file mode 100644
index 0000000..1d1578d
--- /dev/null
+++ b/src/org/openstreetmap/josm/io/protocols/data/Handler.java
@@ -0,0 +1,42 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io.protocols.data;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+import org.openstreetmap.josm.tools.Utils;
+
+/**
+ * Protocol handler for {@code data:} URLs.
+ * This class must be named "Handler" and in a package "data" (fixed named convention)!
+ * <p>
+ * See <a href="http://stackoverflow.com/a/9388757/2257172">StackOverflow</a>.
+ * @since 10931
+ */
+public class Handler extends URLStreamHandler {
+
+    @Override
+    protected URLConnection openConnection(URL u) throws IOException {
+        return new DataConnection(u);
+    }
+
+    /**
+     * Installs protocol handler.
+     */
+    public static void install() {
+        String pkgName = Handler.class.getPackage().getName();
+        String pkg = pkgName.substring(0, pkgName.lastIndexOf('.'));
+
+        String protocolHandlers = System.getProperty("java.protocol.handler.pkgs", "");
+        if (!protocolHandlers.contains(pkg)) {
+            StringBuilder sb = new StringBuilder(protocolHandlers);
+            if (sb.length() > 0) {
+                sb.append('|');
+            }
+            sb.append(pkg);
+            Utils.updateSystemProperty("java.protocol.handler.pkgs", sb.toString());
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/io/protocols/data/package-info.java b/src/org/openstreetmap/josm/io/protocols/data/package-info.java
new file mode 100644
index 0000000..135e97a
--- /dev/null
+++ b/src/org/openstreetmap/josm/io/protocols/data/package-info.java
@@ -0,0 +1,9 @@
+// License: GPL. For details, see LICENSE file.
+
+/**
+ * Provides the classes for registering a protocol handler for "data:".
+ * <p>
+ * See <a href="http://stackoverflow.com/a/9388757/2257172">StackOverflow</a>.
+ * @since 10931
+ */
+package org.openstreetmap.josm.io.protocols.data;
diff --git a/src/org/openstreetmap/josm/plugins/PluginHandler.java b/src/org/openstreetmap/josm/plugins/PluginHandler.java
index 342caa5..661add2 100644
--- a/src/org/openstreetmap/josm/plugins/PluginHandler.java
+++ b/src/org/openstreetmap/josm/plugins/PluginHandler.java
@@ -117,11 +117,11 @@ public final class PluginHandler {
             new DeprecatedPlugin("dumbutils", tr("replaced by new {0} plugin", "utilsplugin2")),
             new DeprecatedPlugin("ImproveWayAccuracy", inCore),
             new DeprecatedPlugin("Curves", tr("replaced by new {0} plugin", "utilsplugin2")),
-            new DeprecatedPlugin("epsg31287", tr("replaced by new {0} plugin", "proj4j")),
+            new DeprecatedPlugin("epsg31287", inCore),
             new DeprecatedPlugin("licensechange", tr("no longer required")),
             new DeprecatedPlugin("restart", inCore),
             new DeprecatedPlugin("wayselector", inCore),
-            new DeprecatedPlugin("openstreetbugs", tr("replaced by new {0} plugin", "notes")),
+            new DeprecatedPlugin("openstreetbugs", inCore),
             new DeprecatedPlugin("nearclick", tr("no longer required")),
             new DeprecatedPlugin("notes", inCore),
             new DeprecatedPlugin("mirrored_download", inCore),
@@ -861,7 +861,7 @@ public final class PluginHandler {
             monitor = NullProgressMonitor.INSTANCE;
         }
         try {
-            monitor.beginTask(tr("Determine plugins to load..."));
+            monitor.beginTask(tr("Determining plugins to load..."));
             Set<String> plugins = new HashSet<>(Main.pref.getCollection("plugins", new LinkedList<String>()));
             if (Main.isDebugEnabled()) {
                 Main.debug("Plugins list initialized to " + plugins);
diff --git a/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java b/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java
index 17e1980..594df35 100644
--- a/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java
+++ b/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java
@@ -129,11 +129,10 @@ public class ReadLocalPluginInformationTask extends PleaseWaitRunnable {
         }
     }
 
-    protected void scanLocalPluginRepository(ProgressMonitor monitor, File pluginsDirectory) {
+    protected void scanLocalPluginRepository(ProgressMonitor progressMonitor, File pluginsDirectory) {
         if (pluginsDirectory == null)
             return;
-        if (monitor == null)
-            monitor = NullProgressMonitor.INSTANCE;
+        ProgressMonitor monitor = progressMonitor != null ? progressMonitor : NullProgressMonitor.INSTANCE;
         try {
             monitor.beginTask("");
             scanSiteCacheFiles(monitor, pluginsDirectory);
diff --git a/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java b/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
index a8654bf..4545ffe 100644
--- a/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
+++ b/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
@@ -7,11 +7,9 @@ import java.awt.Dimension;
 import java.awt.GridBagLayout;
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -235,7 +233,7 @@ public class ReadRemotePluginInformationTask extends PleaseWaitRunnable {
         }
         File cacheFile = createSiteCacheFile(pluginDir, site);
         getProgressMonitor().subTask(tr("Writing plugin list to local cache ''{0}''", cacheFile.toString()));
-        try (PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(cacheFile), StandardCharsets.UTF_8))) {
+        try (PrintWriter writer = new PrintWriter(cacheFile, StandardCharsets.UTF_8.name())) {
             writer.write(list);
             writer.flush();
         } catch (IOException e) {
diff --git a/src/org/openstreetmap/josm/tools/FilteredCollection.java b/src/org/openstreetmap/josm/tools/FilteredCollection.java
deleted file mode 100644
index 50f10a9..0000000
--- a/src/org/openstreetmap/josm/tools/FilteredCollection.java
+++ /dev/null
@@ -1,23 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.tools;
-
-import java.util.Collection;
-import java.util.function.Predicate;
-
-/**
- * The same as SubclassFilteredCollection, but does not restrict the type
- * of the collection to a certain subclass.
- * @param <T> element type of the underlying collection
- * @since 3802
- */
-public class FilteredCollection<T> extends SubclassFilteredCollection<T, T> {
-
-    /**
-     * Constructs a new {@code FilteredCollection}.
-     * @param collection The base collection to filter
-     * @param predicate The predicate to use as filter
-     */
-    public FilteredCollection(Collection<? extends T> collection, Predicate<? super T> predicate) {
-        super(collection, predicate);
-    }
-}
diff --git a/src/org/openstreetmap/josm/tools/Geometry.java b/src/org/openstreetmap/josm/tools/Geometry.java
index 2b0437b..7cafef3 100644
--- a/src/org/openstreetmap/josm/tools/Geometry.java
+++ b/src/org/openstreetmap/josm/tools/Geometry.java
@@ -11,7 +11,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.EnumSet;
-import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
@@ -25,12 +24,11 @@ import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.BBox;
 import org.openstreetmap.josm.data.osm.MultipolygonBuilder;
+import org.openstreetmap.josm.data.osm.MultipolygonBuilder.JoinedPolygon;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.NodePositionComparator;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
-import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
@@ -862,23 +860,6 @@ public final class Geometry {
         return new EastNorth(xC, yC);
     }
 
-    public static class MultiPolygonMembers {
-        public final Set<Way> outers = new HashSet<>();
-        public final Set<Way> inners = new HashSet<>();
-
-        public MultiPolygonMembers(Relation multiPolygon) {
-            for (RelationMember m : multiPolygon.getMembers()) {
-                if (m.getType().equals(OsmPrimitiveType.WAY)) {
-                    if ("outer".equals(m.getRole())) {
-                        outers.add(m.getWay());
-                    } else if ("inner".equals(m.getRole())) {
-                        inners.add(m.getWay());
-                    }
-                }
-            }
-        }
-    }
-
     /**
      * Tests if the {@code node} is inside the multipolygon {@code multiPolygon}. The nullable argument
      * {@code isOuterWayAMatch} allows to decide if the immediate {@code outer} way of the multipolygon is a match.
@@ -903,27 +884,23 @@ public final class Geometry {
      */
     public static boolean isPolygonInsideMultiPolygon(List<Node> nodes, Relation multiPolygon, Predicate<Way> isOuterWayAMatch) {
         // Extract outer/inner members from multipolygon
-        final MultiPolygonMembers mpm = new MultiPolygonMembers(multiPolygon);
-        // Construct complete rings for the inner/outer members
-        final List<MultipolygonBuilder.JoinedPolygon> outerRings;
-        final List<MultipolygonBuilder.JoinedPolygon> innerRings;
+        final Pair<List<JoinedPolygon>, List<JoinedPolygon>> outerInner;
         try {
-            outerRings = MultipolygonBuilder.joinWays(mpm.outers);
-            innerRings = MultipolygonBuilder.joinWays(mpm.inners);
+            outerInner = MultipolygonBuilder.joinWays(multiPolygon);
         } catch (MultipolygonBuilder.JoinedPolygonCreationException ex) {
             Main.trace(ex);
             Main.debug("Invalid multipolygon " + multiPolygon);
             return false;
         }
         // Test if object is inside an outer member
-        for (MultipolygonBuilder.JoinedPolygon out : outerRings) {
+        for (JoinedPolygon out : outerInner.a) {
             if (nodes.size() == 1
                     ? nodeInsidePolygon(nodes.get(0), out.getNodes())
                     : EnumSet.of(PolygonIntersection.FIRST_INSIDE_SECOND, PolygonIntersection.CROSSING).contains(
                             polygonIntersection(nodes, out.getNodes()))) {
                 boolean insideInner = false;
                 // If inside an outer, check it is not inside an inner
-                for (MultipolygonBuilder.JoinedPolygon in : innerRings) {
+                for (JoinedPolygon in : outerInner.b) {
                     if (polygonIntersection(in.getNodes(), out.getNodes()) == PolygonIntersection.FIRST_INSIDE_SECOND
                             && (nodes.size() == 1
                             ? nodeInsidePolygon(nodes.get(0), in.getNodes())
@@ -996,8 +973,10 @@ public final class Geometry {
             for (int i = 1; i <= numSegments; i++) {
                 final Node node = nodes.get(i == numSegments ? 0 : i);
                 final EastNorth p2 = projection == null ? node.getEastNorth() : projection.latlon2eastNorth(node.getCoor());
-                area += p1.east() * p2.north() - p2.east() * p1.north();
-                perimeter += p1.distance(p2);
+                if (p1 != null && p2 != null) {
+                    area += p1.east() * p2.north() - p2.east() * p1.north();
+                    perimeter += p1.distance(p2);
+                }
                 p1 = p2;
             }
         }
diff --git a/src/org/openstreetmap/josm/tools/ImageProvider.java b/src/org/openstreetmap/josm/tools/ImageProvider.java
index f14fda5..ccb28c3 100644
--- a/src/org/openstreetmap/josm/tools/ImageProvider.java
+++ b/src/org/openstreetmap/josm/tools/ImageProvider.java
@@ -107,20 +107,6 @@ public class ImageProvider {
     // CHECKSTYLE.ON: SingleSpaceSeparator
 
     /**
-     * Position of an overlay icon
-     */
-    public enum OverlayPosition {
-        /** North west */
-        NORTHWEST,
-        /** North east */
-        NORTHEAST,
-        /** South west */
-        SOUTHWEST,
-        /** South east */
-        SOUTHEAST
-    }
-
-    /**
      * Supported image types
      */
     public enum ImageType {
diff --git a/src/org/openstreetmap/josm/tools/InputMapUtils.java b/src/org/openstreetmap/josm/tools/InputMapUtils.java
index 87c6873..af08cb3 100644
--- a/src/org/openstreetmap/josm/tools/InputMapUtils.java
+++ b/src/org/openstreetmap/josm/tools/InputMapUtils.java
@@ -66,18 +66,33 @@ public final class InputMapUtils {
      */
     public static void enableEnter(JButton b) {
          b.setFocusable(true);
-         b.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
-         b.getActionMap().put("enter", b.getAction());
+         addEnterAction(b, b.getAction());
     }
 
     /**
      * Add an action activated with Enter key on a component.
      * @param c The Swing component
      * @param a action activated with Enter key
+     * @see JComponent#WHEN_FOCUSED
      */
     public static void addEnterAction(JComponent c, Action a) {
+        addEnterAction(c, a, JComponent.WHEN_FOCUSED);
+    }
+
+    /**
+     * Add an action activated with Enter key on a component or its children.
+     * @param c The Swing component
+     * @param a action activated with Enter key
+     * @see JComponent#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
+     * @since 10790
+     */
+    public static void addEnterActionWhenAncestor(JComponent c, Action a) {
+         addEnterAction(c, a, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
+    }
+
+    private static void addEnterAction(JComponent c, Action a, int condition) {
          c.getActionMap().put("enter", a);
-         c.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
+         c.getInputMap(condition).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
     }
 
     /**
@@ -89,4 +104,16 @@ public final class InputMapUtils {
          c.getActionMap().put("spacebar", a);
          c.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "spacebar");
     }
+
+    /**
+     * Add an action activated with ESCAPE key on a component or its children.
+     * @param c The Swing component
+     * @param a action activated with ESCAPE key
+     * @see JComponent#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
+     * @since 10791
+     */
+    public static void addEscapeAction(JComponent c, Action a) {
+         c.getActionMap().put("escape", a);
+         c.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "escape");
+    }
 }
diff --git a/src/org/openstreetmap/josm/tools/ListenerList.java b/src/org/openstreetmap/josm/tools/ListenerList.java
new file mode 100644
index 0000000..b911e4d
--- /dev/null
+++ b/src/org/openstreetmap/josm/tools/ListenerList.java
@@ -0,0 +1,231 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools;
+
+import java.lang.ref.WeakReference;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Objects;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.stream.Stream;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * This is a list of listeners. It does error checking and allows you to fire all listeners.
+ *
+ * @author Michael Zangl
+ * @param <T> The type of listener contained in this list.
+ * @since 10824
+ */
+public class ListenerList<T> {
+    /**
+     * This is a function that can be invoked for every listener.
+     * @param <T> the listener type.
+     */
+    @FunctionalInterface
+    public interface EventFirerer<T> {
+        /**
+         * Should fire the event for the given listener.
+         * @param listener The listener to fire the event for.
+         */
+        void fire(T listener);
+    }
+
+    private static final class WeakListener<T> {
+
+        private final WeakReference<T> listener;
+
+        WeakListener(T listener) {
+            this.listener = new WeakReference<>(listener);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (obj != null && obj.getClass() == WeakListener.class) {
+                return Objects.equals(listener.get(), ((WeakListener<?>) obj).listener.get());
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            T l = listener.get();
+            if (l == null) {
+                return 0;
+            } else {
+                return l.hashCode();
+            }
+        }
+
+        @Override
+        public String toString() {
+            return "WeakListener [listener=" + listener + ']';
+        }
+    }
+
+    private final CopyOnWriteArrayList<T> listeners = new CopyOnWriteArrayList<>();
+    private final CopyOnWriteArrayList<WeakListener<T>> weakListeners = new CopyOnWriteArrayList<>();
+
+    protected ListenerList() {
+        // hide
+    }
+
+    /**
+     * Adds a listener. The listener will not prevent the object from being garbage collected.
+     *
+     * This should be used with care. It is better to add good cleanup code.
+     * @param listener The listener.
+     */
+    public synchronized void addWeakListener(T listener) {
+        ensureNotInList(listener);
+        // clean the weak listeners, just to be sure...
+        while (weakListeners.remove(new WeakListener<T>(null))) {
+            // continue
+        }
+        weakListeners.add(new WeakListener<>(listener));
+    }
+
+    /**
+     * Adds a listener.
+     * @param listener The listener to add.
+     */
+    public synchronized void addListener(T listener) {
+        ensureNotInList(listener);
+        listeners.add(listener);
+    }
+
+    private void ensureNotInList(T listener) {
+        CheckParameterUtil.ensureParameterNotNull(listener, "listener");
+        if (containsListener(listener)) {
+            failAdd(listener);
+        }
+    }
+
+    protected void failAdd(T listener) {
+        throw new IllegalArgumentException(
+                MessageFormat.format("Listener {0} (instance of {1}) was already registered.", listener,
+                        listener.getClass().getName()));
+    }
+
+    private boolean containsListener(T listener) {
+        return listeners.contains(listener) || weakListeners.contains(new WeakListener<>(listener));
+    }
+
+    /**
+     * Removes a listener.
+     * @param listener The listener to remove.
+     * @throws IllegalArgumentException if the listener was not registered before
+     */
+    public synchronized void removeListener(T listener) {
+        if (!listeners.remove(listener) && !weakListeners.remove(new WeakListener<>(listener))) {
+            failRemove(listener);
+        }
+    }
+
+    protected void failRemove(T listener) {
+        throw new IllegalArgumentException(
+                MessageFormat.format("Listener {0} (instance of {1}) was not registered before or already removed.",
+                        listener, listener.getClass().getName()));
+    }
+
+    /**
+     * Check if any listeners are registered.
+     * @return <code>true</code> if any are registered.
+     */
+    public boolean hasListeners() {
+        return !listeners.isEmpty();
+    }
+
+    /**
+     * Fires an event to every listener.
+     * @param eventFirerer The firerer to invoke the event method of the listener.
+     */
+    public void fireEvent(EventFirerer<T> eventFirerer) {
+        for (T l : listeners) {
+            eventFirerer.fire(l);
+        }
+        for (Iterator<WeakListener<T>> iterator = weakListeners.iterator(); iterator.hasNext();) {
+            WeakListener<T> weakLink = iterator.next();
+            T l = weakLink.listener.get();
+            if (l != null) {
+                // cleanup during add() should be enough to not cause memory leaks
+                // therefore, we ignore null listeners.
+                eventFirerer.fire(l);
+            }
+        }
+    }
+
+    /**
+     * This is a special {@link ListenerList} that traces calls to the add/remove methods. This may cause memory leaks.
+     * @author Michael Zangl
+     *
+     * @param <T> The type of listener contained in this list
+     */
+    public static class TracingListenerList<T> extends ListenerList<T> {
+        private final HashMap<T, StackTraceElement[]> listenersAdded = new HashMap<>();
+        private final HashMap<T, StackTraceElement[]> listenersRemoved = new HashMap<>();
+
+        protected TracingListenerList() {
+            // hidden
+        }
+
+        @Override
+        public synchronized void addListener(T listener) {
+            super.addListener(listener);
+            listenersRemoved.remove(listener);
+            listenersAdded.put(listener, Thread.currentThread().getStackTrace());
+        }
+
+        @Override
+        public synchronized void addWeakListener(T listener) {
+            super.addWeakListener(listener);
+            listenersRemoved.remove(listener);
+            listenersAdded.put(listener, Thread.currentThread().getStackTrace());
+        }
+
+        @Override
+        public synchronized void removeListener(T listener) {
+            super.removeListener(listener);
+            listenersAdded.remove(listener);
+            listenersRemoved.put(listener, Thread.currentThread().getStackTrace());
+        }
+
+        @Override
+        protected void failAdd(T listener) {
+            Main.trace("Previous addition of the listener");
+            dumpStack(listenersAdded.get(listener));
+            super.failAdd(listener);
+        }
+
+        @Override
+        protected void failRemove(T listener) {
+            Main.trace("Previous removal of the listener");
+            dumpStack(listenersRemoved.get(listener));
+            super.failRemove(listener);
+        }
+
+        private static void dumpStack(StackTraceElement[] stackTraceElements) {
+            if (stackTraceElements == null) {
+                Main.trace("  - (no trace recorded)");
+            } else {
+                Stream.of(stackTraceElements).limit(20).forEach(
+                        e -> Main.trace(e.getClassName() + "." + e.getMethodName() + " line " + e.getLineNumber()));
+            }
+        }
+    }
+
+    /**
+     * Create a new listener list
+     * @param <T> The listener type the list should hold.
+     * @return A new list. A tracing list is created if trace is enabled.
+     */
+    public static <T> ListenerList<T> create() {
+        if (Main.isTraceEnabled()) {
+            return new TracingListenerList<>();
+        } else {
+            return new ListenerList<>();
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/tools/Logging.java b/src/org/openstreetmap/josm/tools/Logging.java
new file mode 100644
index 0000000..d918678
--- /dev/null
+++ b/src/org/openstreetmap/josm/tools/Logging.java
@@ -0,0 +1,370 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Supplier;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+
+import org.openstreetmap.josm.tools.bugreport.BugReport;
+
+/**
+ * This class contains utility methods to log errors and warnings.
+ * <p>
+ * There are multiple log levels supported.
+ * @author Michael Zangl
+ * @since 10899
+ */
+public final class Logging {
+    /**
+     * The josm internal log level indicating a severe error in the application that usually leads to a crash.
+     */
+    public static final Level LEVEL_ERROR = Level.SEVERE;
+    /**
+     * The josm internal log level to use when something that may lead to a crash or wrong behaviour has happened.
+     */
+    public static final Level LEVEL_WARN = Level.WARNING;
+    /**
+     * The josm internal log level to use for important events that will be useful when debugging problems
+     */
+    public static final Level LEVEL_INFO = Level.INFO;
+    /**
+     * The josm internal log level to print debug output
+     */
+    public static final Level LEVEL_DEBUG = Level.FINE;
+    /**
+     * The finest log level josm supports. This lets josm print a lot of debug output.
+     */
+    public static final Level LEVEL_TRACE = Level.FINEST;
+    private static final Logger LOGGER = Logger.getAnonymousLogger();
+    private static final RememberWarningHandler WARNINGS = new RememberWarningHandler();
+
+    static {
+        LOGGER.setLevel(Level.ALL);
+        LOGGER.setUseParentHandlers(false);
+
+        ConsoleHandler stderr = new ConsoleHandler();
+        LOGGER.addHandler(stderr);
+        stderr.setLevel(LEVEL_WARN);
+
+        ConsoleHandler stdout = new ConsoleHandler() {
+            @Override
+            protected synchronized void setOutputStream(OutputStream out) {
+                // overwrite output stream.
+                super.setOutputStream(System.out);
+            }
+
+            @Override
+            public void publish(LogRecord record) {
+                if (!stderr.isLoggable(record)) {
+                    super.publish(record);
+                }
+            }
+        };
+        LOGGER.addHandler(stdout);
+        stdout.setLevel(Level.ALL);
+
+        LOGGER.addHandler(WARNINGS);
+    }
+
+    private Logging() {
+        // hide
+    }
+
+    /**
+     * Set the global log level.
+     * @param level The log level to use
+     */
+    public static void setLogLevel(Level level) {
+        LOGGER.setLevel(level);
+    }
+
+    /**
+     * Prints an error message if logging is on.
+     * @param message The message to print.
+     */
+    public static void error(String message) {
+        logPrivate(LEVEL_ERROR, message);
+    }
+
+    /**
+     * Prints a formatted error message if logging is on. Calls {@link MessageFormat#format}
+     * function to format text.
+     * @param pattern The formatted message to print.
+     * @param args The objects to insert into format string.
+     */
+    public static void error(String pattern, Object... args) {
+        logPrivate(LEVEL_ERROR, pattern, args);
+    }
+
+    /**
+     * Prints a warning message if logging is on.
+     * @param message The message to print.
+     */
+    public static void warn(String message) {
+        logPrivate(LEVEL_WARN, message);
+    }
+
+    /**
+     * Prints a formatted warning message if logging is on. Calls {@link MessageFormat#format}
+     * function to format text.
+     * @param pattern The formatted message to print.
+     * @param args The objects to insert into format string.
+     */
+    public static void warn(String pattern, Object... args) {
+        logPrivate(LEVEL_WARN, pattern, args);
+    }
+
+    /**
+     * Prints a info message if logging is on.
+     * @param message The message to print.
+     */
+    public static void info(String message) {
+        logPrivate(LEVEL_INFO, message);
+    }
+
+    /**
+     * Prints a formatted info message if logging is on. Calls {@link MessageFormat#format}
+     * function to format text.
+     * @param pattern The formatted message to print.
+     * @param args The objects to insert into format string.
+     */
+    public static void info(String pattern, Object... args) {
+        logPrivate(LEVEL_INFO, pattern, args);
+    }
+
+    /**
+     * Prints a debug message if logging is on.
+     * @param message The message to print.
+     */
+    public static void debug(String message) {
+        logPrivate(LEVEL_DEBUG, message);
+    }
+
+    /**
+     * Prints a formatted debug message if logging is on. Calls {@link MessageFormat#format}
+     * function to format text.
+     * @param pattern The formatted message to print.
+     * @param args The objects to insert into format string.
+     */
+    public static void debug(String pattern, Object... args) {
+        logPrivate(LEVEL_DEBUG, pattern, args);
+    }
+
+    /**
+     * Prints a trace message if logging is on.
+     * @param message The message to print.
+     */
+    public static void trace(String message) {
+        logPrivate(LEVEL_TRACE, message);
+    }
+
+    /**
+     * Prints a formatted trace message if logging is on. Calls {@link MessageFormat#format}
+     * function to format text.
+     * @param pattern The formatted message to print.
+     * @param args The objects to insert into format string.
+     */
+    public static void trace(String pattern, Object... args) {
+        logPrivate(LEVEL_TRACE, pattern, args);
+    }
+
+    /**
+     * Logs a throwable that happened.
+     * @param level The level.
+     * @param t The throwable that should be logged.
+     */
+    public static void log(Level level, Throwable t) {
+        logPrivate(level, () -> getErrorLog(null, t));
+    }
+
+    /**
+     * Logs a throwable that happened.
+     * @param level The level.
+     * @param message An additional error message
+     * @param t The throwable that caused the message
+     */
+    public static void log(Level level, String message, Throwable t) {
+        logPrivate(level, () -> getErrorLog(message, t));
+    }
+
+    /**
+     * Logs a throwable that happened. Adds the stack trace to the log.
+     * @param level The level.
+     * @param t The throwable that should be logged.
+     */
+    public static void logWithStackTrace(Level level, Throwable t) {
+        logPrivate(level, () -> getErrorLogWithStack(null, t));
+    }
+
+    /**
+     * Logs a throwable that happened. Adds the stack trace to the log.
+     * @param level The level.
+     * @param message An additional error message
+     * @param t The throwable that should be logged.
+     */
+    public static void logWithStackTrace(Level level, String message, Throwable t) {
+        logPrivate(level, () -> getErrorLogWithStack(message, t));
+    }
+
+    private static void logPrivate(Level level, String pattern, Object... args) {
+        logPrivate(level, () -> MessageFormat.format(pattern, args));
+    }
+
+    private static void logPrivate(Level level, String message) {
+        logPrivate(level, () -> message);
+    }
+
+    private static void logPrivate(Level level, Supplier<String> supplier) {
+        // all log methods immeadiately call one of the logPrivate methods.
+        if (LOGGER.isLoggable(level)) {
+            StackTraceElement callingMethod = BugReport.getCallingMethod(1, Logging.class.getName(), name -> !"logPrivate".equals(name));
+            LOGGER.logp(level, callingMethod.getClassName(), callingMethod.getMethodName(), supplier);
+        }
+    }
+
+    /**
+     * Tests if a given log level is enabled. This can be used to avoid constructing debug data if required.
+     *
+     * For formatting text, you should use the {@link #debug(String, Object...)} message
+     * @param level A lvele constant. You can e.g. use {@link Logging#LEVEL_ERROR}
+     * @return <code>true</code> if debug is enabled.
+     */
+    public static boolean isLoggingEnabled(Level level) {
+        return LOGGER.isLoggable(level);
+    }
+
+    private static String getErrorLog(String message, Throwable t) {
+        StringBuilder sb = new StringBuilder();
+        if (message != null) {
+            sb.append(message).append(": ");
+        }
+        sb.append(getErrorMessage(t));
+        return sb.toString();
+    }
+
+    private static String getErrorLogWithStack(String message, Throwable t) {
+        StringWriter sb = new StringWriter();
+        sb.append(getErrorLog(message, t));
+        sb.append('\n');
+        t.printStackTrace(new PrintWriter(sb));
+        return sb.toString();
+    }
+
+    /**
+     * Returns a human-readable message of error, also usable for developers.
+     * @param t The error
+     * @return The human-readable error message
+     */
+    public static String getErrorMessage(Throwable t) {
+        if (t == null) {
+            return "(no error)";
+        }
+        StringBuilder sb = new StringBuilder(t.getClass().getName());
+        String msg = t.getMessage();
+        if (msg != null) {
+            sb.append(": ").append(msg.trim());
+        }
+        Throwable cause = t.getCause();
+        if (cause != null && !cause.equals(t)) {
+            // this may cause infinite loops in the unlikely case that there is a loop in the causes.
+            sb.append(". ").append(tr("Cause: ")).append(getErrorMessage(cause));
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Clear the list of last warnings
+     */
+    public static void clearLastErrorAndWarnings() {
+        WARNINGS.clear();
+    }
+
+    /**
+     * Get the last error and warning messages in the order in which they were received.
+     * @return The last errors and warnings.
+     */
+    public static List<String> getLastErrorAndWarnings() {
+        return WARNINGS.getMessages();
+    }
+
+    /**
+     * Provides direct access to the logger used. Use of methods like {@link #warn(String)} is prefered.
+     * @return The logger
+     */
+    public static Logger getLogger() {
+        return LOGGER;
+    }
+
+    private static class RememberWarningHandler extends Handler {
+        private final String[] log = new String[10];
+        private int messagesLogged;
+
+        RememberWarningHandler() {
+            setLevel(LEVEL_WARN);
+        }
+
+        synchronized void clear() {
+            messagesLogged = 0;
+            Arrays.fill(log, null);
+        }
+
+        @Override
+        public synchronized void publish(LogRecord record) {
+            if (!isLoggable(record)) {
+                return;
+            }
+
+            String msg = getPrefix(record) + record.getMessage();
+
+            // Only remember first line of message
+            int idx = msg.indexOf('\n');
+            if (idx > 0) {
+                msg = msg.substring(0, idx);
+            }
+            log[messagesLogged % log.length] = msg;
+            messagesLogged++;
+        }
+
+        private static String getPrefix(LogRecord record) {
+            if (record.getLevel().equals(LEVEL_WARN)) {
+                return "W: ";
+            } else {
+                // worse than warn
+                return "E: ";
+            }
+        }
+
+        synchronized List<String> getMessages() {
+            List<String> logged = Arrays.asList(log);
+            ArrayList<String> res = new ArrayList<>();
+            int logOffset = messagesLogged % log.length;
+            if (messagesLogged > logOffset) {
+                res.addAll(logged.subList(logOffset, log.length));
+            }
+            res.addAll(logged.subList(0, logOffset));
+            return res;
+        }
+
+        @Override
+        public synchronized void flush() {
+            // nothing to do
+        }
+
+        @Override
+        public void close() {
+            // nothing to do
+        }
+    }
+}
diff --git a/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java b/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java
index 71fa139..8832885 100644
--- a/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java
+++ b/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java
@@ -37,7 +37,9 @@ public final class OverpassTurboQueryWizard {
     }
 
     private OverpassTurboQueryWizard() {
-
+        if (engine == null) {
+            throw new IllegalStateException("Failed to retrieve JavaScript engine");
+        }
         try (CachedFile file = new CachedFile("resource://data/overpass-wizard.js");
              Reader reader = file.getContentReader()) {
             engine.eval("var console = {error: " + Main.class.getCanonicalName() + ".warn};");
diff --git a/src/org/openstreetmap/josm/tools/Predicates.java b/src/org/openstreetmap/josm/tools/Predicates.java
deleted file mode 100644
index e9b927b..0000000
--- a/src/org/openstreetmap/josm/tools/Predicates.java
+++ /dev/null
@@ -1,141 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.tools;
-
-import java.util.Collection;
-import java.util.Objects;
-import java.util.function.Predicate;
-import java.util.regex.Pattern;
-
-import org.openstreetmap.josm.data.osm.OsmPrimitive;
-
-/**
- * Utility class for creating {@link Predicate}s.
- * @deprecated Use corresponding lambda expressions instead
- */
- at Deprecated
-public final class Predicates {
-
-    private Predicates() {
-    }
-
-    /**
-     * Creates a predicate that returns true every time.
-     * @param <T> The type of the predicate.
-     * @return A predicate returning <code>true</code>
-     * @since 10040
-     */
-    public static <T> Predicate<T> alwaysTrue() {
-        return o -> true;
-    }
-
-    /**
-     * Creates a predicate that returns false every time.
-     * @param <T> The type of the predicate.
-     * @return A predicate returning <code>false</code>
-     * @since 10040
-     */
-    public static <T> Predicate<T> alwaysFalse() {
-        return o -> false;
-    }
-
-    /**
-     * Returns a {@link Predicate} executing {@link Objects#equals}.
-     * @param <T> type of items
-     * @param ref the reference object
-     * @return a {@link Predicate} executing {@link Objects#equals}
-     */
-    public static <T> Predicate<T> equalTo(final T ref) {
-        return obj -> Objects.equals(obj, ref);
-    }
-
-    /**
-     * Creates a new predicate that checks if elements are exactly of that class.
-     * @param <T> The predicate type.
-     * @param clazz The class the elements must have.
-     * @return The new predicate.
-     * @throws IllegalArgumentException if clazz is null
-     */
-    public static <T> Predicate<T> isOfClass(final Class<? extends T> clazz) {
-        CheckParameterUtil.ensureParameterNotNull(clazz, "clazz");
-        return obj -> obj != null && obj.getClass() == clazz;
-    }
-
-    /**
-     * Creates a new predicate that checks if the object is of a given class.
-     * @param <T> The predicate type.
-     * @param clazz The class objects need to be of.
-     * @return The new predicate.
-     * @throws IllegalArgumentException if clazz is null
-     * @since 10286
-     */
-    public static <T> Predicate<T> isInstanceOf(final Class<? extends T> clazz) {
-        CheckParameterUtil.ensureParameterNotNull(clazz, "clazz");
-        return clazz::isInstance;
-    }
-
-    /**
-     * Returns a {@link Predicate} executing {@link Pattern#matcher(CharSequence)} and {@link java.util.regex.Matcher#matches}.
-     * @param pattern the pattern
-     * @return a {@link Predicate} executing {@link Pattern#matcher(CharSequence)} and {@link java.util.regex.Matcher#matches}
-     */
-    public static Predicate<String> stringMatchesPattern(final Pattern pattern) {
-        return string -> pattern.matcher(string).matches();
-    }
-
-    /**
-     * Returns a {@link Predicate} executing {@link Pattern#matcher(CharSequence)} and {@link java.util.regex.Matcher#find}.
-     * @param pattern the pattern
-     * @return a {@link Predicate} executing {@link Pattern#matcher(CharSequence)} and {@link java.util.regex.Matcher#find}
-     */
-    public static Predicate<String> stringContainsPattern(final Pattern pattern) {
-        return pattern.asPredicate();
-    }
-
-    /**
-     * Returns a {@link Predicate} executing {@link String#contains(CharSequence)}.
-     * @param pattern the pattern
-     * @return a {@link Predicate} executing {@link String#contains(CharSequence)}
-     */
-    public static Predicate<String> stringContains(final String pattern) {
-        return string -> string.contains(pattern);
-    }
-
-    /**
-     * Returns a {@link Predicate} executing {@link OsmPrimitive#hasTag(String, String...)}.
-     * @param key the key forming the tag
-     * @param values one or many values forming the tag
-     * @return a {@link Predicate} executing {@link OsmPrimitive#hasTag(String, String...)}
-     */
-    public static Predicate<OsmPrimitive> hasTag(final String key, final String... values) {
-        return p -> p.hasTag(key, values);
-    }
-
-    /**
-     * Returns a {@link Predicate} executing {@link OsmPrimitive#hasKey(String)}.
-     * @param key the key
-     * @return a {@link Predicate} executing {@link OsmPrimitive#hasKey(String)}
-     */
-    public static Predicate<OsmPrimitive> hasKey(final String key) {
-        return p -> p.hasKey(key);
-    }
-
-    /**
-     * Returns a {@link Predicate} executing {@link Collection#contains(Object)}.
-     * @param <T> type of items
-     * @param target collection
-     * @return a {@link Predicate} executing {@link Collection#contains(Object)}
-     */
-    public static <T> Predicate<T> inCollection(final Collection<? extends T> target) {
-        return target::contains;
-    }
-
-    /**
-     * Returns a {@link Predicate} testing whether objects are {@code null}.
-     * @param <T> type of items
-     * @return a {@link Predicate} testing whether objects are {@code null}
-     */
-    public static <T> Predicate<T> isNull() {
-        return Objects::isNull;
-    }
-
-}
diff --git a/src/org/openstreetmap/josm/tools/Utils.java b/src/org/openstreetmap/josm/tools/Utils.java
index 461d3a1..bb77570 100644
--- a/src/org/openstreetmap/josm/tools/Utils.java
+++ b/src/org/openstreetmap/josm/tools/Utils.java
@@ -829,7 +829,7 @@ public final class Utils {
      * @param str The string to strip
      * @return <code>str</code>, without leading and trailing characters, according to
      *         {@link Character#isWhitespace(char)} and {@link Character#isSpaceChar(char)}.
-     * @see <a href="http://closingbraces.net/2008/11/11/javastringtrim/">Java’s String.trim has a strange idea of whitespace</a>
+     * @see <a href="http://closingbraces.net/2008/11/11/javastringtrim/">Java String.trim has a strange idea of whitespace</a>
      * @see <a href="https://bugs.openjdk.java.net/browse/JDK-4080617">JDK bug 4080617</a>
      * @see <a href="https://bugs.openjdk.java.net/browse/JDK-7190385">JDK bug 7190385</a>
      * @since 5772
@@ -1315,10 +1315,12 @@ public final class Utils {
     public static String updateSystemProperty(String key, String value) {
         if (value != null) {
             String old = System.setProperty(key, value);
-            if (!key.toLowerCase(Locale.ENGLISH).contains("password")) {
-                Main.debug("System property '" + key + "' set to '" + value + "'. Old value was '" + old + '\'');
-            } else {
-                Main.debug("System property '" + key + "' changed.");
+            if (Main.isDebugEnabled()) {
+                if (!key.toLowerCase(Locale.ENGLISH).contains("password")) {
+                    Main.debug("System property '" + key + "' set to '" + value + "'. Old value was '" + old + '\'');
+                } else {
+                    Main.debug("System property '" + key + "' changed.");
+                }
             }
             return old;
         }
@@ -1551,4 +1553,22 @@ public final class Utils {
             });
         }
     }
+
+    /**
+     * Clamp a value to the given range
+     * @param val The value
+     * @param min minimum value
+     * @param max maximum value
+     * @return the value
+     * @since 10805
+     */
+    public static double clamp(double val, double min, double max) {
+        if (val < min) {
+            return min;
+        } else if (val > max) {
+            return max;
+        } else {
+            return val;
+        }
+    }
 }
diff --git a/src/org/openstreetmap/josm/tools/bugreport/BugReport.java b/src/org/openstreetmap/josm/tools/bugreport/BugReport.java
index d47586f..bf6db66 100644
--- a/src/org/openstreetmap/josm/tools/bugreport/BugReport.java
+++ b/src/org/openstreetmap/josm/tools/bugreport/BugReport.java
@@ -5,6 +5,7 @@ import java.io.PrintWriter;
 import java.io.Serializable;
 import java.io.StringWriter;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.function.Predicate;
 
 import org.openstreetmap.josm.actions.ShowStatusReportAction;
 
@@ -122,7 +123,11 @@ public final class BugReport implements Serializable {
         StringWriter stringWriter = new StringWriter();
         PrintWriter out = new PrintWriter(stringWriter);
         if (isIncludeStatusReport()) {
-            out.println(ShowStatusReportAction.getReportHeader());
+            try {
+                out.println(ShowStatusReportAction.getReportHeader());
+            } catch (RuntimeException e) {
+                out.println("Could not generate status report: " + e.getMessage());
+            }
         }
         if (isIncludeData()) {
             exception.printReportDataTo(out);
@@ -180,16 +185,32 @@ public final class BugReport implements Serializable {
      * @return The method name.
      */
     public static String getCallingMethod(int offset) {
+        StackTraceElement found = getCallingMethod(offset + 1, BugReport.class.getName(), "getCallingMethod"::equals);
+        if (found != null) {
+            return found.getClassName().replaceFirst(".*\\.", "") + '#' + found.getMethodName();
+        } else {
+            return "?";
+        }
+    }
+
+    /**
+     * Find the method that called the given method on the current stack trace.
+     * @param offset
+     *           How many methods to look back in the stack trace.
+     *           1 gives the method calling this method, 0 gives you the method with the given name..
+     * @param className The name of the class to search for
+     * @param methodName The name of the method to search for
+     * @return The class and method name or null if it is unknown.
+     */
+    public static StackTraceElement getCallingMethod(int offset, String className, Predicate<String> methodName) {
         StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
-        String className = BugReport.class.getName();
         for (int i = 0; i < stackTrace.length - offset; i++) {
             StackTraceElement element = stackTrace[i];
-            if (className.equals(element.getClassName()) && "getCallingMethod".equals(element.getMethodName())) {
-                StackTraceElement toReturn = stackTrace[i + offset];
-                return toReturn.getClassName().replaceFirst(".*\\.", "") + '#' + toReturn.getMethodName();
+            if (className.equals(element.getClassName()) && methodName.test(element.getMethodName())) {
+                return stackTrace[i + offset];
             }
         }
-        return "?";
+        return null;
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/tools/bugreport/BugReportDialog.java b/src/org/openstreetmap/josm/tools/bugreport/BugReportDialog.java
index f4dec4c..31d2fa6 100644
--- a/src/org/openstreetmap/josm/tools/bugreport/BugReportDialog.java
+++ b/src/org/openstreetmap/josm/tools/bugreport/BugReportDialog.java
@@ -8,26 +8,30 @@ import java.awt.Frame;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
 
 import javax.swing.AbstractAction;
 import javax.swing.BorderFactory;
 import javax.swing.Icon;
 import javax.swing.JButton;
 import javax.swing.JCheckBox;
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
+import javax.swing.JOptionPane;
 import javax.swing.JPanel;
-import javax.swing.KeyStroke;
 import javax.swing.UIManager;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.ExpertToggleAction;
+import org.openstreetmap.josm.gui.preferences.plugin.PluginPreference;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
 import org.openstreetmap.josm.gui.widgets.UrlLabel;
+import org.openstreetmap.josm.plugins.PluginDownloadTask;
+import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
+import org.openstreetmap.josm.tools.bugreport.BugReportQueue.SuppressionMode;
 
 /**
  * This is a dialog that can be used to display a bug report.
@@ -42,7 +46,8 @@ public class BugReportDialog extends JDialog {
     private final JPanel content = new JPanel(new GridBagLayout());
     private final BugReport report;
     private final DebugTextDisplay textPanel;
-    private JCheckBox cbSuppress;
+    private JCheckBox cbSuppressSingle;
+    private JCheckBox cbSuppressAll;
 
     /**
      * Create a new dialog.
@@ -57,7 +62,7 @@ public class BugReportDialog extends JDialog {
         addMessageSection();
 
         addUpToDateSection();
-        // TODO: Notify user about plugin updates
+        // TODO: Notify user about plugin updates, then remove that notification that is displayed before this dialog is displayed.
 
         addCreateTicketSection();
 
@@ -71,8 +76,7 @@ public class BugReportDialog extends JDialog {
         setModal(true);
         setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 
-        getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "escape");
-        getRootPane().getActionMap().put("escape", new AbstractAction() {
+        InputMapUtils.addEscapeAction(getRootPane(), new AbstractAction() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 closeDialog();
@@ -148,12 +152,15 @@ public class BugReportDialog extends JDialog {
 
     private void addIgnoreButton() {
         JPanel panel = new JPanel(new GridBagLayout());
-        cbSuppress = new JCheckBox(tr("Suppress further error dialogs for this session."));
-        cbSuppress.setVisible(false);
-        panel.add(cbSuppress, GBC.std().fill(GBC.HORIZONTAL));
+        cbSuppressSingle = new JCheckBox(tr("Suppress this error for this session."));
+        cbSuppressSingle.setVisible(false);
+        panel.add(cbSuppressSingle, GBC.std(0, 0).fill(GBC.HORIZONTAL));
+        cbSuppressAll = new JCheckBox(tr("Suppress further error dialogs for this session."));
+        cbSuppressAll.setVisible(false);
+        panel.add(cbSuppressAll, GBC.std(0, 1).fill(GBC.HORIZONTAL));
         JButton ignore = new JButton(tr("Ignore this error."));
         ignore.addActionListener(e -> closeDialog());
-        panel.add(ignore, GBC.eol());
+        panel.add(ignore, GBC.std(1, 0).span(1, 2).anchor(GBC.CENTER));
         content.add(panel, GBC.eol().fill(GBC.HORIZONTAL).insets(20));
     }
 
@@ -162,7 +169,17 @@ public class BugReportDialog extends JDialog {
      * @param showSuppress <code>true</code> to show the suppress errors checkbox.
      */
     public void setShowSuppress(boolean showSuppress) {
-        cbSuppress.setVisible(showSuppress);
+        cbSuppressSingle.setVisible(showSuppress);
+        pack();
+    }
+
+    /**
+     * Shows or hides the suppress all errors button
+     * @param showSuppress <code>true</code> to show the suppress errors checkbox.
+     * @since 10819
+     */
+    public void setShowSuppressAll(boolean showSuppress) {
+        cbSuppressAll.setVisible(showSuppress);
         pack();
     }
 
@@ -170,8 +187,14 @@ public class BugReportDialog extends JDialog {
      * Check if the checkbox to suppress further errors was selected
      * @return <code>true</code> if the user wishes to suppress errors.
      */
-    public boolean shouldSuppressFurtherErrors() {
-        return cbSuppress.isSelected();
+    public SuppressionMode shouldSuppressFurtherErrors() {
+        if (cbSuppressAll.isSelected()) {
+            return SuppressionMode.ALL;
+        } else if (cbSuppressSingle.isSelected()) {
+            return SuppressionMode.SAME;
+        } else {
+            return SuppressionMode.NONE;
+        }
     }
 
     private void closeDialog() {
@@ -201,4 +224,42 @@ public class BugReportDialog extends JDialog {
         }
         return null;
     }
+
+    /**
+     * Show the bug report for a given exception
+     * @param e The exception to display
+     * @param exceptionCounter A counter of how many exceptions have already been worked on
+     * @return The new suppression status
+     * @since 10819
+     */
+    public static SuppressionMode showFor(ReportedException e, int exceptionCounter) {
+        if (e.isOutOfMemory()) {
+            // do not translate the string, as translation may raise an exception
+            JOptionPane.showMessageDialog(Main.parent, "JOSM is out of memory. " +
+                    "Strange things may happen.\nPlease restart JOSM with the -Xmx###M option,\n" +
+                    "where ### is the number of MB assigned to JOSM (e.g. 256).\n" +
+                    "Currently, " + Runtime.getRuntime().maxMemory()/1024/1024 + " MB are available to JOSM.",
+                    "Error",
+                    JOptionPane.ERROR_MESSAGE
+                    );
+            return SuppressionMode.NONE;
+        } else {
+            return GuiHelper.runInEDTAndWaitAndReturn(() -> {
+                PluginDownloadTask downloadTask = PluginHandler.updateOrdisablePluginAfterException(e);
+                if (downloadTask != null) {
+                    // Ask for restart to install new plugin
+                    PluginPreference.notifyDownloadResults(
+                            Main.parent, downloadTask, !downloadTask.getDownloadedPlugins().isEmpty());
+                    return SuppressionMode.NONE;
+                }
+
+                BugReport report = new BugReport(e);
+                BugReportDialog dialog = new BugReportDialog(report);
+                dialog.setShowSuppress(exceptionCounter > 0);
+                dialog.setShowSuppressAll(exceptionCounter > 1);
+                dialog.setVisible(true);
+                return dialog.shouldSuppressFurtherErrors();
+            });
+        }
+    }
 }
diff --git a/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java b/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java
index 461b73f..1decdd1 100644
--- a/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java
+++ b/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java
@@ -1,16 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.tools.bugreport;
 
-import java.awt.GraphicsEnvironment;
-
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.gui.preferences.plugin.PluginPreference;
-import org.openstreetmap.josm.plugins.PluginDownloadTask;
-import org.openstreetmap.josm.plugins.PluginHandler;
-
 /**
  * An exception handler that asks the user to send a bug report.
  *
@@ -19,62 +9,6 @@ import org.openstreetmap.josm.plugins.PluginHandler;
  */
 public final class BugReportExceptionHandler implements Thread.UncaughtExceptionHandler {
 
-    private static boolean handlingInProgress;
-    private static volatile BugReporterThread bugReporterThread;
-    private static int exceptionCounter;
-    private static boolean suppressExceptionDialogs;
-
-    static final class BugReporterThread extends Thread {
-
-        private final class BugReporterWorker implements Runnable {
-            private final PluginDownloadTask pluginDownloadTask;
-
-            private BugReporterWorker(PluginDownloadTask pluginDownloadTask) {
-                this.pluginDownloadTask = pluginDownloadTask;
-            }
-
-            @Override
-            public void run() {
-                // Then ask for submitting a bug report, for exceptions thrown from a plugin too, unless updated to a new version
-                if (pluginDownloadTask == null) {
-                    askForBugReport(e);
-                } else {
-                    // Ask for restart to install new plugin
-                    PluginPreference.notifyDownloadResults(
-                            Main.parent, pluginDownloadTask, !pluginDownloadTask.getDownloadedPlugins().isEmpty());
-                }
-            }
-        }
-
-        private final Throwable e;
-
-        /**
-         * Constructs a new {@code BugReporterThread}.
-         * @param t the exception
-         */
-        private BugReporterThread(Throwable t) {
-            super("Bug Reporter");
-            this.e = t;
-        }
-
-        static void askForBugReport(final Throwable e) {
-            if (GraphicsEnvironment.isHeadless()) {
-                return;
-            }
-            BugReport report = new BugReport(BugReport.intercept(e));
-            BugReportDialog dialog = new BugReportDialog(report);
-            dialog.setShowSuppress(exceptionCounter > 1);
-            dialog.setVisible(true);
-            suppressExceptionDialogs = dialog.shouldSuppressFurtherErrors();
-        }
-
-        @Override
-        public void run() {
-            // Give the user a chance to deactivate the plugin which threw the exception (if it was thrown from a plugin)
-            SwingUtilities.invokeLater(new BugReporterWorker(PluginHandler.updateOrdisablePluginAfterException(e)));
-        }
-    }
-
     @Override
     public void uncaughtException(Thread t, Throwable e) {
         handleException(e);
@@ -85,33 +19,7 @@ public final class BugReportExceptionHandler implements Thread.UncaughtException
      * @param e the exception
      */
     public static synchronized void handleException(final Throwable e) {
-        if (handlingInProgress || suppressExceptionDialogs)
-            return;                  // we do not handle secondary exceptions, this gets too messy
-        if (bugReporterThread != null && bugReporterThread.isAlive())
-            return;
-        handlingInProgress = true;
-        exceptionCounter++;
-        try {
-            Main.error(e);
-            if (Main.parent != null) {
-                if (e instanceof OutOfMemoryError) {
-                    // do not translate the string, as translation may raise an exception
-                    JOptionPane.showMessageDialog(Main.parent, "JOSM is out of memory. " +
-                            "Strange things may happen.\nPlease restart JOSM with the -Xmx###M option,\n" +
-                            "where ### is the number of MB assigned to JOSM (e.g. 256).\n" +
-                            "Currently, " + Runtime.getRuntime().maxMemory()/1024/1024 + " MB are available to JOSM.",
-                            "Error",
-                            JOptionPane.ERROR_MESSAGE
-                            );
-                    return;
-                }
-
-                bugReporterThread = new BugReporterThread(e);
-                bugReporterThread.start();
-            }
-        } finally {
-            handlingInProgress = false;
-        }
+        BugReport.intercept(e).warn();
     }
 
     /**
@@ -119,6 +27,6 @@ public final class BugReportExceptionHandler implements Thread.UncaughtException
      * @return {@code true} if an exception is currently being handled, {@code false} otherwise
      */
     public static boolean exceptionHandlingInProgress() {
-        return handlingInProgress;
+        return BugReportQueue.getInstance().exceptionHandlingInProgress();
     }
 }
diff --git a/src/org/openstreetmap/josm/tools/bugreport/BugReportQueue.java b/src/org/openstreetmap/josm/tools/bugreport/BugReportQueue.java
new file mode 100644
index 0000000..7ca45db
--- /dev/null
+++ b/src/org/openstreetmap/josm/tools/bugreport/BugReportQueue.java
@@ -0,0 +1,149 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools.bugreport;
+
+import java.awt.GraphicsEnvironment;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.function.BiFunction;
+import java.util.function.Predicate;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * This class handles the display of the bug report dialog.
+ * @author Michael Zangl
+ * @since 10819
+ */
+public class BugReportQueue {
+
+    private static final BugReportQueue INSTANCE = new BugReportQueue();
+
+    private final LinkedList<ReportedException> reportsToDisplay = new LinkedList<>();
+    private boolean suppressAllMessages;
+    private final ArrayList<ReportedException> suppressFor = new ArrayList<>();
+    private Thread displayThread;
+    private final BiFunction<ReportedException, Integer, SuppressionMode> bugReportHandler = getBestHandler();
+    private final CopyOnWriteArrayList<Predicate<ReportedException>> handlers = new CopyOnWriteArrayList<>();
+    private int displayedErrors;
+
+    private boolean inReportDialog;
+
+    /**
+     * The suppression mode that should be used after the dialog was closed.
+     */
+    public enum SuppressionMode {
+        /**
+         * Suppress no dialogs.
+         */
+        NONE,
+        /**
+         * Suppress only the ones that are for the same error
+         */
+        SAME,
+        /**
+         * Suppress all report dialogs
+         */
+        ALL
+    }
+
+    /**
+     * Submit a new error to be displayed
+     * @param report The error to display
+     */
+    public synchronized void submit(ReportedException report) {
+        if (suppressAllMessages || suppressFor.stream().anyMatch(report::isSame)) {
+            Main.info("User requested to skip error " + report);
+        } else if (reportsToDisplay.size() > 100 || reportsToDisplay.stream().filter(report::isSame).count() >= 10) {
+            Main.warn("Too many errors. Dropping " + report);
+        } else {
+            reportsToDisplay.add(report);
+            if (displayThread == null) {
+                displayThread = new Thread(this::displayAll, "bug-report-display");
+                displayThread.start();
+            }
+            notifyAll();
+        }
+    }
+
+    private void displayAll() {
+        try {
+            while (true) {
+                ReportedException e = getNext();
+                SuppressionMode suppress = displayFor(e);
+                handleDialogResult(e, suppress);
+            }
+        } catch (InterruptedException e) {
+            displayFor(BugReport.intercept(e));
+        }
+    }
+
+    private synchronized void handleDialogResult(ReportedException e, SuppressionMode suppress) {
+        if (suppress == SuppressionMode.ALL) {
+            suppressAllMessages = true;
+            reportsToDisplay.clear();
+        } else if (suppress == SuppressionMode.SAME) {
+            suppressFor.add(e);
+            reportsToDisplay.removeIf(e::isSame);
+        }
+        displayedErrors++;
+        inReportDialog = false;
+    }
+
+    private synchronized ReportedException getNext() throws InterruptedException {
+        while (reportsToDisplay.isEmpty()) {
+            wait();
+        }
+        inReportDialog = true;
+        return reportsToDisplay.removeFirst();
+    }
+
+    private SuppressionMode displayFor(ReportedException e) {
+        if (handlers.stream().anyMatch(p -> p.test(e))) {
+            Main.trace("Intercepted by handler.");
+            return SuppressionMode.NONE;
+        }
+        return bugReportHandler.apply(e, getDisplayedErrors());
+    }
+
+    private synchronized int getDisplayedErrors() {
+        return displayedErrors;
+    }
+
+    /**
+     * Check if the dialog is shown. Should only be used for e.g. debugging.
+     * @return <code>true</code> if the exception handler is still showing the exception to the user.
+     */
+    public synchronized boolean exceptionHandlingInProgress() {
+        return !reportsToDisplay.isEmpty() || inReportDialog;
+    }
+
+    private static BiFunction<ReportedException, Integer, SuppressionMode> getBestHandler() {
+        if (GraphicsEnvironment.isHeadless()) {
+            return (e, index) -> {
+                e.printStackTrace();
+                return SuppressionMode.NONE;
+            };
+        } else {
+            return BugReportDialog::showFor;
+        }
+    }
+
+    /**
+     * Allows you to peek or even intersect the bug reports.
+     * @param handler The handler. It can return false to stop all further handling of the exception.
+     * @since 10886
+     */
+    public void addBugReportHandler(Predicate<ReportedException> handler) {
+        handlers.add(handler);
+    }
+
+    /**
+     * Gets the global bug report queue
+     * @return The queue
+     * @since 10886
+     */
+    public static BugReportQueue getInstance() {
+        return INSTANCE;
+    }
+}
diff --git a/src/org/openstreetmap/josm/tools/bugreport/JosmUpdatePanel.java b/src/org/openstreetmap/josm/tools/bugreport/JosmUpdatePanel.java
index 18af149..48092ee 100644
--- a/src/org/openstreetmap/josm/tools/bugreport/JosmUpdatePanel.java
+++ b/src/org/openstreetmap/josm/tools/bugreport/JosmUpdatePanel.java
@@ -81,7 +81,7 @@ public class JosmUpdatePanel extends JPanel {
 
     private void displayOutOfDate(int testedVersion) {
         testedVersionField
-                .setText(tr("JOSM is out of date. The current version is {0}. Try updateing JOSM.", testedVersion));
+                .setText(tr("JOSM is out of date. The current version is {0}. Try updating JOSM.", testedVersion));
         showUpdateButton();
     }
 
diff --git a/src/org/openstreetmap/josm/tools/bugreport/ReportedException.java b/src/org/openstreetmap/josm/tools/bugreport/ReportedException.java
index 22efa08..110f17e 100644
--- a/src/org/openstreetmap/josm/tools/bugreport/ReportedException.java
+++ b/src/org/openstreetmap/josm/tools/bugreport/ReportedException.java
@@ -65,7 +65,11 @@ public class ReportedException extends RuntimeException {
      */
     public void warn() {
         methodWarningFrom = BugReport.getCallingMethod(2);
-        // TODO: Open the dialog.
+        try {
+            BugReportQueue.getInstance().submit(this);
+        } catch (RuntimeException e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -242,14 +246,10 @@ public class ReportedException extends RuntimeException {
 
     @Override
     public String toString() {
-        return new StringBuilder(48)
-            .append("CrashReportedException [on thread ")
-            .append(caughtOnThread)
-            .append(']')
-            .toString();
+        return "ReportedException [thread=" + caughtOnThread + ", exception=" + exception
+                + ", methodWarningFrom=" + methodWarningFrom + "]";
     }
 
-
     /**
      * Check if this exception may be caused by a threading issue.
      * @return <code>true</code> if it is.
@@ -261,6 +261,15 @@ public class ReportedException extends RuntimeException {
     }
 
     /**
+     * Check if this is caused by an out of memory situaition
+     * @return <code>true</code> if it is.
+     * @since 10819
+     */
+    public boolean isOutOfMemory() {
+        return StreamUtils.toStream(CauseTraceIterator::new).anyMatch(t -> t instanceof OutOfMemoryError);
+    }
+
+    /**
      * Iterates over the causes for this exception. Ignores cycles and aborts iteration then.
      * @author Michal Zangl
      * @since 10585
diff --git a/styles/standard/elemstyles.mapcss b/styles/standard/elemstyles.mapcss
index 7538a76..5b21bcd 100644
--- a/styles/standard/elemstyles.mapcss
+++ b/styles/standard/elemstyles.mapcss
@@ -64,7 +64,7 @@ setting::partial_fill {
 /*********************/
 
 relation[restriction=no_left_turn][!setting("alt_turn_icons")] {
-    icon-image: "presets/vehicle/restriction/turn_restrictions/no_left_turn_red.png";
+    icon-image: "presets/vehicle/restriction/turn_restrictions/no_left_turn_red.svg";
     set icon_z17;
     text: auto;
 }
@@ -74,7 +74,7 @@ relation[restriction=no_left_turn][setting("alt_turn_icons")] {
     text: auto;
 }
 relation[restriction=no_right_turn][!setting("alt_turn_icons")] {
-    icon-image: "presets/vehicle/restriction/turn_restrictions/no_right_turn_red.png";
+    icon-image: "presets/vehicle/restriction/turn_restrictions/no_right_turn_red.svg";
     set icon_z17;
     text: auto;
 }
@@ -84,7 +84,7 @@ relation[restriction=no_right_turn][setting("alt_turn_icons")] {
     text: auto;
 }
 relation[restriction=no_straight_on][!setting("alt_turn_icons")] {
-    icon-image: "presets/vehicle/restriction/turn_restrictions/no_straight_on_red.png";
+    icon-image: "presets/vehicle/restriction/turn_restrictions/no_straight_on_red.svg";
     set icon_z17;
     text: auto;
 }
@@ -276,9 +276,8 @@ node[traffic_sign][toll][!is_prop_set(icon-image)] {
 /* building/entrance/address */
 /*****************************/
 
-node["addr:housenumber"],
-node["addr:postcode"] {
-    icon-image: "presets/misc/housenumber.png";
+node["addr:housenumber"] {
+    icon-image: "presets/misc/housenumber_small.svg";
     set icon_z17;
 }
 way["addr:interpolation"=odd] {
@@ -308,11 +307,11 @@ node[building][!building?!] {
     set icon_z17;
 }
 node[building=garage] {
-    icon-image: "presets/landuse/garages.png";
+    icon-image: "presets/landuse/garages.svg";
     set icon_z17;
 }
 node[building=garages] {
-    icon-image: "presets/landuse/garages.png";
+    icon-image: "presets/landuse/garages.svg";
     set icon_z17;
 }
 node[building=transformer_tower] {
@@ -321,23 +320,23 @@ node[building=transformer_tower] {
 }
 node[entrance=yes],
 node[entrance=staircase] {
-    icon-image: "presets/misc/entrance-yes.png";
+    icon-image: "presets/misc/entrance_yes.svg";
     set icon_z17;
 }
 node[entrance=main] {
-    icon-image: "presets/misc/entrance-main.png";
+    icon-image: "presets/misc/entrance_main.svg";
     set icon_z17;
 }
 node[entrance=service] {
-    icon-image: "presets/misc/entrance-service.png";
+    icon-image: "presets/misc/entrance_service.svg";
     set icon_z17;
 }
 node[entrance=exit] {
-    icon-image: "presets/misc/entrance-exit.png";
+    icon-image: "presets/misc/entrance_exit.svg";
     set icon_z17;
 }
 node[entrance=emergency] {
-    icon-image: "presets/misc/entrance-emergency.png";
+    icon-image: "presets/misc/entrance_emergency.svg";
     set icon_z17;
 }
 node[building=entrance],
@@ -360,7 +359,7 @@ node[barrier=bollard] {
     set icon_z17;
 }
 node[barrier=gate] {
-    icon-image: "presets/barrier/gate.png";
+    icon-image: "presets/barrier/gate.svg";
     set icon_z17;
 }
 way[barrier=yes],
@@ -380,7 +379,7 @@ way[barrier=kerb] {
 }
 way[barrier=retaining_wall],
 way[barrier=kerb] {
-    repeat-image: "presets/misc/cliff-pattern.png";
+    repeat-image: "presets/misc/cliff_pattern.svg";
     repeat-image-align: top;
 }
 node[barrier=hedge],
@@ -428,8 +427,7 @@ area[barrier=toll_booth]:closed {
     fill-color: barrier#F0F050;
 }
 node[barrier=toll_booth] {
-    icon-image: "presets/barrier/toll_station.png";
-    icon-width: 16;
+    icon-image: "presets/barrier/toll_station.svg";
     set icon_z17;
 }
 node[barrier=entrance] {
@@ -437,12 +435,11 @@ node[barrier=entrance] {
     set icon_z17;
 }
 node[barrier=cattle_grid] {
-    icon-image: "presets/barrier/cattle_grid.png";
+    icon-image: "presets/barrier/cattle_grid.svg";
     set icon_z17;
 }
 node[barrier=border_control] {
-    icon-image: "presets/barrier/douane.png";
-    icon-width: 16;
+    icon-image: "presets/barrier/douane.svg";
     set icon_z17;
 }
 node[barrier=sally_port] {
@@ -453,10 +450,13 @@ node[barrier=spikes] {
     icon-image: "presets/barrier/spikes.svg";
     set icon_z17;
 }
+node[barrier=jersey_barrier] {
+    icon-image: "presets/barrier/jersey_barrier.svg";
+    set icon_z17;
+}
 node[barrier=kissing_gate][!is_prop_set(icon-image)],
 node[barrier=bump_gate][!is_prop_set(icon-image)],
 node[barrier=bus_trap][!is_prop_set(icon-image)],
-node[barrier=jersey_barrier][!is_prop_set(icon-image)],
 node[barrier=hampshire_gate][!is_prop_set(icon-image)] {
     icon-image: "presets/misc/no_icon.svg";
     set icon_z17;
@@ -690,7 +690,7 @@ node[highway=traffic_signals][crossing=traffic_signals] {
     set icon_z17;
 }
 node[highway=street_lamp] {
-    icon-image: "presets/misc/streetlamp.png";
+    icon-image: "presets/misc/streetlamp.svg";
     set icon_z17;
 }
 node[highway=speed_camera] {
@@ -744,7 +744,7 @@ node[highway=rest_area] {
     icon-image: "presets/vehicle/rest_area.svg";
     set icon_z17;
 }
-node[highway=ford], node[ford?] {
+node[ford?] {
     icon-image: "presets/vehicle/ford.svg";
     set icon_z17;
 }
@@ -1060,7 +1060,7 @@ way[route=ski]::core_piste {
     width: 6;
     color: ski#809bc0;
 }
-area[piste:difficulty=easy][!highway]:closed::core_piste {
+area[piste:difficulty=easy][!highway][area=yes]::core_piste {
     fill-color: piste_easy#0000ff;
 }
 way[piste:difficulty=easy]::core_piste {
@@ -1069,7 +1069,7 @@ way[piste:difficulty=easy]::core_piste {
     width: 6;
     color: piste_easy#0000ff;
 }
-area[piste:difficulty=intermediate][!highway]:closed::core_piste {
+area[piste:difficulty=intermediate][!highway][area=yes]::core_piste {
     fill-color: piste_intermediate#ff0000;
 }
 way[piste:difficulty=intermediate]::core_piste {
@@ -1078,7 +1078,7 @@ way[piste:difficulty=intermediate]::core_piste {
     width: 6;
     color: piste_intermediate#ff0000;
 }
-area[piste:difficulty=advanced][!highway]:closed::core_piste {
+area[piste:difficulty=advanced][!highway][area=yes]::core_piste {
     fill-color: piste_advanced#606060;
 }
 way[piste:difficulty=advanced]::core_piste {
@@ -1087,7 +1087,7 @@ way[piste:difficulty=advanced]::core_piste {
     width: 6;
     color: piste_advanced#606060;
 }
-area[piste:difficulty=expert][!highway]:closed::core_piste {
+area[piste:difficulty=expert][!highway][area=yes]::core_piste {
     fill-color: piste_expert#606060;
 }
 way[piste:difficulty=expert]::core_piste {
@@ -1096,7 +1096,7 @@ way[piste:difficulty=expert]::core_piste {
     width: 6;
     color: piste_expert#606060;
 }
-area[piste:difficulty=freeride][!highway]:closed::core_piste {
+area[piste:difficulty=freeride][!highway][area=yes]::core_piste {
     fill-color: piste_freeride#ffff00;
 }
 way[piste:difficulty=freeride]::core_piste {
@@ -1105,7 +1105,7 @@ way[piste:difficulty=freeride]::core_piste {
     width: 6;
     color: piste_freeride#ffff00;
 }
-area[piste:difficulty=novice][!highway]:closed::core_piste {
+area[piste:difficulty=novice][!highway][area=yes]::core_piste {
     fill-color: piste_novice#00ff00;
 }
 way[piste:difficulty=novice]::core_piste {
@@ -1301,7 +1301,7 @@ area[man_made=mineshaft] {
     fill-color: manmade#d8d8d8;
 }
 node[man_made=beacon] {
-    icon-image: "presets/landmark/beacon.png";
+    icon-image: "presets/landmark/beacon.svg";
     set icon_z17;
 }
 node[man_made=bridge] {
@@ -1313,28 +1313,23 @@ node[bridge:support] {
     set icon_z17;
 }
 node[man_made=chimney] {
-    icon-image: "presets/landmark/chimney.png";
-    icon-width: 16;
+    icon-image: "presets/landmark/chimney.svg";
     set icon_z17;
 }
 node[man_made=flagpole] {
-    icon-image: "presets/misc/flag.png";
-    icon-width: 16;
+    icon-image: "presets/misc/flag.svg";
     set icon_z17;
 }
 node[man_made=gasometer] {
     icon-image: "presets/landmark/gasometer.svg";
-    icon-width: 16;
     set icon_z17;
 }
 node[man_made=silo] {
     icon-image: "presets/landmark/silo.svg";
-    icon-width: 16;
     set icon_z17;
 }
 node[man_made=storage_tank] {
     icon-image: "presets/landmark/storage_tank.svg";
-    icon-width: 16;
     set icon_z17;
 }
 node[man_made=bunker_silo] {
@@ -1360,8 +1355,7 @@ node[man_made=lighthouse] {
     set icon_z17;
 }
 node[man_made=monitoring_station] {
-    icon-image: "presets/misc/monitoring_station.png";
-    icon-height: 16;
+    icon-image: "presets/misc/monitoring_station.svg";
     set icon_z17;
 }
 node[man_made=mineshaft] {
@@ -1449,8 +1443,7 @@ node[man_made=reservoir_covered] {
     set icon_z17;
 }
 node[man_made=surveillance] {
-    icon-image: "presets/service/surveillance.png";
-    icon-width: 16;
+    icon-image: "presets/service/surveillance.svg";
     set icon_z17;
 }
 node[man_made=survey_point] {
@@ -1458,7 +1451,7 @@ node[man_made=survey_point] {
     set icon_z17;
 }
 node[man_made=tower] {
-    icon-image: "presets/landmark/tower.png";
+    icon-image: "presets/landmark/tower.svg";
     set icon_z17;
 }
 node[man_made=wastewater_plant] {
@@ -1486,8 +1479,7 @@ node[man_made=works] {
     set icon_z17;
 }
 node[man_made=water_works] {
-    icon-image: "presets/landmark/water_works.png";
-    icon-width: 16;
+    icon-image: "presets/landmark/water_works.svg";
     set icon_z17;
 }
 way[man_made=cutline] {
@@ -1624,29 +1616,32 @@ area[leisure=sports_centre],
 area[leisure=fitness_centre],
 area[leisure=stadium],
 area[leisure=horse_riding],
+area[leisure=beach_resort],
 area[leisure=water_park] {
     fill-color: leisure#c7f1a3;
 }
 node[leisure=sports_centre] {
-    icon-image: "presets/sport/centre.png";
+    icon-image: "presets/sport/sports_centre.svg";
     set icon_z17;
 }
 node[leisure=fitness_centre] {
-    icon-image: "presets/sport/fitness_centre.png";
-    icon-width: 16;
+    icon-image: "presets/sport/fitness_centre.svg";
     set icon_z17;
 }
 node[leisure=stadium] {
-    icon-image: "presets/sport/stadium.png";
+    icon-image: "presets/sport/stadium.svg";
     set icon_z17;
 }
 node[leisure=horse_riding] {
-    icon-image: "presets/leisure/equestrian.png";
-    icon-width: 16;
+    icon-image: "presets/leisure/horse_riding.svg";
+    set icon_z17;
+}
+node[leisure=beach_resort] {
+    icon-image: "presets/leisure/beach_resort.svg";
     set icon_z17;
 }
 node[leisure=water_park] {
-    icon-image: "presets/leisure/water_park.png";
+    icon-image: "presets/leisure/water_park.svg";
     set icon_z17;
 }
 area[leisure=track][!area?!]:closed {
@@ -1657,21 +1652,21 @@ way[leisure=track] {
     color: leisuretrack#d4f4b9;
 }
 node[leisure=track] {
-    icon-image: "presets/sport/track.png";
+    icon-image: "presets/sport/track.svg";
     set icon_z17;
 }
 area[leisure=pitch] {
     fill-color: pitch#baee8d;
 }
 node[leisure=pitch] {
-    icon-image: "presets/sport/pitch.png";
+    icon-image: "presets/sport/pitch.svg";
     set icon_z17;
 }
 area[leisure=marina] {
     fill-color: marina#0070cf;
 }
 node[leisure=marina] {
-    icon-image: "presets/nautical/marina.png";
+    icon-image: "presets/nautical/marina.svg";
     set icon_z17;
 }
 way[leisure=slipway] {
@@ -1679,7 +1674,7 @@ way[leisure=slipway] {
     color: leisure#c7f1a3;
 }
 node[leisure=slipway] {
-    icon-image: "presets/nautical/slipway.png";
+    icon-image: "presets/nautical/slipway.svg";
     set icon_z17;
 }
 area[leisure=fishing],
@@ -1693,7 +1688,7 @@ area[leisure=firepit] {
     fill-color: leisure#c7f1a3;
 }
 node[leisure=fishing] {
-    icon-image: "presets/sport/fishing.png";
+    icon-image: "presets/sport/fishing.svg";
     set icon_z17;
 }
 node[leisure=bird_hide] {
@@ -1701,7 +1696,7 @@ node[leisure=bird_hide] {
     set icon_z17;
 }
 node[leisure=nature_reserve] {
-    icon-image: "presets/leisure/nature_reserve.png";
+    icon-image: "presets/leisure/nature_reserve.svg";
     set icon_z17;
 }
 node[leisure=park] {
@@ -1713,11 +1708,11 @@ node[leisure=playground] {
     set icon_z17;
 }
 node[leisure=garden] {
-    icon-image: "presets/leisure/garden.png";
+    icon-image: "presets/leisure/garden.svg";
     set icon_z17;
 }
 node[leisure=common] {
-    icon-image: "presets/leisure/common.png";
+    icon-image: "presets/leisure/common.svg";
     set icon_z17;
 }
 node[leisure=firepit] { 
@@ -1725,7 +1720,7 @@ node[leisure=firepit] {
     set icon_z17;
 }
 node[leisure=picnic_table] {
-    icon-image: "presets/leisure/picnic.png";
+    icon-image: "presets/leisure/picnic.svg";
     set icon_z17;
 }
 area[leisure=swimming_pool] {
@@ -1751,18 +1746,15 @@ node[leisure=miniature_golf] {
     set icon_z17;
 }
 node[leisure=dog_park] {
-    icon-image: "presets/leisure/dogpark.png";
-    icon-width: 16;
+    icon-image: "presets/leisure/dogpark.svg";
     set icon_z17;
 }
 node[leisure=ice_rink] {
-    icon-image: "presets/sport/ice_hockey.png";
-    icon-width: 16;
+    icon-image: "presets/sport/ice_hockey.svg";
     set icon_z17;
 }
 node[leisure=sauna] {
-    icon-image: "presets/leisure/sauna.png";
-    icon-width: 16;
+    icon-image: "presets/leisure/sauna.svg";
     set icon_z17;
 }
 area[leisure=golf_course] {
@@ -1848,7 +1840,6 @@ area[shop=beverages],
 area[shop=books],
 area[shop=boutique],
 area[shop=car],
-area[shop=car_dealer],
 area[shop=car_repair],
 area[shop=tyres],
 area[shop=chemist],
@@ -1856,6 +1847,7 @@ area[shop=tobacco],
 area[shop=clothes],
 area[shop=computer],
 area[shop=confectionery],
+area[shop=pastry],
 area[shop=copyshop],
 area[shop=curtain],
 area[shop=cycle_repair],
@@ -1926,16 +1918,15 @@ node[shop=supermarket] {
     set icon_z17;
 }
 node[shop=convenience] {
-    icon-image: "presets/shop/convenience.png";
-    icon-width: 16;
+    icon-image: "presets/shop/convenience.svg";
     set icon_z17;
 }
 node[shop=bakery] {
-    icon-image: "presets/shop/groceries/bakery.png";
+    icon-image: "presets/shop/groceries/bakery.svg";
     set icon_z17;
 }
 node[shop=butcher] {
-    icon-image: "presets/shop/groceries/butcher.png";
+    icon-image: "presets/shop/groceries/butcher.svg";
     set icon_z17;
 }
 node[shop=bicycle] {
@@ -1972,12 +1963,10 @@ node[shop=books] {
     set icon_z17;
 }
 node[shop=boutique] {
-    icon-image: "presets/shop/boutique.png";
-    icon-width: 16;
+    icon-image: "presets/shop/boutique.svg";
     set icon_z17;
 }
-node[shop=car],
-node[shop=car_dealer] {
+node[shop=car] {
     icon-image: "presets/shop/vehicle.svg";
     set icon_z17;
 }
@@ -2009,14 +1998,16 @@ node[shop=confectionery] {
     icon-image: "presets/shop/groceries/confectionery.svg";
     set icon_z17;
 }
+node[shop=pastry] {
+    icon-image: "presets/shop/groceries/pastry.svg";
+    set icon_z17;
+}
 node[shop=copyshop] {
-    icon-image: "presets/shop/copyshop.png";
-    icon-width: 16;
+    icon-image: "presets/shop/copyshop.svg";
     set icon_z17;
 }
 node[shop=curtain] {
-    icon-image: "presets/shop/curtain.png";
-    icon-width: 16;
+    icon-image: "presets/shop/curtain.svg";
     set icon_z17;
 }
 node[shop=cycle_repair] {
@@ -2028,8 +2019,7 @@ node[shop=department_store] {
     set icon_z17;
 }
 node[shop=deli] {
-    icon-image: "presets/shop/groceries/deli.png";
-    icon-width: 16;
+    icon-image: "presets/shop/groceries/deli.svg";
     set icon_z17;
 }
 node[shop=electronics] {
@@ -2037,8 +2027,7 @@ node[shop=electronics] {
     set icon_z17;
 }
 node[shop=erotic] {
-    icon-image: "presets/shop/erotic.png";
-    icon-width: 16;
+    icon-image: "presets/shop/erotic.svg";
     set icon_z17;
 }
 node[shop=furniture] {
@@ -2046,8 +2035,7 @@ node[shop=furniture] {
     set icon_z17;
 }
 node[shop=fabric] {
-    icon-image: "presets/shop/fabric.png";
-    icon-width: 16;
+    icon-image: "presets/shop/fabric.svg";
     set icon_z17;
 }
 node[shop=florist] {
@@ -2055,8 +2043,7 @@ node[shop=florist] {
     set icon_z17;
 }
 node[shop=frame] {
-    icon-image: "presets/shop/frame.png";
-    icon-width: 16;
+    icon-image: "presets/shop/frame.svg";
     set icon_z17;
 }
 node[shop=gift] {
@@ -2064,8 +2051,7 @@ node[shop=gift] {
     set icon_z17;
 }
 node[shop=greengrocer] {
-    icon-image: "presets/shop/groceries/greengrocer.png";
-    icon-width: 16;
+    icon-image: "presets/shop/groceries/greengrocer.svg";
     set icon_z17;
 }
 node[shop=garden_centre] {
@@ -2077,13 +2063,11 @@ node[shop=hairdresser] {
     set icon_z17;
 }
 node[shop=hardware] {
-    icon-image: "presets/shop/hardware.png";
-    icon-width: 16;
+    icon-image: "presets/shop/hardware.svg";
     set icon_z17;
 }
 node[shop=hearing_aids] {
-    icon-image: "presets/shop/hearing_aids.png";
-    icon-height: 16;
+    icon-image: "presets/shop/hearing_aids.svg";
     set icon_z17;
 }
 node[shop=hifi] {
@@ -2099,8 +2083,7 @@ node[shop=jewelry] {
     set icon_z17;
 }
 node[shop=kitchen] {
-    icon-image: "presets/shop/kitchen.png";
-    icon-width: 16;
+    icon-image: "presets/shop/kitchen.svg";
     set icon_z17;
 }
 node[shop=mall] {
@@ -2108,8 +2091,7 @@ node[shop=mall] {
     set icon_z17;
 }
 node[shop=mobile_phone] {
-    icon-image: "presets/shop/mobile_phone.png";
-    icon-width: 16;
+    icon-image: "presets/shop/mobile_phone.svg";
     set icon_z17;
 }
 node[shop=motorcycle] {
@@ -2117,8 +2099,7 @@ node[shop=motorcycle] {
     set icon_z17;
 }
 node[shop=musical_instrument] {
-    icon-image: "presets/shop/musical_instrument.png";
-    icon-height: 16;
+    icon-image: "presets/shop/musical_instrument.svg";
     set icon_z17;
 }
 node[shop=newsagent] {
@@ -2134,8 +2115,7 @@ node[shop=medical_supply] {
     set icon_z17;
 }
 node[shop=paint] {
-    icon-image: "presets/shop/paint.png";
-    icon-width: 16;
+    icon-image: "presets/shop/paint.svg";
     set icon_z17;
 }
 node[shop=pawnbroker] {
@@ -2143,8 +2123,7 @@ node[shop=pawnbroker] {
     set icon_z17;
 }
 node[shop=seafood] {
-    icon-image: "presets/shop/groceries/seafood.png";
-    icon-width: 16;
+    icon-image: "presets/shop/groceries/seafood.svg";
     set icon_z17;
 }
 node[shop=shoes] {
@@ -2156,8 +2135,7 @@ node[shop=sports] {
     set icon_z17;
 }
 node[shop=stationery] {
-    icon-image: "presets/shop/stationery.png";
-    icon-width: 16;
+    icon-image: "presets/shop/stationery.svg";
     set icon_z17;
 }
 node[shop=tailor] {
@@ -2165,8 +2143,7 @@ node[shop=tailor] {
     set icon_z17;
 }
 node[shop=travel_agency] {
-    icon-image: "presets/shop/travel.png";
-    icon-width: 16;
+    icon-image: "presets/shop/travel_agency.svg";
     set icon_z17;
 }
 node[shop=toys] {
@@ -2174,17 +2151,15 @@ node[shop=toys] {
     set icon_z17;
 }
 node[shop=vacuum_cleaner] {
-    icon-image: "presets/shop/vacuum_cleaner.png";
-    icon-height: 16;
+    icon-image: "presets/shop/vacuum_cleaner.svg";
     set icon_z17;
 }
 node[shop=variety_store] {
-    icon-image: "presets/shop/variety_store.png";
-    icon-width: 16;
+    icon-image: "presets/shop/variety_store.svg";
     set icon_z17;
 }
 node[shop=video] {
-    icon-image: "presets/shop/video.png";
+    icon-image: "presets/shop/video.svg";
     set icon_z17;
 }
 node[shop=bookmaker] {
@@ -2221,7 +2196,7 @@ node[shop=car_parts] {
     set icon_z17;
 }
 node[shop=video_games] {
-    icon-image: "presets/shop/video_games.png";
+    icon-image: "presets/shop/video_games.svg";
     set icon_z17;
 }
 node[shop=bed] {
@@ -2265,7 +2240,7 @@ node[shop=wine] {
     set icon_z17;
 }
 node[shop=farm] {
-    icon-image: "presets/shop/groceries/apple.png";
+    icon-image: "presets/shop/groceries/farm.svg";
     set icon_z17;
 }
 node[shop=tattoo] {
@@ -2344,21 +2319,19 @@ area[amenity=ice_cream] {
     fill-color: amenity#ecba52;
 }
 node[amenity=pub] {
-    icon-image: "presets/food/pub.png";
-    icon-height: 16;
+    icon-image: "presets/food/pub.svg";
     set icon_z17;
 }
 node[amenity=biergarten] {
-    icon-image: "presets/food/biergarten.png";
-    icon-width: 16;
+    icon-image: "presets/food/biergarten.svg";
     set icon_z17;
 }
 node[amenity=nightclub] {
-    icon-image: "presets/leisure/discoball.svg";
+    icon-image: "presets/leisure/nightclub.svg";
     set icon_z17;
 }
 node[amenity=stripclub] {
-    icon-image: "presets/leisure/nightclub.png";
+    icon-image: "presets/leisure/stripclub.svg";
     set icon_z17;
 }
 node[amenity=casino] {
@@ -2366,12 +2339,11 @@ node[amenity=casino] {
     set icon_z17;
 }
 node[amenity=brothel] {
-    icon-image: "presets/leisure/stripclub.png";
+    icon-image: "presets/leisure/brothel.svg";
     set icon_z17;
 }
 node[amenity=cafe] {
-    icon-image: "presets/food/cafe.png";
-    icon-width: 16;
+    icon-image: "presets/food/cafe.svg";
     set icon_z17;
 }
 node[amenity=restaurant] {
@@ -2379,12 +2351,11 @@ node[amenity=restaurant] {
     set icon_z17;
 }
 node[amenity=food_court] {
-    icon-image: "presets/food/food_court.png";
-    icon-width: 16;
+    icon-image: "presets/food/food_court.svg";
     set icon_z17;
 }
 node[amenity=fast_food] {
-    icon-image: "presets/food/fastfood.png";
+    icon-image: "presets/food/fast_food.svg";
     set icon_z17;
 }
 node[amenity=bar] {
@@ -2392,7 +2363,7 @@ node[amenity=bar] {
     set icon_z17;
 }
 node[amenity=ice_cream] {
-    icon-image: "presets/food/icecream.png";
+    icon-image: "presets/food/ice_cream.svg";
     set icon_z17;
 }
 area[amenity=bicycle_parking]:closed {
@@ -2481,7 +2452,7 @@ node[amenity=fuel] {
     set icon_z17;
 }
 node[amenity=charging_station] {
-    icon-image: "presets/vehicle/charging_station.png";
+    icon-image: "presets/vehicle/charging_station.svg";
     set icon_z17;
 }
 node[amenity=grit_bin] {
@@ -2521,11 +2492,11 @@ node[amenity=recycling][recycling_type=centre] {
     icon-image: "presets/service/recycling/recycling_centre.svg";
 }
 node[amenity=waste_basket] {
-    icon-image: "presets/service/recycling/trash-bin.svg";
+    icon-image: "presets/service/recycling/waste_basket.svg";
     set icon_z17;
 }
 node[amenity=waste_disposal] {
-    icon-image: "presets/service/recycling/waste_disposal.png";
+    icon-image: "presets/service/recycling/waste_disposal.svg";
     set icon_z17;
 }
 node[amenity=sanitary_dump_station] {
@@ -2538,17 +2509,15 @@ area[amenity=community_centre] {
     fill-color: amenity_light#f7efb7;
 }
 node[amenity=townhall] {
-    icon-image: "presets/service/townhall.png";
+    icon-image: "presets/service/townhall.svg";
     set icon_z17;
 }
 node[amenity=embassy] {
-    icon-image: "presets/service/embassy.png";
-    icon-width: 16;
+    icon-image: "presets/service/embassy.svg";
     set icon_z17;
 }
 node[amenity=community_centre] {
-    icon-image: "presets/service/community_centre.png";
-    icon-width: 16;
+    icon-image: "presets/service/community_centre.svg";
     set icon_z17;
 }
 area[amenity=water_point],
@@ -2556,7 +2525,7 @@ area[amenity=fountain] {
     fill-color: light_water#00005f;
 }
 node[amenity=drinking_water] {
-    icon-image: "presets/food/drinking_water.png";
+    icon-image: "presets/food/drinking_water.svg";
     set icon_z17;
 }
 node[amenity=water_point] {
@@ -2564,7 +2533,7 @@ node[amenity=water_point] {
     set icon_z17;
 }
 node[amenity=fountain] {
-    icon-image: "presets/misc/fountain.png";
+    icon-image: "presets/misc/fountain.svg";
     set icon_z17;
 }
 area[amenity=place_of_worship],
@@ -2644,28 +2613,27 @@ node[amenity=crematorium][!is_prop_set(icon-image)] {
     set icon_z17;
 }
 node[amenity=post_office] {
-    icon-image: "presets/service/post_office.png";
+    icon-image: "presets/service/post_office.svg";
     set icon_z17;
 }
 node[amenity=post_box] {
-    icon-image: "presets/service/post_box.png";
+    icon-image: "presets/service/post_box.svg";
     set icon_z17;
 }
 node[amenity=studio] {
-    icon-image: "presets/service/studio.png";
+    icon-image: "presets/service/studio.svg";
     set icon_z17;
 }
 node[amenity=school] {
-    icon-image: "presets/education/school.png";
-    icon-width: 16;
+    icon-image: "presets/education/school.svg";
     set icon_z17;
 }
 node[amenity=university] {
-    icon-image: "presets/education/university.png";
+    icon-image: "presets/education/university.svg";
     set icon_z17;
 }
 node[amenity=college] {
-    icon-image: "presets/education/college.png";
+    icon-image: "presets/education/college.svg";
     set icon_z17;
 }
 node[amenity=kindergarten] {
@@ -2673,7 +2641,7 @@ node[amenity=kindergarten] {
     set icon_z17;
 }
 node[amenity=driving_school] {
-    icon-image: "presets/education/driving_school.png";
+    icon-image: "presets/education/driving_school.svg";
     set icon_z17;
 }
 area[amenity=pharmacy],
@@ -2756,7 +2724,7 @@ area[amenity=bbq] {
     fill-color: amenity_light#f7efb7;
 }
 node[amenity=library] {
-    icon-image: "presets/shop/library.png";
+    icon-image: "presets/education/library.svg";
     set icon_z17;
 }
 node[amenity=police] {
@@ -2780,8 +2748,7 @@ node[amenity=ferry_terminal] {
     set icon_z17;
 }
 node[amenity=theatre] {
-    icon-image: "presets/leisure/theater.png";
-    icon-width: 16;
+    icon-image: "presets/leisure/theater.svg";
     set icon_z17;
 }
 node[amenity=cinema] {
@@ -2789,7 +2756,7 @@ node[amenity=cinema] {
     set icon_z17;
 }
 node[amenity=arts_centre] {
-    icon-image: "presets/service/arts_centre.png";
+    icon-image: "presets/sightseeing/arts_centre.svg";
     set icon_z17;
 }
 node[amenity=courthouse] {
@@ -2817,12 +2784,11 @@ way[amenity=bench] {
     color: amenity_light#f7efb7;
 }
 node[amenity=bench] {
-    icon-image: "presets/leisure/bench.png";
+    icon-image: "presets/leisure/bench.svg";
     set icon_z17;
 }
 node[amenity=bbq] {
-    icon-image: "presets/leisure/bbq.png";
-    icon-width: 16;
+    icon-image: "presets/leisure/bbq.svg";
     set icon_z17;
 }
 node[amenity=compressed_air] {
@@ -2839,15 +2805,15 @@ node[amenity=shelter] {
     set icon_z17;
 }
 node[amenity=shelter][shelter_type=public_transport] {
-    icon-image: "presets/accommodation/shelter_public_transport_brown.png";
+    icon-image: "presets/accommodation/shelter_public_transport.svg";
     set icon_z17;
 }
 node[amenity=shelter][shelter_type=picnic_shelter] {
-    icon-image: "presets/accommodation/shelter_picnic_brown.png";
+    icon-image: "presets/accommodation/shelter_picnic.svg";
     set icon_z17;
 }
 node[amenity=shelter][shelter_type=basic_hut] {
-    icon-image: "presets/accommodation/basic_hut_blue.png";
+    icon-image: "presets/accommodation/basic_hut.svg";
     set icon_z17;
 }
 node[amenity=shelter][shelter_type=lean_to] {
@@ -2855,11 +2821,11 @@ node[amenity=shelter][shelter_type=lean_to] {
     set icon_z17;
 }
 node[amenity=hunting_stand] {
-    icon-image: "presets/landmark/hunting_stand.png";
+    icon-image: "presets/landmark/hunting_stand.svg";
     set icon_z17;
 }
 node[amenity=marketplace] {
-    icon-image: "presets/shop/marketplace.png";
+    icon-image: "presets/shop/marketplace.svg";
     set icon_z17;
 }
 node[amenity=wlan] {
@@ -2871,7 +2837,7 @@ node[amenity=vending_machine] {
     set icon_z17;
 }
 node[vending=excrement_bags] {
-    icon-image: "presets/service/excrement_bags.png";
+    icon-image: "presets/service/excrement_bags.svg";
     set icon_z17;
 }
 
@@ -2929,7 +2895,7 @@ node[craft=brewery][!is_prop_set(icon-image)] {
     set icon_z17;
 }
 node[craft=plumber] {
-    icon-image: "presets/craft/plumber.png";
+    icon-image: "presets/craft/plumber.svg";
     set icon_z17;
 }
 node[craft=sawmill][!is_prop_set(icon-image)] {
@@ -2949,7 +2915,7 @@ node[craft=hvac][!is_prop_set(icon-image)] {
     set icon_z17;
 }
 node[craft=painter] {
-    icon-image: "presets/craft/painter.png";
+    icon-image: "presets/craft/painter.svg";
     set icon_z17;
 }
 node[craft=stonemason][!is_prop_set(icon-image)] {
@@ -2961,7 +2927,7 @@ node[craft=handicraft][!is_prop_set(icon-image)] {
     set icon_z17;
 }
 node[craft=pottery] {
-    icon-image: "presets/craft/pottery.png";
+    icon-image: "presets/craft/pottery.svg";
     set icon_z17;
 }
 node[craft=key_cutter][!is_prop_set(icon-image)] {
@@ -2976,8 +2942,8 @@ node[craft=roofer] {
     icon-image: "presets/craft/roofer.svg";
     set icon_z17;
 }
-node[craft=beekeeper][!is_prop_set(icon-image)] {
-    icon-image: "presets/misc/no_icon.svg";
+node[craft=beekeeper] {
+    icon-image: "presets/craft/beekeeper.svg";
     set icon_z17;
 }
 node[craft=blacksmith][!is_prop_set(icon-image)] {
@@ -2989,7 +2955,7 @@ node[craft=locksmith][!is_prop_set(icon-image)] {
     set icon_z17;
 }
 node[craft=window_construction] {
-    icon-image: "presets/craft/window_construction.png";
+    icon-image: "presets/craft/window_construction.svg";
     set icon_z17;
 }
 node[craft=upholsterer][!is_prop_set(icon-image)] {
@@ -2997,7 +2963,7 @@ node[craft=upholsterer][!is_prop_set(icon-image)] {
     set icon_z17;
 }
 node[craft=tiler] {
-    icon-image: "presets/craft/tiler.png";
+    icon-image: "presets/craft/tiler.svg";
     set icon_z17;
 }
 
@@ -3037,11 +3003,11 @@ node[tourism=chalet] {
     set icon_z17;
 }
 node[tourism=alpine_hut] {
-    icon-image: "presets/accommodation/alpine_hut_blue.png";
+    icon-image: "presets/accommodation/alpine_hut.svg";
     set icon_z17;
 }
 node[tourism=wilderness_hut] {
-    icon-image: "presets/accommodation/wilderness_hut_blue.png";
+    icon-image: "presets/accommodation/wilderness_hut.svg";
     set icon_z17;
 }
 node[tourism=camp_site] {
@@ -3061,7 +3027,7 @@ area[tourism=museum] {
     fill-color: tourism#e180a2;
 }
 node[tourism=picnic_site] {
-    icon-image: "presets/leisure/picnic.png";
+    icon-image: "presets/leisure/picnic.svg";
     set icon_z17;
 }
 node[tourism=viewpoint] {
@@ -3074,7 +3040,6 @@ node[tourism=theme_park] {
 }
 node[tourism=attraction] {
     icon-image: "presets/sightseeing/attraction.svg";
-    icon-width: 16;
     set icon_z17;
 }
 node[tourism=zoo] {
@@ -3089,7 +3054,7 @@ way[tourism=artwork] {
     color: tourism#e180a2;
 }
 node[tourism=artwork] {
-    icon-image: "presets/service/arts_centre.png";
+    icon-image: "presets/sightseeing/arts_centre.svg";
     set icon_z17;
 }
 node[tourism=museum] {
@@ -3169,8 +3134,7 @@ node[historic=battlefield] {
     set icon_z17;
 }
 node[geological=palaeontological_site] {
-    icon-image: "presets/sightseeing/palaeontological_site.png";
-    icon-width: 16;
+    icon-image: "presets/sightseeing/palaeontological_site.svg";
     set icon_z17;
 }
 node[historic=wayside_cross] {
@@ -3182,7 +3146,7 @@ node[historic=wayside_shrine] {
     set icon_z17;
 }
 node[historic=boundary_stone] {
-    icon-image: "presets/misc/boundary_stone.png";
+    icon-image: "presets/landmark/boundary_stone.svg";
     set icon_z17;
 }
 
@@ -3228,6 +3192,9 @@ area[landuse=greenhouse_horticulture],
 area[landuse=plant_nursery] {
     fill-color: green#b1e0c2;
 }
+area[landuse=aquaculture] {
+    fill-color: aquaculture#189dff;
+}
 area[landuse=grass] {
     fill-color: grass#97ca96;
 }
@@ -3328,7 +3295,7 @@ node[railway=station] {
     set icon_z17;
 }
 node[railway=halt] {
-    icon-image: "presets/transport/station16.png";
+    icon-image: "presets/transport/railway_halt.svg";
     set icon_z17;
 }
 node[railway=tram_stop] {
@@ -3336,7 +3303,7 @@ node[railway=tram_stop] {
     set icon_z17;
 }
 node[railway=subway_entrance] {
-    icon-image: "presets/transport/underground.png";
+    icon-image: "presets/transport/underground.svg";
     set icon_z17;
 }
 node[railway=crossing] {
@@ -3345,7 +3312,6 @@ node[railway=crossing] {
 }
 node[railway=level_crossing] {
     icon-image: "presets/transport/railway/level_crossing.svg";
-    icon-width: 16;
     set icon_z17;
 }
 way[railway=rail] {
@@ -3473,7 +3439,6 @@ way[railway=funicular] {
 }
 node[railway=switch] {
     icon-image: "presets/transport/railway/switch.svg";
-    icon-width: 16;
     set icon_z17;
 }
 node[railway=signal] {
@@ -3565,7 +3530,7 @@ way[aeroway=parking_position] {
     color: aeroway#660000;
 }
 node[aeroway=parking_position] {
-    icon-image: "presets/transport/airport/parking_position.png";
+    icon-image: "presets/transport/airport/parking_position.svg";
     set icon_z17;
 }
 area[aeroway=apron],
@@ -3661,11 +3626,11 @@ node[aerialway=goods] {
 /*************************/
 
 node[highway=bus_stop] {
-    icon-image: "presets/transport/bus_small.png";
+    icon-image: "presets/transport/bus_small.svg";
     set icon_z17;
 }
 node[public_transport=stop_position] {
-    icon-image: "presets/transport/railway_small.png";
+    icon-image: "presets/transport/stop_position.svg";
     set icon_z17;
 }
 node[public_transport=stop_position][share_taxi=yes] {
@@ -3746,7 +3711,7 @@ area[sport=rugby_union] {
     fill-color: sport#bde3cb;
 }
 node[sport="9pin"] {
-    icon-image: "presets/sport/10pin.svg";
+    icon-image: "presets/sport/9pin.svg";
     set icon_z17;
 }
 node[sport="10pin"] {
@@ -3754,8 +3719,7 @@ node[sport="10pin"] {
     set icon_z17;
 }
 node[sport=athletics] {
-    icon-image: "presets/sport/athletics.png";
-    icon-width: 16;
+    icon-image: "presets/sport/athletics.svg";
     set icon_z17;
 }
 node[sport=running] {
@@ -3807,7 +3771,7 @@ node[sport=canoe] {
     set icon_z17;
 }
 node[sport=chess] {
-    icon-image: "presets/sport/chess.png";
+    icon-image: "presets/sport/chess.svg";
     set icon_z17;
 }
 node[sport=climbing] {
@@ -3843,12 +3807,11 @@ node[sport=cycling] {
     set icon_z17;
 }
 node[sport=dog_racing] {
-    icon-image: "presets/leisure/dog.png";
+    icon-image: "presets/sport/dog_racing.svg";
     set icon_z17;
 }
 node[sport=equestrian] {
-    icon-image: "presets/leisure/equestrian.png";
-    icon-width: 16;
+    icon-image: "presets/sport/equestrian.svg";
     set icon_z17;
 }
 node[sport=golf] {
@@ -3860,13 +3823,11 @@ node[sport=gymnastics] {
     set icon_z17;
 }
 node[sport=field_hockey] {
-    icon-image: "presets/sport/field_hockey.png";
-    icon-width: 16;
+    icon-image: "presets/sport/field_hockey.svg";
     set icon_z17;
 }
 node[sport=ice_hockey] {
-    icon-image: "presets/sport/ice_hockey.png";
-    icon-width: 16;
+    icon-image: "presets/sport/ice_hockey.svg";
     set icon_z17;
 }
 node[sport=horse_racing] {
@@ -3874,8 +3835,7 @@ node[sport=horse_racing] {
     set icon_z17;
 }
 node[sport=karting] {
-    icon-image: "presets/sport/karting.png";
-    icon-width: 16;
+    icon-image: "presets/sport/karting.svg";
     set icon_z17;
 }
 node[sport=motocross] {
@@ -3883,7 +3843,7 @@ node[sport=motocross] {
     set icon_z17;
 }
 node[sport=motor] {
-    icon-image: "presets/sport/motor.png";
+    icon-image: "presets/sport/motor.svg";
     set icon_z17;
 }
 area[sport=multi],
@@ -3899,8 +3859,7 @@ node[sport=multi] {
     set icon_z17;
 }
 node[sport=pelota] {
-    icon-image: "presets/sport/pelota.png";
-    icon-width: 16;
+    icon-image: "presets/sport/pelota.svg";
     set icon_z17;
 }
 node[sport=racquet] {
@@ -3908,8 +3867,7 @@ node[sport=racquet] {
     set icon_z17;
 }
 node[sport=ice_skating] {
-    icon-image: "presets/sport/skating.png";
-    icon-width: 16;
+    icon-image: "presets/sport/ice_skating.svg";
     set icon_z17;
 }
 node[sport=roller_skating] {
@@ -3967,7 +3925,6 @@ node[sport=squash][!is_prop_set(icon-image)] {
 }
 node[sport=shooting] {
     icon-image: "presets/sport/range.svg";
-    icon-width: 16;
     set icon_z17;
 }
 node[sport=volleyball] {
@@ -3975,8 +3932,7 @@ node[sport=volleyball] {
     set icon_z17;
 }
 node[sport=beachvolleyball] {
-    icon-image: "presets/sport/beachvolleyball.png";
-    icon-width: 16;
+    icon-image: "presets/sport/beachvolleyball.svg";
     set icon_z17;
 }
 node[sport=billiards] {
@@ -3984,7 +3940,7 @@ node[sport=billiards] {
     set icon_z17;
 }
 node[sport=bowling] {
-    icon-image: "presets/sport/10pin.svg";
+    icon-image: "presets/sport/9pin.svg";
     set icon_z17;
 }
 node[sport=handball] {
@@ -4018,7 +3974,7 @@ node[sport=archery] {
     set icon_z17;
 }
 node[sport=fishing] {
-    icon-image: "presets/sport/fishing.png";
+    icon-image: "presets/sport/fishing.svg";
     set icon_z17;
 }
 node[sport=model_aerodrome] {
@@ -4068,7 +4024,7 @@ area[natural=cliff]:closed {
     fill-color: natural#002f00;
 }
 way[natural=cliff] {
-    repeat-image: "presets/misc/cliff-pattern.png";
+    repeat-image: "presets/misc/cliff_pattern.svg";
     repeat-image-align: top;
     width: 1;
     color: #b2b2b2;
@@ -4166,7 +4122,7 @@ node[natural=reef] {
     set icon_z17;
 }
 node[natural=cave_entrance] {
-    icon-image: "presets/landmark/cave_entrance.png";
+    icon-image: "presets/landmark/cave_entrance.svg";
     set icon_z17;
 }
 node[natural=tree] {
@@ -4183,10 +4139,6 @@ node[natural=tree][leaf_type=broadleaved] {
     icon-image: "presets/landmark/trees_broad_leaved.svg";
     set icon_z17;
 }
-node[natural=tree][type=palm] {
-    icon-image: "presets/landmark/trees_palm.png";
-    set icon_z17;
-}
 node[natural=glacier],
 node[natural=scree],
 node[natural=scrub],
@@ -4246,7 +4198,7 @@ area[waterway=dock] {
     fill-color: dock#0000cf;
 }
 node[waterway=dock] {
-    icon-image: "presets/nautical/boatyard.png";
+    icon-image: "presets/nautical/boatyard.svg";
     set icon_z17;
 }
 node[waterway=lock_gate] {
@@ -4261,7 +4213,7 @@ area[waterway=boatyard] {
     fill-color: manmade#d8d8d8;
 }
 node[waterway=boatyard] {
-    icon-image: "presets/nautical/boatyard.png";
+    icon-image: "presets/nautical/boatyard.svg";
     set icon_z17;
 }
 node[waterway=water_point],
@@ -4271,15 +4223,14 @@ node[waterway=mooring] {
     set icon_z17;
 }
 node[mooring] {
-    icon-image: "presets/nautical/marina.png";
+    icon-image: "presets/nautical/marina.svg";
     set icon_z17;
 }
 area[waterway=fuel] {
     fill-color: amenity_traffic#f7efb7;
 }
 node[waterway=fuel] {
-    icon-image: "presets/nautical/marine_fuel.png";
-    icon-width: 16;
+    icon-image: "presets/nautical/marine_fuel.svg";
     set icon_z17;
 }
 way[waterway=weir] {
@@ -4544,39 +4495,39 @@ node[place=country],
 node[place=state],
 node[place=region],
 node[place=county] {
-    icon-image: "presets/place/settlement/capital.png";
+    icon-image: "presets/place/capital.svg";
     z-index: 2.9;
 }
 node[place=city] {
-    icon-image: "presets/place/settlement/city.png";
+    icon-image: "presets/place/city.svg";
     z-index: 2.8;
 }
 node[place=town] {
-    icon-image: "presets/place/settlement/town.png";
+    icon-image: "presets/place/town.svg";
     z-index: 2.7;
 }
 node[place=suburb] {
-    icon-image: "presets/place/settlement/suburb.png";
+    icon-image: "presets/place/suburb.svg";
     z-index: 2.6;
 }
 node[place=village] {
-    icon-image: "presets/place/settlement/village.png";
+    icon-image: "presets/place/village.svg";
     z-index: 2.5;
 }
 node[place=neighbourhood] {
-    icon-image: "presets/place/settlement/neighbourhood.png";
+    icon-image: "presets/place/neighbourhood.svg";
     z-index: 2.4;
 }
 node[place=hamlet] {
-    icon-image: "presets/place/settlement/hamlet.png";
+    icon-image: "presets/place/hamlet.svg";
     z-index: 2.3;
 }
 node[place=isolated_dwelling] {
-    icon-image: "presets/place/settlement/isolated_dwelling.png";
+    icon-image: "presets/place/isolated_dwelling.svg";
     z-index: 2.2;
 }
 node[place=farm] {
-    icon-image: "presets/place/settlement/farm.png";
+    icon-image: "presets/place/farm.svg";
     z-index: 2.1;
 }
 node|z15-[place=locality],
@@ -4603,18 +4554,18 @@ node|z-15[fixme][!setting("hide_icons")]::core_note_fixme,
 node|z16-[FIXME]::core_note_fixme,
 node|z-15[FIXME][!setting("hide_icons")]::core_note_fixme {
     object-z-index: 10;
-    icon-image: "presets/misc/fixme-annotation.png";
+    icon-image: "presets/misc/fixme_annotation.svg";
 }
 node|z16-[note]::core_note_fixme,
 node|z-15[note][!setting("hide_icons")]::core_note_fixme {
     object-z-index: 10;
-    icon-image: "presets/misc/note-annotation.png";
+    icon-image: "presets/misc/note_annotation.svg";
 }
 node|z16-[note][fixme]::core_note_fixme,
 node|z-15[note][fixme][!setting("hide_icons")]::core_note_fixme,
 node|z16-[note][FIXME]::core_note_fixme,
 node|z-15[note][FIXME][!setting("hide_icons")]::core_note_fixme {
-    icon-image: "presets/misc/note-fixme-annotation.png";
+    icon-image: "presets/misc/note_fixme_annotation.svg";
 }
 
 /* special display of unreviewed tiger data (USA) */
diff --git a/test/data/regress/1433/2008-08-14-16-04-58.gpx b/test/data/regress/1433/2008-08-14-16-04-58.gpx
new file mode 100644
index 0000000..08c597b
--- /dev/null
+++ b/test/data/regress/1433/2008-08-14-16-04-58.gpx
@@ -0,0 +1,11679 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+ version="1.0"
+creator="GPSBabel - http://www.gpsbabel.org"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns="http://www.topografix.com/GPX/1/0"
+xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>2008-08-19T01:21:02Z</time>
+<bounds minlat="53.791926667" minlon="-1.782950000" maxlat="53.833996667" maxlon="-1.726721667"/>
+<trk>
+<trkseg>
+<trkpt lat="53.792560000" lon="-1.727446667">
+  <ele>144.400000</ele>
+<time>2008-08-14T15:05:53Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792560000" lon="-1.727446667">
+  <ele>145.000000</ele>
+<time>2008-08-14T15:05:54Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792560000" lon="-1.727445000">
+  <ele>145.800000</ele>
+<time>2008-08-14T15:05:55Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792558333" lon="-1.727441667">
+  <ele>146.600000</ele>
+<time>2008-08-14T15:05:56Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727438333">
+  <ele>147.400000</ele>
+<time>2008-08-14T15:05:57Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727435000">
+  <ele>148.100000</ele>
+<time>2008-08-14T15:05:58Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727436667">
+  <ele>148.400000</ele>
+<time>2008-08-14T15:05:59Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727435000">
+  <ele>148.700000</ele>
+<time>2008-08-14T15:06:00Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727433333">
+  <ele>149.000000</ele>
+<time>2008-08-14T15:06:01Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727435000">
+  <ele>149.100000</ele>
+<time>2008-08-14T15:06:02Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727435000">
+  <ele>149.200000</ele>
+<time>2008-08-14T15:06:03Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727435000">
+  <ele>149.400000</ele>
+<time>2008-08-14T15:06:04Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727435000">
+  <ele>149.400000</ele>
+<time>2008-08-14T15:06:05Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727436667">
+  <ele>149.300000</ele>
+<time>2008-08-14T15:06:06Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727435000">
+  <ele>149.800000</ele>
+<time>2008-08-14T15:06:07Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727433333">
+  <ele>150.300000</ele>
+<time>2008-08-14T15:06:08Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727431667">
+  <ele>150.800000</ele>
+<time>2008-08-14T15:06:09Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727430000">
+  <ele>151.300000</ele>
+<time>2008-08-14T15:06:10Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727426667">
+  <ele>151.700000</ele>
+<time>2008-08-14T15:06:11Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727425000">
+  <ele>152.100000</ele>
+<time>2008-08-14T15:06:12Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727423333">
+  <ele>152.600000</ele>
+<time>2008-08-14T15:06:13Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727423333">
+  <ele>153.000000</ele>
+<time>2008-08-14T15:06:14Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727421667">
+  <ele>153.400000</ele>
+<time>2008-08-14T15:06:15Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727420000">
+  <ele>153.800000</ele>
+<time>2008-08-14T15:06:16Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727418333">
+  <ele>154.100000</ele>
+<time>2008-08-14T15:06:17Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727421667">
+  <ele>153.700000</ele>
+<time>2008-08-14T15:06:18Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727423333">
+  <ele>153.300000</ele>
+<time>2008-08-14T15:06:19Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727425000">
+  <ele>152.900000</ele>
+<time>2008-08-14T15:06:20Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727426667">
+  <ele>152.600000</ele>
+<time>2008-08-14T15:06:21Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727430000">
+  <ele>152.200000</ele>
+<time>2008-08-14T15:06:22Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727431667">
+  <ele>151.900000</ele>
+<time>2008-08-14T15:06:23Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727433333">
+  <ele>151.600000</ele>
+<time>2008-08-14T15:06:24Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727433333">
+  <ele>151.400000</ele>
+<time>2008-08-14T15:06:25Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727435000">
+  <ele>151.200000</ele>
+<time>2008-08-14T15:06:26Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727436667">
+  <ele>151.000000</ele>
+<time>2008-08-14T15:06:27Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727436667">
+  <ele>150.800000</ele>
+<time>2008-08-14T15:06:28Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727438333">
+  <ele>150.700000</ele>
+<time>2008-08-14T15:06:29Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727440000">
+  <ele>150.500000</ele>
+<time>2008-08-14T15:06:30Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727440000">
+  <ele>150.400000</ele>
+<time>2008-08-14T15:06:31Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727441667">
+  <ele>150.200000</ele>
+<time>2008-08-14T15:06:32Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727443333">
+  <ele>150.000000</ele>
+<time>2008-08-14T15:06:33Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727445000">
+  <ele>149.900000</ele>
+<time>2008-08-14T15:06:34Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727445000">
+  <ele>149.800000</ele>
+<time>2008-08-14T15:06:35Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727445000">
+  <ele>149.800000</ele>
+<time>2008-08-14T15:06:36Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792556667" lon="-1.727445000">
+  <ele>149.800000</ele>
+<time>2008-08-14T15:06:37Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727445000">
+  <ele>149.900000</ele>
+<time>2008-08-14T15:06:38Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727446667">
+  <ele>149.900000</ele>
+<time>2008-08-14T15:06:39Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727446667">
+  <ele>149.900000</ele>
+<time>2008-08-14T15:06:40Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727446667">
+  <ele>150.000000</ele>
+<time>2008-08-14T15:06:41Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727446667">
+  <ele>150.000000</ele>
+<time>2008-08-14T15:06:42Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727445000">
+  <ele>150.100000</ele>
+<time>2008-08-14T15:06:43Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792555000" lon="-1.727445000">
+  <ele>150.200000</ele>
+<time>2008-08-14T15:06:44Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727445000">
+  <ele>150.200000</ele>
+<time>2008-08-14T15:06:45Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727445000">
+  <ele>150.300000</ele>
+<time>2008-08-14T15:06:46Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727443333">
+  <ele>150.400000</ele>
+<time>2008-08-14T15:06:47Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727445000">
+  <ele>150.300000</ele>
+<time>2008-08-14T15:06:48Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727445000">
+  <ele>150.300000</ele>
+<time>2008-08-14T15:06:49Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727445000">
+  <ele>150.300000</ele>
+<time>2008-08-14T15:06:50Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792553333" lon="-1.727445000">
+  <ele>150.400000</ele>
+<time>2008-08-14T15:06:51Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792551667" lon="-1.727443333">
+  <ele>150.600000</ele>
+<time>2008-08-14T15:06:52Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792551667" lon="-1.727443333">
+  <ele>150.700000</ele>
+<time>2008-08-14T15:06:53Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792550000" lon="-1.727441667">
+  <ele>150.900000</ele>
+<time>2008-08-14T15:06:54Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792550000" lon="-1.727441667">
+  <ele>150.800000</ele>
+<time>2008-08-14T15:06:55Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792550000" lon="-1.727441667">
+  <ele>151.000000</ele>
+<time>2008-08-14T15:06:56Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792548333" lon="-1.727440000">
+  <ele>151.100000</ele>
+<time>2008-08-14T15:06:57Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792548333" lon="-1.727440000">
+  <ele>151.300000</ele>
+<time>2008-08-14T15:06:58Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792546667" lon="-1.727438333">
+  <ele>151.500000</ele>
+<time>2008-08-14T15:06:59Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727438333">
+  <ele>151.700000</ele>
+<time>2008-08-14T15:07:00Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727436667">
+  <ele>151.800000</ele>
+<time>2008-08-14T15:07:01Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727435000">
+  <ele>151.900000</ele>
+<time>2008-08-14T15:07:02Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727435000">
+  <ele>152.000000</ele>
+<time>2008-08-14T15:07:03Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727433333">
+  <ele>152.000000</ele>
+<time>2008-08-14T15:07:04Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792541667" lon="-1.727431667">
+  <ele>152.200000</ele>
+<time>2008-08-14T15:07:05Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792541667" lon="-1.727431667">
+  <ele>152.300000</ele>
+<time>2008-08-14T15:07:06Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727430000">
+  <ele>152.800000</ele>
+<time>2008-08-14T15:07:07Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727428333">
+  <ele>153.300000</ele>
+<time>2008-08-14T15:07:08Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727426667">
+  <ele>154.000000</ele>
+<time>2008-08-14T15:07:09Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727425000">
+  <ele>154.500000</ele>
+<time>2008-08-14T15:07:10Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727423333">
+  <ele>154.900000</ele>
+<time>2008-08-14T15:07:11Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.400000</pdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727423333">
+  <ele>155.300000</ele>
+<time>2008-08-14T15:07:12Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727420000">
+  <ele>155.900000</ele>
+<time>2008-08-14T15:07:13Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727416667">
+  <ele>156.500000</ele>
+<time>2008-08-14T15:07:14Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792545000" lon="-1.727415000">
+  <ele>156.900000</ele>
+<time>2008-08-14T15:07:15Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727411667">
+  <ele>157.500000</ele>
+<time>2008-08-14T15:07:16Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.400000</pdop>
+</trkpt>
+<trkpt lat="53.792543333" lon="-1.727410000">
+  <ele>157.900000</ele>
+<time>2008-08-14T15:07:17Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792541667" lon="-1.727416667">
+  <ele>156.600000</ele>
+<time>2008-08-14T15:07:18Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792540000" lon="-1.727416667">
+  <ele>156.700000</ele>
+<time>2008-08-14T15:07:19Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792540000" lon="-1.727415000">
+  <ele>157.100000</ele>
+<time>2008-08-14T15:07:20Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792538333" lon="-1.727420000">
+  <ele>155.900000</ele>
+<time>2008-08-14T15:07:21Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792536667" lon="-1.727426667">
+  <ele>154.600000</ele>
+<time>2008-08-14T15:07:22Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792535000" lon="-1.727433333">
+  <ele>153.300000</ele>
+<time>2008-08-14T15:07:23Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792535000" lon="-1.727441667">
+  <ele>152.000000</ele>
+<time>2008-08-14T15:07:24Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792533333" lon="-1.727446667">
+  <ele>151.000000</ele>
+<time>2008-08-14T15:07:25Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792531667" lon="-1.727450000">
+  <ele>150.000000</ele>
+<time>2008-08-14T15:07:26Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792531667" lon="-1.727455000">
+  <ele>149.000000</ele>
+<time>2008-08-14T15:07:27Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792531667" lon="-1.727460000">
+  <ele>148.000000</ele>
+<time>2008-08-14T15:07:28Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792531667" lon="-1.727463333">
+  <ele>147.200000</ele>
+<time>2008-08-14T15:07:29Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792530000" lon="-1.727465000">
+  <ele>146.700000</ele>
+<time>2008-08-14T15:07:30Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792528333" lon="-1.727466667">
+  <ele>146.300000</ele>
+<time>2008-08-14T15:07:31Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792528333" lon="-1.727468333">
+  <ele>145.800000</ele>
+<time>2008-08-14T15:07:32Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792526667" lon="-1.727468333">
+  <ele>145.500000</ele>
+<time>2008-08-14T15:07:33Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792525000" lon="-1.727468333">
+  <ele>145.100000</ele>
+<time>2008-08-14T15:07:34Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792523333" lon="-1.727470000">
+  <ele>144.800000</ele>
+<time>2008-08-14T15:07:35Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792521667" lon="-1.727470000">
+  <ele>144.500000</ele>
+<time>2008-08-14T15:07:36Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.792520000" lon="-1.727470000">
+  <ele>143.800000</ele>
+<time>2008-08-14T15:07:37Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792518333" lon="-1.727470000">
+  <ele>143.000000</ele>
+<time>2008-08-14T15:07:38Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792515000" lon="-1.727470000">
+  <ele>142.100000</ele>
+<time>2008-08-14T15:07:39Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792513333" lon="-1.727470000">
+  <ele>141.400000</ele>
+<time>2008-08-14T15:07:40Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792510000" lon="-1.727470000">
+  <ele>140.600000</ele>
+<time>2008-08-14T15:07:41Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.792508333" lon="-1.727468333">
+  <ele>139.800000</ele>
+<time>2008-08-14T15:07:42Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792506667" lon="-1.727468333">
+  <ele>139.000000</ele>
+<time>2008-08-14T15:07:43Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792505000" lon="-1.727468333">
+  <ele>138.200000</ele>
+<time>2008-08-14T15:07:44Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792501667" lon="-1.727466667">
+  <ele>137.500000</ele>
+<time>2008-08-14T15:07:45Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792500000" lon="-1.727465000">
+  <ele>136.700000</ele>
+<time>2008-08-14T15:07:46Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727463333">
+  <ele>136.100000</ele>
+<time>2008-08-14T15:07:47Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792496667" lon="-1.727463333">
+  <ele>135.400000</ele>
+<time>2008-08-14T15:07:48Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792493333" lon="-1.727461667">
+  <ele>134.600000</ele>
+<time>2008-08-14T15:07:49Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792491667" lon="-1.727460000">
+  <ele>134.200000</ele>
+<time>2008-08-14T15:07:50Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792490000" lon="-1.727458333">
+  <ele>133.500000</ele>
+<time>2008-08-14T15:07:51Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.700000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.800000</pdop>
+</trkpt>
+<trkpt lat="53.792488333" lon="-1.727456667">
+  <ele>133.000000</ele>
+<time>2008-08-14T15:07:52Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792490000" lon="-1.727458333">
+  <ele>132.100000</ele>
+<time>2008-08-14T15:07:53Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792490000" lon="-1.727456667">
+  <ele>131.600000</ele>
+<time>2008-08-14T15:07:54Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792491667" lon="-1.727455000">
+  <ele>131.500000</ele>
+<time>2008-08-14T15:07:55Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792491667" lon="-1.727453333">
+  <ele>131.700000</ele>
+<time>2008-08-14T15:07:56Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.500000</hdop>
+  <vdop>2.800000</vdop>
+  <pdop>3.200000</pdop>
+</trkpt>
+<trkpt lat="53.792493333" lon="-1.727451667">
+  <ele>132.000000</ele>
+<time>2008-08-14T15:07:57Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.500000</hdop>
+</trkpt>
+<trkpt lat="53.792493333" lon="-1.727448333">
+  <ele>132.300000</ele>
+<time>2008-08-14T15:07:58Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.500000</hdop>
+</trkpt>
+<trkpt lat="53.792495000" lon="-1.727446667">
+  <ele>132.700000</ele>
+<time>2008-08-14T15:07:59Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.500000</hdop>
+</trkpt>
+<trkpt lat="53.792495000" lon="-1.727443333">
+  <ele>133.100000</ele>
+<time>2008-08-14T15:08:00Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.800000</hdop>
+</trkpt>
+<trkpt lat="53.792495000" lon="-1.727440000">
+  <ele>133.600000</ele>
+<time>2008-08-14T15:08:01Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.800000</hdop>
+  <vdop>2.900000</vdop>
+  <pdop>3.400000</pdop>
+</trkpt>
+<trkpt lat="53.792496667" lon="-1.727436667">
+  <ele>134.100000</ele>
+<time>2008-08-14T15:08:02Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.800000</hdop>
+</trkpt>
+<trkpt lat="53.792496667" lon="-1.727433333">
+  <ele>134.700000</ele>
+<time>2008-08-14T15:08:03Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.800000</hdop>
+</trkpt>
+<trkpt lat="53.792496667" lon="-1.727428333">
+  <ele>135.300000</ele>
+<time>2008-08-14T15:08:04Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.800000</hdop>
+</trkpt>
+<trkpt lat="53.792496667" lon="-1.727425000">
+  <ele>136.000000</ele>
+<time>2008-08-14T15:08:05Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.800000</hdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727421667">
+  <ele>136.700000</ele>
+<time>2008-08-14T15:08:06Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727418333">
+  <ele>137.400000</ele>
+<time>2008-08-14T15:08:07Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727415000">
+  <ele>138.200000</ele>
+<time>2008-08-14T15:08:08Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727411667">
+  <ele>138.900000</ele>
+<time>2008-08-14T15:08:09Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727406667">
+  <ele>139.600000</ele>
+<time>2008-08-14T15:08:10Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727403333">
+  <ele>140.300000</ele>
+<time>2008-08-14T15:08:11Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727400000">
+  <ele>141.100000</ele>
+<time>2008-08-14T15:08:12Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727396667">
+  <ele>141.900000</ele>
+<time>2008-08-14T15:08:13Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792500000" lon="-1.727393333">
+  <ele>142.600000</ele>
+<time>2008-08-14T15:08:14Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792500000" lon="-1.727391667">
+  <ele>143.500000</ele>
+<time>2008-08-14T15:08:15Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792500000" lon="-1.727393333">
+  <ele>142.800000</ele>
+<time>2008-08-14T15:08:16Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727398333">
+  <ele>141.000000</ele>
+<time>2008-08-14T15:08:17Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792498333" lon="-1.727406667">
+  <ele>138.900000</ele>
+<time>2008-08-14T15:08:18Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792496667" lon="-1.727413333">
+  <ele>136.800000</ele>
+<time>2008-08-14T15:08:19Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792495000" lon="-1.727418333">
+  <ele>135.300000</ele>
+<time>2008-08-14T15:08:20Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792493333" lon="-1.727423333">
+  <ele>133.500000</ele>
+<time>2008-08-14T15:08:21Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792491667" lon="-1.727426667">
+  <ele>131.900000</ele>
+<time>2008-08-14T15:08:22Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792490000" lon="-1.727431667">
+  <ele>130.200000</ele>
+<time>2008-08-14T15:08:23Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792486667" lon="-1.727435000">
+  <ele>128.700000</ele>
+<time>2008-08-14T15:08:24Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792483333" lon="-1.727438333">
+  <ele>127.100000</ele>
+<time>2008-08-14T15:08:25Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792481667" lon="-1.727440000">
+  <ele>126.000000</ele>
+<time>2008-08-14T15:08:26Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792478333" lon="-1.727441667">
+  <ele>124.800000</ele>
+<time>2008-08-14T15:08:27Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792476667" lon="-1.727443333">
+  <ele>123.700000</ele>
+<time>2008-08-14T15:08:28Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792475000" lon="-1.727445000">
+  <ele>122.700000</ele>
+<time>2008-08-14T15:08:29Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792471667" lon="-1.727446667">
+  <ele>121.700000</ele>
+<time>2008-08-14T15:08:30Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792470000" lon="-1.727446667">
+  <ele>120.800000</ele>
+<time>2008-08-14T15:08:31Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792471667" lon="-1.727448333">
+  <ele>122.100000</ele>
+<time>2008-08-14T15:08:32Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792473333" lon="-1.727448333">
+  <ele>123.200000</ele>
+<time>2008-08-14T15:08:33Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792470000" lon="-1.727448333">
+  <ele>122.400000</ele>
+<time>2008-08-14T15:08:34Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792468333" lon="-1.727448333">
+  <ele>121.900000</ele>
+<time>2008-08-14T15:08:35Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792468333" lon="-1.727450000">
+  <ele>123.100000</ele>
+<time>2008-08-14T15:08:36Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792466667" lon="-1.727446667">
+  <ele>124.300000</ele>
+<time>2008-08-14T15:08:37Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792461667" lon="-1.727441667">
+  <ele>125.100000</ele>
+<time>2008-08-14T15:08:38Z</time>
+  <course>241.589996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792455000" lon="-1.727431667">
+  <ele>125.800000</ele>
+<time>2008-08-14T15:08:39Z</time>
+  <course>142.339996</course>
+  <speed>0.972222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792446667" lon="-1.727421667">
+  <ele>126.500000</ele>
+<time>2008-08-14T15:08:40Z</time>
+  <course>142.339996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792438333" lon="-1.727415000">
+  <ele>127.800000</ele>
+<time>2008-08-14T15:08:41Z</time>
+  <course>179.369995</course>
+  <speed>0.972222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+  <vdop>2.000000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.792421667" lon="-1.727403333">
+  <ele>130.200000</ele>
+<time>2008-08-14T15:08:42Z</time>
+  <course>179.369995</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792406667" lon="-1.727390000">
+  <ele>132.900000</ele>
+<time>2008-08-14T15:08:43Z</time>
+  <course>179.369995</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792398333" lon="-1.727391667">
+  <ele>133.800000</ele>
+<time>2008-08-14T15:08:44Z</time>
+  <course>182.119995</course>
+  <speed>1.055556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792380000" lon="-1.727385000">
+  <ele>135.700000</ele>
+<time>2008-08-14T15:08:45Z</time>
+  <course>191.639999</course>
+  <speed>1.305556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792365000" lon="-1.727385000">
+  <ele>136.100000</ele>
+<time>2008-08-14T15:08:46Z</time>
+  <course>186.699997</course>
+  <speed>1.527778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792346667" lon="-1.727386667">
+  <ele>136.500000</ele>
+<time>2008-08-14T15:08:47Z</time>
+  <course>186.940002</course>
+  <speed>1.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792330000" lon="-1.727390000">
+  <ele>136.600000</ele>
+<time>2008-08-14T15:08:48Z</time>
+  <course>188.649994</course>
+  <speed>1.888889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792310000" lon="-1.727388333">
+  <ele>136.400000</ele>
+<time>2008-08-14T15:08:49Z</time>
+  <course>173.539993</course>
+  <speed>2.055556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792296667" lon="-1.727383333">
+  <ele>137.200000</ele>
+<time>2008-08-14T15:08:50Z</time>
+  <course>171.649994</course>
+  <speed>1.694444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792291667" lon="-1.727380000">
+  <ele>138.000000</ele>
+<time>2008-08-14T15:08:51Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792290000" lon="-1.727376667">
+  <ele>138.900000</ele>
+<time>2008-08-14T15:08:52Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792290000" lon="-1.727375000">
+  <ele>139.800000</ele>
+<time>2008-08-14T15:08:53Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792291667" lon="-1.727371667">
+  <ele>140.600000</ele>
+<time>2008-08-14T15:08:54Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792293333" lon="-1.727368333">
+  <ele>141.300000</ele>
+<time>2008-08-14T15:08:55Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792295000" lon="-1.727365000">
+  <ele>142.100000</ele>
+<time>2008-08-14T15:08:56Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792295000" lon="-1.727360000">
+  <ele>143.000000</ele>
+<time>2008-08-14T15:08:57Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792296667" lon="-1.727356667">
+  <ele>143.600000</ele>
+<time>2008-08-14T15:08:58Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792296667" lon="-1.727353333">
+  <ele>144.200000</ele>
+<time>2008-08-14T15:08:59Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792296667" lon="-1.727348333">
+  <ele>145.000000</ele>
+<time>2008-08-14T15:09:00Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792298333" lon="-1.727345000">
+  <ele>145.500000</ele>
+<time>2008-08-14T15:09:01Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792298333" lon="-1.727341667">
+  <ele>146.000000</ele>
+<time>2008-08-14T15:09:02Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792300000" lon="-1.727338333">
+  <ele>146.400000</ele>
+<time>2008-08-14T15:09:03Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792300000" lon="-1.727335000">
+  <ele>146.900000</ele>
+<time>2008-08-14T15:09:04Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792300000" lon="-1.727331667">
+  <ele>147.400000</ele>
+<time>2008-08-14T15:09:05Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792301667" lon="-1.727328333">
+  <ele>147.700000</ele>
+<time>2008-08-14T15:09:06Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.500000</vdop>
+  <pdop>1.800000</pdop>
+</trkpt>
+<trkpt lat="53.792303333" lon="-1.727326667">
+  <ele>148.100000</ele>
+<time>2008-08-14T15:09:07Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792303333" lon="-1.727323333">
+  <ele>148.600000</ele>
+<time>2008-08-14T15:09:08Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792303333" lon="-1.727320000">
+  <ele>148.900000</ele>
+<time>2008-08-14T15:09:09Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792303333" lon="-1.727318333">
+  <ele>149.200000</ele>
+<time>2008-08-14T15:09:10Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792303333" lon="-1.727316667">
+  <ele>149.500000</ele>
+<time>2008-08-14T15:09:11Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.500000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792305000" lon="-1.727315000">
+  <ele>149.800000</ele>
+<time>2008-08-14T15:09:12Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792305000" lon="-1.727311667">
+  <ele>150.200000</ele>
+<time>2008-08-14T15:09:13Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792305000" lon="-1.727310000">
+  <ele>150.500000</ele>
+<time>2008-08-14T15:09:14Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792305000" lon="-1.727308333">
+  <ele>150.800000</ele>
+<time>2008-08-14T15:09:15Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727305000">
+  <ele>151.100000</ele>
+<time>2008-08-14T15:09:16Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727303333">
+  <ele>151.400000</ele>
+<time>2008-08-14T15:09:17Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727301667">
+  <ele>151.800000</ele>
+<time>2008-08-14T15:09:18Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727300000">
+  <ele>152.100000</ele>
+<time>2008-08-14T15:09:19Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727298333">
+  <ele>152.500000</ele>
+<time>2008-08-14T15:09:20Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727296667">
+  <ele>152.900000</ele>
+<time>2008-08-14T15:09:21Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.500000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792308333" lon="-1.727295000">
+  <ele>153.300000</ele>
+<time>2008-08-14T15:09:22Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792308333" lon="-1.727293333">
+  <ele>153.600000</ele>
+<time>2008-08-14T15:09:23Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727290000">
+  <ele>154.100000</ele>
+<time>2008-08-14T15:09:24Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792308333" lon="-1.727285000">
+  <ele>155.000000</ele>
+<time>2008-08-14T15:09:25Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727278333">
+  <ele>155.300000</ele>
+<time>2008-08-14T15:09:26Z</time>
+  <course>171.649994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.500000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792298333" lon="-1.727261667">
+  <ele>155.600000</ele>
+<time>2008-08-14T15:09:27Z</time>
+  <course>129.880005</course>
+  <speed>1.361111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792291667" lon="-1.727226667">
+  <ele>154.900000</ele>
+<time>2008-08-14T15:09:28Z</time>
+  <course>105.279999</course>
+  <speed>2.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792286667" lon="-1.727158333">
+  <ele>155.600000</ele>
+<time>2008-08-14T15:09:29Z</time>
+  <course>92.010002</course>
+  <speed>4.166667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792296667" lon="-1.727080000">
+  <ele>155.000000</ele>
+<time>2008-08-14T15:09:30Z</time>
+  <course>87.889999</course>
+  <speed>5.222222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.726996667">
+  <ele>155.300000</ele>
+<time>2008-08-14T15:09:31Z</time>
+  <course>85.169998</course>
+  <speed>5.444445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792318333" lon="-1.726923333">
+  <ele>155.400000</ele>
+<time>2008-08-14T15:09:32Z</time>
+  <course>85.440002</course>
+  <speed>5.027778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792331667" lon="-1.726863333">
+  <ele>155.300000</ele>
+<time>2008-08-14T15:09:33Z</time>
+  <course>84.320000</course>
+  <speed>4.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792340000" lon="-1.726813333">
+  <ele>155.900000</ele>
+<time>2008-08-14T15:09:34Z</time>
+  <course>84.610001</course>
+  <speed>3.305556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792348333" lon="-1.726780000">
+  <ele>156.100000</ele>
+<time>2008-08-14T15:09:35Z</time>
+  <course>87.349998</course>
+  <speed>2.250000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792356667" lon="-1.726760000">
+  <ele>156.600000</ele>
+<time>2008-08-14T15:09:36Z</time>
+  <course>70.290001</course>
+  <speed>1.444444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792363333" lon="-1.726748333">
+  <ele>156.800000</ele>
+<time>2008-08-14T15:09:37Z</time>
+  <course>70.290001</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792368333" lon="-1.726740000">
+  <ele>156.900000</ele>
+<time>2008-08-14T15:09:38Z</time>
+  <course>70.290001</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792363333" lon="-1.726725000">
+  <ele>157.300000</ele>
+<time>2008-08-14T15:09:39Z</time>
+  <course>128.520004</course>
+  <speed>0.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792343333" lon="-1.726721667">
+  <ele>157.200000</ele>
+<time>2008-08-14T15:09:40Z</time>
+  <course>189.119995</course>
+  <speed>2.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792303333" lon="-1.726726667">
+  <ele>157.200000</ele>
+<time>2008-08-14T15:09:41Z</time>
+  <course>184.020004</course>
+  <speed>4.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792253333" lon="-1.726733333">
+  <ele>157.300000</ele>
+<time>2008-08-14T15:09:42Z</time>
+  <course>191.690002</course>
+  <speed>4.750000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.792206667" lon="-1.726748333">
+  <ele>156.900000</ele>
+<time>2008-08-14T15:09:43Z</time>
+  <course>189.449997</course>
+  <speed>5.027778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792161667" lon="-1.726763333">
+  <ele>156.600000</ele>
+<time>2008-08-14T15:09:44Z</time>
+  <course>190.139999</course>
+  <speed>4.861111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792118333" lon="-1.726783333">
+  <ele>155.800000</ele>
+<time>2008-08-14T15:09:45Z</time>
+  <course>191.220001</course>
+  <speed>4.361111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792083333" lon="-1.726795000">
+  <ele>155.400000</ele>
+<time>2008-08-14T15:09:46Z</time>
+  <course>188.210007</course>
+  <speed>3.805556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792053333" lon="-1.726800000">
+  <ele>154.900000</ele>
+<time>2008-08-14T15:09:47Z</time>
+  <course>181.509995</course>
+  <speed>3.138889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792028333" lon="-1.726795000">
+  <ele>154.300000</ele>
+<time>2008-08-14T15:09:48Z</time>
+  <course>165.449997</course>
+  <speed>2.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792010000" lon="-1.726781667">
+  <ele>154.100000</ele>
+<time>2008-08-14T15:09:49Z</time>
+  <course>152.869995</course>
+  <speed>1.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.791996667" lon="-1.726771667">
+  <ele>153.400000</ele>
+<time>2008-08-14T15:09:50Z</time>
+  <course>143.399994</course>
+  <speed>1.444444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.791988333" lon="-1.726761667">
+  <ele>153.300000</ele>
+<time>2008-08-14T15:09:51Z</time>
+  <course>143.399994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.791981667" lon="-1.726756667">
+  <ele>153.200000</ele>
+<time>2008-08-14T15:09:52Z</time>
+  <course>143.399994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.791973333" lon="-1.726758333">
+  <ele>153.200000</ele>
+<time>2008-08-14T15:09:53Z</time>
+  <course>143.399994</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.791965000" lon="-1.726758333">
+  <ele>153.200000</ele>
+<time>2008-08-14T15:09:54Z</time>
+  <course>181.039993</course>
+  <speed>0.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791953333" lon="-1.726761667">
+  <ele>153.100000</ele>
+<time>2008-08-14T15:09:55Z</time>
+  <course>191.479996</course>
+  <speed>1.055556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.791945000" lon="-1.726766667">
+  <ele>153.000000</ele>
+<time>2008-08-14T15:09:56Z</time>
+  <course>191.479996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.791941667" lon="-1.726780000">
+  <ele>152.000000</ele>
+<time>2008-08-14T15:09:57Z</time>
+  <course>191.479996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791935000" lon="-1.726790000">
+  <ele>151.400000</ele>
+<time>2008-08-14T15:09:58Z</time>
+  <course>191.479996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791930000" lon="-1.726798333">
+  <ele>151.300000</ele>
+<time>2008-08-14T15:09:59Z</time>
+  <course>191.479996</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791926667" lon="-1.726816667">
+  <ele>151.300000</ele>
+<time>2008-08-14T15:10:00Z</time>
+  <course>264.600006</course>
+  <speed>1.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791930000" lon="-1.726846667">
+  <ele>151.400000</ele>
+<time>2008-08-14T15:10:01Z</time>
+  <course>296.369995</course>
+  <speed>1.916667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.500000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.791936667" lon="-1.726868333">
+  <ele>151.600000</ele>
+<time>2008-08-14T15:10:02Z</time>
+  <course>328.880005</course>
+  <speed>1.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791945000" lon="-1.726875000">
+  <ele>151.700000</ele>
+<time>2008-08-14T15:10:03Z</time>
+  <course>328.880005</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791950000" lon="-1.726876667">
+  <ele>151.400000</ele>
+<time>2008-08-14T15:10:04Z</time>
+  <course>328.880005</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791955000" lon="-1.726873333">
+  <ele>151.700000</ele>
+<time>2008-08-14T15:10:05Z</time>
+  <course>328.880005</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.791965000" lon="-1.726868333">
+  <ele>152.200000</ele>
+<time>2008-08-14T15:10:06Z</time>
+  <course>18.049999</course>
+  <speed>1.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.500000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.791986667" lon="-1.726856667">
+  <ele>152.900000</ele>
+<time>2008-08-14T15:10:07Z</time>
+  <course>23.110001</course>
+  <speed>2.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792020000" lon="-1.726836667">
+  <ele>153.200000</ele>
+<time>2008-08-14T15:10:08Z</time>
+  <course>19.780001</course>
+  <speed>3.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792061667" lon="-1.726813333">
+  <ele>153.100000</ele>
+<time>2008-08-14T15:10:09Z</time>
+  <course>16.790001</course>
+  <speed>4.805555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792100000" lon="-1.726795000">
+  <ele>153.100000</ele>
+<time>2008-08-14T15:10:10Z</time>
+  <course>14.090000</course>
+  <speed>4.555555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792136667" lon="-1.726780000">
+  <ele>153.200000</ele>
+<time>2008-08-14T15:10:11Z</time>
+  <course>10.700000</course>
+  <speed>4.222222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.500000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792168333" lon="-1.726770000">
+  <ele>153.200000</ele>
+<time>2008-08-14T15:10:12Z</time>
+  <course>8.220000</course>
+  <speed>3.805556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792193333" lon="-1.726765000">
+  <ele>153.300000</ele>
+<time>2008-08-14T15:10:13Z</time>
+  <course>8.100000</course>
+  <speed>3.194444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792210000" lon="-1.726761667">
+  <ele>153.700000</ele>
+<time>2008-08-14T15:10:14Z</time>
+  <course>5.590000</course>
+  <speed>2.194444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792220000" lon="-1.726765000">
+  <ele>154.200000</ele>
+<time>2008-08-14T15:10:15Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792226667" lon="-1.726766667">
+  <ele>155.100000</ele>
+<time>2008-08-14T15:10:16Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792228333" lon="-1.726770000">
+  <ele>155.400000</ele>
+<time>2008-08-14T15:10:17Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792230000" lon="-1.726771667">
+  <ele>155.700000</ele>
+<time>2008-08-14T15:10:18Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792230000" lon="-1.726775000">
+  <ele>156.100000</ele>
+<time>2008-08-14T15:10:19Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792231667" lon="-1.726775000">
+  <ele>156.700000</ele>
+<time>2008-08-14T15:10:20Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792233333" lon="-1.726778333">
+  <ele>157.000000</ele>
+<time>2008-08-14T15:10:21Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792233333" lon="-1.726780000">
+  <ele>157.300000</ele>
+<time>2008-08-14T15:10:22Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792235000" lon="-1.726783333">
+  <ele>157.500000</ele>
+<time>2008-08-14T15:10:23Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792235000" lon="-1.726783333">
+  <ele>157.800000</ele>
+<time>2008-08-14T15:10:24Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792236667" lon="-1.726786667">
+  <ele>157.900000</ele>
+<time>2008-08-14T15:10:25Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792238333" lon="-1.726786667">
+  <ele>158.300000</ele>
+<time>2008-08-14T15:10:26Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792240000" lon="-1.726786667">
+  <ele>158.900000</ele>
+<time>2008-08-14T15:10:27Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792241667" lon="-1.726786667">
+  <ele>159.500000</ele>
+<time>2008-08-14T15:10:28Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792243333" lon="-1.726788333">
+  <ele>160.000000</ele>
+<time>2008-08-14T15:10:29Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792245000" lon="-1.726788333">
+  <ele>160.400000</ele>
+<time>2008-08-14T15:10:30Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792248333" lon="-1.726790000">
+  <ele>160.800000</ele>
+<time>2008-08-14T15:10:31Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792250000" lon="-1.726791667">
+  <ele>161.200000</ele>
+<time>2008-08-14T15:10:32Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792250000" lon="-1.726791667">
+  <ele>161.400000</ele>
+<time>2008-08-14T15:10:33Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792255000" lon="-1.726791667">
+  <ele>161.500000</ele>
+<time>2008-08-14T15:10:34Z</time>
+  <course>5.590000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792263333" lon="-1.726793333">
+  <ele>160.500000</ele>
+<time>2008-08-14T15:10:35Z</time>
+  <course>353.260010</course>
+  <speed>1.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792273333" lon="-1.726796667">
+  <ele>160.300000</ele>
+<time>2008-08-14T15:10:36Z</time>
+  <course>353.260010</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792281667" lon="-1.726798333">
+  <ele>159.500000</ele>
+<time>2008-08-14T15:10:37Z</time>
+  <course>353.260010</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792290000" lon="-1.726805000">
+  <ele>159.500000</ele>
+<time>2008-08-14T15:10:38Z</time>
+  <course>353.260010</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792300000" lon="-1.726818333">
+  <ele>158.900000</ele>
+<time>2008-08-14T15:10:39Z</time>
+  <course>313.619995</course>
+  <speed>1.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792310000" lon="-1.726850000">
+  <ele>158.200000</ele>
+<time>2008-08-14T15:10:40Z</time>
+  <course>288.829987</course>
+  <speed>2.472222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792315000" lon="-1.726905000">
+  <ele>157.700000</ele>
+<time>2008-08-14T15:10:41Z</time>
+  <course>276.029999</course>
+  <speed>3.555556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792315000" lon="-1.726981667">
+  <ele>157.000000</ele>
+<time>2008-08-14T15:10:42Z</time>
+  <course>269.880005</course>
+  <speed>5.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792311667" lon="-1.727086667">
+  <ele>156.400000</ele>
+<time>2008-08-14T15:10:43Z</time>
+  <course>266.799988</course>
+  <speed>6.722222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.727208333">
+  <ele>155.500000</ele>
+<time>2008-08-14T15:10:44Z</time>
+  <course>265.570007</course>
+  <speed>7.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792298333" lon="-1.727335000">
+  <ele>154.500000</ele>
+<time>2008-08-14T15:10:45Z</time>
+  <course>265.959991</course>
+  <speed>8.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792290000" lon="-1.727466667">
+  <ele>153.800000</ele>
+<time>2008-08-14T15:10:46Z</time>
+  <course>264.980011</course>
+  <speed>8.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792283333" lon="-1.727603333">
+  <ele>153.000000</ele>
+<time>2008-08-14T15:10:47Z</time>
+  <course>266.450012</course>
+  <speed>8.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792278333" lon="-1.727743333">
+  <ele>152.400000</ele>
+<time>2008-08-14T15:10:48Z</time>
+  <course>267.390015</course>
+  <speed>9.083333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792273333" lon="-1.727886667">
+  <ele>151.700000</ele>
+<time>2008-08-14T15:10:49Z</time>
+  <course>266.920013</course>
+  <speed>9.361111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792265000" lon="-1.728036667">
+  <ele>151.100000</ele>
+<time>2008-08-14T15:10:50Z</time>
+  <course>266.589996</course>
+  <speed>9.666667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792256667" lon="-1.728188333">
+  <ele>150.500000</ele>
+<time>2008-08-14T15:10:51Z</time>
+  <course>265.899994</course>
+  <speed>9.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792250000" lon="-1.728343333">
+  <ele>149.800000</ele>
+<time>2008-08-14T15:10:52Z</time>
+  <course>266.279999</course>
+  <speed>10.138889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792243333" lon="-1.728505000">
+  <ele>148.800000</ele>
+<time>2008-08-14T15:10:53Z</time>
+  <course>268.500000</course>
+  <speed>10.472222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792240000" lon="-1.728670000">
+  <ele>148.200000</ele>
+<time>2008-08-14T15:10:54Z</time>
+  <course>266.429993</course>
+  <speed>10.694445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792235000" lon="-1.728835000">
+  <ele>147.500000</ele>
+<time>2008-08-14T15:10:55Z</time>
+  <course>269.239990</course>
+  <speed>10.777778</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792233333" lon="-1.729003333">
+  <ele>146.700000</ele>
+<time>2008-08-14T15:10:56Z</time>
+  <course>270.339996</course>
+  <speed>11.000000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.400000</hdop>
+  <vdop>2.500000</vdop>
+  <pdop>2.800000</pdop>
+</trkpt>
+<trkpt lat="53.792231667" lon="-1.729175000">
+  <ele>146.000000</ele>
+<time>2008-08-14T15:10:57Z</time>
+  <course>269.399994</course>
+  <speed>11.194445</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792230000" lon="-1.729350000">
+  <ele>145.400000</ele>
+<time>2008-08-14T15:10:58Z</time>
+  <course>269.019989</course>
+  <speed>11.388889</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792228333" lon="-1.729526667">
+  <ele>144.700000</ele>
+<time>2008-08-14T15:10:59Z</time>
+  <course>269.959991</course>
+  <speed>11.583333</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792226667" lon="-1.729706667">
+  <ele>144.100000</ele>
+<time>2008-08-14T15:11:00Z</time>
+  <course>269.880005</course>
+  <speed>11.777778</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.792225000" lon="-1.729890000">
+  <ele>143.500000</ele>
+<time>2008-08-14T15:11:01Z</time>
+  <course>269.170013</course>
+  <speed>11.944445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.400000</pdop>
+</trkpt>
+<trkpt lat="53.792223333" lon="-1.730073333">
+  <ele>142.900000</ele>
+<time>2008-08-14T15:11:02Z</time>
+  <course>269.500000</course>
+  <speed>12.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792221667" lon="-1.730258333">
+  <ele>142.500000</ele>
+<time>2008-08-14T15:11:03Z</time>
+  <course>269.489990</course>
+  <speed>12.027778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792220000" lon="-1.730445000">
+  <ele>141.800000</ele>
+<time>2008-08-14T15:11:04Z</time>
+  <course>269.359985</course>
+  <speed>12.166667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792218333" lon="-1.730635000">
+  <ele>141.200000</ele>
+<time>2008-08-14T15:11:05Z</time>
+  <course>269.959991</course>
+  <speed>12.361111</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.792218333" lon="-1.730826667">
+  <ele>140.700000</ele>
+<time>2008-08-14T15:11:06Z</time>
+  <course>270.910004</course>
+  <speed>12.527778</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.400000</vdop>
+  <pdop>2.700000</pdop>
+</trkpt>
+<trkpt lat="53.792221667" lon="-1.731020000">
+  <ele>140.500000</ele>
+<time>2008-08-14T15:11:07Z</time>
+  <course>271.549988</course>
+  <speed>12.722222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792223333" lon="-1.731216667">
+  <ele>140.100000</ele>
+<time>2008-08-14T15:11:08Z</time>
+  <course>270.440002</course>
+  <speed>12.888889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792223333" lon="-1.731416667">
+  <ele>139.600000</ele>
+<time>2008-08-14T15:11:09Z</time>
+  <course>269.839996</course>
+  <speed>13.027778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792221667" lon="-1.731616667">
+  <ele>139.000000</ele>
+<time>2008-08-14T15:11:10Z</time>
+  <course>269.390015</course>
+  <speed>13.055555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792220000" lon="-1.731815000">
+  <ele>138.400000</ele>
+<time>2008-08-14T15:11:11Z</time>
+  <course>270.140015</course>
+  <speed>13.000000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.100000</vdop>
+  <pdop>2.400000</pdop>
+</trkpt>
+<trkpt lat="53.792221667" lon="-1.732015000">
+  <ele>137.800000</ele>
+<time>2008-08-14T15:11:12Z</time>
+  <course>271.559998</course>
+  <speed>13.027778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792225000" lon="-1.732215000">
+  <ele>137.400000</ele>
+<time>2008-08-14T15:11:13Z</time>
+  <course>272.510010</course>
+  <speed>13.138889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792231667" lon="-1.732416667">
+  <ele>136.900000</ele>
+<time>2008-08-14T15:11:14Z</time>
+  <course>273.380005</course>
+  <speed>13.222222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792238333" lon="-1.732618333">
+  <ele>136.700000</ele>
+<time>2008-08-14T15:11:15Z</time>
+  <course>273.350006</course>
+  <speed>13.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792246667" lon="-1.732823333">
+  <ele>136.300000</ele>
+<time>2008-08-14T15:11:16Z</time>
+  <course>273.519989</course>
+  <speed>13.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792253333" lon="-1.733025000">
+  <ele>135.800000</ele>
+<time>2008-08-14T15:11:17Z</time>
+  <course>273.130005</course>
+  <speed>13.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792261667" lon="-1.733221667">
+  <ele>135.700000</ele>
+<time>2008-08-14T15:11:18Z</time>
+  <course>274.940002</course>
+  <speed>12.972222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792270000" lon="-1.733416667">
+  <ele>135.500000</ele>
+<time>2008-08-14T15:11:19Z</time>
+  <course>273.959991</course>
+  <speed>12.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792278333" lon="-1.733610000">
+  <ele>135.100000</ele>
+<time>2008-08-14T15:11:20Z</time>
+  <course>274.140015</course>
+  <speed>12.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792288333" lon="-1.733800000">
+  <ele>134.700000</ele>
+<time>2008-08-14T15:11:21Z</time>
+  <course>274.549988</course>
+  <speed>12.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792296667" lon="-1.733990000">
+  <ele>134.300000</ele>
+<time>2008-08-14T15:11:22Z</time>
+  <course>275.070007</course>
+  <speed>12.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792306667" lon="-1.734180000">
+  <ele>134.000000</ele>
+<time>2008-08-14T15:11:23Z</time>
+  <course>275.040009</course>
+  <speed>12.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792318333" lon="-1.734368333">
+  <ele>133.700000</ele>
+<time>2008-08-14T15:11:24Z</time>
+  <course>275.820007</course>
+  <speed>12.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792328333" lon="-1.734556667">
+  <ele>133.300000</ele>
+<time>2008-08-14T15:11:25Z</time>
+  <course>275.339996</course>
+  <speed>12.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792340000" lon="-1.734740000">
+  <ele>133.100000</ele>
+<time>2008-08-14T15:11:26Z</time>
+  <course>276.149994</course>
+  <speed>12.166667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792350000" lon="-1.734921667">
+  <ele>132.900000</ele>
+<time>2008-08-14T15:11:27Z</time>
+  <course>274.839996</course>
+  <speed>11.972222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792361667" lon="-1.735103333">
+  <ele>132.700000</ele>
+<time>2008-08-14T15:11:28Z</time>
+  <course>275.769989</course>
+  <speed>11.944445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792373333" lon="-1.735283333">
+  <ele>132.700000</ele>
+<time>2008-08-14T15:11:29Z</time>
+  <course>275.779999</course>
+  <speed>11.888889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792386667" lon="-1.735461667">
+  <ele>132.700000</ele>
+<time>2008-08-14T15:11:30Z</time>
+  <course>276.380005</course>
+  <speed>11.861111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792401667" lon="-1.735640000">
+  <ele>132.600000</ele>
+<time>2008-08-14T15:11:31Z</time>
+  <course>277.549988</course>
+  <speed>11.833333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.792416667" lon="-1.735818333">
+  <ele>132.500000</ele>
+<time>2008-08-14T15:11:32Z</time>
+  <course>278.070007</course>
+  <speed>11.805555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792433333" lon="-1.735995000">
+  <ele>132.400000</ele>
+<time>2008-08-14T15:11:33Z</time>
+  <course>279.019989</course>
+  <speed>11.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792451667" lon="-1.736171667">
+  <ele>132.300000</ele>
+<time>2008-08-14T15:11:34Z</time>
+  <course>279.410004</course>
+  <speed>11.750000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792468333" lon="-1.736346667">
+  <ele>132.100000</ele>
+<time>2008-08-14T15:11:35Z</time>
+  <course>278.799988</course>
+  <speed>11.694445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792483333" lon="-1.736521667">
+  <ele>131.900000</ele>
+<time>2008-08-14T15:11:36Z</time>
+  <course>276.510010</course>
+  <speed>11.583333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.792495000" lon="-1.736693333">
+  <ele>131.700000</ele>
+<time>2008-08-14T15:11:37Z</time>
+  <course>276.609985</course>
+  <speed>11.388889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792508333" lon="-1.736860000">
+  <ele>131.500000</ele>
+<time>2008-08-14T15:11:38Z</time>
+  <course>277.820007</course>
+  <speed>11.055555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792521667" lon="-1.737018333">
+  <ele>131.300000</ele>
+<time>2008-08-14T15:11:39Z</time>
+  <course>277.649994</course>
+  <speed>10.527778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792535000" lon="-1.737170000">
+  <ele>131.100000</ele>
+<time>2008-08-14T15:11:40Z</time>
+  <course>277.420013</course>
+  <speed>10.027778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.792546667" lon="-1.737315000">
+  <ele>130.800000</ele>
+<time>2008-08-14T15:11:41Z</time>
+  <course>277.750000</course>
+  <speed>9.666667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.792558333" lon="-1.737451667">
+  <ele>130.600000</ele>
+<time>2008-08-14T15:11:42Z</time>
+  <course>278.480011</course>
+  <speed>9.111111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792570000" lon="-1.737568333">
+  <ele>130.500000</ele>
+<time>2008-08-14T15:11:43Z</time>
+  <course>278.500000</course>
+  <speed>7.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792580000" lon="-1.737666667">
+  <ele>130.600000</ele>
+<time>2008-08-14T15:11:44Z</time>
+  <course>278.619995</course>
+  <speed>6.638889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792588333" lon="-1.737761667">
+  <ele>130.500000</ele>
+<time>2008-08-14T15:11:45Z</time>
+  <course>278.790009</course>
+  <speed>6.361111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792598333" lon="-1.737860000">
+  <ele>130.200000</ele>
+<time>2008-08-14T15:11:46Z</time>
+  <course>279.329987</course>
+  <speed>6.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792608333" lon="-1.737960000">
+  <ele>130.000000</ele>
+<time>2008-08-14T15:11:47Z</time>
+  <course>279.290009</course>
+  <speed>6.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792618333" lon="-1.738065000">
+  <ele>129.700000</ele>
+<time>2008-08-14T15:11:48Z</time>
+  <course>279.049988</course>
+  <speed>7.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792630000" lon="-1.738173333">
+  <ele>129.300000</ele>
+<time>2008-08-14T15:11:49Z</time>
+  <course>279.510010</course>
+  <speed>7.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792640000" lon="-1.738285000">
+  <ele>128.900000</ele>
+<time>2008-08-14T15:11:50Z</time>
+  <course>280.000000</course>
+  <speed>7.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792651667" lon="-1.738411667">
+  <ele>128.600000</ele>
+<time>2008-08-14T15:11:51Z</time>
+  <course>278.079987</course>
+  <speed>8.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.792663333" lon="-1.738556667">
+  <ele>128.200000</ele>
+<time>2008-08-14T15:11:52Z</time>
+  <course>277.630005</course>
+  <speed>9.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792676667" lon="-1.738713333">
+  <ele>127.700000</ele>
+<time>2008-08-14T15:11:53Z</time>
+  <course>277.679993</course>
+  <speed>10.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792688333" lon="-1.738875000">
+  <ele>127.000000</ele>
+<time>2008-08-14T15:11:54Z</time>
+  <course>278.019989</course>
+  <speed>10.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792703333" lon="-1.739041667">
+  <ele>126.400000</ele>
+<time>2008-08-14T15:11:55Z</time>
+  <course>278.489990</course>
+  <speed>11.027778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.792718333" lon="-1.739218333">
+  <ele>125.700000</ele>
+<time>2008-08-14T15:11:56Z</time>
+  <course>279.329987</course>
+  <speed>11.638889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.800000</pdop>
+</trkpt>
+<trkpt lat="53.792736667" lon="-1.739406667">
+  <ele>125.000000</ele>
+<time>2008-08-14T15:11:57Z</time>
+  <course>279.369995</course>
+  <speed>12.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792755000" lon="-1.739600000">
+  <ele>124.300000</ele>
+<time>2008-08-14T15:11:58Z</time>
+  <course>279.450012</course>
+  <speed>12.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792773333" lon="-1.739796667">
+  <ele>123.500000</ele>
+<time>2008-08-14T15:11:59Z</time>
+  <course>279.529999</course>
+  <speed>13.055555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792793333" lon="-1.739995000">
+  <ele>122.900000</ele>
+<time>2008-08-14T15:12:00Z</time>
+  <course>279.820007</course>
+  <speed>13.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792813333" lon="-1.740193333">
+  <ele>122.200000</ele>
+<time>2008-08-14T15:12:01Z</time>
+  <course>280.149994</course>
+  <speed>13.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792835000" lon="-1.740390000">
+  <ele>121.400000</ele>
+<time>2008-08-14T15:12:02Z</time>
+  <course>280.429993</course>
+  <speed>13.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792855000" lon="-1.740580000">
+  <ele>120.600000</ele>
+<time>2008-08-14T15:12:03Z</time>
+  <course>280.589996</course>
+  <speed>12.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792875000" lon="-1.740746667">
+  <ele>120.000000</ele>
+<time>2008-08-14T15:12:04Z</time>
+  <course>280.869995</course>
+  <speed>11.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792890000" lon="-1.740880000">
+  <ele>119.400000</ele>
+<time>2008-08-14T15:12:05Z</time>
+  <course>280.739990</course>
+  <speed>9.027778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792903333" lon="-1.740983333">
+  <ele>118.900000</ele>
+<time>2008-08-14T15:12:06Z</time>
+  <course>280.730011</course>
+  <speed>7.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792911667" lon="-1.741065000">
+  <ele>118.400000</ele>
+<time>2008-08-14T15:12:07Z</time>
+  <course>279.320007</course>
+  <speed>5.555555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792918333" lon="-1.741123333">
+  <ele>118.100000</ele>
+<time>2008-08-14T15:12:08Z</time>
+  <course>278.290009</course>
+  <speed>4.083333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792923333" lon="-1.741165000">
+  <ele>117.800000</ele>
+<time>2008-08-14T15:12:09Z</time>
+  <course>277.190002</course>
+  <speed>2.944444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.792925000" lon="-1.741193333">
+  <ele>117.600000</ele>
+<time>2008-08-14T15:12:10Z</time>
+  <course>274.980011</course>
+  <speed>1.944444</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792926667" lon="-1.741203333">
+  <ele>117.500000</ele>
+<time>2008-08-14T15:12:11Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792926667" lon="-1.741203333">
+  <ele>117.300000</ele>
+<time>2008-08-14T15:12:12Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792926667" lon="-1.741201667">
+  <ele>117.300000</ele>
+<time>2008-08-14T15:12:13Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792926667" lon="-1.741200000">
+  <ele>117.200000</ele>
+<time>2008-08-14T15:12:14Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792926667" lon="-1.741196667">
+  <ele>117.100000</ele>
+<time>2008-08-14T15:12:15Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792926667" lon="-1.741195000">
+  <ele>117.000000</ele>
+<time>2008-08-14T15:12:16Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792925000" lon="-1.741195000">
+  <ele>116.900000</ele>
+<time>2008-08-14T15:12:17Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792925000" lon="-1.741193333">
+  <ele>116.900000</ele>
+<time>2008-08-14T15:12:18Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792925000" lon="-1.741191667">
+  <ele>116.800000</ele>
+<time>2008-08-14T15:12:19Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792926667" lon="-1.741198333">
+  <ele>116.600000</ele>
+<time>2008-08-14T15:12:20Z</time>
+  <course>274.980011</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792931667" lon="-1.741230000">
+  <ele>116.900000</ele>
+<time>2008-08-14T15:12:21Z</time>
+  <course>282.070007</course>
+  <speed>2.194444</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.792940000" lon="-1.741298333">
+  <ele>116.700000</ele>
+<time>2008-08-14T15:12:22Z</time>
+  <course>283.089996</course>
+  <speed>4.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792951667" lon="-1.741390000">
+  <ele>116.400000</ele>
+<time>2008-08-14T15:12:23Z</time>
+  <course>282.359985</course>
+  <speed>6.111111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792965000" lon="-1.741501667">
+  <ele>115.900000</ele>
+<time>2008-08-14T15:12:24Z</time>
+  <course>282.440002</course>
+  <speed>7.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.792985000" lon="-1.741631667">
+  <ele>116.100000</ele>
+<time>2008-08-14T15:12:25Z</time>
+  <course>283.010010</course>
+  <speed>8.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793006667" lon="-1.741771667">
+  <ele>116.400000</ele>
+<time>2008-08-14T15:12:26Z</time>
+  <course>283.790009</course>
+  <speed>9.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.793028333" lon="-1.741913333">
+  <ele>116.500000</ele>
+<time>2008-08-14T15:12:27Z</time>
+  <course>283.260010</course>
+  <speed>9.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793046667" lon="-1.742056667">
+  <ele>116.600000</ele>
+<time>2008-08-14T15:12:28Z</time>
+  <course>281.059998</course>
+  <speed>9.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793060000" lon="-1.742195000">
+  <ele>116.300000</ele>
+<time>2008-08-14T15:12:29Z</time>
+  <course>277.940002</course>
+  <speed>9.222222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793068333" lon="-1.742318333">
+  <ele>116.000000</ele>
+<time>2008-08-14T15:12:30Z</time>
+  <course>275.600006</course>
+  <speed>8.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793075000" lon="-1.742420000">
+  <ele>116.200000</ele>
+<time>2008-08-14T15:12:31Z</time>
+  <course>273.730011</course>
+  <speed>6.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.200000</pdop>
+</trkpt>
+<trkpt lat="53.793081667" lon="-1.742508333">
+  <ele>117.000000</ele>
+<time>2008-08-14T15:12:32Z</time>
+  <course>272.859985</course>
+  <speed>5.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793083333" lon="-1.742578333">
+  <ele>117.100000</ele>
+<time>2008-08-14T15:12:33Z</time>
+  <course>270.959991</course>
+  <speed>4.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793081667" lon="-1.742616667">
+  <ele>117.400000</ele>
+<time>2008-08-14T15:12:34Z</time>
+  <course>265.140015</course>
+  <speed>2.861111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793083333" lon="-1.742630000">
+  <ele>117.400000</ele>
+<time>2008-08-14T15:12:35Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793081667" lon="-1.742633333">
+  <ele>117.600000</ele>
+<time>2008-08-14T15:12:36Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.200000</pdop>
+</trkpt>
+<trkpt lat="53.793080000" lon="-1.742631667">
+  <ele>117.800000</ele>
+<time>2008-08-14T15:12:37Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793080000" lon="-1.742630000">
+  <ele>117.900000</ele>
+<time>2008-08-14T15:12:38Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793078333" lon="-1.742628333">
+  <ele>118.000000</ele>
+<time>2008-08-14T15:12:39Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793076667" lon="-1.742628333">
+  <ele>118.200000</ele>
+<time>2008-08-14T15:12:40Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793075000" lon="-1.742628333">
+  <ele>118.500000</ele>
+<time>2008-08-14T15:12:41Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.200000</pdop>
+</trkpt>
+<trkpt lat="53.793073333" lon="-1.742628333">
+  <ele>118.800000</ele>
+<time>2008-08-14T15:12:42Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793071667" lon="-1.742628333">
+  <ele>119.000000</ele>
+<time>2008-08-14T15:12:43Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793070000" lon="-1.742626667">
+  <ele>119.300000</ele>
+<time>2008-08-14T15:12:44Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793068333" lon="-1.742628333">
+  <ele>119.400000</ele>
+<time>2008-08-14T15:12:45Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793065000" lon="-1.742628333">
+  <ele>119.600000</ele>
+<time>2008-08-14T15:12:46Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.200000</pdop>
+</trkpt>
+<trkpt lat="53.793063333" lon="-1.742628333">
+  <ele>119.800000</ele>
+<time>2008-08-14T15:12:47Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793060000" lon="-1.742628333">
+  <ele>119.900000</ele>
+<time>2008-08-14T15:12:48Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793056667" lon="-1.742630000">
+  <ele>120.000000</ele>
+<time>2008-08-14T15:12:49Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793055000" lon="-1.742630000">
+  <ele>120.100000</ele>
+<time>2008-08-14T15:12:50Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793051667" lon="-1.742630000">
+  <ele>120.200000</ele>
+<time>2008-08-14T15:12:51Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.200000</pdop>
+</trkpt>
+<trkpt lat="53.793050000" lon="-1.742633333">
+  <ele>120.300000</ele>
+<time>2008-08-14T15:12:52Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793045000" lon="-1.742636667">
+  <ele>119.800000</ele>
+<time>2008-08-14T15:12:53Z</time>
+  <course>265.140015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793045000" lon="-1.742648333">
+  <ele>119.500000</ele>
+<time>2008-08-14T15:12:54Z</time>
+  <course>271.869995</course>
+  <speed>0.694444</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793045000" lon="-1.742680000">
+  <ele>119.200000</ele>
+<time>2008-08-14T15:12:55Z</time>
+  <course>272.589996</course>
+  <speed>2.083333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793045000" lon="-1.742735000">
+  <ele>119.100000</ele>
+<time>2008-08-14T15:12:56Z</time>
+  <course>270.329987</course>
+  <speed>3.611111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.200000</pdop>
+</trkpt>
+<trkpt lat="53.793045000" lon="-1.742806667">
+  <ele>118.800000</ele>
+<time>2008-08-14T15:12:57Z</time>
+  <course>269.660004</course>
+  <speed>4.694445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.793045000" lon="-1.742895000">
+  <ele>118.500000</ele>
+<time>2008-08-14T15:12:58Z</time>
+  <course>269.250000</course>
+  <speed>5.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793045000" lon="-1.742990000">
+  <ele>118.300000</ele>
+<time>2008-08-14T15:12:59Z</time>
+  <course>268.369995</course>
+  <speed>6.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793046667" lon="-1.743086667">
+  <ele>118.000000</ele>
+<time>2008-08-14T15:13:00Z</time>
+  <course>274.269989</course>
+  <speed>6.305555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793055000" lon="-1.743180000">
+  <ele>117.600000</ele>
+<time>2008-08-14T15:13:01Z</time>
+  <course>284.850006</course>
+  <speed>6.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.793076667" lon="-1.743270000">
+  <ele>117.200000</ele>
+<time>2008-08-14T15:13:02Z</time>
+  <course>297.989990</course>
+  <speed>6.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.793116667" lon="-1.743343333">
+  <ele>116.800000</ele>
+<time>2008-08-14T15:13:03Z</time>
+  <course>317.130005</course>
+  <speed>6.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793173333" lon="-1.743390000">
+  <ele>116.900000</ele>
+<time>2008-08-14T15:13:04Z</time>
+  <course>336.500000</course>
+  <speed>6.666667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793238333" lon="-1.743398333">
+  <ele>116.700000</ele>
+<time>2008-08-14T15:13:05Z</time>
+  <course>359.750000</course>
+  <speed>6.888889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793326667" lon="-1.743386667">
+  <ele>120.100000</ele>
+<time>2008-08-14T15:13:06Z</time>
+  <course>10.270000</course>
+  <speed>7.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.793420000" lon="-1.743353333">
+  <ele>121.600000</ele>
+<time>2008-08-14T15:13:07Z</time>
+  <course>17.360001</course>
+  <speed>9.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793506667" lon="-1.743308333">
+  <ele>121.800000</ele>
+<time>2008-08-14T15:13:08Z</time>
+  <course>16.559999</course>
+  <speed>9.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793603333" lon="-1.743265000">
+  <ele>122.800000</ele>
+<time>2008-08-14T15:13:09Z</time>
+  <course>14.890000</course>
+  <speed>10.055555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793703333" lon="-1.743226667">
+  <ele>123.600000</ele>
+<time>2008-08-14T15:13:10Z</time>
+  <course>11.590000</course>
+  <speed>10.611111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.793810000" lon="-1.743195000">
+  <ele>123.800000</ele>
+<time>2008-08-14T15:13:11Z</time>
+  <course>7.080000</course>
+  <speed>11.222222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>2.000000</pdop>
+</trkpt>
+<trkpt lat="53.793911667" lon="-1.743165000">
+  <ele>124.600000</ele>
+<time>2008-08-14T15:13:12Z</time>
+  <course>3.210000</course>
+  <speed>11.611111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.794016667" lon="-1.743166667">
+  <ele>124.700000</ele>
+<time>2008-08-14T15:13:13Z</time>
+  <course>358.779999</course>
+  <speed>11.388889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.794116667" lon="-1.743180000">
+  <ele>124.800000</ele>
+<time>2008-08-14T15:13:14Z</time>
+  <course>354.880005</course>
+  <speed>10.694445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.794213333" lon="-1.743203333">
+  <ele>125.500000</ele>
+<time>2008-08-14T15:13:15Z</time>
+  <course>352.359985</course>
+  <speed>10.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.794305000" lon="-1.743231667">
+  <ele>125.300000</ele>
+<time>2008-08-14T15:13:16Z</time>
+  <course>349.899994</course>
+  <speed>10.416667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.794398333" lon="-1.743251667">
+  <ele>126.000000</ele>
+<time>2008-08-14T15:13:17Z</time>
+  <course>348.209991</course>
+  <speed>10.472222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.794493333" lon="-1.743286667">
+  <ele>126.800000</ele>
+<time>2008-08-14T15:13:18Z</time>
+  <course>348.010010</course>
+  <speed>10.555555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.794590000" lon="-1.743326667">
+  <ele>127.700000</ele>
+<time>2008-08-14T15:13:19Z</time>
+  <course>345.079987</course>
+  <speed>10.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.794688333" lon="-1.743375000">
+  <ele>128.300000</ele>
+<time>2008-08-14T15:13:20Z</time>
+  <course>342.299988</course>
+  <speed>11.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.794788333" lon="-1.743431667">
+  <ele>128.900000</ele>
+<time>2008-08-14T15:13:21Z</time>
+  <course>341.269989</course>
+  <speed>11.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.794890000" lon="-1.743490000">
+  <ele>129.400000</ele>
+<time>2008-08-14T15:13:22Z</time>
+  <course>340.730011</course>
+  <speed>11.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.794996667" lon="-1.743558333">
+  <ele>129.200000</ele>
+<time>2008-08-14T15:13:23Z</time>
+  <course>340.019989</course>
+  <speed>12.027778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.795098333" lon="-1.743623333">
+  <ele>131.300000</ele>
+<time>2008-08-14T15:13:24Z</time>
+  <course>339.489990</course>
+  <speed>11.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.795198333" lon="-1.743690000">
+  <ele>131.700000</ele>
+<time>2008-08-14T15:13:25Z</time>
+  <course>338.160004</course>
+  <speed>12.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.795303333" lon="-1.743753333">
+  <ele>132.900000</ele>
+<time>2008-08-14T15:13:26Z</time>
+  <course>341.649994</course>
+  <speed>12.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.795406667" lon="-1.743813333">
+  <ele>134.300000</ele>
+<time>2008-08-14T15:13:27Z</time>
+  <course>340.549988</course>
+  <speed>12.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.795515000" lon="-1.743881667">
+  <ele>134.200000</ele>
+<time>2008-08-14T15:13:28Z</time>
+  <course>341.769989</course>
+  <speed>12.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.795625000" lon="-1.743940000">
+  <ele>134.600000</ele>
+<time>2008-08-14T15:13:29Z</time>
+  <course>341.739990</course>
+  <speed>12.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.795730000" lon="-1.744000000">
+  <ele>135.000000</ele>
+<time>2008-08-14T15:13:30Z</time>
+  <course>342.119995</course>
+  <speed>12.111111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.795831667" lon="-1.744060000">
+  <ele>131.700000</ele>
+<time>2008-08-14T15:13:31Z</time>
+  <course>343.589996</course>
+  <speed>12.111111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.795935000" lon="-1.744115000">
+  <ele>129.500000</ele>
+<time>2008-08-14T15:13:32Z</time>
+  <course>344.089996</course>
+  <speed>11.777778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796025000" lon="-1.744158333">
+  <ele>127.800000</ele>
+<time>2008-08-14T15:13:33Z</time>
+  <course>344.329987</course>
+  <speed>10.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796096667" lon="-1.744191667">
+  <ele>126.400000</ele>
+<time>2008-08-14T15:13:34Z</time>
+  <course>343.980011</course>
+  <speed>8.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796150000" lon="-1.744218333">
+  <ele>126.200000</ele>
+<time>2008-08-14T15:13:35Z</time>
+  <course>345.140015</course>
+  <speed>6.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796190000" lon="-1.744236667">
+  <ele>126.200000</ele>
+<time>2008-08-14T15:13:36Z</time>
+  <course>343.769989</course>
+  <speed>4.777778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796220000" lon="-1.744246667">
+  <ele>126.100000</ele>
+<time>2008-08-14T15:13:37Z</time>
+  <course>344.910004</course>
+  <speed>3.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744246667">
+  <ele>125.900000</ele>
+<time>2008-08-14T15:13:38Z</time>
+  <course>344.390015</course>
+  <speed>2.222222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796248333" lon="-1.744253333">
+  <ele>126.000000</ele>
+<time>2008-08-14T15:13:39Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796248333" lon="-1.744253333">
+  <ele>126.100000</ele>
+<time>2008-08-14T15:13:40Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796246667" lon="-1.744250000">
+  <ele>125.900000</ele>
+<time>2008-08-14T15:13:41Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796245000" lon="-1.744248333">
+  <ele>126.300000</ele>
+<time>2008-08-14T15:13:42Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796245000" lon="-1.744246667">
+  <ele>126.700000</ele>
+<time>2008-08-14T15:13:43Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796245000" lon="-1.744243333">
+  <ele>127.100000</ele>
+<time>2008-08-14T15:13:44Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796245000" lon="-1.744241667">
+  <ele>127.500000</ele>
+<time>2008-08-14T15:13:45Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796245000" lon="-1.744240000">
+  <ele>127.700000</ele>
+<time>2008-08-14T15:13:46Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744238333">
+  <ele>127.800000</ele>
+<time>2008-08-14T15:13:47Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744235000">
+  <ele>128.100000</ele>
+<time>2008-08-14T15:13:48Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744233333">
+  <ele>128.400000</ele>
+<time>2008-08-14T15:13:49Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744231667">
+  <ele>128.800000</ele>
+<time>2008-08-14T15:13:50Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744230000">
+  <ele>129.100000</ele>
+<time>2008-08-14T15:13:51Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744228333">
+  <ele>129.400000</ele>
+<time>2008-08-14T15:13:52Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744226667">
+  <ele>129.600000</ele>
+<time>2008-08-14T15:13:53Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744225000">
+  <ele>129.700000</ele>
+<time>2008-08-14T15:13:54Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744223333">
+  <ele>129.800000</ele>
+<time>2008-08-14T15:13:55Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744223333">
+  <ele>130.100000</ele>
+<time>2008-08-14T15:13:56Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744221667">
+  <ele>130.300000</ele>
+<time>2008-08-14T15:13:57Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744221667">
+  <ele>130.600000</ele>
+<time>2008-08-14T15:13:58Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796243333" lon="-1.744220000">
+  <ele>130.700000</ele>
+<time>2008-08-14T15:13:59Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796241667" lon="-1.744220000">
+  <ele>130.700000</ele>
+<time>2008-08-14T15:14:00Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796241667" lon="-1.744218333">
+  <ele>130.900000</ele>
+<time>2008-08-14T15:14:01Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796241667" lon="-1.744218333">
+  <ele>131.100000</ele>
+<time>2008-08-14T15:14:02Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796241667" lon="-1.744216667">
+  <ele>131.100000</ele>
+<time>2008-08-14T15:14:03Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796241667" lon="-1.744216667">
+  <ele>131.100000</ele>
+<time>2008-08-14T15:14:04Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796241667" lon="-1.744216667">
+  <ele>131.100000</ele>
+<time>2008-08-14T15:14:05Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796241667" lon="-1.744213333">
+  <ele>131.200000</ele>
+<time>2008-08-14T15:14:06Z</time>
+  <course>344.390015</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796248333" lon="-1.744215000">
+  <ele>131.200000</ele>
+<time>2008-08-14T15:14:07Z</time>
+  <course>343.820007</course>
+  <speed>0.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796268333" lon="-1.744223333">
+  <ele>131.100000</ele>
+<time>2008-08-14T15:14:08Z</time>
+  <course>343.779999</course>
+  <speed>2.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796303333" lon="-1.744241667">
+  <ele>130.900000</ele>
+<time>2008-08-14T15:14:09Z</time>
+  <course>341.790009</course>
+  <speed>3.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796343333" lon="-1.744261667">
+  <ele>130.900000</ele>
+<time>2008-08-14T15:14:10Z</time>
+  <course>343.690002</course>
+  <speed>4.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796391667" lon="-1.744283333">
+  <ele>130.800000</ele>
+<time>2008-08-14T15:14:11Z</time>
+  <course>344.029999</course>
+  <speed>5.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796450000" lon="-1.744313333">
+  <ele>128.900000</ele>
+<time>2008-08-14T15:14:12Z</time>
+  <course>341.989990</course>
+  <speed>6.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796523333" lon="-1.744350000">
+  <ele>127.400000</ele>
+<time>2008-08-14T15:14:13Z</time>
+  <course>343.049988</course>
+  <speed>8.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796606667" lon="-1.744391667">
+  <ele>126.500000</ele>
+<time>2008-08-14T15:14:14Z</time>
+  <course>342.829987</course>
+  <speed>9.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796696667" lon="-1.744436667">
+  <ele>125.600000</ele>
+<time>2008-08-14T15:14:15Z</time>
+  <course>342.839996</course>
+  <speed>10.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.796796667" lon="-1.744486667">
+  <ele>125.200000</ele>
+<time>2008-08-14T15:14:16Z</time>
+  <course>342.739990</course>
+  <speed>11.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.796901667" lon="-1.744541667">
+  <ele>125.300000</ele>
+<time>2008-08-14T15:14:17Z</time>
+  <course>340.959991</course>
+  <speed>12.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.797010000" lon="-1.744611667">
+  <ele>126.000000</ele>
+<time>2008-08-14T15:14:18Z</time>
+  <course>339.279999</course>
+  <speed>12.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.797118333" lon="-1.744686667">
+  <ele>126.000000</ele>
+<time>2008-08-14T15:14:19Z</time>
+  <course>338.670013</course>
+  <speed>12.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.797230000" lon="-1.744768333">
+  <ele>126.300000</ele>
+<time>2008-08-14T15:14:20Z</time>
+  <course>336.730011</course>
+  <speed>13.250000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.797346667" lon="-1.744860000">
+  <ele>126.500000</ele>
+<time>2008-08-14T15:14:21Z</time>
+  <course>335.459991</course>
+  <speed>13.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.800000</pdop>
+</trkpt>
+<trkpt lat="53.797463333" lon="-1.744956667">
+  <ele>126.600000</ele>
+<time>2008-08-14T15:14:22Z</time>
+  <course>333.750000</course>
+  <speed>14.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.797580000" lon="-1.745061667">
+  <ele>126.600000</ele>
+<time>2008-08-14T15:14:23Z</time>
+  <course>331.489990</course>
+  <speed>14.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.797695000" lon="-1.745173333">
+  <ele>126.400000</ele>
+<time>2008-08-14T15:14:24Z</time>
+  <course>329.450012</course>
+  <speed>14.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.797810000" lon="-1.745295000">
+  <ele>126.300000</ele>
+<time>2008-08-14T15:14:25Z</time>
+  <course>327.579987</course>
+  <speed>14.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.797921667" lon="-1.745421667">
+  <ele>124.900000</ele>
+<time>2008-08-14T15:14:26Z</time>
+  <course>326.200012</course>
+  <speed>14.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.798036667" lon="-1.745550000">
+  <ele>124.500000</ele>
+<time>2008-08-14T15:14:27Z</time>
+  <course>325.769989</course>
+  <speed>15.027778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.798151667" lon="-1.745683333">
+  <ele>124.100000</ele>
+<time>2008-08-14T15:14:28Z</time>
+  <course>325.700012</course>
+  <speed>15.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.798268333" lon="-1.745820000">
+  <ele>123.500000</ele>
+<time>2008-08-14T15:14:29Z</time>
+  <course>325.500000</course>
+  <speed>15.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.798388333" lon="-1.745963333">
+  <ele>122.700000</ele>
+<time>2008-08-14T15:14:30Z</time>
+  <course>324.859985</course>
+  <speed>16.083334</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.798506667" lon="-1.746106667">
+  <ele>121.700000</ele>
+<time>2008-08-14T15:14:31Z</time>
+  <course>324.709991</course>
+  <speed>16.055555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.798620000" lon="-1.746246667">
+  <ele>121.000000</ele>
+<time>2008-08-14T15:14:32Z</time>
+  <course>324.089996</course>
+  <speed>15.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.798731667" lon="-1.746385000">
+  <ele>120.100000</ele>
+<time>2008-08-14T15:14:33Z</time>
+  <course>323.609985</course>
+  <speed>15.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.798838333" lon="-1.746523333">
+  <ele>119.400000</ele>
+<time>2008-08-14T15:14:34Z</time>
+  <course>323.059998</course>
+  <speed>15.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.798945000" lon="-1.746661667">
+  <ele>118.700000</ele>
+<time>2008-08-14T15:14:35Z</time>
+  <course>322.279999</course>
+  <speed>14.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799050000" lon="-1.746801667">
+  <ele>117.900000</ele>
+<time>2008-08-14T15:14:36Z</time>
+  <course>321.619995</course>
+  <speed>14.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.799155000" lon="-1.746943333">
+  <ele>117.100000</ele>
+<time>2008-08-14T15:14:37Z</time>
+  <course>321.339996</course>
+  <speed>14.972222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799260000" lon="-1.747090000">
+  <ele>116.500000</ele>
+<time>2008-08-14T15:14:38Z</time>
+  <course>320.709991</course>
+  <speed>15.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799368333" lon="-1.747238333">
+  <ele>115.600000</ele>
+<time>2008-08-14T15:14:39Z</time>
+  <course>321.269989</course>
+  <speed>15.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799478333" lon="-1.747391667">
+  <ele>115.100000</ele>
+<time>2008-08-14T15:14:40Z</time>
+  <course>320.059998</course>
+  <speed>15.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799588333" lon="-1.747550000">
+  <ele>114.800000</ele>
+<time>2008-08-14T15:14:41Z</time>
+  <course>319.429993</course>
+  <speed>16.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.799698333" lon="-1.747708333">
+  <ele>114.500000</ele>
+<time>2008-08-14T15:14:42Z</time>
+  <course>319.250000</course>
+  <speed>16.027779</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799805000" lon="-1.747863333">
+  <ele>114.300000</ele>
+<time>2008-08-14T15:14:43Z</time>
+  <course>319.059998</course>
+  <speed>15.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799903333" lon="-1.748008333">
+  <ele>113.900000</ele>
+<time>2008-08-14T15:14:44Z</time>
+  <course>318.869995</course>
+  <speed>14.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.799995000" lon="-1.748141667">
+  <ele>113.600000</ele>
+<time>2008-08-14T15:14:45Z</time>
+  <course>319.200012</course>
+  <speed>13.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800076667" lon="-1.748258333">
+  <ele>113.400000</ele>
+<time>2008-08-14T15:14:46Z</time>
+  <course>319.809998</course>
+  <speed>11.916667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.800143333" lon="-1.748353333">
+  <ele>113.000000</ele>
+<time>2008-08-14T15:14:47Z</time>
+  <course>319.899994</course>
+  <speed>9.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800195000" lon="-1.748430000">
+  <ele>112.300000</ele>
+<time>2008-08-14T15:14:48Z</time>
+  <course>319.179993</course>
+  <speed>7.916667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800243333" lon="-1.748498333">
+  <ele>111.700000</ele>
+<time>2008-08-14T15:14:49Z</time>
+  <course>319.450012</course>
+  <speed>6.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800283333" lon="-1.748561667">
+  <ele>111.100000</ele>
+<time>2008-08-14T15:14:50Z</time>
+  <course>318.339996</course>
+  <speed>6.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800316667" lon="-1.748616667">
+  <ele>110.500000</ele>
+<time>2008-08-14T15:14:51Z</time>
+  <course>319.440002</course>
+  <speed>5.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.800341667" lon="-1.748660000">
+  <ele>110.000000</ele>
+<time>2008-08-14T15:14:52Z</time>
+  <course>316.790009</course>
+  <speed>4.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800358333" lon="-1.748691667">
+  <ele>108.200000</ele>
+<time>2008-08-14T15:14:53Z</time>
+  <course>323.350006</course>
+  <speed>3.222222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800370000" lon="-1.748715000">
+  <ele>106.700000</ele>
+<time>2008-08-14T15:14:54Z</time>
+  <course>319.279999</course>
+  <speed>2.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800380000" lon="-1.748736667">
+  <ele>105.500000</ele>
+<time>2008-08-14T15:14:55Z</time>
+  <course>314.549988</course>
+  <speed>2.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800386667" lon="-1.748753333">
+  <ele>105.100000</ele>
+<time>2008-08-14T15:14:56Z</time>
+  <course>315.929993</course>
+  <speed>1.500000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.800000</pdop>
+</trkpt>
+<trkpt lat="53.800388333" lon="-1.748761667">
+  <ele>103.700000</ele>
+<time>2008-08-14T15:14:57Z</time>
+  <course>315.929993</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800390000" lon="-1.748765000">
+  <ele>103.500000</ele>
+<time>2008-08-14T15:14:58Z</time>
+  <course>315.929993</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800395000" lon="-1.748770000">
+  <ele>103.700000</ele>
+<time>2008-08-14T15:14:59Z</time>
+  <course>310.600006</course>
+  <speed>0.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800401667" lon="-1.748781667">
+  <ele>104.200000</ele>
+<time>2008-08-14T15:15:00Z</time>
+  <course>305.589996</course>
+  <speed>1.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800413333" lon="-1.748798333">
+  <ele>104.700000</ele>
+<time>2008-08-14T15:15:01Z</time>
+  <course>314.549988</course>
+  <speed>1.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.800000</pdop>
+</trkpt>
+<trkpt lat="53.800430000" lon="-1.748821667">
+  <ele>105.000000</ele>
+<time>2008-08-14T15:15:02Z</time>
+  <course>317.739990</course>
+  <speed>2.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800453333" lon="-1.748853333">
+  <ele>105.400000</ele>
+<time>2008-08-14T15:15:03Z</time>
+  <course>322.850006</course>
+  <speed>3.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800488333" lon="-1.748893333">
+  <ele>105.600000</ele>
+<time>2008-08-14T15:15:04Z</time>
+  <course>323.029999</course>
+  <speed>4.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800528333" lon="-1.748948333">
+  <ele>105.800000</ele>
+<time>2008-08-14T15:15:05Z</time>
+  <course>320.619995</course>
+  <speed>5.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800571667" lon="-1.749011667">
+  <ele>105.500000</ele>
+<time>2008-08-14T15:15:06Z</time>
+  <course>320.350006</course>
+  <speed>6.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.800620000" lon="-1.749080000">
+  <ele>105.500000</ele>
+<time>2008-08-14T15:15:07Z</time>
+  <course>319.820007</course>
+  <speed>6.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.800670000" lon="-1.749150000">
+  <ele>105.900000</ele>
+<time>2008-08-14T15:15:08Z</time>
+  <course>320.380005</course>
+  <speed>7.333333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800723333" lon="-1.749225000">
+  <ele>105.900000</ele>
+<time>2008-08-14T15:15:09Z</time>
+  <course>321.190002</course>
+  <speed>7.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800778333" lon="-1.749301667">
+  <ele>106.100000</ele>
+<time>2008-08-14T15:15:10Z</time>
+  <course>320.410004</course>
+  <speed>8.027778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800836667" lon="-1.749393333">
+  <ele>105.200000</ele>
+<time>2008-08-14T15:15:11Z</time>
+  <course>319.690002</course>
+  <speed>8.777778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.800905000" lon="-1.749490000">
+  <ele>104.900000</ele>
+<time>2008-08-14T15:15:12Z</time>
+  <course>323.179993</course>
+  <speed>9.666667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.800981667" lon="-1.749591667">
+  <ele>104.600000</ele>
+<time>2008-08-14T15:15:13Z</time>
+  <course>321.510010</course>
+  <speed>10.833333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.801065000" lon="-1.749708333">
+  <ele>104.200000</ele>
+<time>2008-08-14T15:15:14Z</time>
+  <course>319.980011</course>
+  <speed>11.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.801151667" lon="-1.749830000">
+  <ele>103.900000</ele>
+<time>2008-08-14T15:15:15Z</time>
+  <course>319.480011</course>
+  <speed>12.472222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.801240000" lon="-1.749956667">
+  <ele>103.800000</ele>
+<time>2008-08-14T15:15:16Z</time>
+  <course>319.359985</course>
+  <speed>12.833333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.801330000" lon="-1.750086667">
+  <ele>103.500000</ele>
+<time>2008-08-14T15:15:17Z</time>
+  <course>318.850006</course>
+  <speed>12.944445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.801418333" lon="-1.750216667">
+  <ele>103.300000</ele>
+<time>2008-08-14T15:15:18Z</time>
+  <course>318.450012</course>
+  <speed>12.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.801506667" lon="-1.750351667">
+  <ele>102.500000</ele>
+<time>2008-08-14T15:15:19Z</time>
+  <course>318.489990</course>
+  <speed>13.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.801596667" lon="-1.750488333">
+  <ele>102.000000</ele>
+<time>2008-08-14T15:15:20Z</time>
+  <course>318.500000</course>
+  <speed>13.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.801686667" lon="-1.750626667">
+  <ele>101.400000</ele>
+<time>2008-08-14T15:15:21Z</time>
+  <course>318.519989</course>
+  <speed>13.388889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.801776667" lon="-1.750761667">
+  <ele>100.800000</ele>
+<time>2008-08-14T15:15:22Z</time>
+  <course>318.769989</course>
+  <speed>13.305555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.801866667" lon="-1.750895000">
+  <ele>100.300000</ele>
+<time>2008-08-14T15:15:23Z</time>
+  <course>319.660004</course>
+  <speed>13.194445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.801956667" lon="-1.751025000">
+  <ele>99.800000</ele>
+<time>2008-08-14T15:15:24Z</time>
+  <course>319.589996</course>
+  <speed>13.138889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802046667" lon="-1.751156667">
+  <ele>99.400000</ele>
+<time>2008-08-14T15:15:25Z</time>
+  <course>319.079987</course>
+  <speed>13.055555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802133333" lon="-1.751285000">
+  <ele>99.200000</ele>
+<time>2008-08-14T15:15:26Z</time>
+  <course>318.769989</course>
+  <speed>12.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.802221667" lon="-1.751413333">
+  <ele>98.800000</ele>
+<time>2008-08-14T15:15:27Z</time>
+  <course>319.160004</course>
+  <speed>12.750000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802310000" lon="-1.751541667">
+  <ele>98.500000</ele>
+<time>2008-08-14T15:15:28Z</time>
+  <course>318.959991</course>
+  <speed>12.861111</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802398333" lon="-1.751673333">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:15:29Z</time>
+  <course>318.779999</course>
+  <speed>13.055555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802485000" lon="-1.751798333">
+  <ele>97.900000</ele>
+<time>2008-08-14T15:15:30Z</time>
+  <course>319.679993</course>
+  <speed>12.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802563333" lon="-1.751906667">
+  <ele>97.700000</ele>
+<time>2008-08-14T15:15:31Z</time>
+  <course>321.010010</course>
+  <speed>11.166667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.802626667" lon="-1.751990000">
+  <ele>97.600000</ele>
+<time>2008-08-14T15:15:32Z</time>
+  <course>321.739990</course>
+  <speed>8.944445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802673333" lon="-1.752051667">
+  <ele>97.400000</ele>
+<time>2008-08-14T15:15:33Z</time>
+  <course>322.429993</course>
+  <speed>6.777778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802708333" lon="-1.752095000">
+  <ele>97.300000</ele>
+<time>2008-08-14T15:15:34Z</time>
+  <course>322.989990</course>
+  <speed>4.916667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802735000" lon="-1.752126667">
+  <ele>97.400000</ele>
+<time>2008-08-14T15:15:35Z</time>
+  <course>322.760010</course>
+  <speed>3.611111</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802755000" lon="-1.752151667">
+  <ele>97.500000</ele>
+<time>2008-08-14T15:15:36Z</time>
+  <course>323.100006</course>
+  <speed>2.805556</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.802771667" lon="-1.752171667">
+  <ele>97.500000</ele>
+<time>2008-08-14T15:15:37Z</time>
+  <course>322.640015</course>
+  <speed>2.222222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802783333" lon="-1.752185000">
+  <ele>97.600000</ele>
+<time>2008-08-14T15:15:38Z</time>
+  <course>323.170013</course>
+  <speed>1.555556</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802790000" lon="-1.752191667">
+  <ele>97.600000</ele>
+<time>2008-08-14T15:15:39Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802793333" lon="-1.752193333">
+  <ele>97.700000</ele>
+<time>2008-08-14T15:15:40Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802796667" lon="-1.752195000">
+  <ele>97.700000</ele>
+<time>2008-08-14T15:15:41Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.802796667" lon="-1.752195000">
+  <ele>97.700000</ele>
+<time>2008-08-14T15:15:42Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802796667" lon="-1.752195000">
+  <ele>97.600000</ele>
+<time>2008-08-14T15:15:43Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802796667" lon="-1.752195000">
+  <ele>97.700000</ele>
+<time>2008-08-14T15:15:44Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752195000">
+  <ele>97.800000</ele>
+<time>2008-08-14T15:15:45Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752195000">
+  <ele>97.800000</ele>
+<time>2008-08-14T15:15:46Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752195000">
+  <ele>97.900000</ele>
+<time>2008-08-14T15:15:47Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752195000">
+  <ele>98.000000</ele>
+<time>2008-08-14T15:15:48Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752195000">
+  <ele>98.000000</ele>
+<time>2008-08-14T15:15:49Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752195000">
+  <ele>98.000000</ele>
+<time>2008-08-14T15:15:50Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752195000">
+  <ele>98.100000</ele>
+<time>2008-08-14T15:15:51Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752193333">
+  <ele>98.100000</ele>
+<time>2008-08-14T15:15:52Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752193333">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:15:53Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752193333">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:15:54Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752193333">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:15:55Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752193333">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:15:56Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.802795000" lon="-1.752193333">
+  <ele>98.300000</ele>
+<time>2008-08-14T15:15:57Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802793333" lon="-1.752193333">
+  <ele>98.300000</ele>
+<time>2008-08-14T15:15:58Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802793333" lon="-1.752193333">
+  <ele>98.300000</ele>
+<time>2008-08-14T15:15:59Z</time>
+  <course>323.170013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802801667" lon="-1.752201667">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:16:00Z</time>
+  <course>324.160004</course>
+  <speed>1.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802823333" lon="-1.752226667">
+  <ele>98.100000</ele>
+<time>2008-08-14T15:16:01Z</time>
+  <course>326.079987</course>
+  <speed>2.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.802856667" lon="-1.752265000">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:16:02Z</time>
+  <course>325.790009</course>
+  <speed>4.388889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802896667" lon="-1.752310000">
+  <ele>98.300000</ele>
+<time>2008-08-14T15:16:03Z</time>
+  <course>326.489990</course>
+  <speed>5.305555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.802945000" lon="-1.752363333">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:16:04Z</time>
+  <course>327.079987</course>
+  <speed>6.388889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803005000" lon="-1.752428333">
+  <ele>98.100000</ele>
+<time>2008-08-14T15:16:05Z</time>
+  <course>327.809998</course>
+  <speed>7.722222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803075000" lon="-1.752500000">
+  <ele>98.100000</ele>
+<time>2008-08-14T15:16:06Z</time>
+  <course>329.380005</course>
+  <speed>9.027778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.803153333" lon="-1.752576667">
+  <ele>98.000000</ele>
+<time>2008-08-14T15:16:07Z</time>
+  <course>331.170013</course>
+  <speed>10.027778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803243333" lon="-1.752656667">
+  <ele>98.000000</ele>
+<time>2008-08-14T15:16:08Z</time>
+  <course>332.869995</course>
+  <speed>11.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803341667" lon="-1.752738333">
+  <ele>97.900000</ele>
+<time>2008-08-14T15:16:09Z</time>
+  <course>334.670013</course>
+  <speed>12.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803446667" lon="-1.752818333">
+  <ele>97.800000</ele>
+<time>2008-08-14T15:16:10Z</time>
+  <course>336.739990</course>
+  <speed>12.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803555000" lon="-1.752896667">
+  <ele>97.800000</ele>
+<time>2008-08-14T15:16:11Z</time>
+  <course>337.119995</course>
+  <speed>12.944445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.803666667" lon="-1.752975000">
+  <ele>97.600000</ele>
+<time>2008-08-14T15:16:12Z</time>
+  <course>337.940002</course>
+  <speed>13.388889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803783333" lon="-1.753051667">
+  <ele>97.600000</ele>
+<time>2008-08-14T15:16:13Z</time>
+  <course>339.200012</course>
+  <speed>13.750000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.803901667" lon="-1.753118333">
+  <ele>97.500000</ele>
+<time>2008-08-14T15:16:14Z</time>
+  <course>341.109985</course>
+  <speed>13.805555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.804023333" lon="-1.753181667">
+  <ele>97.400000</ele>
+<time>2008-08-14T15:16:15Z</time>
+  <course>342.630005</course>
+  <speed>13.861111</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.804146667" lon="-1.753245000">
+  <ele>97.300000</ele>
+<time>2008-08-14T15:16:16Z</time>
+  <course>343.670013</course>
+  <speed>14.166667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.804273333" lon="-1.753305000">
+  <ele>97.200000</ele>
+<time>2008-08-14T15:16:17Z</time>
+  <course>344.630005</course>
+  <speed>14.388889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.804396667" lon="-1.753360000">
+  <ele>97.300000</ele>
+<time>2008-08-14T15:16:18Z</time>
+  <course>346.350006</course>
+  <speed>14.194445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.804523333" lon="-1.753405000">
+  <ele>96.700000</ele>
+<time>2008-08-14T15:16:19Z</time>
+  <course>349.079987</course>
+  <speed>13.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.804645000" lon="-1.753443333">
+  <ele>96.500000</ele>
+<time>2008-08-14T15:16:20Z</time>
+  <course>350.850006</course>
+  <speed>13.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.804766667" lon="-1.753476667">
+  <ele>96.100000</ele>
+<time>2008-08-14T15:16:21Z</time>
+  <course>351.540009</course>
+  <speed>13.555555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.804891667" lon="-1.753510000">
+  <ele>95.800000</ele>
+<time>2008-08-14T15:16:22Z</time>
+  <course>351.549988</course>
+  <speed>13.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.805020000" lon="-1.753543333">
+  <ele>95.400000</ele>
+<time>2008-08-14T15:16:23Z</time>
+  <course>351.160004</course>
+  <speed>14.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.805156667" lon="-1.753583333">
+  <ele>95.500000</ele>
+<time>2008-08-14T15:16:24Z</time>
+  <course>350.339996</course>
+  <speed>15.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.805296667" lon="-1.753626667">
+  <ele>95.600000</ele>
+<time>2008-08-14T15:16:25Z</time>
+  <course>349.369995</course>
+  <speed>15.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.805438333" lon="-1.753675000">
+  <ele>95.500000</ele>
+<time>2008-08-14T15:16:26Z</time>
+  <course>348.339996</course>
+  <speed>15.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.805581667" lon="-1.753730000">
+  <ele>95.500000</ele>
+<time>2008-08-14T15:16:27Z</time>
+  <course>346.559998</course>
+  <speed>16.111111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.805726667" lon="-1.753791667">
+  <ele>95.700000</ele>
+<time>2008-08-14T15:16:28Z</time>
+  <course>345.279999</course>
+  <speed>16.472221</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.805873333" lon="-1.753861667">
+  <ele>95.400000</ele>
+<time>2008-08-14T15:16:29Z</time>
+  <course>344.190002</course>
+  <speed>16.916666</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.806020000" lon="-1.753938333">
+  <ele>95.200000</ele>
+<time>2008-08-14T15:16:30Z</time>
+  <course>342.440002</course>
+  <speed>17.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.806165000" lon="-1.754020000">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:16:31Z</time>
+  <course>339.899994</course>
+  <speed>16.694445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.806305000" lon="-1.754108333">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:16:32Z</time>
+  <course>338.489990</course>
+  <speed>16.388889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.806441667" lon="-1.754196667">
+  <ele>95.000000</ele>
+<time>2008-08-14T15:16:33Z</time>
+  <course>338.230011</course>
+  <speed>16.055555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.806573333" lon="-1.754286667">
+  <ele>95.000000</ele>
+<time>2008-08-14T15:16:34Z</time>
+  <course>337.869995</course>
+  <speed>15.722222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.806700000" lon="-1.754378333">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:16:35Z</time>
+  <course>337.239990</course>
+  <speed>15.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.806823333" lon="-1.754468333">
+  <ele>95.200000</ele>
+<time>2008-08-14T15:16:36Z</time>
+  <course>337.119995</course>
+  <speed>14.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.806931667" lon="-1.754548333">
+  <ele>95.200000</ele>
+<time>2008-08-14T15:16:37Z</time>
+  <course>336.989990</course>
+  <speed>13.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807018333" lon="-1.754615000">
+  <ele>95.300000</ele>
+<time>2008-08-14T15:16:38Z</time>
+  <course>337.299988</course>
+  <speed>10.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807090000" lon="-1.754668333">
+  <ele>95.400000</ele>
+<time>2008-08-14T15:16:39Z</time>
+  <course>337.399994</course>
+  <speed>8.777778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807145000" lon="-1.754710000">
+  <ele>94.200000</ele>
+<time>2008-08-14T15:16:40Z</time>
+  <course>337.410004</course>
+  <speed>7.083333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807188333" lon="-1.754743333">
+  <ele>94.200000</ele>
+<time>2008-08-14T15:16:41Z</time>
+  <course>337.500000</course>
+  <speed>5.472222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807218333" lon="-1.754766667">
+  <ele>94.200000</ele>
+<time>2008-08-14T15:16:42Z</time>
+  <course>337.109985</course>
+  <speed>4.083333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807243333" lon="-1.754786667">
+  <ele>94.400000</ele>
+<time>2008-08-14T15:16:43Z</time>
+  <course>337.380005</course>
+  <speed>3.194444</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807263333" lon="-1.754803333">
+  <ele>94.500000</ele>
+<time>2008-08-14T15:16:44Z</time>
+  <course>337.529999</course>
+  <speed>2.777778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807283333" lon="-1.754818333">
+  <ele>94.600000</ele>
+<time>2008-08-14T15:16:45Z</time>
+  <course>338.079987</course>
+  <speed>2.583333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807303333" lon="-1.754835000">
+  <ele>94.700000</ele>
+<time>2008-08-14T15:16:46Z</time>
+  <course>337.019989</course>
+  <speed>2.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807325000" lon="-1.754853333">
+  <ele>94.700000</ele>
+<time>2008-08-14T15:16:47Z</time>
+  <course>337.260010</course>
+  <speed>2.750000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807345000" lon="-1.754868333">
+  <ele>94.800000</ele>
+<time>2008-08-14T15:16:48Z</time>
+  <course>338.079987</course>
+  <speed>2.583333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807360000" lon="-1.754881667">
+  <ele>94.900000</ele>
+<time>2008-08-14T15:16:49Z</time>
+  <course>338.119995</course>
+  <speed>2.166667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807375000" lon="-1.754891667">
+  <ele>94.900000</ele>
+<time>2008-08-14T15:16:50Z</time>
+  <course>337.809998</course>
+  <speed>1.805556</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807388333" lon="-1.754901667">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:16:51Z</time>
+  <course>338.420013</course>
+  <speed>1.750000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807401667" lon="-1.754913333">
+  <ele>95.200000</ele>
+<time>2008-08-14T15:16:52Z</time>
+  <course>337.269989</course>
+  <speed>1.777778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807415000" lon="-1.754923333">
+  <ele>95.400000</ele>
+<time>2008-08-14T15:16:53Z</time>
+  <course>336.709991</course>
+  <speed>1.750000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807426667" lon="-1.754935000">
+  <ele>95.500000</ele>
+<time>2008-08-14T15:16:54Z</time>
+  <course>336.790009</course>
+  <speed>1.722222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807440000" lon="-1.754945000">
+  <ele>95.600000</ele>
+<time>2008-08-14T15:16:55Z</time>
+  <course>337.480011</course>
+  <speed>1.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807451667" lon="-1.754953333">
+  <ele>95.600000</ele>
+<time>2008-08-14T15:16:56Z</time>
+  <course>337.359985</course>
+  <speed>1.472222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807461667" lon="-1.754961667">
+  <ele>95.700000</ele>
+<time>2008-08-14T15:16:57Z</time>
+  <course>336.630005</course>
+  <speed>1.416667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807473333" lon="-1.754971667">
+  <ele>95.800000</ele>
+<time>2008-08-14T15:16:58Z</time>
+  <course>336.649994</course>
+  <speed>1.527778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807483333" lon="-1.754983333">
+  <ele>96.000000</ele>
+<time>2008-08-14T15:16:59Z</time>
+  <course>337.519989</course>
+  <speed>1.500000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807496667" lon="-1.754991667">
+  <ele>96.100000</ele>
+<time>2008-08-14T15:17:00Z</time>
+  <course>336.500000</course>
+  <speed>1.527778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807508333" lon="-1.755001667">
+  <ele>96.200000</ele>
+<time>2008-08-14T15:17:01Z</time>
+  <course>337.369995</course>
+  <speed>1.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807521667" lon="-1.755010000">
+  <ele>96.300000</ele>
+<time>2008-08-14T15:17:02Z</time>
+  <course>337.559998</course>
+  <speed>1.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807535000" lon="-1.755018333">
+  <ele>96.400000</ele>
+<time>2008-08-14T15:17:03Z</time>
+  <course>338.260010</course>
+  <speed>1.527778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807546667" lon="-1.755026667">
+  <ele>96.500000</ele>
+<time>2008-08-14T15:17:04Z</time>
+  <course>336.720001</course>
+  <speed>1.444444</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807558333" lon="-1.755035000">
+  <ele>96.600000</ele>
+<time>2008-08-14T15:17:05Z</time>
+  <course>336.480011</course>
+  <speed>1.527778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807571667" lon="-1.755045000">
+  <ele>96.700000</ele>
+<time>2008-08-14T15:17:06Z</time>
+  <course>337.290009</course>
+  <speed>1.666667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807590000" lon="-1.755058333">
+  <ele>96.800000</ele>
+<time>2008-08-14T15:17:07Z</time>
+  <course>336.320007</course>
+  <speed>2.222222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807613333" lon="-1.755076667">
+  <ele>96.900000</ele>
+<time>2008-08-14T15:17:08Z</time>
+  <course>336.410004</course>
+  <speed>2.861111</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807643333" lon="-1.755098333">
+  <ele>97.100000</ele>
+<time>2008-08-14T15:17:09Z</time>
+  <course>336.510010</course>
+  <speed>3.583333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807680000" lon="-1.755125000">
+  <ele>98.200000</ele>
+<time>2008-08-14T15:17:10Z</time>
+  <course>336.950012</course>
+  <speed>4.583333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807720000" lon="-1.755155000">
+  <ele>98.500000</ele>
+<time>2008-08-14T15:17:11Z</time>
+  <course>337.010010</course>
+  <speed>4.861111</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807758333" lon="-1.755183333">
+  <ele>98.800000</ele>
+<time>2008-08-14T15:17:12Z</time>
+  <course>335.989990</course>
+  <speed>4.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807795000" lon="-1.755211667">
+  <ele>98.900000</ele>
+<time>2008-08-14T15:17:13Z</time>
+  <course>336.390015</course>
+  <speed>4.472222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807831667" lon="-1.755238333">
+  <ele>99.000000</ele>
+<time>2008-08-14T15:17:14Z</time>
+  <course>336.679993</course>
+  <speed>4.361111</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807865000" lon="-1.755265000">
+  <ele>99.100000</ele>
+<time>2008-08-14T15:17:15Z</time>
+  <course>335.279999</course>
+  <speed>4.194445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807898333" lon="-1.755291667">
+  <ele>99.200000</ele>
+<time>2008-08-14T15:17:16Z</time>
+  <course>335.880005</course>
+  <speed>4.000000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.807928333" lon="-1.755316667">
+  <ele>99.300000</ele>
+<time>2008-08-14T15:17:17Z</time>
+  <course>334.910004</course>
+  <speed>3.833333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807960000" lon="-1.755341667">
+  <ele>99.400000</ele>
+<time>2008-08-14T15:17:18Z</time>
+  <course>335.929993</course>
+  <speed>3.833333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.807991667" lon="-1.755366667">
+  <ele>99.500000</ele>
+<time>2008-08-14T15:17:19Z</time>
+  <course>335.660004</course>
+  <speed>3.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808023333" lon="-1.755391667">
+  <ele>99.600000</ele>
+<time>2008-08-14T15:17:20Z</time>
+  <course>335.989990</course>
+  <speed>3.805556</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808053333" lon="-1.755416667">
+  <ele>99.600000</ele>
+<time>2008-08-14T15:17:21Z</time>
+  <course>335.570007</course>
+  <speed>3.722222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.808085000" lon="-1.755441667">
+  <ele>99.600000</ele>
+<time>2008-08-14T15:17:22Z</time>
+  <course>335.890015</course>
+  <speed>3.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808121667" lon="-1.755470000">
+  <ele>99.600000</ele>
+<time>2008-08-14T15:17:23Z</time>
+  <course>336.820007</course>
+  <speed>4.527778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808166667" lon="-1.755503333">
+  <ele>99.700000</ele>
+<time>2008-08-14T15:17:24Z</time>
+  <course>336.250000</course>
+  <speed>5.305555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808211667" lon="-1.755538333">
+  <ele>99.800000</ele>
+<time>2008-08-14T15:17:25Z</time>
+  <course>336.230011</course>
+  <speed>5.583333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808258333" lon="-1.755573333">
+  <ele>99.900000</ele>
+<time>2008-08-14T15:17:26Z</time>
+  <course>335.859985</course>
+  <speed>5.500000</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.808303333" lon="-1.755608333">
+  <ele>100.000000</ele>
+<time>2008-08-14T15:17:27Z</time>
+  <course>335.100006</course>
+  <speed>5.472222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808350000" lon="-1.755646667">
+  <ele>100.100000</ele>
+<time>2008-08-14T15:17:28Z</time>
+  <course>334.809998</course>
+  <speed>5.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808401667" lon="-1.755688333">
+  <ele>100.100000</ele>
+<time>2008-08-14T15:17:29Z</time>
+  <course>335.059998</course>
+  <speed>6.194445</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808451667" lon="-1.755728333">
+  <ele>100.200000</ele>
+<time>2008-08-14T15:17:30Z</time>
+  <course>335.329987</course>
+  <speed>6.166667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808501667" lon="-1.755768333">
+  <ele>100.300000</ele>
+<time>2008-08-14T15:17:31Z</time>
+  <course>334.850006</course>
+  <speed>6.083333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.808550000" lon="-1.755808333">
+  <ele>100.400000</ele>
+<time>2008-08-14T15:17:32Z</time>
+  <course>334.230011</course>
+  <speed>5.972222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808600000" lon="-1.755848333">
+  <ele>100.200000</ele>
+<time>2008-08-14T15:17:33Z</time>
+  <course>333.559998</course>
+  <speed>6.055555</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808651667" lon="-1.755891667">
+  <ele>100.100000</ele>
+<time>2008-08-14T15:17:34Z</time>
+  <course>333.790009</course>
+  <speed>6.416667</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808710000" lon="-1.755941667">
+  <ele>100.000000</ele>
+<time>2008-08-14T15:17:35Z</time>
+  <course>332.869995</course>
+  <speed>7.083333</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808775000" lon="-1.755995000">
+  <ele>99.800000</ele>
+<time>2008-08-14T15:17:36Z</time>
+  <course>332.399994</course>
+  <speed>7.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.808843333" lon="-1.756053333">
+  <ele>99.700000</ele>
+<time>2008-08-14T15:17:37Z</time>
+  <course>332.619995</course>
+  <speed>8.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808911667" lon="-1.756111667">
+  <ele>99.500000</ele>
+<time>2008-08-14T15:17:38Z</time>
+  <course>332.600006</course>
+  <speed>8.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.808978333" lon="-1.756168333">
+  <ele>99.200000</ele>
+<time>2008-08-14T15:17:39Z</time>
+  <course>332.899994</course>
+  <speed>8.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809043333" lon="-1.756223333">
+  <ele>98.900000</ele>
+<time>2008-08-14T15:17:40Z</time>
+  <course>332.609985</course>
+  <speed>7.972222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809105000" lon="-1.756276667">
+  <ele>98.700000</ele>
+<time>2008-08-14T15:17:41Z</time>
+  <course>332.029999</course>
+  <speed>7.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.809163333" lon="-1.756328333">
+  <ele>98.500000</ele>
+<time>2008-08-14T15:17:42Z</time>
+  <course>331.679993</course>
+  <speed>7.222222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809216667" lon="-1.756378333">
+  <ele>98.300000</ele>
+<time>2008-08-14T15:17:43Z</time>
+  <course>331.049988</course>
+  <speed>6.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809266667" lon="-1.756426667">
+  <ele>96.500000</ele>
+<time>2008-08-14T15:17:44Z</time>
+  <course>330.309998</course>
+  <speed>6.666667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809318333" lon="-1.756476667">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:17:45Z</time>
+  <course>330.329987</course>
+  <speed>6.750000</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.809370000" lon="-1.756528333">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:17:46Z</time>
+  <course>328.989990</course>
+  <speed>6.750000</speed>
+  <fix>3d</fix>
+  <sat>5</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.000000</vdop>
+  <pdop>2.400000</pdop>
+</trkpt>
+<trkpt lat="53.809420000" lon="-1.756585000">
+  <ele>94.100000</ele>
+<time>2008-08-14T15:17:47Z</time>
+  <course>327.750000</course>
+  <speed>6.638889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.809470000" lon="-1.756636667">
+  <ele>94.200000</ele>
+<time>2008-08-14T15:17:48Z</time>
+  <course>328.420013</course>
+  <speed>6.555555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.400000</hdop>
+</trkpt>
+<trkpt lat="53.809511667" lon="-1.756693333">
+  <ele>93.300000</ele>
+<time>2008-08-14T15:17:49Z</time>
+  <course>325.149994</course>
+  <speed>5.861111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.809548333" lon="-1.756726667">
+  <ele>92.400000</ele>
+<time>2008-08-14T15:17:50Z</time>
+  <course>327.809998</course>
+  <speed>4.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.809573333" lon="-1.756755000">
+  <ele>91.000000</ele>
+<time>2008-08-14T15:17:51Z</time>
+  <course>329.480011</course>
+  <speed>3.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.809598333" lon="-1.756771667">
+  <ele>90.100000</ele>
+<time>2008-08-14T15:17:52Z</time>
+  <course>325.869995</course>
+  <speed>3.055556</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809620000" lon="-1.756790000">
+  <ele>89.200000</ele>
+<time>2008-08-14T15:17:53Z</time>
+  <course>327.000000</course>
+  <speed>2.638889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809638333" lon="-1.756805000">
+  <ele>88.300000</ele>
+<time>2008-08-14T15:17:54Z</time>
+  <course>327.779999</course>
+  <speed>2.277778</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809655000" lon="-1.756820000">
+  <ele>87.500000</ele>
+<time>2008-08-14T15:17:55Z</time>
+  <course>327.820007</course>
+  <speed>2.055556</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809668333" lon="-1.756831667">
+  <ele>86.800000</ele>
+<time>2008-08-14T15:17:56Z</time>
+  <course>328.170013</course>
+  <speed>1.888889</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.809678333" lon="-1.756843333">
+  <ele>85.900000</ele>
+<time>2008-08-14T15:17:57Z</time>
+  <course>326.859985</course>
+  <speed>1.472222</speed>
+  <fix>3d</fix>
+  <sat>10</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809686667" lon="-1.756848333">
+  <ele>85.700000</ele>
+<time>2008-08-14T15:17:58Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809690000" lon="-1.756851667">
+  <ele>85.700000</ele>
+<time>2008-08-14T15:17:59Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809691667" lon="-1.756851667">
+  <ele>85.600000</ele>
+<time>2008-08-14T15:18:00Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809691667" lon="-1.756851667">
+  <ele>85.600000</ele>
+<time>2008-08-14T15:18:01Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.809693333" lon="-1.756851667">
+  <ele>85.700000</ele>
+<time>2008-08-14T15:18:02Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809693333" lon="-1.756851667">
+  <ele>85.700000</ele>
+<time>2008-08-14T15:18:03Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809695000" lon="-1.756851667">
+  <ele>85.900000</ele>
+<time>2008-08-14T15:18:04Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809695000" lon="-1.756851667">
+  <ele>85.900000</ele>
+<time>2008-08-14T15:18:05Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809695000" lon="-1.756851667">
+  <ele>85.700000</ele>
+<time>2008-08-14T15:18:06Z</time>
+  <course>326.859985</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.809701667" lon="-1.756856667">
+  <ele>85.700000</ele>
+<time>2008-08-14T15:18:07Z</time>
+  <course>328.089996</course>
+  <speed>0.583333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809720000" lon="-1.756873333">
+  <ele>85.800000</ele>
+<time>2008-08-14T15:18:08Z</time>
+  <course>328.739990</course>
+  <speed>2.083333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809746667" lon="-1.756901667">
+  <ele>86.000000</ele>
+<time>2008-08-14T15:18:09Z</time>
+  <course>327.820007</course>
+  <speed>3.388889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809776667" lon="-1.756931667">
+  <ele>86.200000</ele>
+<time>2008-08-14T15:18:10Z</time>
+  <course>328.089996</course>
+  <speed>3.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.809811667" lon="-1.756966667">
+  <ele>86.400000</ele>
+<time>2008-08-14T15:18:11Z</time>
+  <course>328.859985</course>
+  <speed>4.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.809853333" lon="-1.757008333">
+  <ele>86.600000</ele>
+<time>2008-08-14T15:18:12Z</time>
+  <course>329.579987</course>
+  <speed>5.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809900000" lon="-1.757055000">
+  <ele>86.700000</ele>
+<time>2008-08-14T15:18:13Z</time>
+  <course>330.010010</course>
+  <speed>5.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809946667" lon="-1.757100000">
+  <ele>86.800000</ele>
+<time>2008-08-14T15:18:14Z</time>
+  <course>330.100006</course>
+  <speed>5.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.809993333" lon="-1.757143333">
+  <ele>86.900000</ele>
+<time>2008-08-14T15:18:15Z</time>
+  <course>329.760010</course>
+  <speed>5.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810036667" lon="-1.757186667">
+  <ele>87.100000</ele>
+<time>2008-08-14T15:18:16Z</time>
+  <course>329.609985</course>
+  <speed>5.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.810080000" lon="-1.757230000">
+  <ele>87.300000</ele>
+<time>2008-08-14T15:18:17Z</time>
+  <course>328.779999</course>
+  <speed>5.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810123333" lon="-1.757275000">
+  <ele>87.400000</ele>
+<time>2008-08-14T15:18:18Z</time>
+  <course>328.309998</course>
+  <speed>5.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810173333" lon="-1.757326667">
+  <ele>87.600000</ele>
+<time>2008-08-14T15:18:19Z</time>
+  <course>327.630005</course>
+  <speed>6.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810230000" lon="-1.757386667">
+  <ele>87.700000</ele>
+<time>2008-08-14T15:18:20Z</time>
+  <course>328.709991</course>
+  <speed>7.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810295000" lon="-1.757451667">
+  <ele>87.800000</ele>
+<time>2008-08-14T15:18:21Z</time>
+  <course>329.660004</course>
+  <speed>8.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.810363333" lon="-1.757518333">
+  <ele>87.900000</ele>
+<time>2008-08-14T15:18:22Z</time>
+  <course>329.519989</course>
+  <speed>8.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810433333" lon="-1.757588333">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:18:23Z</time>
+  <course>328.940002</course>
+  <speed>8.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810505000" lon="-1.757661667">
+  <ele>88.200000</ele>
+<time>2008-08-14T15:18:24Z</time>
+  <course>328.410004</course>
+  <speed>9.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810578333" lon="-1.757738333">
+  <ele>88.300000</ele>
+<time>2008-08-14T15:18:25Z</time>
+  <course>327.730011</course>
+  <speed>9.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810650000" lon="-1.757815000">
+  <ele>88.400000</ele>
+<time>2008-08-14T15:18:26Z</time>
+  <course>326.950012</course>
+  <speed>9.361111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.810721667" lon="-1.757891667">
+  <ele>88.600000</ele>
+<time>2008-08-14T15:18:27Z</time>
+  <course>327.600006</course>
+  <speed>9.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.810791667" lon="-1.757965000">
+  <ele>88.800000</ele>
+<time>2008-08-14T15:18:28Z</time>
+  <course>328.940002</course>
+  <speed>9.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810863333" lon="-1.758035000">
+  <ele>88.800000</ele>
+<time>2008-08-14T15:18:29Z</time>
+  <course>330.470001</course>
+  <speed>9.027778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.810933333" lon="-1.758100000">
+  <ele>88.900000</ele>
+<time>2008-08-14T15:18:30Z</time>
+  <course>331.019989</course>
+  <speed>8.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811001667" lon="-1.758165000">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:31Z</time>
+  <course>330.079987</course>
+  <speed>8.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.811068333" lon="-1.758231667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:32Z</time>
+  <course>329.140015</course>
+  <speed>8.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811138333" lon="-1.758301667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:33Z</time>
+  <course>329.040009</course>
+  <speed>8.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811213333" lon="-1.758378333">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:34Z</time>
+  <course>328.380005</course>
+  <speed>9.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811293333" lon="-1.758461667">
+  <ele>89.100000</ele>
+<time>2008-08-14T15:18:35Z</time>
+  <course>328.299988</course>
+  <speed>10.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811380000" lon="-1.758551667">
+  <ele>89.100000</ele>
+<time>2008-08-14T15:18:36Z</time>
+  <course>328.640015</course>
+  <speed>11.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.811471667" lon="-1.758643333">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:37Z</time>
+  <course>328.910004</course>
+  <speed>11.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811563333" lon="-1.758736667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:38Z</time>
+  <course>328.850006</course>
+  <speed>11.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811655000" lon="-1.758831667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:39Z</time>
+  <course>328.730011</course>
+  <speed>11.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811750000" lon="-1.758928333">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:40Z</time>
+  <course>328.359985</course>
+  <speed>12.166667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.811845000" lon="-1.759028333">
+  <ele>88.900000</ele>
+<time>2008-08-14T15:18:41Z</time>
+  <course>327.809998</course>
+  <speed>12.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.811940000" lon="-1.759128333">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:42Z</time>
+  <course>327.899994</course>
+  <speed>12.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812033333" lon="-1.759226667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:43Z</time>
+  <course>327.859985</course>
+  <speed>12.166667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812125000" lon="-1.759323333">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:18:44Z</time>
+  <course>327.700012</course>
+  <speed>12.027778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812216667" lon="-1.759420000">
+  <ele>89.100000</ele>
+<time>2008-08-14T15:18:45Z</time>
+  <course>327.970001</course>
+  <speed>11.777778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812305000" lon="-1.759510000">
+  <ele>89.200000</ele>
+<time>2008-08-14T15:18:46Z</time>
+  <course>328.720001</course>
+  <speed>11.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.812393333" lon="-1.759596667">
+  <ele>89.300000</ele>
+<time>2008-08-14T15:18:47Z</time>
+  <course>329.760010</course>
+  <speed>11.222222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812478333" lon="-1.759681667">
+  <ele>89.300000</ele>
+<time>2008-08-14T15:18:48Z</time>
+  <course>328.339996</course>
+  <speed>10.972222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812561667" lon="-1.759768333">
+  <ele>89.400000</ele>
+<time>2008-08-14T15:18:49Z</time>
+  <course>328.279999</course>
+  <speed>10.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812640000" lon="-1.759850000">
+  <ele>89.600000</ele>
+<time>2008-08-14T15:18:50Z</time>
+  <course>328.079987</course>
+  <speed>10.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812710000" lon="-1.759920000">
+  <ele>89.800000</ele>
+<time>2008-08-14T15:18:51Z</time>
+  <course>328.630005</course>
+  <speed>8.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.812763333" lon="-1.759978333">
+  <ele>89.900000</ele>
+<time>2008-08-14T15:18:52Z</time>
+  <course>325.649994</course>
+  <speed>7.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812803333" lon="-1.760023333">
+  <ele>89.800000</ele>
+<time>2008-08-14T15:18:53Z</time>
+  <course>324.480011</course>
+  <speed>5.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812833333" lon="-1.760060000">
+  <ele>89.900000</ele>
+<time>2008-08-14T15:18:54Z</time>
+  <course>324.260010</course>
+  <speed>4.111111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812856667" lon="-1.760086667">
+  <ele>90.100000</ele>
+<time>2008-08-14T15:18:55Z</time>
+  <course>324.309998</course>
+  <speed>3.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812875000" lon="-1.760106667">
+  <ele>90.300000</ele>
+<time>2008-08-14T15:18:56Z</time>
+  <course>324.380005</course>
+  <speed>2.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.812895000" lon="-1.760130000">
+  <ele>90.300000</ele>
+<time>2008-08-14T15:18:57Z</time>
+  <course>324.630005</course>
+  <speed>2.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812925000" lon="-1.760165000">
+  <ele>90.400000</ele>
+<time>2008-08-14T15:18:58Z</time>
+  <course>325.619995</course>
+  <speed>4.055555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.812965000" lon="-1.760210000">
+  <ele>90.700000</ele>
+<time>2008-08-14T15:18:59Z</time>
+  <course>326.239990</course>
+  <speed>5.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813013333" lon="-1.760261667">
+  <ele>90.800000</ele>
+<time>2008-08-14T15:19:00Z</time>
+  <course>326.910004</course>
+  <speed>6.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813065000" lon="-1.760318333">
+  <ele>91.000000</ele>
+<time>2008-08-14T15:19:01Z</time>
+  <course>327.899994</course>
+  <speed>6.916667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.813120000" lon="-1.760375000">
+  <ele>91.300000</ele>
+<time>2008-08-14T15:19:02Z</time>
+  <course>327.959991</course>
+  <speed>7.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813176667" lon="-1.760433333">
+  <ele>91.600000</ele>
+<time>2008-08-14T15:19:03Z</time>
+  <course>327.779999</course>
+  <speed>7.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813241667" lon="-1.760501667">
+  <ele>91.800000</ele>
+<time>2008-08-14T15:19:04Z</time>
+  <course>328.220001</course>
+  <speed>8.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813315000" lon="-1.760576667">
+  <ele>92.000000</ele>
+<time>2008-08-14T15:19:05Z</time>
+  <course>328.670013</course>
+  <speed>9.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813393333" lon="-1.760656667">
+  <ele>92.000000</ele>
+<time>2008-08-14T15:19:06Z</time>
+  <course>329.040009</course>
+  <speed>10.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.813475000" lon="-1.760740000">
+  <ele>91.900000</ele>
+<time>2008-08-14T15:19:07Z</time>
+  <course>329.339996</course>
+  <speed>10.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813563333" lon="-1.760828333">
+  <ele>91.800000</ele>
+<time>2008-08-14T15:19:08Z</time>
+  <course>329.679993</course>
+  <speed>11.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813656667" lon="-1.760920000">
+  <ele>91.700000</ele>
+<time>2008-08-14T15:19:09Z</time>
+  <course>330.529999</course>
+  <speed>11.916667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813751667" lon="-1.761010000">
+  <ele>91.600000</ele>
+<time>2008-08-14T15:19:10Z</time>
+  <course>331.179993</course>
+  <speed>12.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.813846667" lon="-1.761096667">
+  <ele>91.600000</ele>
+<time>2008-08-14T15:19:11Z</time>
+  <course>331.679993</course>
+  <speed>11.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.813943333" lon="-1.761183333">
+  <ele>91.400000</ele>
+<time>2008-08-14T15:19:12Z</time>
+  <course>332.510010</course>
+  <speed>12.166667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814045000" lon="-1.761271667">
+  <ele>91.300000</ele>
+<time>2008-08-14T15:19:13Z</time>
+  <course>332.750000</course>
+  <speed>12.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814146667" lon="-1.761360000">
+  <ele>91.200000</ele>
+<time>2008-08-14T15:19:14Z</time>
+  <course>332.950012</course>
+  <speed>12.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814246667" lon="-1.761448333">
+  <ele>91.000000</ele>
+<time>2008-08-14T15:19:15Z</time>
+  <course>333.260010</course>
+  <speed>12.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814346667" lon="-1.761533333">
+  <ele>90.900000</ele>
+<time>2008-08-14T15:19:16Z</time>
+  <course>332.600006</course>
+  <speed>12.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.814441667" lon="-1.761621667">
+  <ele>90.900000</ele>
+<time>2008-08-14T15:19:17Z</time>
+  <course>330.299988</course>
+  <speed>12.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814531667" lon="-1.761718333">
+  <ele>90.900000</ele>
+<time>2008-08-14T15:19:18Z</time>
+  <course>324.630005</course>
+  <speed>11.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814613333" lon="-1.761828333">
+  <ele>91.100000</ele>
+<time>2008-08-14T15:19:19Z</time>
+  <course>317.350006</course>
+  <speed>11.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814678333" lon="-1.761956667">
+  <ele>90.900000</ele>
+<time>2008-08-14T15:19:20Z</time>
+  <course>306.820007</course>
+  <speed>11.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814733333" lon="-1.762101667">
+  <ele>90.800000</ele>
+<time>2008-08-14T15:19:21Z</time>
+  <course>300.529999</course>
+  <speed>11.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.814780000" lon="-1.762261667">
+  <ele>90.100000</ele>
+<time>2008-08-14T15:19:22Z</time>
+  <course>295.309998</course>
+  <speed>11.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814826667" lon="-1.762426667">
+  <ele>89.300000</ele>
+<time>2008-08-14T15:19:23Z</time>
+  <course>295.209991</course>
+  <speed>12.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814875000" lon="-1.762601667">
+  <ele>88.900000</ele>
+<time>2008-08-14T15:19:24Z</time>
+  <course>294.529999</course>
+  <speed>12.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814925000" lon="-1.762788333">
+  <ele>88.600000</ele>
+<time>2008-08-14T15:19:25Z</time>
+  <course>295.769989</course>
+  <speed>13.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.814978333" lon="-1.762976667">
+  <ele>87.900000</ele>
+<time>2008-08-14T15:19:26Z</time>
+  <course>295.049988</course>
+  <speed>13.777778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.815026667" lon="-1.763170000">
+  <ele>87.200000</ele>
+<time>2008-08-14T15:19:27Z</time>
+  <course>296.049988</course>
+  <speed>13.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815081667" lon="-1.763360000">
+  <ele>87.000000</ele>
+<time>2008-08-14T15:19:28Z</time>
+  <course>296.609985</course>
+  <speed>13.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815150000" lon="-1.763541667">
+  <ele>86.500000</ele>
+<time>2008-08-14T15:19:29Z</time>
+  <course>305.679993</course>
+  <speed>14.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815238333" lon="-1.763710000">
+  <ele>86.600000</ele>
+<time>2008-08-14T15:19:30Z</time>
+  <course>313.679993</course>
+  <speed>14.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815333333" lon="-1.763858333">
+  <ele>86.500000</ele>
+<time>2008-08-14T15:19:31Z</time>
+  <course>317.720001</course>
+  <speed>14.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.815428333" lon="-1.763991667">
+  <ele>86.500000</ele>
+<time>2008-08-14T15:19:32Z</time>
+  <course>322.250000</course>
+  <speed>13.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815528333" lon="-1.764111667">
+  <ele>86.400000</ele>
+<time>2008-08-14T15:19:33Z</time>
+  <course>325.970001</course>
+  <speed>13.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815631667" lon="-1.764223333">
+  <ele>86.300000</ele>
+<time>2008-08-14T15:19:34Z</time>
+  <course>326.470001</course>
+  <speed>13.472222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815733333" lon="-1.764335000">
+  <ele>86.300000</ele>
+<time>2008-08-14T15:19:35Z</time>
+  <course>326.489990</course>
+  <speed>13.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.815831667" lon="-1.764443333">
+  <ele>86.200000</ele>
+<time>2008-08-14T15:19:36Z</time>
+  <course>326.260010</course>
+  <speed>13.027778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.815928333" lon="-1.764550000">
+  <ele>86.100000</ele>
+<time>2008-08-14T15:19:37Z</time>
+  <course>325.510010</course>
+  <speed>12.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816021667" lon="-1.764656667">
+  <ele>86.000000</ele>
+<time>2008-08-14T15:19:38Z</time>
+  <course>325.299988</course>
+  <speed>12.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816116667" lon="-1.764765000">
+  <ele>85.900000</ele>
+<time>2008-08-14T15:19:39Z</time>
+  <course>325.230011</course>
+  <speed>12.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816211667" lon="-1.764875000">
+  <ele>85.800000</ele>
+<time>2008-08-14T15:19:40Z</time>
+  <course>325.440002</course>
+  <speed>12.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816308333" lon="-1.764986667">
+  <ele>85.800000</ele>
+<time>2008-08-14T15:19:41Z</time>
+  <course>325.160004</course>
+  <speed>12.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.816403333" lon="-1.765098333">
+  <ele>85.600000</ele>
+<time>2008-08-14T15:19:42Z</time>
+  <course>325.040009</course>
+  <speed>12.777778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816498333" lon="-1.765208333">
+  <ele>85.600000</ele>
+<time>2008-08-14T15:19:43Z</time>
+  <course>325.010010</course>
+  <speed>12.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816591667" lon="-1.765318333">
+  <ele>85.400000</ele>
+<time>2008-08-14T15:19:44Z</time>
+  <course>325.380005</course>
+  <speed>12.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816685000" lon="-1.765421667">
+  <ele>85.400000</ele>
+<time>2008-08-14T15:19:45Z</time>
+  <course>327.260010</course>
+  <speed>12.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816778333" lon="-1.765523333">
+  <ele>85.300000</ele>
+<time>2008-08-14T15:19:46Z</time>
+  <course>327.779999</course>
+  <speed>12.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.816873333" lon="-1.765621667">
+  <ele>85.200000</ele>
+<time>2008-08-14T15:19:47Z</time>
+  <course>328.429993</course>
+  <speed>12.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.816970000" lon="-1.765720000">
+  <ele>85.200000</ele>
+<time>2008-08-14T15:19:48Z</time>
+  <course>329.470001</course>
+  <speed>12.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.817066667" lon="-1.765815000">
+  <ele>85.100000</ele>
+<time>2008-08-14T15:19:49Z</time>
+  <course>329.260010</course>
+  <speed>12.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.817161667" lon="-1.765911667">
+  <ele>85.000000</ele>
+<time>2008-08-14T15:19:50Z</time>
+  <course>329.239990</course>
+  <speed>12.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.817260000" lon="-1.766010000">
+  <ele>85.000000</ele>
+<time>2008-08-14T15:19:51Z</time>
+  <course>329.709991</course>
+  <speed>12.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.817361667" lon="-1.766110000">
+  <ele>85.000000</ele>
+<time>2008-08-14T15:19:52Z</time>
+  <course>330.290009</course>
+  <speed>13.027778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.817468333" lon="-1.766211667">
+  <ele>85.000000</ele>
+<time>2008-08-14T15:19:53Z</time>
+  <course>330.309998</course>
+  <speed>13.583333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.817580000" lon="-1.766316667">
+  <ele>84.800000</ele>
+<time>2008-08-14T15:19:54Z</time>
+  <course>331.140015</course>
+  <speed>14.111111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.817695000" lon="-1.766423333">
+  <ele>84.800000</ele>
+<time>2008-08-14T15:19:55Z</time>
+  <course>331.619995</course>
+  <speed>14.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.817810000" lon="-1.766526667">
+  <ele>84.600000</ele>
+<time>2008-08-14T15:19:56Z</time>
+  <course>332.459991</course>
+  <speed>14.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.817928333" lon="-1.766628333">
+  <ele>84.500000</ele>
+<time>2008-08-14T15:19:57Z</time>
+  <course>333.250000</course>
+  <speed>14.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.818051667" lon="-1.766731667">
+  <ele>84.300000</ele>
+<time>2008-08-14T15:19:58Z</time>
+  <course>334.109985</course>
+  <speed>15.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.818180000" lon="-1.766835000">
+  <ele>84.200000</ele>
+<time>2008-08-14T15:19:59Z</time>
+  <course>334.839996</course>
+  <speed>15.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.818310000" lon="-1.766936667">
+  <ele>84.000000</ele>
+<time>2008-08-14T15:20:00Z</time>
+  <course>335.350006</course>
+  <speed>15.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.818438333" lon="-1.767036667">
+  <ele>83.800000</ele>
+<time>2008-08-14T15:20:01Z</time>
+  <course>335.410004</course>
+  <speed>15.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.818568333" lon="-1.767135000">
+  <ele>83.600000</ele>
+<time>2008-08-14T15:20:02Z</time>
+  <course>335.619995</course>
+  <speed>15.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.818695000" lon="-1.767233333">
+  <ele>83.500000</ele>
+<time>2008-08-14T15:20:03Z</time>
+  <course>335.480011</course>
+  <speed>15.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.818821667" lon="-1.767330000">
+  <ele>83.400000</ele>
+<time>2008-08-14T15:20:04Z</time>
+  <course>335.570007</course>
+  <speed>15.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.818946667" lon="-1.767425000">
+  <ele>83.200000</ele>
+<time>2008-08-14T15:20:05Z</time>
+  <course>336.070007</course>
+  <speed>15.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.819073333" lon="-1.767515000">
+  <ele>83.100000</ele>
+<time>2008-08-14T15:20:06Z</time>
+  <course>337.720001</course>
+  <speed>15.166667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.819203333" lon="-1.767598333">
+  <ele>83.100000</ele>
+<time>2008-08-14T15:20:07Z</time>
+  <course>339.970001</course>
+  <speed>15.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.819335000" lon="-1.767675000">
+  <ele>83.000000</ele>
+<time>2008-08-14T15:20:08Z</time>
+  <course>341.890015</course>
+  <speed>15.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.819465000" lon="-1.767745000">
+  <ele>83.100000</ele>
+<time>2008-08-14T15:20:09Z</time>
+  <course>342.480011</course>
+  <speed>15.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.819595000" lon="-1.767811667">
+  <ele>83.100000</ele>
+<time>2008-08-14T15:20:10Z</time>
+  <course>343.279999</course>
+  <speed>15.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.819728333" lon="-1.767878333">
+  <ele>82.800000</ele>
+<time>2008-08-14T15:20:11Z</time>
+  <course>343.690002</course>
+  <speed>15.222222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.819858333" lon="-1.767936667">
+  <ele>83.100000</ele>
+<time>2008-08-14T15:20:12Z</time>
+  <course>343.410004</course>
+  <speed>15.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.819991667" lon="-1.768001667">
+  <ele>82.900000</ele>
+<time>2008-08-14T15:20:13Z</time>
+  <course>343.440002</course>
+  <speed>15.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.820131667" lon="-1.768068333">
+  <ele>82.600000</ele>
+<time>2008-08-14T15:20:14Z</time>
+  <course>344.920013</course>
+  <speed>15.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.820270000" lon="-1.768128333">
+  <ele>82.300000</ele>
+<time>2008-08-14T15:20:15Z</time>
+  <course>347.130005</course>
+  <speed>15.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.820406667" lon="-1.768181667">
+  <ele>81.800000</ele>
+<time>2008-08-14T15:20:16Z</time>
+  <course>347.690002</course>
+  <speed>15.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.820543333" lon="-1.768230000">
+  <ele>81.400000</ele>
+<time>2008-08-14T15:20:17Z</time>
+  <course>349.179993</course>
+  <speed>15.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.820683333" lon="-1.768275000">
+  <ele>81.000000</ele>
+<time>2008-08-14T15:20:18Z</time>
+  <course>349.829987</course>
+  <speed>15.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.820825000" lon="-1.768316667">
+  <ele>80.700000</ele>
+<time>2008-08-14T15:20:19Z</time>
+  <course>350.320007</course>
+  <speed>15.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.820966667" lon="-1.768360000">
+  <ele>80.200000</ele>
+<time>2008-08-14T15:20:20Z</time>
+  <course>349.589996</course>
+  <speed>16.027779</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.821113333" lon="-1.768406667">
+  <ele>79.800000</ele>
+<time>2008-08-14T15:20:21Z</time>
+  <course>350.070007</course>
+  <speed>16.416666</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.821261667" lon="-1.768451667">
+  <ele>79.700000</ele>
+<time>2008-08-14T15:20:22Z</time>
+  <course>349.890015</course>
+  <speed>16.527779</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.821410000" lon="-1.768495000">
+  <ele>79.600000</ele>
+<time>2008-08-14T15:20:23Z</time>
+  <course>350.890015</course>
+  <speed>16.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.821553333" lon="-1.768538333">
+  <ele>79.100000</ele>
+<time>2008-08-14T15:20:24Z</time>
+  <course>349.500000</course>
+  <speed>16.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.821696667" lon="-1.768581667">
+  <ele>78.500000</ele>
+<time>2008-08-14T15:20:25Z</time>
+  <course>349.429993</course>
+  <speed>16.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.821835000" lon="-1.768625000">
+  <ele>78.100000</ele>
+<time>2008-08-14T15:20:26Z</time>
+  <course>349.339996</course>
+  <speed>15.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.821970000" lon="-1.768670000">
+  <ele>77.700000</ele>
+<time>2008-08-14T15:20:27Z</time>
+  <course>348.429993</course>
+  <speed>15.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.822101667" lon="-1.768716667">
+  <ele>77.600000</ele>
+<time>2008-08-14T15:20:28Z</time>
+  <course>348.149994</course>
+  <speed>14.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.822230000" lon="-1.768768333">
+  <ele>77.400000</ele>
+<time>2008-08-14T15:20:29Z</time>
+  <course>345.320007</course>
+  <speed>14.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.822353333" lon="-1.768831667">
+  <ele>77.000000</ele>
+<time>2008-08-14T15:20:30Z</time>
+  <course>342.109985</course>
+  <speed>14.444445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.822475000" lon="-1.768906667">
+  <ele>76.400000</ele>
+<time>2008-08-14T15:20:31Z</time>
+  <course>338.470001</course>
+  <speed>14.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.822595000" lon="-1.768995000">
+  <ele>76.200000</ele>
+<time>2008-08-14T15:20:32Z</time>
+  <course>336.010010</course>
+  <speed>14.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.822711667" lon="-1.769090000">
+  <ele>75.800000</ele>
+<time>2008-08-14T15:20:33Z</time>
+  <course>333.660004</course>
+  <speed>14.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.822826667" lon="-1.769190000">
+  <ele>75.900000</ele>
+<time>2008-08-14T15:20:34Z</time>
+  <course>333.339996</course>
+  <speed>14.194445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.822940000" lon="-1.769295000">
+  <ele>76.000000</ele>
+<time>2008-08-14T15:20:35Z</time>
+  <course>332.589996</course>
+  <speed>14.111111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.823055000" lon="-1.769400000">
+  <ele>76.000000</ele>
+<time>2008-08-14T15:20:36Z</time>
+  <course>332.089996</course>
+  <speed>14.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.823168333" lon="-1.769503333">
+  <ele>76.000000</ele>
+<time>2008-08-14T15:20:37Z</time>
+  <course>332.049988</course>
+  <speed>14.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.823280000" lon="-1.769606667">
+  <ele>76.100000</ele>
+<time>2008-08-14T15:20:38Z</time>
+  <course>332.089996</course>
+  <speed>14.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.823391667" lon="-1.769706667">
+  <ele>76.100000</ele>
+<time>2008-08-14T15:20:39Z</time>
+  <course>332.040009</course>
+  <speed>13.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.823500000" lon="-1.769806667">
+  <ele>76.200000</ele>
+<time>2008-08-14T15:20:40Z</time>
+  <course>332.200012</course>
+  <speed>13.666667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.823611667" lon="-1.769896667">
+  <ele>76.400000</ele>
+<time>2008-08-14T15:20:41Z</time>
+  <course>333.760010</course>
+  <speed>13.527778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.700000</pdop>
+</trkpt>
+<trkpt lat="53.823723333" lon="-1.769983333">
+  <ele>76.600000</ele>
+<time>2008-08-14T15:20:42Z</time>
+  <course>334.660004</course>
+  <speed>13.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.823833333" lon="-1.770071667">
+  <ele>76.700000</ele>
+<time>2008-08-14T15:20:43Z</time>
+  <course>335.390015</course>
+  <speed>13.666667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.823946667" lon="-1.770160000">
+  <ele>77.000000</ele>
+<time>2008-08-14T15:20:44Z</time>
+  <course>334.239990</course>
+  <speed>13.888889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.824066667" lon="-1.770238333">
+  <ele>77.600000</ele>
+<time>2008-08-14T15:20:45Z</time>
+  <course>339.100006</course>
+  <speed>13.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.824186667" lon="-1.770308333">
+  <ele>77.700000</ele>
+<time>2008-08-14T15:20:46Z</time>
+  <course>337.899994</course>
+  <speed>13.805555</speed>
+  <fix>3d</fix>
+  <sat>6</sat>
+  <hdop>1.500000</hdop>
+  <vdop>2.300000</vdop>
+  <pdop>2.800000</pdop>
+</trkpt>
+<trkpt lat="53.824311667" lon="-1.770368333">
+  <ele>77.400000</ele>
+<time>2008-08-14T15:20:47Z</time>
+  <course>336.339996</course>
+  <speed>13.861111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.824433333" lon="-1.770438333">
+  <ele>77.400000</ele>
+<time>2008-08-14T15:20:48Z</time>
+  <course>336.160004</course>
+  <speed>13.916667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.824546667" lon="-1.770525000">
+  <ele>77.300000</ele>
+<time>2008-08-14T15:20:49Z</time>
+  <course>335.500000</course>
+  <speed>13.805555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.824656667" lon="-1.770613333">
+  <ele>76.800000</ele>
+<time>2008-08-14T15:20:50Z</time>
+  <course>334.850006</course>
+  <speed>13.583333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.824763333" lon="-1.770705000">
+  <ele>76.600000</ele>
+<time>2008-08-14T15:20:51Z</time>
+  <course>333.220001</course>
+  <speed>13.250000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.824866667" lon="-1.770793333">
+  <ele>76.300000</ele>
+<time>2008-08-14T15:20:52Z</time>
+  <course>332.929993</course>
+  <speed>12.861111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.824966667" lon="-1.770881667">
+  <ele>76.700000</ele>
+<time>2008-08-14T15:20:53Z</time>
+  <course>331.829987</course>
+  <speed>12.527778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.825066667" lon="-1.770978333">
+  <ele>77.000000</ele>
+<time>2008-08-14T15:20:54Z</time>
+  <course>331.100006</course>
+  <speed>12.694445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.825168333" lon="-1.771080000">
+  <ele>77.000000</ele>
+<time>2008-08-14T15:20:55Z</time>
+  <course>329.570007</course>
+  <speed>13.166667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.825273333" lon="-1.771193333">
+  <ele>78.100000</ele>
+<time>2008-08-14T15:20:56Z</time>
+  <course>326.700012</course>
+  <speed>13.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.700000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.825375000" lon="-1.771315000">
+  <ele>79.400000</ele>
+<time>2008-08-14T15:20:57Z</time>
+  <course>321.880005</course>
+  <speed>13.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.825465000" lon="-1.771446667">
+  <ele>80.200000</ele>
+<time>2008-08-14T15:20:58Z</time>
+  <course>316.820007</course>
+  <speed>13.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.825543333" lon="-1.771583333">
+  <ele>80.700000</ele>
+<time>2008-08-14T15:20:59Z</time>
+  <course>313.089996</course>
+  <speed>12.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.825615000" lon="-1.771725000">
+  <ele>81.500000</ele>
+<time>2008-08-14T15:21:00Z</time>
+  <course>309.200012</course>
+  <speed>12.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.825683333" lon="-1.771868333">
+  <ele>82.400000</ele>
+<time>2008-08-14T15:21:01Z</time>
+  <course>309.760010</course>
+  <speed>12.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.825751667" lon="-1.772013333">
+  <ele>83.600000</ele>
+<time>2008-08-14T15:21:02Z</time>
+  <course>308.589996</course>
+  <speed>12.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.825816667" lon="-1.772150000">
+  <ele>85.100000</ele>
+<time>2008-08-14T15:21:03Z</time>
+  <course>311.410004</course>
+  <speed>11.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.825883333" lon="-1.772286667">
+  <ele>86.100000</ele>
+<time>2008-08-14T15:21:04Z</time>
+  <course>312.769989</course>
+  <speed>11.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.825953333" lon="-1.772425000">
+  <ele>86.500000</ele>
+<time>2008-08-14T15:21:05Z</time>
+  <course>313.019989</course>
+  <speed>12.055555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.826031667" lon="-1.772555000">
+  <ele>86.300000</ele>
+<time>2008-08-14T15:21:06Z</time>
+  <course>317.100006</course>
+  <speed>12.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.826118333" lon="-1.772683333">
+  <ele>86.200000</ele>
+<time>2008-08-14T15:21:07Z</time>
+  <course>321.809998</course>
+  <speed>12.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.826215000" lon="-1.772793333">
+  <ele>85.900000</ele>
+<time>2008-08-14T15:21:08Z</time>
+  <course>326.690002</course>
+  <speed>12.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.826318333" lon="-1.772898333">
+  <ele>85.700000</ele>
+<time>2008-08-14T15:21:09Z</time>
+  <course>331.040009</course>
+  <speed>13.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.826428333" lon="-1.772993333">
+  <ele>84.900000</ele>
+<time>2008-08-14T15:21:10Z</time>
+  <course>335.660004</course>
+  <speed>13.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.826543333" lon="-1.773071667">
+  <ele>83.400000</ele>
+<time>2008-08-14T15:21:11Z</time>
+  <course>340.399994</course>
+  <speed>13.694445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.826661667" lon="-1.773133333">
+  <ele>82.200000</ele>
+<time>2008-08-14T15:21:12Z</time>
+  <course>344.540009</course>
+  <speed>13.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.826783333" lon="-1.773188333">
+  <ele>80.500000</ele>
+<time>2008-08-14T15:21:13Z</time>
+  <course>346.059998</course>
+  <speed>13.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.826905000" lon="-1.773243333">
+  <ele>79.300000</ele>
+<time>2008-08-14T15:21:14Z</time>
+  <course>344.579987</course>
+  <speed>13.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.827026667" lon="-1.773300000">
+  <ele>78.500000</ele>
+<time>2008-08-14T15:21:15Z</time>
+  <course>343.500000</course>
+  <speed>13.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.827150000" lon="-1.773360000">
+  <ele>77.200000</ele>
+<time>2008-08-14T15:21:16Z</time>
+  <course>343.640015</course>
+  <speed>14.055555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.827275000" lon="-1.773423333">
+  <ele>76.200000</ele>
+<time>2008-08-14T15:21:17Z</time>
+  <course>343.730011</course>
+  <speed>14.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.827400000" lon="-1.773485000">
+  <ele>75.600000</ele>
+<time>2008-08-14T15:21:18Z</time>
+  <course>343.269989</course>
+  <speed>14.333333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.827526667" lon="-1.773548333">
+  <ele>75.700000</ele>
+<time>2008-08-14T15:21:19Z</time>
+  <course>342.910004</course>
+  <speed>14.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.827658333" lon="-1.773618333">
+  <ele>75.300000</ele>
+<time>2008-08-14T15:21:20Z</time>
+  <course>341.899994</course>
+  <speed>15.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.827791667" lon="-1.773695000">
+  <ele>74.700000</ele>
+<time>2008-08-14T15:21:21Z</time>
+  <course>341.309998</course>
+  <speed>15.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.827923333" lon="-1.773771667">
+  <ele>74.200000</ele>
+<time>2008-08-14T15:21:22Z</time>
+  <course>341.809998</course>
+  <speed>15.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828050000" lon="-1.773845000">
+  <ele>73.600000</ele>
+<time>2008-08-14T15:21:23Z</time>
+  <course>341.579987</course>
+  <speed>14.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828171667" lon="-1.773920000">
+  <ele>72.900000</ele>
+<time>2008-08-14T15:21:24Z</time>
+  <course>339.679993</course>
+  <speed>14.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828283333" lon="-1.773995000">
+  <ele>72.000000</ele>
+<time>2008-08-14T15:21:25Z</time>
+  <course>338.809998</course>
+  <speed>13.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828383333" lon="-1.774063333">
+  <ele>71.900000</ele>
+<time>2008-08-14T15:21:26Z</time>
+  <course>338.640015</course>
+  <speed>11.888889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.828468333" lon="-1.774125000">
+  <ele>71.800000</ele>
+<time>2008-08-14T15:21:27Z</time>
+  <course>337.329987</course>
+  <speed>10.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828543333" lon="-1.774183333">
+  <ele>71.800000</ele>
+<time>2008-08-14T15:21:28Z</time>
+  <course>334.760010</course>
+  <speed>9.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828618333" lon="-1.774248333">
+  <ele>72.400000</ele>
+<time>2008-08-14T15:21:29Z</time>
+  <course>332.760010</course>
+  <speed>9.194445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828695000" lon="-1.774318333">
+  <ele>72.900000</ele>
+<time>2008-08-14T15:21:30Z</time>
+  <course>330.850006</course>
+  <speed>9.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828775000" lon="-1.774393333">
+  <ele>73.300000</ele>
+<time>2008-08-14T15:21:31Z</time>
+  <course>332.140015</course>
+  <speed>10.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.828856667" lon="-1.774466667">
+  <ele>73.900000</ele>
+<time>2008-08-14T15:21:32Z</time>
+  <course>332.149994</course>
+  <speed>10.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.828945000" lon="-1.774541667">
+  <ele>74.600000</ele>
+<time>2008-08-14T15:21:33Z</time>
+  <course>332.950012</course>
+  <speed>10.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829031667" lon="-1.774618333">
+  <ele>75.500000</ele>
+<time>2008-08-14T15:21:34Z</time>
+  <course>332.470001</course>
+  <speed>10.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829115000" lon="-1.774700000">
+  <ele>76.500000</ele>
+<time>2008-08-14T15:21:35Z</time>
+  <course>328.059998</course>
+  <speed>10.777778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829191667" lon="-1.774801667">
+  <ele>77.500000</ele>
+<time>2008-08-14T15:21:36Z</time>
+  <course>317.670013</course>
+  <speed>10.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.829258333" lon="-1.774926667">
+  <ele>78.500000</ele>
+<time>2008-08-14T15:21:37Z</time>
+  <course>308.329987</course>
+  <speed>11.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829315000" lon="-1.775076667">
+  <ele>78.900000</ele>
+<time>2008-08-14T15:21:38Z</time>
+  <course>301.000000</course>
+  <speed>11.666667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829366667" lon="-1.775250000">
+  <ele>79.400000</ele>
+<time>2008-08-14T15:21:39Z</time>
+  <course>294.690002</course>
+  <speed>12.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829415000" lon="-1.775435000">
+  <ele>80.000000</ele>
+<time>2008-08-14T15:21:40Z</time>
+  <course>295.089996</course>
+  <speed>13.027778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829463333" lon="-1.775620000">
+  <ele>80.500000</ele>
+<time>2008-08-14T15:21:41Z</time>
+  <course>295.160004</course>
+  <speed>13.138889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.400000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.829511667" lon="-1.775803333">
+  <ele>81.100000</ele>
+<time>2008-08-14T15:21:42Z</time>
+  <course>294.109985</course>
+  <speed>13.083333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829556667" lon="-1.775985000">
+  <ele>81.600000</ele>
+<time>2008-08-14T15:21:43Z</time>
+  <course>293.359985</course>
+  <speed>12.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829600000" lon="-1.776156667">
+  <ele>82.100000</ele>
+<time>2008-08-14T15:21:44Z</time>
+  <course>294.350006</course>
+  <speed>12.250000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.829646667" lon="-1.776305000">
+  <ele>82.800000</ele>
+<time>2008-08-14T15:21:45Z</time>
+  <course>301.200012</course>
+  <speed>11.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829696667" lon="-1.776420000">
+  <ele>83.200000</ele>
+<time>2008-08-14T15:21:46Z</time>
+  <course>310.019989</course>
+  <speed>9.888889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.829745000" lon="-1.776493333">
+  <ele>83.700000</ele>
+<time>2008-08-14T15:21:47Z</time>
+  <course>321.700012</course>
+  <speed>8.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829775000" lon="-1.776523333">
+  <ele>84.200000</ele>
+<time>2008-08-14T15:21:48Z</time>
+  <course>334.339996</course>
+  <speed>5.527778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829791667" lon="-1.776530000">
+  <ele>84.700000</ele>
+<time>2008-08-14T15:21:49Z</time>
+  <course>341.399994</course>
+  <speed>3.138889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829800000" lon="-1.776531667">
+  <ele>85.100000</ele>
+<time>2008-08-14T15:21:50Z</time>
+  <course>342.920013</course>
+  <speed>1.555556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829803333" lon="-1.776525000">
+  <ele>85.400000</ele>
+<time>2008-08-14T15:21:51Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.829801667" lon="-1.776516667">
+  <ele>85.800000</ele>
+<time>2008-08-14T15:21:52Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829800000" lon="-1.776510000">
+  <ele>86.200000</ele>
+<time>2008-08-14T15:21:53Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829798333" lon="-1.776503333">
+  <ele>86.500000</ele>
+<time>2008-08-14T15:21:54Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829801667" lon="-1.776496667">
+  <ele>86.900000</ele>
+<time>2008-08-14T15:21:55Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829805000" lon="-1.776493333">
+  <ele>87.100000</ele>
+<time>2008-08-14T15:21:56Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.829808333" lon="-1.776488333">
+  <ele>87.300000</ele>
+<time>2008-08-14T15:21:57Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829810000" lon="-1.776485000">
+  <ele>87.500000</ele>
+<time>2008-08-14T15:21:58Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829813333" lon="-1.776481667">
+  <ele>87.800000</ele>
+<time>2008-08-14T15:21:59Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829816667" lon="-1.776476667">
+  <ele>88.000000</ele>
+<time>2008-08-14T15:22:00Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829820000" lon="-1.776473333">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:22:01Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.829823333" lon="-1.776468333">
+  <ele>88.300000</ele>
+<time>2008-08-14T15:22:02Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829825000" lon="-1.776465000">
+  <ele>88.400000</ele>
+<time>2008-08-14T15:22:03Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829828333" lon="-1.776460000">
+  <ele>88.500000</ele>
+<time>2008-08-14T15:22:04Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829831667" lon="-1.776456667">
+  <ele>88.600000</ele>
+<time>2008-08-14T15:22:05Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829833333" lon="-1.776453333">
+  <ele>88.700000</ele>
+<time>2008-08-14T15:22:06Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.829836667" lon="-1.776450000">
+  <ele>88.800000</ele>
+<time>2008-08-14T15:22:07Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829838333" lon="-1.776446667">
+  <ele>88.800000</ele>
+<time>2008-08-14T15:22:08Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829840000" lon="-1.776441667">
+  <ele>88.900000</ele>
+<time>2008-08-14T15:22:09Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829843333" lon="-1.776438333">
+  <ele>88.900000</ele>
+<time>2008-08-14T15:22:10Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829845000" lon="-1.776435000">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:22:11Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.829846667" lon="-1.776431667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:22:12Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829850000" lon="-1.776428333">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:22:13Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829851667" lon="-1.776425000">
+  <ele>88.800000</ele>
+<time>2008-08-14T15:22:14Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829853333" lon="-1.776421667">
+  <ele>88.600000</ele>
+<time>2008-08-14T15:22:15Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829855000" lon="-1.776420000">
+  <ele>88.400000</ele>
+<time>2008-08-14T15:22:16Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.829856667" lon="-1.776416667">
+  <ele>88.300000</ele>
+<time>2008-08-14T15:22:17Z</time>
+  <course>342.920013</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829863333" lon="-1.776420000">
+  <ele>88.200000</ele>
+<time>2008-08-14T15:22:18Z</time>
+  <course>336.579987</course>
+  <speed>0.611111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829883333" lon="-1.776430000">
+  <ele>88.000000</ele>
+<time>2008-08-14T15:22:19Z</time>
+  <course>340.640015</course>
+  <speed>2.222222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829913333" lon="-1.776451667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:22:20Z</time>
+  <course>341.149994</course>
+  <speed>3.944444</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.829963333" lon="-1.776480000">
+  <ele>89.100000</ele>
+<time>2008-08-14T15:22:21Z</time>
+  <course>342.170013</course>
+  <speed>4.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.830010000" lon="-1.776506667">
+  <ele>89.100000</ele>
+<time>2008-08-14T15:22:22Z</time>
+  <course>337.880005</course>
+  <speed>5.250000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830056667" lon="-1.776543333">
+  <ele>89.900000</ele>
+<time>2008-08-14T15:22:23Z</time>
+  <course>329.040009</course>
+  <speed>5.444445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830100000" lon="-1.776591667">
+  <ele>90.900000</ele>
+<time>2008-08-14T15:22:24Z</time>
+  <course>320.200012</course>
+  <speed>5.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830140000" lon="-1.776656667">
+  <ele>91.500000</ele>
+<time>2008-08-14T15:22:25Z</time>
+  <course>311.700012</course>
+  <speed>6.055555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830175000" lon="-1.776725000">
+  <ele>92.700000</ele>
+<time>2008-08-14T15:22:26Z</time>
+  <course>307.869995</course>
+  <speed>6.083333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.830215000" lon="-1.776786667">
+  <ele>93.300000</ele>
+<time>2008-08-14T15:22:27Z</time>
+  <course>324.619995</course>
+  <speed>6.138889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830260000" lon="-1.776825000">
+  <ele>94.600000</ele>
+<time>2008-08-14T15:22:28Z</time>
+  <course>347.690002</course>
+  <speed>6.305555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830313333" lon="-1.776821667">
+  <ele>94.800000</ele>
+<time>2008-08-14T15:22:29Z</time>
+  <course>14.640000</course>
+  <speed>6.666667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830383333" lon="-1.776776667">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:22:30Z</time>
+  <course>24.500000</course>
+  <speed>7.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830456667" lon="-1.776715000">
+  <ele>94.900000</ele>
+<time>2008-08-14T15:22:31Z</time>
+  <course>27.090000</course>
+  <speed>8.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.830535000" lon="-1.776645000">
+  <ele>94.500000</ele>
+<time>2008-08-14T15:22:32Z</time>
+  <course>26.650000</course>
+  <speed>9.583333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830623333" lon="-1.776571667">
+  <ele>94.100000</ele>
+<time>2008-08-14T15:22:33Z</time>
+  <course>26.400000</course>
+  <speed>10.555555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830718333" lon="-1.776495000">
+  <ele>93.600000</ele>
+<time>2008-08-14T15:22:34Z</time>
+  <course>25.340000</course>
+  <speed>11.527778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830816667" lon="-1.776415000">
+  <ele>93.300000</ele>
+<time>2008-08-14T15:22:35Z</time>
+  <course>25.500000</course>
+  <speed>11.888889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.830911667" lon="-1.776338333">
+  <ele>92.800000</ele>
+<time>2008-08-14T15:22:36Z</time>
+  <course>26.750000</course>
+  <speed>11.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.831006667" lon="-1.776263333">
+  <ele>92.100000</ele>
+<time>2008-08-14T15:22:37Z</time>
+  <course>25.200001</course>
+  <speed>11.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831101667" lon="-1.776186667">
+  <ele>91.700000</ele>
+<time>2008-08-14T15:22:38Z</time>
+  <course>27.430000</course>
+  <speed>11.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831193333" lon="-1.776115000">
+  <ele>91.200000</ele>
+<time>2008-08-14T15:22:39Z</time>
+  <course>24.879999</course>
+  <speed>11.583333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831280000" lon="-1.776050000">
+  <ele>90.700000</ele>
+<time>2008-08-14T15:22:40Z</time>
+  <course>24.420000</course>
+  <speed>10.861111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831353333" lon="-1.775993333">
+  <ele>90.100000</ele>
+<time>2008-08-14T15:22:41Z</time>
+  <course>25.110001</course>
+  <speed>9.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.831411667" lon="-1.775950000">
+  <ele>89.700000</ele>
+<time>2008-08-14T15:22:42Z</time>
+  <course>24.650000</course>
+  <speed>7.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831456667" lon="-1.775918333">
+  <ele>89.400000</ele>
+<time>2008-08-14T15:22:43Z</time>
+  <course>25.030001</course>
+  <speed>5.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831488333" lon="-1.775895000">
+  <ele>89.100000</ele>
+<time>2008-08-14T15:22:44Z</time>
+  <course>24.290001</course>
+  <speed>4.250000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831510000" lon="-1.775880000">
+  <ele>88.800000</ele>
+<time>2008-08-14T15:22:45Z</time>
+  <course>24.110001</course>
+  <speed>2.944444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831521667" lon="-1.775871667">
+  <ele>88.500000</ele>
+<time>2008-08-14T15:22:46Z</time>
+  <course>26.980000</course>
+  <speed>1.805556</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831525000" lon="-1.775870000">
+  <ele>88.300000</ele>
+<time>2008-08-14T15:22:47Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831523333" lon="-1.775871667">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:22:48Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831521667" lon="-1.775875000">
+  <ele>88.000000</ele>
+<time>2008-08-14T15:22:49Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831518333" lon="-1.775876667">
+  <ele>87.800000</ele>
+<time>2008-08-14T15:22:50Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831515000" lon="-1.775878333">
+  <ele>87.700000</ele>
+<time>2008-08-14T15:22:51Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831513333" lon="-1.775880000">
+  <ele>87.500000</ele>
+<time>2008-08-14T15:22:52Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831510000" lon="-1.775880000">
+  <ele>87.400000</ele>
+<time>2008-08-14T15:22:53Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831508333" lon="-1.775881667">
+  <ele>87.200000</ele>
+<time>2008-08-14T15:22:54Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831505000" lon="-1.775881667">
+  <ele>87.100000</ele>
+<time>2008-08-14T15:22:55Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831503333" lon="-1.775883333">
+  <ele>86.900000</ele>
+<time>2008-08-14T15:22:56Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.831501667" lon="-1.775883333">
+  <ele>86.900000</ele>
+<time>2008-08-14T15:22:57Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831500000" lon="-1.775885000">
+  <ele>86.800000</ele>
+<time>2008-08-14T15:22:58Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831500000" lon="-1.775885000">
+  <ele>86.800000</ele>
+<time>2008-08-14T15:22:59Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831498333" lon="-1.775885000">
+  <ele>86.800000</ele>
+<time>2008-08-14T15:23:00Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831498333" lon="-1.775885000">
+  <ele>86.900000</ele>
+<time>2008-08-14T15:23:01Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775885000">
+  <ele>87.000000</ele>
+<time>2008-08-14T15:23:02Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775885000">
+  <ele>87.100000</ele>
+<time>2008-08-14T15:23:03Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775885000">
+  <ele>87.200000</ele>
+<time>2008-08-14T15:23:04Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>87.300000</ele>
+<time>2008-08-14T15:23:05Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>87.400000</ele>
+<time>2008-08-14T15:23:06Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>87.600000</ele>
+<time>2008-08-14T15:23:07Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>87.700000</ele>
+<time>2008-08-14T15:23:08Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>87.900000</ele>
+<time>2008-08-14T15:23:09Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>88.000000</ele>
+<time>2008-08-14T15:23:10Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>88.000000</ele>
+<time>2008-08-14T15:23:11Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.831496667" lon="-1.775886667">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:23:12Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831495000" lon="-1.775888333">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:23:13Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831495000" lon="-1.775888333">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:23:14Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831493333" lon="-1.775888333">
+  <ele>88.000000</ele>
+<time>2008-08-14T15:23:15Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831493333" lon="-1.775888333">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:23:16Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831493333" lon="-1.775888333">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:23:17Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831493333" lon="-1.775890000">
+  <ele>88.200000</ele>
+<time>2008-08-14T15:23:18Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831491667" lon="-1.775890000">
+  <ele>88.200000</ele>
+<time>2008-08-14T15:23:19Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831491667" lon="-1.775890000">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:23:20Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831491667" lon="-1.775890000">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:23:21Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831490000" lon="-1.775891667">
+  <ele>88.000000</ele>
+<time>2008-08-14T15:23:22Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831490000" lon="-1.775891667">
+  <ele>87.900000</ele>
+<time>2008-08-14T15:23:23Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831488333" lon="-1.775891667">
+  <ele>87.900000</ele>
+<time>2008-08-14T15:23:24Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831488333" lon="-1.775891667">
+  <ele>87.800000</ele>
+<time>2008-08-14T15:23:25Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831486667" lon="-1.775893333">
+  <ele>87.700000</ele>
+<time>2008-08-14T15:23:26Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831486667" lon="-1.775893333">
+  <ele>87.500000</ele>
+<time>2008-08-14T15:23:27Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831485000" lon="-1.775893333">
+  <ele>87.400000</ele>
+<time>2008-08-14T15:23:28Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831483333" lon="-1.775895000">
+  <ele>87.300000</ele>
+<time>2008-08-14T15:23:29Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831483333" lon="-1.775895000">
+  <ele>87.200000</ele>
+<time>2008-08-14T15:23:30Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831481667" lon="-1.775895000">
+  <ele>87.000000</ele>
+<time>2008-08-14T15:23:31Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831481667" lon="-1.775896667">
+  <ele>86.900000</ele>
+<time>2008-08-14T15:23:32Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831480000" lon="-1.775896667">
+  <ele>86.800000</ele>
+<time>2008-08-14T15:23:33Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831480000" lon="-1.775896667">
+  <ele>86.700000</ele>
+<time>2008-08-14T15:23:34Z</time>
+  <course>26.980000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831488333" lon="-1.775890000">
+  <ele>86.700000</ele>
+<time>2008-08-14T15:23:35Z</time>
+  <course>26.639999</course>
+  <speed>1.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831513333" lon="-1.775870000">
+  <ele>86.600000</ele>
+<time>2008-08-14T15:23:36Z</time>
+  <course>25.660000</course>
+  <speed>3.027778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.831553333" lon="-1.775843333">
+  <ele>86.500000</ele>
+<time>2008-08-14T15:23:37Z</time>
+  <course>18.910000</course>
+  <speed>4.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831593333" lon="-1.775830000">
+  <ele>86.300000</ele>
+<time>2008-08-14T15:23:38Z</time>
+  <course>2.170000</course>
+  <speed>4.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831635000" lon="-1.775850000">
+  <ele>86.200000</ele>
+<time>2008-08-14T15:23:39Z</time>
+  <course>333.540009</course>
+  <speed>5.083333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.831663333" lon="-1.775910000">
+  <ele>86.100000</ele>
+<time>2008-08-14T15:23:40Z</time>
+  <course>300.679993</course>
+  <speed>5.416667</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831691667" lon="-1.776001667">
+  <ele>85.800000</ele>
+<time>2008-08-14T15:23:41Z</time>
+  <course>294.190002</course>
+  <speed>6.388889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831721667" lon="-1.776108333">
+  <ele>86.000000</ele>
+<time>2008-08-14T15:23:42Z</time>
+  <course>292.839996</course>
+  <speed>7.361111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831751667" lon="-1.776220000">
+  <ele>86.200000</ele>
+<time>2008-08-14T15:23:43Z</time>
+  <course>293.529999</course>
+  <speed>7.833333</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831785000" lon="-1.776333333">
+  <ele>86.700000</ele>
+<time>2008-08-14T15:23:44Z</time>
+  <course>296.559998</course>
+  <speed>7.944445</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831820000" lon="-1.776438333">
+  <ele>87.100000</ele>
+<time>2008-08-14T15:23:45Z</time>
+  <course>301.679993</course>
+  <speed>7.805555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831861667" lon="-1.776538333">
+  <ele>87.700000</ele>
+<time>2008-08-14T15:23:46Z</time>
+  <course>307.549988</course>
+  <speed>7.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831910000" lon="-1.776625000">
+  <ele>88.300000</ele>
+<time>2008-08-14T15:23:47Z</time>
+  <course>316.339996</course>
+  <speed>7.555555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831963333" lon="-1.776696667">
+  <ele>89.000000</ele>
+<time>2008-08-14T15:23:48Z</time>
+  <course>327.200012</course>
+  <speed>7.305555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.832020000" lon="-1.776748333">
+  <ele>89.400000</ele>
+<time>2008-08-14T15:23:49Z</time>
+  <course>335.750000</course>
+  <speed>7.055555</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.832080000" lon="-1.776790000">
+  <ele>89.900000</ele>
+<time>2008-08-14T15:23:50Z</time>
+  <course>340.970001</course>
+  <speed>6.861111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.832136667" lon="-1.776815000">
+  <ele>90.200000</ele>
+<time>2008-08-14T15:23:51Z</time>
+  <course>351.079987</course>
+  <speed>6.638889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.832195000" lon="-1.776825000">
+  <ele>90.400000</ele>
+<time>2008-08-14T15:23:52Z</time>
+  <course>358.220001</course>
+  <speed>6.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832251667" lon="-1.776820000">
+  <ele>90.700000</ele>
+<time>2008-08-14T15:23:53Z</time>
+  <course>2.640000</course>
+  <speed>6.638889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832310000" lon="-1.776813333">
+  <ele>91.000000</ele>
+<time>2008-08-14T15:23:54Z</time>
+  <course>1.650000</course>
+  <speed>6.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832366667" lon="-1.776808333">
+  <ele>91.400000</ele>
+<time>2008-08-14T15:23:55Z</time>
+  <course>1.950000</course>
+  <speed>6.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832428333" lon="-1.776803333">
+  <ele>91.500000</ele>
+<time>2008-08-14T15:23:56Z</time>
+  <course>0.920000</course>
+  <speed>7.055555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.832491667" lon="-1.776798333">
+  <ele>91.700000</ele>
+<time>2008-08-14T15:23:57Z</time>
+  <course>0.580000</course>
+  <speed>7.333333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832553333" lon="-1.776795000">
+  <ele>91.800000</ele>
+<time>2008-08-14T15:23:58Z</time>
+  <course>359.799988</course>
+  <speed>7.222222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832610000" lon="-1.776790000">
+  <ele>92.100000</ele>
+<time>2008-08-14T15:23:59Z</time>
+  <course>0.480000</course>
+  <speed>6.833333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832665000" lon="-1.776788333">
+  <ele>92.900000</ele>
+<time>2008-08-14T15:24:00Z</time>
+  <course>0.080000</course>
+  <speed>6.611111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832723333" lon="-1.776795000">
+  <ele>94.000000</ele>
+<time>2008-08-14T15:24:01Z</time>
+  <course>355.320007</course>
+  <speed>6.611111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.832781667" lon="-1.776806667">
+  <ele>95.000000</ele>
+<time>2008-08-14T15:24:02Z</time>
+  <course>353.660004</course>
+  <speed>6.694445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.832840000" lon="-1.776823333">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:24:03Z</time>
+  <course>356.369995</course>
+  <speed>6.611111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.832903333" lon="-1.776841667">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:24:04Z</time>
+  <course>356.350006</course>
+  <speed>6.805555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.832971667" lon="-1.776855000">
+  <ele>95.600000</ele>
+<time>2008-08-14T15:24:05Z</time>
+  <course>352.559998</course>
+  <speed>7.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833038333" lon="-1.776868333">
+  <ele>94.800000</ele>
+<time>2008-08-14T15:24:06Z</time>
+  <course>354.850006</course>
+  <speed>7.277778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.833106667" lon="-1.776886667">
+  <ele>93.700000</ele>
+<time>2008-08-14T15:24:07Z</time>
+  <course>352.600006</course>
+  <speed>7.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833178333" lon="-1.776903333">
+  <ele>92.600000</ele>
+<time>2008-08-14T15:24:08Z</time>
+  <course>353.100006</course>
+  <speed>7.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833248333" lon="-1.776916667">
+  <ele>91.500000</ele>
+<time>2008-08-14T15:24:09Z</time>
+  <course>354.480011</course>
+  <speed>7.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833320000" lon="-1.776928333">
+  <ele>90.300000</ele>
+<time>2008-08-14T15:24:10Z</time>
+  <course>354.290009</course>
+  <speed>7.888889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833391667" lon="-1.776946667">
+  <ele>90.400000</ele>
+<time>2008-08-14T15:24:11Z</time>
+  <course>351.489990</course>
+  <speed>7.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.833461667" lon="-1.776965000">
+  <ele>89.900000</ele>
+<time>2008-08-14T15:24:12Z</time>
+  <course>351.440002</course>
+  <speed>7.638889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833523333" lon="-1.776983333">
+  <ele>89.700000</ele>
+<time>2008-08-14T15:24:13Z</time>
+  <course>352.970001</course>
+  <speed>7.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833580000" lon="-1.777001667">
+  <ele>90.200000</ele>
+<time>2008-08-14T15:24:14Z</time>
+  <course>350.649994</course>
+  <speed>6.166667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833631667" lon="-1.777018333">
+  <ele>90.200000</ele>
+<time>2008-08-14T15:24:15Z</time>
+  <course>350.579987</course>
+  <speed>5.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833680000" lon="-1.777036667">
+  <ele>88.700000</ele>
+<time>2008-08-14T15:24:16Z</time>
+  <course>347.329987</course>
+  <speed>5.666667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.833730000" lon="-1.777056667">
+  <ele>87.500000</ele>
+<time>2008-08-14T15:24:17Z</time>
+  <course>345.980011</course>
+  <speed>5.722222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833780000" lon="-1.777080000">
+  <ele>86.500000</ele>
+<time>2008-08-14T15:24:18Z</time>
+  <course>345.230011</course>
+  <speed>5.694445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833835000" lon="-1.777096667">
+  <ele>87.500000</ele>
+<time>2008-08-14T15:24:19Z</time>
+  <course>342.910004</course>
+  <speed>5.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833876667" lon="-1.777116667">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:24:20Z</time>
+  <course>340.440002</course>
+  <speed>4.611111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833911667" lon="-1.777136667">
+  <ele>87.900000</ele>
+<time>2008-08-14T15:24:21Z</time>
+  <course>337.579987</course>
+  <speed>3.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+  <vdop>1.900000</vdop>
+  <pdop>2.300000</pdop>
+</trkpt>
+<trkpt lat="53.833940000" lon="-1.777158333">
+  <ele>87.900000</ele>
+<time>2008-08-14T15:24:22Z</time>
+  <course>328.910004</course>
+  <speed>3.305556</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833961667" lon="-1.777181667">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:24:23Z</time>
+  <course>314.619995</course>
+  <speed>2.750000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833978333" lon="-1.777203333">
+  <ele>88.500000</ele>
+<time>2008-08-14T15:24:24Z</time>
+  <course>308.420013</course>
+  <speed>1.972222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833985000" lon="-1.777223333">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:24:25Z</time>
+  <course>298.829987</course>
+  <speed>1.611111</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833993333" lon="-1.777248333">
+  <ele>88.600000</ele>
+<time>2008-08-14T15:24:26Z</time>
+  <course>278.600006</course>
+  <speed>1.722222</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.833996667" lon="-1.777288333">
+  <ele>88.500000</ele>
+<time>2008-08-14T15:24:27Z</time>
+  <course>273.290009</course>
+  <speed>2.500000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833995000" lon="-1.777343333">
+  <ele>88.200000</ele>
+<time>2008-08-14T15:24:28Z</time>
+  <course>268.600006</course>
+  <speed>3.500000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833990000" lon="-1.777420000">
+  <ele>88.100000</ele>
+<time>2008-08-14T15:24:29Z</time>
+  <course>261.149994</course>
+  <speed>4.777778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833980000" lon="-1.777508333">
+  <ele>88.300000</ele>
+<time>2008-08-14T15:24:30Z</time>
+  <course>259.309998</course>
+  <speed>5.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833970000" lon="-1.777605000">
+  <ele>88.600000</ele>
+<time>2008-08-14T15:24:31Z</time>
+  <course>259.220001</course>
+  <speed>6.250000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.833958333" lon="-1.777711667">
+  <ele>88.900000</ele>
+<time>2008-08-14T15:24:32Z</time>
+  <course>260.720001</course>
+  <speed>6.944445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833950000" lon="-1.777825000">
+  <ele>89.100000</ele>
+<time>2008-08-14T15:24:33Z</time>
+  <course>263.200012</course>
+  <speed>7.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833943333" lon="-1.777941667">
+  <ele>89.400000</ele>
+<time>2008-08-14T15:24:34Z</time>
+  <course>265.250000</course>
+  <speed>7.527778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833938333" lon="-1.778060000">
+  <ele>89.800000</ele>
+<time>2008-08-14T15:24:35Z</time>
+  <course>264.329987</course>
+  <speed>7.638889</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833930000" lon="-1.778185000">
+  <ele>90.300000</ele>
+<time>2008-08-14T15:24:36Z</time>
+  <course>262.130005</course>
+  <speed>8.083333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.833918333" lon="-1.778318333">
+  <ele>90.700000</ele>
+<time>2008-08-14T15:24:37Z</time>
+  <course>260.339996</course>
+  <speed>8.694445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833905000" lon="-1.778451667">
+  <ele>91.400000</ele>
+<time>2008-08-14T15:24:38Z</time>
+  <course>259.329987</course>
+  <speed>8.805555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833890000" lon="-1.778575000">
+  <ele>91.000000</ele>
+<time>2008-08-14T15:24:39Z</time>
+  <course>259.000000</course>
+  <speed>8.305555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833876667" lon="-1.778691667">
+  <ele>91.500000</ele>
+<time>2008-08-14T15:24:40Z</time>
+  <course>257.829987</course>
+  <speed>7.666667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833863333" lon="-1.778796667">
+  <ele>92.000000</ele>
+<time>2008-08-14T15:24:41Z</time>
+  <course>255.500000</course>
+  <speed>7.083333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.833848333" lon="-1.778900000">
+  <ele>92.600000</ele>
+<time>2008-08-14T15:24:42Z</time>
+  <course>254.160004</course>
+  <speed>6.944445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833828333" lon="-1.779006667">
+  <ele>93.200000</ele>
+<time>2008-08-14T15:24:43Z</time>
+  <course>251.899994</course>
+  <speed>7.333333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833808333" lon="-1.779121667">
+  <ele>93.700000</ele>
+<time>2008-08-14T15:24:44Z</time>
+  <course>252.309998</course>
+  <speed>7.805555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833785000" lon="-1.779241667">
+  <ele>94.400000</ele>
+<time>2008-08-14T15:24:45Z</time>
+  <course>250.690002</course>
+  <speed>8.194445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833760000" lon="-1.779365000">
+  <ele>95.100000</ele>
+<time>2008-08-14T15:24:46Z</time>
+  <course>249.919998</course>
+  <speed>8.527778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.833733333" lon="-1.779491667">
+  <ele>95.800000</ele>
+<time>2008-08-14T15:24:47Z</time>
+  <course>250.020004</course>
+  <speed>8.722222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833705000" lon="-1.779620000">
+  <ele>96.000000</ele>
+<time>2008-08-14T15:24:48Z</time>
+  <course>250.699997</course>
+  <speed>8.888889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833680000" lon="-1.779750000">
+  <ele>96.200000</ele>
+<time>2008-08-14T15:24:49Z</time>
+  <course>252.179993</course>
+  <speed>8.972222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833656667" lon="-1.779880000">
+  <ele>96.600000</ele>
+<time>2008-08-14T15:24:50Z</time>
+  <course>252.699997</course>
+  <speed>8.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833635000" lon="-1.780003333">
+  <ele>97.000000</ele>
+<time>2008-08-14T15:24:51Z</time>
+  <course>254.160004</course>
+  <speed>8.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.833616667" lon="-1.780126667">
+  <ele>97.400000</ele>
+<time>2008-08-14T15:24:52Z</time>
+  <course>256.299988</course>
+  <speed>8.277778</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.833600000" lon="-1.780260000">
+  <ele>98.000000</ele>
+<time>2008-08-14T15:24:53Z</time>
+  <course>259.200012</course>
+  <speed>8.805555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833590000" lon="-1.780406667">
+  <ele>98.500000</ele>
+<time>2008-08-14T15:24:54Z</time>
+  <course>264.339996</course>
+  <speed>9.555555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833583333" lon="-1.780558333">
+  <ele>99.000000</ele>
+<time>2008-08-14T15:24:55Z</time>
+  <course>265.700012</course>
+  <speed>9.888889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833576667" lon="-1.780711667">
+  <ele>99.700000</ele>
+<time>2008-08-14T15:24:56Z</time>
+  <course>266.829987</course>
+  <speed>9.944445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.833571667" lon="-1.780865000">
+  <ele>100.400000</ele>
+<time>2008-08-14T15:24:57Z</time>
+  <course>266.589996</course>
+  <speed>10.055555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833566667" lon="-1.781020000">
+  <ele>101.100000</ele>
+<time>2008-08-14T15:24:58Z</time>
+  <course>266.829987</course>
+  <speed>10.083333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833560000" lon="-1.781173333">
+  <ele>101.800000</ele>
+<time>2008-08-14T15:24:59Z</time>
+  <course>267.200012</course>
+  <speed>10.055555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833553333" lon="-1.781321667">
+  <ele>102.600000</ele>
+<time>2008-08-14T15:25:00Z</time>
+  <course>266.940002</course>
+  <speed>9.944445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833551667" lon="-1.781470000">
+  <ele>103.400000</ele>
+<time>2008-08-14T15:25:01Z</time>
+  <course>270.540009</course>
+  <speed>9.666667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.833551667" lon="-1.781615000">
+  <ele>103.900000</ele>
+<time>2008-08-14T15:25:02Z</time>
+  <course>269.459991</course>
+  <speed>9.527778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833550000" lon="-1.781760000">
+  <ele>104.500000</ele>
+<time>2008-08-14T15:25:03Z</time>
+  <course>269.109985</course>
+  <speed>9.500000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833546667" lon="-1.781903333">
+  <ele>104.900000</ele>
+<time>2008-08-14T15:25:04Z</time>
+  <course>266.399994</course>
+  <speed>9.277778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833543333" lon="-1.782043333">
+  <ele>105.200000</ele>
+<time>2008-08-14T15:25:05Z</time>
+  <course>267.380005</course>
+  <speed>9.055555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833541667" lon="-1.782176667">
+  <ele>105.600000</ele>
+<time>2008-08-14T15:25:06Z</time>
+  <course>267.190002</course>
+  <speed>8.638889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.833538333" lon="-1.782298333">
+  <ele>106.000000</ele>
+<time>2008-08-14T15:25:07Z</time>
+  <course>267.500000</course>
+  <speed>8.055555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833535000" lon="-1.782411667">
+  <ele>106.500000</ele>
+<time>2008-08-14T15:25:08Z</time>
+  <course>269.320007</course>
+  <speed>7.583333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833535000" lon="-1.782525000">
+  <ele>106.700000</ele>
+<time>2008-08-14T15:25:09Z</time>
+  <course>270.809998</course>
+  <speed>7.305555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833536667" lon="-1.782631667">
+  <ele>107.100000</ele>
+<time>2008-08-14T15:25:10Z</time>
+  <course>271.029999</course>
+  <speed>7.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833536667" lon="-1.782726667">
+  <ele>107.500000</ele>
+<time>2008-08-14T15:25:11Z</time>
+  <course>271.089996</course>
+  <speed>6.416667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+  <vdop>2.200000</vdop>
+  <pdop>2.500000</pdop>
+</trkpt>
+<trkpt lat="53.833533333" lon="-1.782805000">
+  <ele>107.900000</ele>
+<time>2008-08-14T15:25:12Z</time>
+  <course>264.279999</course>
+  <speed>5.472222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.300000</hdop>
+</trkpt>
+<trkpt lat="53.833518333" lon="-1.782863333">
+  <ele>108.300000</ele>
+<time>2008-08-14T15:25:13Z</time>
+  <course>236.820007</course>
+  <speed>4.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.200000</hdop>
+</trkpt>
+<trkpt lat="53.833490000" lon="-1.782896667">
+  <ele>108.600000</ele>
+<time>2008-08-14T15:25:14Z</time>
+  <course>201.869995</course>
+  <speed>3.944444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833453333" lon="-1.782908333">
+  <ele>109.000000</ele>
+<time>2008-08-14T15:25:15Z</time>
+  <course>185.350006</course>
+  <speed>4.027778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833406667" lon="-1.782911667">
+  <ele>109.500000</ele>
+<time>2008-08-14T15:25:16Z</time>
+  <course>179.699997</course>
+  <speed>4.944445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.833348333" lon="-1.782911667">
+  <ele>109.400000</ele>
+<time>2008-08-14T15:25:17Z</time>
+  <course>179.759995</course>
+  <speed>6.305555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833278333" lon="-1.782913333">
+  <ele>109.700000</ele>
+<time>2008-08-14T15:25:18Z</time>
+  <course>181.630005</course>
+  <speed>7.583333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833201667" lon="-1.782916667">
+  <ele>109.900000</ele>
+<time>2008-08-14T15:25:19Z</time>
+  <course>180.309998</course>
+  <speed>8.444445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833121667" lon="-1.782920000">
+  <ele>110.000000</ele>
+<time>2008-08-14T15:25:20Z</time>
+  <course>181.910004</course>
+  <speed>8.694445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.833040000" lon="-1.782923333">
+  <ele>109.600000</ele>
+<time>2008-08-14T15:25:21Z</time>
+  <course>181.029999</course>
+  <speed>8.888889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.832961667" lon="-1.782930000">
+  <ele>109.800000</ele>
+<time>2008-08-14T15:25:22Z</time>
+  <course>180.789993</course>
+  <speed>8.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832883333" lon="-1.782935000">
+  <ele>109.800000</ele>
+<time>2008-08-14T15:25:23Z</time>
+  <course>181.050003</course>
+  <speed>8.694445</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832805000" lon="-1.782938333">
+  <ele>109.700000</ele>
+<time>2008-08-14T15:25:24Z</time>
+  <course>181.669998</course>
+  <speed>8.583333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832730000" lon="-1.782945000">
+  <ele>109.600000</ele>
+<time>2008-08-14T15:25:25Z</time>
+  <course>183.550003</course>
+  <speed>8.361111</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832655000" lon="-1.782948333">
+  <ele>109.900000</ele>
+<time>2008-08-14T15:25:26Z</time>
+  <course>180.649994</course>
+  <speed>8.055555</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.832583333" lon="-1.782950000">
+  <ele>110.700000</ele>
+<time>2008-08-14T15:25:27Z</time>
+  <course>179.940002</course>
+  <speed>7.722222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832516667" lon="-1.782945000">
+  <ele>110.700000</ele>
+<time>2008-08-14T15:25:28Z</time>
+  <course>179.300003</course>
+  <speed>7.416667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832453333" lon="-1.782941667">
+  <ele>110.800000</ele>
+<time>2008-08-14T15:25:29Z</time>
+  <course>178.820007</course>
+  <speed>6.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832406667" lon="-1.782918333">
+  <ele>110.500000</ele>
+<time>2008-08-14T15:25:30Z</time>
+  <course>157.380005</course>
+  <speed>5.444445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832373333" lon="-1.782883333">
+  <ele>110.900000</ele>
+<time>2008-08-14T15:25:31Z</time>
+  <course>142.960007</course>
+  <speed>4.250000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.832353333" lon="-1.782828333">
+  <ele>110.800000</ele>
+<time>2008-08-14T15:25:32Z</time>
+  <course>115.300003</course>
+  <speed>4.000000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832345000" lon="-1.782756667">
+  <ele>110.900000</ele>
+<time>2008-08-14T15:25:33Z</time>
+  <course>94.059998</course>
+  <speed>4.444445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832351667" lon="-1.782663333">
+  <ele>111.700000</ele>
+<time>2008-08-14T15:25:34Z</time>
+  <course>86.750000</course>
+  <speed>5.750000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832360000" lon="-1.782558333">
+  <ele>111.400000</ele>
+<time>2008-08-14T15:25:35Z</time>
+  <course>81.669998</course>
+  <speed>6.916667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832366667" lon="-1.782440000">
+  <ele>111.500000</ele>
+<time>2008-08-14T15:25:36Z</time>
+  <course>88.800003</course>
+  <speed>7.611111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.832368333" lon="-1.782311667">
+  <ele>111.800000</ele>
+<time>2008-08-14T15:25:37Z</time>
+  <course>89.669998</course>
+  <speed>8.138889</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832380000" lon="-1.782196667">
+  <ele>110.800000</ele>
+<time>2008-08-14T15:25:38Z</time>
+  <course>88.699997</course>
+  <speed>8.361111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832383333" lon="-1.782061667">
+  <ele>110.800000</ele>
+<time>2008-08-14T15:25:39Z</time>
+  <course>88.459999</course>
+  <speed>8.583333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832386667" lon="-1.781923333">
+  <ele>111.000000</ele>
+<time>2008-08-14T15:25:40Z</time>
+  <course>88.559998</course>
+  <speed>8.777778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832388333" lon="-1.781783333">
+  <ele>111.200000</ele>
+<time>2008-08-14T15:25:41Z</time>
+  <course>89.980003</course>
+  <speed>8.833333</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.832390000" lon="-1.781648333">
+  <ele>111.400000</ele>
+<time>2008-08-14T15:25:42Z</time>
+  <course>90.610001</course>
+  <speed>8.861111</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832393333" lon="-1.781518333">
+  <ele>111.500000</ele>
+<time>2008-08-14T15:25:43Z</time>
+  <course>88.040001</course>
+  <speed>8.555555</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832390000" lon="-1.781393333">
+  <ele>112.400000</ele>
+<time>2008-08-14T15:25:44Z</time>
+  <course>90.830002</course>
+  <speed>7.750000</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832381667" lon="-1.781286667">
+  <ele>112.400000</ele>
+<time>2008-08-14T15:25:45Z</time>
+  <course>100.010002</course>
+  <speed>6.777778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832361667" lon="-1.781196667">
+  <ele>112.600000</ele>
+<time>2008-08-14T15:25:46Z</time>
+  <course>117.199997</course>
+  <speed>6.027778</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+  <vdop>1.800000</vdop>
+  <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="53.832331667" lon="-1.781126667">
+  <ele>111.500000</ele>
+<time>2008-08-14T15:25:47Z</time>
+  <course>133.210007</course>
+  <speed>5.666667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832291667" lon="-1.781075000">
+  <ele>110.700000</ele>
+<time>2008-08-14T15:25:48Z</time>
+  <course>147.850006</course>
+  <speed>5.444445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832248333" lon="-1.781041667">
+  <ele>110.000000</ele>
+<time>2008-08-14T15:25:49Z</time>
+  <course>161.139999</course>
+  <speed>5.194445</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832205000" lon="-1.781025000">
+  <ele>109.300000</ele>
+<time>2008-08-14T15:25:50Z</time>
+  <course>170.169998</course>
+  <speed>4.972222</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.832165000" lon="-1.781015000">
+  <ele>108.700000</ele>
+<time>2008-08-14T15:25:51Z</time>
+  <course>171.139999</course>
+  <speed>4.500000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.832128333" lon="-1.781011667">
+  <ele>108.700000</ele>
+<time>2008-08-14T15:25:52Z</time>
+  <course>184.169998</course>
+  <speed>3.972222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832093333" lon="-1.781013333">
+  <ele>108.300000</ele>
+<time>2008-08-14T15:25:53Z</time>
+  <course>179.470001</course>
+  <speed>3.694444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832060000" lon="-1.781011667">
+  <ele>108.200000</ele>
+<time>2008-08-14T15:25:54Z</time>
+  <course>172.820007</course>
+  <speed>3.500000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832030000" lon="-1.780993333">
+  <ele>108.100000</ele>
+<time>2008-08-14T15:25:55Z</time>
+  <course>143.440002</course>
+  <speed>3.305556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832011667" lon="-1.780955000">
+  <ele>108.100000</ele>
+<time>2008-08-14T15:25:56Z</time>
+  <course>114.389999</course>
+  <speed>3.055556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.832001667" lon="-1.780910000">
+  <ele>108.200000</ele>
+<time>2008-08-14T15:25:57Z</time>
+  <course>94.089996</course>
+  <speed>2.833333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832000000" lon="-1.780870000">
+  <ele>108.200000</ele>
+<time>2008-08-14T15:25:58Z</time>
+  <course>88.889999</course>
+  <speed>2.555556</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832000000" lon="-1.780833333">
+  <ele>107.500000</ele>
+<time>2008-08-14T15:25:59Z</time>
+  <course>82.250000</course>
+  <speed>2.444444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832003333" lon="-1.780796667">
+  <ele>107.000000</ele>
+<time>2008-08-14T15:26:00Z</time>
+  <course>84.269997</course>
+  <speed>2.444444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832005000" lon="-1.780758333">
+  <ele>106.500000</ele>
+<time>2008-08-14T15:26:01Z</time>
+  <course>85.680000</course>
+  <speed>2.583333</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.832006667" lon="-1.780718333">
+  <ele>106.000000</ele>
+<time>2008-08-14T15:26:02Z</time>
+  <course>86.599998</course>
+  <speed>2.694444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832006667" lon="-1.780676667">
+  <ele>105.500000</ele>
+<time>2008-08-14T15:26:03Z</time>
+  <course>88.389999</course>
+  <speed>2.750000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832006667" lon="-1.780640000">
+  <ele>105.100000</ele>
+<time>2008-08-14T15:26:04Z</time>
+  <course>98.110001</course>
+  <speed>2.472222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.832000000" lon="-1.780616667">
+  <ele>104.900000</ele>
+<time>2008-08-14T15:26:05Z</time>
+  <course>123.930000</course>
+  <speed>1.916667</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831990000" lon="-1.780603333">
+  <ele>104.900000</ele>
+<time>2008-08-14T15:26:06Z</time>
+  <course>154.869995</course>
+  <speed>1.444444</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.831978333" lon="-1.780598333">
+  <ele>104.800000</ele>
+<time>2008-08-14T15:26:07Z</time>
+  <course>166.429993</course>
+  <speed>1.527778</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831960000" lon="-1.780593333">
+  <ele>104.800000</ele>
+<time>2008-08-14T15:26:08Z</time>
+  <course>166.360001</course>
+  <speed>1.972222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831943333" lon="-1.780581667">
+  <ele>104.800000</ele>
+<time>2008-08-14T15:26:09Z</time>
+  <course>143.190002</course>
+  <speed>1.972222</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831935000" lon="-1.780565000">
+  <ele>104.800000</ele>
+<time>2008-08-14T15:26:10Z</time>
+  <course>118.139999</course>
+  <speed>1.638889</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831930000" lon="-1.780550000">
+  <ele>104.500000</ele>
+<time>2008-08-14T15:26:11Z</time>
+  <course>118.139999</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+  <vdop>1.600000</vdop>
+  <pdop>1.900000</pdop>
+</trkpt>
+<trkpt lat="53.831928333" lon="-1.780536667">
+  <ele>104.400000</ele>
+<time>2008-08-14T15:26:12Z</time>
+  <course>118.139999</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831928333" lon="-1.780518333">
+  <ele>104.200000</ele>
+<time>2008-08-14T15:26:13Z</time>
+  <course>90.589996</course>
+  <speed>1.166667</speed>
+  <fix>3d</fix>
+  <sat>7</sat>
+  <hdop>1.100000</hdop>
+</trkpt>
+<trkpt lat="53.831928333" lon="-1.780498333">
+  <ele>104.000000</ele>
+<time>2008-08-14T15:26:14Z</time>
+  <course>82.750000</course>
+  <speed>1.250000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831926667" lon="-1.780485000">
+  <ele>103.900000</ele>
+<time>2008-08-14T15:26:15Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>8</sat>
+  <hdop>1.000000</hdop>
+</trkpt>
+<trkpt lat="53.831926667" lon="-1.780480000">
+  <ele>103.800000</ele>
+<time>2008-08-14T15:26:16Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831925000" lon="-1.780480000">
+  <ele>103.900000</ele>
+<time>2008-08-14T15:26:17Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831925000" lon="-1.780481667">
+  <ele>103.900000</ele>
+<time>2008-08-14T15:26:18Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831923333" lon="-1.780481667">
+  <ele>103.900000</ele>
+<time>2008-08-14T15:26:19Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831923333" lon="-1.780483333">
+  <ele>104.000000</ele>
+<time>2008-08-14T15:26:20Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831923333" lon="-1.780483333">
+  <ele>104.100000</ele>
+<time>2008-08-14T15:26:21Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831921667" lon="-1.780485000">
+  <ele>104.200000</ele>
+<time>2008-08-14T15:26:22Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831921667" lon="-1.780485000">
+  <ele>104.300000</ele>
+<time>2008-08-14T15:26:23Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831921667" lon="-1.780486667">
+  <ele>104.300000</ele>
+<time>2008-08-14T15:26:24Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831921667" lon="-1.780488333">
+  <ele>104.300000</ele>
+<time>2008-08-14T15:26:25Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831920000" lon="-1.780488333">
+  <ele>104.000000</ele>
+<time>2008-08-14T15:26:26Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831920000" lon="-1.780490000">
+  <ele>103.800000</ele>
+<time>2008-08-14T15:26:27Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831918333" lon="-1.780490000">
+  <ele>103.900000</ele>
+<time>2008-08-14T15:26:28Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831918333" lon="-1.780491667">
+  <ele>103.800000</ele>
+<time>2008-08-14T15:26:29Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831916667" lon="-1.780493333">
+  <ele>103.700000</ele>
+<time>2008-08-14T15:26:30Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831916667" lon="-1.780493333">
+  <ele>103.500000</ele>
+<time>2008-08-14T15:26:31Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+  <vdop>1.300000</vdop>
+  <pdop>1.600000</pdop>
+</trkpt>
+<trkpt lat="53.831915000" lon="-1.780495000">
+  <ele>103.600000</ele>
+<time>2008-08-14T15:26:32Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+<trkpt lat="53.831915000" lon="-1.780496667">
+  <ele>103.700000</ele>
+<time>2008-08-14T15:26:33Z</time>
+  <course>82.750000</course>
+  <speed>0.000000</speed>
+  <fix>3d</fix>
+  <sat>9</sat>
+  <hdop>0.900000</hdop>
+</trkpt>
+</trkseg>
+</trk>
+</gpx>
diff --git a/test/data/regress/1433/2008-08-14-16-04-58.nmea b/test/data/regress/1433/2008-08-14-16-04-58.nmea
new file mode 100644
index 0000000..187f79e
--- /dev/null
+++ b/test/data/regress/1433/2008-08-14-16-04-58.nmea
@@ -0,0 +1,4715 @@
+$GPGGA,150553.000,5347.5536,N,00143.6468,W,1,08,1.0,144.4,M,47.9,M,,0000*45
+$GPRMC,150553.000,A,5347.5536,N,00143.6468,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150554.000,5347.5536,N,00143.6468,W,1,08,1.0,145.0,M,47.9,M,,0000*47
+$GPRMC,150554.000,A,5347.5536,N,00143.6468,W,0.00,241.59,140808,,,A*78
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150555.000,5347.5536,N,00143.6467,W,1,08,1.0,145.8,M,47.9,M,,0000*41
+$GPRMC,150555.000,A,5347.5536,N,00143.6467,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150556.000,5347.5535,N,00143.6465,W,1,08,1.0,146.6,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,35,12,55,078,31,14,43,245,37,29,39,189,43*7A
+$GPGSV,3,2,10,02,25,087,41,31,24,302,20,09,20,135,28,04,19,047,33*78
+$GPGSV,3,3,10,32,09,317,12,20,05,338,24*7F
+$GPRMC,150556.000,A,5347.5535,N,00143.6465,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150557.000,5347.5534,N,00143.6463,W,1,08,1.0,147.4,M,47.9,M,,0000*4B
+$GPRMC,150557.000,A,5347.5534,N,00143.6463,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150558.000,5347.5534,N,00143.6461,W,1,08,1.0,148.1,M,47.9,M,,0000*4C
+$GPRMC,150558.000,A,5347.5534,N,00143.6461,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150559.000,5347.5534,N,00143.6462,W,1,08,1.0,148.4,M,47.9,M,,0000*4B
+$GPRMC,150559.000,A,5347.5534,N,00143.6462,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150600.000,5347.5533,N,00143.6461,W,1,08,1.0,148.7,M,47.9,M,,0000*43
+$GPRMC,150600.000,A,5347.5533,N,00143.6461,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150601.000,5347.5533,N,00143.6460,W,1,08,1.0,149.0,M,47.9,M,,0000*45
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,34,12,55,078,32,14,43,245,28,29,39,189,43*76
+$GPGSV,3,2,10,02,25,087,41,31,24,302,25,09,20,135,28,04,19,047,33*7D
+$GPGSV,3,3,10,32,09,317,,20,05,338,25*7D
+$GPRMC,150601.000,A,5347.5533,N,00143.6460,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150602.000,5347.5533,N,00143.6461,W,1,08,1.0,149.1,M,47.9,M,,0000*46
+$GPRMC,150602.000,A,5347.5533,N,00143.6461,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150603.000,5347.5533,N,00143.6461,W,1,08,1.0,149.2,M,47.9,M,,0000*44
+$GPRMC,150603.000,A,5347.5533,N,00143.6461,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150604.000,5347.5533,N,00143.6461,W,1,08,1.0,149.4,M,47.9,M,,0000*45
+$GPRMC,150604.000,A,5347.5533,N,00143.6461,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150605.000,5347.5533,N,00143.6461,W,1,08,1.0,149.4,M,47.9,M,,0000*44
+$GPRMC,150605.000,A,5347.5533,N,00143.6461,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150606.000,5347.5533,N,00143.6462,W,1,08,1.0,149.3,M,47.9,M,,0000*43
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,34,12,55,078,33,14,43,245,34,29,39,189,43*7A
+$GPGSV,3,2,10,02,25,087,41,31,24,302,26,09,20,135,29,04,19,047,32*7E
+$GPGSV,3,3,10,32,09,317,,20,05,338,22*7A
+$GPRMC,150606.000,A,5347.5533,N,00143.6462,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150607.000,5347.5532,N,00143.6461,W,1,08,1.0,149.8,M,47.9,M,,0000*4B
+$GPRMC,150607.000,A,5347.5532,N,00143.6461,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150608.000,5347.5532,N,00143.6460,W,1,08,1.0,150.3,M,47.9,M,,0000*46
+$GPRMC,150608.000,A,5347.5532,N,00143.6460,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150609.000,5347.5532,N,00143.6459,W,1,08,1.0,150.8,M,47.9,M,,0000*46
+$GPRMC,150609.000,A,5347.5532,N,00143.6459,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150610.000,5347.5532,N,00143.6458,W,1,08,1.0,151.3,M,47.9,M,,0000*45
+$GPRMC,150610.000,A,5347.5532,N,00143.6458,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150611.000,5347.5532,N,00143.6456,W,1,08,1.0,151.7,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,34,12,54,078,32,14,43,244,33,29,39,189,43*7C
+$GPGSV,3,2,10,02,25,087,41,31,24,302,25,09,20,135,29,04,19,047,32*7D
+$GPGSV,3,3,10,32,09,317,,20,05,338,19*72
+$GPRMC,150611.000,A,5347.5532,N,00143.6456,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150612.000,5347.5532,N,00143.6455,W,1,08,1.0,152.1,M,47.9,M,,0000*4B
+$GPRMC,150612.000,A,5347.5532,N,00143.6455,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150613.000,5347.5532,N,00143.6454,W,1,08,1.0,152.6,M,47.9,M,,0000*4C
+$GPRMC,150613.000,A,5347.5532,N,00143.6454,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150614.000,5347.5532,N,00143.6454,W,1,08,1.0,153.0,M,47.9,M,,0000*4C
+$GPRMC,150614.000,A,5347.5532,N,00143.6454,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150615.000,5347.5532,N,00143.6453,W,1,08,1.0,153.4,M,47.9,M,,0000*4E
+$GPRMC,150615.000,A,5347.5532,N,00143.6453,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150616.000,5347.5532,N,00143.6452,W,1,08,1.0,153.8,M,47.9,M,,0000*40
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,34,12,54,078,31,14,43,244,33,29,40,189,43*71
+$GPGSV,3,2,10,02,25,087,41,31,24,302,25,09,20,135,29,04,19,047,32*7D
+$GPGSV,3,3,10,32,09,317,,20,05,338,23*7B
+$GPRMC,150616.000,A,5347.5532,N,00143.6452,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150617.000,5347.5532,N,00143.6451,W,1,08,1.0,154.1,M,47.9,M,,0000*4C
+$GPRMC,150617.000,A,5347.5532,N,00143.6451,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150618.000,5347.5532,N,00143.6453,W,1,08,1.0,153.7,M,47.9,M,,0000*40
+$GPRMC,150618.000,A,5347.5532,N,00143.6453,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150619.000,5347.5533,N,00143.6454,W,1,08,1.0,153.3,M,47.9,M,,0000*43
+$GPRMC,150619.000,A,5347.5533,N,00143.6454,W,0.00,241.59,140808,,,A*78
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150620.000,5347.5533,N,00143.6455,W,1,08,1.0,152.9,M,47.9,M,,0000*43
+$GPRMC,150620.000,A,5347.5533,N,00143.6455,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150621.000,5347.5533,N,00143.6456,W,1,08,1.0,152.6,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,33,12,54,078,31,14,43,244,34,29,40,189,43*71
+$GPGSV,3,2,10,02,25,087,40,31,24,302,25,09,20,135,29,04,19,047,31*7F
+$GPGSV,3,3,10,32,09,317,,20,05,338,15*7E
+$GPRMC,150621.000,A,5347.5533,N,00143.6456,W,0.00,241.59,140808,,,A*71
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150622.000,5347.5533,N,00143.6458,W,1,08,1.0,152.2,M,47.9,M,,0000*47
+$GPRMC,150622.000,A,5347.5533,N,00143.6458,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150623.000,5347.5533,N,00143.6459,W,1,08,1.0,151.9,M,47.9,M,,0000*4F
+$GPRMC,150623.000,A,5347.5533,N,00143.6459,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150624.000,5347.5533,N,00143.6460,W,1,08,1.0,151.6,M,47.9,M,,0000*4D
+$GPRMC,150624.000,A,5347.5533,N,00143.6460,W,0.00,241.59,140808,,,A*71
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150625.000,5347.5533,N,00143.6460,W,1,08,1.0,151.4,M,47.9,M,,0000*4E
+$GPRMC,150625.000,A,5347.5533,N,00143.6460,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150626.000,5347.5533,N,00143.6461,W,1,08,1.0,151.2,M,47.9,M,,0000*4A
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,33,12,54,078,32,14,43,244,34,29,40,189,43*72
+$GPGSV,3,2,10,02,25,087,40,31,24,302,24,09,20,135,28,04,19,047,25*7A
+$GPGSV,3,3,10,32,09,317,,20,05,338,16*7D
+$GPRMC,150626.000,A,5347.5533,N,00143.6461,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150627.000,5347.5533,N,00143.6462,W,1,08,1.0,151.0,M,47.9,M,,0000*4A
+$GPRMC,150627.000,A,5347.5533,N,00143.6462,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150628.000,5347.5533,N,00143.6462,W,1,08,1.0,150.8,M,47.9,M,,0000*4C
+$GPRMC,150628.000,A,5347.5533,N,00143.6462,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150629.000,5347.5533,N,00143.6463,W,1,08,1.0,150.7,M,47.9,M,,0000*43
+$GPRMC,150629.000,A,5347.5533,N,00143.6463,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150630.000,5347.5533,N,00143.6464,W,1,08,1.0,150.5,M,47.9,M,,0000*4E
+$GPRMC,150630.000,A,5347.5533,N,00143.6464,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150631.000,5347.5533,N,00143.6464,W,1,08,1.0,150.4,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,33,12,54,078,32,14,43,244,35,29,40,189,42*72
+$GPGSV,3,2,10,02,25,087,40,31,24,302,25,09,20,135,28,04,19,047,24*7A
+$GPGSV,3,3,10,32,09,317,20,20,05,338,09*71
+$GPRMC,150631.000,A,5347.5533,N,00143.6464,W,0.00,241.59,140808,,,A*71
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150632.000,5347.5533,N,00143.6465,W,1,08,1.0,150.2,M,47.9,M,,0000*4A
+$GPRMC,150632.000,A,5347.5533,N,00143.6465,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150633.000,5347.5534,N,00143.6466,W,1,08,1.0,150.0,M,47.9,M,,0000*4D
+$GPRMC,150633.000,A,5347.5534,N,00143.6466,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150634.000,5347.5534,N,00143.6467,W,1,08,1.0,149.9,M,47.9,M,,0000*4A
+$GPRMC,150634.000,A,5347.5534,N,00143.6467,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150635.000,5347.5534,N,00143.6467,W,1,08,1.0,149.8,M,47.9,M,,0000*4A
+$GPRMC,150635.000,A,5347.5534,N,00143.6467,W,0.00,241.59,140808,,,A*71
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150636.000,5347.5534,N,00143.6467,W,1,08,1.0,149.8,M,47.9,M,,0000*49
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,32,12,54,078,32,14,43,244,35,29,40,189,42*73
+$GPGSV,3,2,10,02,25,087,39,31,24,302,25,09,20,135,28,04,19,047,20*70
+$GPGSV,3,3,10,32,09,317,,20,05,338,16*7D
+$GPRMC,150636.000,A,5347.5534,N,00143.6467,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150637.000,5347.5534,N,00143.6467,W,1,08,1.0,149.8,M,47.9,M,,0000*48
+$GPRMC,150637.000,A,5347.5534,N,00143.6467,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150638.000,5347.5533,N,00143.6467,W,1,08,1.0,149.9,M,47.9,M,,0000*41
+$GPRMC,150638.000,A,5347.5533,N,00143.6467,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150639.000,5347.5533,N,00143.6468,W,1,08,1.0,149.9,M,47.9,M,,0000*4F
+$GPRMC,150639.000,A,5347.5533,N,00143.6468,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150640.000,5347.5533,N,00143.6468,W,1,08,1.0,149.9,M,47.9,M,,0000*41
+$GPRMC,150640.000,A,5347.5533,N,00143.6468,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150641.000,5347.5533,N,00143.6468,W,1,08,1.0,150.0,M,47.9,M,,0000*41
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,32,12,54,078,32,14,43,244,35,29,40,189,43*72
+$GPGSV,3,2,10,02,25,087,39,31,24,302,25,09,20,135,28,04,19,047,21*71
+$GPGSV,3,3,10,32,09,317,,20,05,338,21*79
+$GPRMC,150641.000,A,5347.5533,N,00143.6468,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150642.000,5347.5533,N,00143.6468,W,1,08,1.0,150.0,M,47.9,M,,0000*42
+$GPRMC,150642.000,A,5347.5533,N,00143.6468,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150643.000,5347.5533,N,00143.6467,W,1,08,1.0,150.1,M,47.9,M,,0000*4D
+$GPRMC,150643.000,A,5347.5533,N,00143.6467,W,0.00,241.59,140808,,,A*77
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150644.000,5347.5533,N,00143.6467,W,1,08,1.0,150.2,M,47.9,M,,0000*49
+$GPRMC,150644.000,A,5347.5533,N,00143.6467,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150645.000,5347.5532,N,00143.6467,W,1,08,1.0,150.2,M,47.9,M,,0000*49
+$GPRMC,150645.000,A,5347.5532,N,00143.6467,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150646.000,5347.5532,N,00143.6467,W,1,08,1.0,150.3,M,47.9,M,,0000*4B
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,32,12,54,078,32,14,43,244,36,29,40,189,43*71
+$GPGSV,3,2,10,02,25,087,38,31,24,302,24,09,20,135,28,04,19,047,20*70
+$GPGSV,3,3,10,32,09,317,,20,05,338,22*7A
+$GPRMC,150646.000,A,5347.5532,N,00143.6467,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150647.000,5347.5532,N,00143.6466,W,1,08,1.0,150.4,M,47.9,M,,0000*4C
+$GPRMC,150647.000,A,5347.5532,N,00143.6466,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150648.000,5347.5532,N,00143.6467,W,1,08,1.0,150.3,M,47.9,M,,0000*45
+$GPRMC,150648.000,A,5347.5532,N,00143.6467,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150649.000,5347.5532,N,00143.6467,W,1,08,1.0,150.3,M,47.9,M,,0000*44
+$GPRMC,150649.000,A,5347.5532,N,00143.6467,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150650.000,5347.5532,N,00143.6467,W,1,08,1.0,150.3,M,47.9,M,,0000*4C
+$GPRMC,150650.000,A,5347.5532,N,00143.6467,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150651.000,5347.5532,N,00143.6467,W,1,08,1.0,150.4,M,47.9,M,,0000*4A
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,33,12,54,078,32,14,43,244,36,29,40,189,43*70
+$GPGSV,3,2,10,02,25,087,38,31,24,302,24,09,20,135,28,04,19,047,20*70
+$GPGSV,3,3,10,32,09,317,17,20,05,338,18*75
+$GPRMC,150651.000,A,5347.5532,N,00143.6467,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150652.000,5347.5531,N,00143.6466,W,1,08,1.0,150.6,M,47.9,M,,0000*49
+$GPRMC,150652.000,A,5347.5531,N,00143.6466,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150653.000,5347.5531,N,00143.6466,W,1,08,1.0,150.7,M,47.9,M,,0000*49
+$GPRMC,150653.000,A,5347.5531,N,00143.6466,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150654.000,5347.5530,N,00143.6465,W,1,08,1.0,150.9,M,47.9,M,,0000*42
+$GPRMC,150654.000,A,5347.5530,N,00143.6465,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150655.000,5347.5530,N,00143.6465,W,1,08,1.0,150.8,M,47.9,M,,0000*42
+$GPRMC,150655.000,A,5347.5530,N,00143.6465,W,0.00,241.59,140808,,,A*71
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150656.000,5347.5530,N,00143.6465,W,1,08,1.0,151.0,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,34,12,54,078,28,14,43,244,37,29,40,189,43*7D
+$GPGSV,3,2,10,02,25,087,38,31,24,302,24,09,20,135,27,04,19,047,21*7E
+$GPGSV,3,3,10,32,09,317,17,20,05,338,15*78
+$GPRMC,150656.000,A,5347.5530,N,00143.6465,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150657.000,5347.5529,N,00143.6464,W,1,08,1.0,151.1,M,47.9,M,,0000*41
+$GPRMC,150657.000,A,5347.5529,N,00143.6464,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150658.000,5347.5529,N,00143.6464,W,1,08,1.0,151.3,M,47.9,M,,0000*4C
+$GPRMC,150658.000,A,5347.5529,N,00143.6464,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150659.000,5347.5528,N,00143.6463,W,1,08,1.0,151.5,M,47.9,M,,0000*4D
+$GPRMC,150659.000,A,5347.5528,N,00143.6463,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150700.000,5347.5527,N,00143.6463,W,1,08,1.0,151.7,M,47.9,M,,0000*4D
+$GPRMC,150700.000,A,5347.5527,N,00143.6463,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150701.000,5347.5527,N,00143.6462,W,1,08,1.0,151.8,M,47.9,M,,0000*42
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,34,12,54,078,29,14,43,244,37,29,40,189,42*7D
+$GPGSV,3,2,10,02,25,087,38,31,24,302,24,09,20,135,28,04,19,047,21*71
+$GPGSV,3,3,10,32,09,317,16,20,05,338,12*7E
+$GPRMC,150701.000,A,5347.5527,N,00143.6462,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150702.000,5347.5527,N,00143.6461,W,1,08,1.0,151.9,M,47.9,M,,0000*43
+$GPRMC,150702.000,A,5347.5527,N,00143.6461,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150703.000,5347.5526,N,00143.6461,W,1,08,1.0,152.0,M,47.9,M,,0000*49
+$GPRMC,150703.000,A,5347.5526,N,00143.6461,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150704.000,5347.5526,N,00143.6460,W,1,08,1.0,152.0,M,47.9,M,,0000*4F
+$GPRMC,150704.000,A,5347.5526,N,00143.6460,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150705.000,5347.5525,N,00143.6459,W,1,08,1.0,152.2,M,47.9,M,,0000*45
+$GPRMC,150705.000,A,5347.5525,N,00143.6459,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150706.000,5347.5525,N,00143.6459,W,1,08,1.0,152.3,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,35,12,54,078,28,14,43,244,37,29,40,189,41*7E
+$GPGSV,3,2,10,02,25,087,38,31,24,302,23,09,20,135,28,04,19,047,23*74
+$GPGSV,3,3,10,32,09,317,,20,05,338,20*78
+$GPRMC,150706.000,A,5347.5525,N,00143.6459,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150707.000,5347.5526,N,00143.6458,W,1,08,1.0,152.8,M,47.9,M,,0000*4F
+$GPRMC,150707.000,A,5347.5526,N,00143.6458,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150708.000,5347.5526,N,00143.6457,W,1,08,1.0,153.3,M,47.9,M,,0000*45
+$GPRMC,150708.000,A,5347.5526,N,00143.6457,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150709.000,5347.5526,N,00143.6456,W,1,08,1.0,154.0,M,47.9,M,,0000*41
+$GPRMC,150709.000,A,5347.5526,N,00143.6456,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150710.000,5347.5526,N,00143.6455,W,1,07,1.1,154.5,M,47.9,M,,0000*41
+$GPRMC,150710.000,A,5347.5526,N,00143.6455,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150711.000,5347.5527,N,00143.6454,W,1,07,1.1,154.9,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,09,30,04,02,14,31,,,,,,2.4,1.1,2.1*37
+$GPGSV,3,1,10,30,78,263,36,12,54,078,20,14,43,244,37,29,40,189,40*74
+$GPGSV,3,2,10,02,25,087,38,31,24,302,23,09,20,135,28,04,19,047,25*72
+$GPGSV,3,3,10,32,09,317,,20,05,338,07*7D
+$GPRMC,150711.000,A,5347.5527,N,00143.6454,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150712.000,5347.5527,N,00143.6454,W,1,07,1.1,155.3,M,47.9,M,,0000*44
+$GPRMC,150712.000,A,5347.5527,N,00143.6454,W,0.00,241.59,140808,,,A*77
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150713.000,5347.5527,N,00143.6452,W,1,07,1.1,155.9,M,47.9,M,,0000*49
+$GPRMC,150713.000,A,5347.5527,N,00143.6452,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150714.000,5347.5527,N,00143.6450,W,1,07,1.1,156.5,M,47.9,M,,0000*43
+$GPRMC,150714.000,A,5347.5527,N,00143.6450,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150715.000,5347.5527,N,00143.6449,W,1,07,1.1,156.9,M,47.9,M,,0000*46
+$GPRMC,150715.000,A,5347.5527,N,00143.6449,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150716.000,5347.5526,N,00143.6447,W,1,07,1.1,157.5,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,30,04,02,14,31,,,,,,2.4,1.1,2.1*37
+$GPGSV,3,1,10,30,78,263,37,12,54,078,21,14,43,244,37,29,40,189,40*74
+$GPGSV,3,2,10,02,25,087,39,31,24,302,22,09,20,135,28,04,19,047,26*71
+$GPGSV,3,3,10,32,09,317,,20,05,338,22*7A
+$GPRMC,150716.000,A,5347.5526,N,00143.6447,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150717.000,5347.5526,N,00143.6446,W,1,07,1.1,157.9,M,47.9,M,,0000*4B
+$GPRMC,150717.000,A,5347.5526,N,00143.6446,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150718.000,5347.5525,N,00143.6450,W,1,08,1.0,156.6,M,47.9,M,,0000*40
+$GPRMC,150718.000,A,5347.5525,N,00143.6450,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150719.000,5347.5524,N,00143.6450,W,1,08,1.0,156.7,M,47.9,M,,0000*41
+$GPRMC,150719.000,A,5347.5524,N,00143.6450,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150720.000,5347.5524,N,00143.6449,W,1,08,1.0,157.1,M,47.9,M,,0000*44
+$GPRMC,150720.000,A,5347.5524,N,00143.6449,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150721.000,5347.5523,N,00143.6452,W,1,08,1.0,155.9,M,47.9,M,,0000*42
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,37,12,54,078,28,14,43,244,37,29,40,189,39*73
+$GPGSV,3,2,10,02,25,087,40,31,24,302,21,09,20,135,27,04,19,047,26*73
+$GPGSV,3,3,10,32,09,317,,20,05,338,20*78
+$GPRMC,150721.000,A,5347.5523,N,00143.6452,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150722.000,5347.5522,N,00143.6456,W,1,08,1.0,154.6,M,47.9,M,,0000*4A
+$GPRMC,150722.000,A,5347.5522,N,00143.6456,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150723.000,5347.5521,N,00143.6460,W,1,08,1.0,153.3,M,47.9,M,,0000*4F
+$GPRMC,150723.000,A,5347.5521,N,00143.6460,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150724.000,5347.5521,N,00143.6465,W,1,08,1.0,152.0,M,47.9,M,,0000*4F
+$GPRMC,150724.000,A,5347.5521,N,00143.6465,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150725.000,5347.5520,N,00143.6468,W,1,08,1.0,151.0,M,47.9,M,,0000*41
+$GPRMC,150725.000,A,5347.5520,N,00143.6468,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150726.000,5347.5519,N,00143.6470,W,1,08,1.0,150.0,M,47.9,M,,0000*40
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,37,12,54,078,28,14,43,244,36,29,40,189,39*72
+$GPGSV,3,2,10,02,25,087,40,31,24,302,20,09,20,135,27,04,19,047,26*72
+$GPGSV,3,3,10,32,09,317,,20,05,338,20*78
+$GPRMC,150726.000,A,5347.5519,N,00143.6470,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150727.000,5347.5519,N,00143.6473,W,1,08,1.0,149.0,M,47.9,M,,0000*4A
+$GPRMC,150727.000,A,5347.5519,N,00143.6473,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150728.000,5347.5519,N,00143.6476,W,1,08,1.0,148.0,M,47.9,M,,0000*41
+$GPRMC,150728.000,A,5347.5519,N,00143.6476,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150729.000,5347.5519,N,00143.6478,W,1,08,1.0,147.2,M,47.9,M,,0000*43
+$GPRMC,150729.000,A,5347.5519,N,00143.6478,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150730.000,5347.5518,N,00143.6479,W,1,08,1.0,146.7,M,47.9,M,,0000*4F
+$GPRMC,150730.000,A,5347.5518,N,00143.6479,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150731.000,5347.5517,N,00143.6480,W,1,08,1.0,146.3,M,47.9,M,,0000*43
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,78,263,36,12,54,078,29,14,43,244,36,29,40,189,39*72
+$GPGSV,3,2,10,02,25,087,40,31,24,302,19,09,20,135,26,04,19,047,25*7A
+$GPGSV,3,3,10,32,09,317,,20,05,338,18*73
+$GPRMC,150731.000,A,5347.5517,N,00143.6480,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150732.000,5347.5517,N,00143.6481,W,1,08,1.0,145.8,M,47.9,M,,0000*49
+$GPRMC,150732.000,A,5347.5517,N,00143.6481,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150733.000,5347.5516,N,00143.6481,W,1,08,1.0,145.5,M,47.9,M,,0000*44
+$GPRMC,150733.000,A,5347.5516,N,00143.6481,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150734.000,5347.5515,N,00143.6481,W,1,07,1.4,145.1,M,47.9,M,,0000*4F
+$GPRMC,150734.000,A,5347.5515,N,00143.6481,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150735.000,5347.5514,N,00143.6482,W,1,07,1.4,144.8,M,47.9,M,,0000*44
+$GPRMC,150735.000,A,5347.5514,N,00143.6482,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150736.000,5347.5513,N,00143.6482,W,1,07,1.4,144.5,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,09,30,12,04,02,14,,,,,,2.5,1.4,2.1*32
+$GPGSV,3,1,10,30,78,263,35,12,54,078,30,14,43,244,35,29,40,189,39*7A
+$GPGSV,3,2,10,02,25,087,41,31,24,302,13,09,20,135,26,04,19,047,25*71
+$GPGSV,3,3,10,32,09,317,,20,05,338,16*7D
+$GPRMC,150736.000,A,5347.5513,N,00143.6482,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150737.000,5347.5512,N,00143.6482,W,1,07,1.4,143.8,M,47.9,M,,0000*47
+$GPRMC,150737.000,A,5347.5512,N,00143.6482,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150738.000,5347.5511,N,00143.6482,W,1,07,1.4,143.0,M,47.9,M,,0000*43
+$GPRMC,150738.000,A,5347.5511,N,00143.6482,W,0.00,241.59,140808,,,A*71
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150739.000,5347.5509,N,00143.6482,W,1,07,1.4,142.1,M,47.9,M,,0000*4B
+$GPRMC,150739.000,A,5347.5509,N,00143.6482,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150740.000,5347.5508,N,00143.6482,W,1,07,1.4,141.4,M,47.9,M,,0000*42
+$GPRMC,150740.000,A,5347.5508,N,00143.6482,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150741.000,5347.5506,N,00143.6482,W,1,07,1.4,140.6,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,04,02,14,,,,,,2.5,1.4,2.1*32
+$GPGSV,3,1,10,30,78,263,29,12,54,078,31,14,43,244,36,29,40,189,40*7B
+$GPGSV,3,2,10,02,25,087,40,31,24,302,12,09,20,135,25,04,19,047,26*71
+$GPGSV,3,3,10,32,09,317,,20,05,338,19*72
+$GPRMC,150741.000,A,5347.5506,N,00143.6482,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150742.000,5347.5505,N,00143.6481,W,1,07,1.4,139.8,M,47.9,M,,0000*4D
+$GPRMC,150742.000,A,5347.5505,N,00143.6481,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150743.000,5347.5504,N,00143.6481,W,1,07,1.4,139.0,M,47.9,M,,0000*45
+$GPRMC,150743.000,A,5347.5504,N,00143.6481,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150744.000,5347.5503,N,00143.6481,W,1,07,1.4,138.2,M,47.9,M,,0000*46
+$GPRMC,150744.000,A,5347.5503,N,00143.6481,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150745.000,5347.5501,N,00143.6480,W,1,07,1.4,137.5,M,47.9,M,,0000*4C
+$GPRMC,150745.000,A,5347.5501,N,00143.6480,W,0.00,241.59,140808,,,A*78
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150746.000,5347.5500,N,00143.6479,W,1,07,1.4,136.7,M,47.9,M,,0000*4B
+$GPGSA,A,3,29,09,30,12,04,02,14,,,,,,2.5,1.4,2.1*32
+$GPGSV,3,1,10,30,78,263,27,12,54,078,31,14,43,244,36,29,40,189,40*75
+$GPGSV,3,2,10,02,25,087,40,31,24,302,,09,20,135,24,04,19,047,27*72
+$GPGSV,3,3,10,32,09,317,19,20,05,338,19*7A
+$GPRMC,150746.000,A,5347.5500,N,00143.6479,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150747.000,5347.5499,N,00143.6478,W,1,07,1.4,136.1,M,47.9,M,,0000*4C
+$GPRMC,150747.000,A,5347.5499,N,00143.6478,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150748.000,5347.5498,N,00143.6478,W,1,07,1.4,135.4,M,47.9,M,,0000*44
+$GPRMC,150748.000,A,5347.5498,N,00143.6478,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150749.000,5347.5496,N,00143.6477,W,1,07,1.4,134.6,M,47.9,M,,0000*47
+$GPRMC,150749.000,A,5347.5496,N,00143.6477,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150750.000,5347.5495,N,00143.6476,W,1,07,1.4,134.2,M,47.9,M,,0000*49
+$GPRMC,150750.000,A,5347.5495,N,00143.6476,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150751.000,5347.5494,N,00143.6475,W,1,06,1.7,133.5,M,47.9,M,,0000*48
+$GPGSA,A,3,29,30,12,04,02,14,,,,,,,2.8,1.7,2.2*36
+$GPGSV,3,1,10,30,78,263,28,12,54,078,31,14,43,244,37,29,40,189,40*7B
+$GPGSV,3,2,10,02,25,087,40,31,24,302,,09,20,135,22,04,19,047,28*7B
+$GPGSV,3,3,10,32,09,317,,20,05,338,19*72
+$GPRMC,150751.000,A,5347.5494,N,00143.6475,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150752.000,5347.5493,N,00143.6474,W,1,07,1.4,133.0,M,47.9,M,,0000*4A
+$GPRMC,150752.000,A,5347.5493,N,00143.6474,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150753.000,5347.5494,N,00143.6475,W,1,07,1.4,132.1,M,47.9,M,,0000*4D
+$GPRMC,150753.000,A,5347.5494,N,00143.6475,W,0.00,241.59,140808,,,A*78
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150754.000,5347.5494,N,00143.6474,W,1,07,1.4,131.6,M,47.9,M,,0000*4F
+$GPRMC,150754.000,A,5347.5494,N,00143.6474,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150755.000,5347.5495,N,00143.6473,W,1,07,1.4,131.5,M,47.9,M,,0000*4B
+$GPRMC,150755.000,A,5347.5495,N,00143.6473,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150756.000,5347.5495,N,00143.6472,W,1,06,1.5,131.7,M,47.9,M,,0000*4B
+$GPGSA,A,3,29,09,30,04,02,14,,,,,,,3.2,1.5,2.8*3F
+$GPGSV,3,1,10,30,78,263,28,12,54,078,24,14,43,244,37,29,40,189,41*7E
+$GPGSV,3,2,10,02,25,087,40,31,24,302,,09,20,135,19,04,19,047,32*78
+$GPGSV,3,3,10,32,09,317,,20,05,338,22*7A
+$GPRMC,150756.000,A,5347.5495,N,00143.6472,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150757.000,5347.5496,N,00143.6471,W,1,06,1.5,132.0,M,47.9,M,,0000*4E
+$GPRMC,150757.000,A,5347.5496,N,00143.6471,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150758.000,5347.5496,N,00143.6469,W,1,06,1.5,132.3,M,47.9,M,,0000*4B
+$GPRMC,150758.000,A,5347.5496,N,00143.6469,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150759.000,5347.5497,N,00143.6468,W,1,06,1.5,132.7,M,47.9,M,,0000*4E
+$GPRMC,150759.000,A,5347.5497,N,00143.6468,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150800.000,5347.5497,N,00143.6466,W,1,05,1.8,133.1,M,47.9,M,,0000*4A
+$GPRMC,150800.000,A,5347.5497,N,00143.6466,W,0.00,241.59,140808,,,A*70
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150801.000,5347.5497,N,00143.6464,W,1,05,1.8,133.6,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,30,04,02,14,,,,,,,,3.4,1.8,2.9*3C
+$GPGSV,3,1,10,30,78,263,30,12,54,078,25,14,43,244,37,29,40,189,41*76
+$GPGSV,3,2,10,02,25,087,40,31,24,302,,09,20,135,14,04,19,047,33*74
+$GPGSV,3,3,10,32,09,317,20,20,05,338,10*79
+$GPRMC,150801.000,A,5347.5497,N,00143.6464,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150802.000,5347.5498,N,00143.6462,W,1,05,1.8,134.1,M,47.9,M,,0000*44
+$GPRMC,150802.000,A,5347.5498,N,00143.6462,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150803.000,5347.5498,N,00143.6460,W,1,05,1.8,134.7,M,47.9,M,,0000*41
+$GPRMC,150803.000,A,5347.5498,N,00143.6460,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150804.000,5347.5498,N,00143.6457,W,1,05,1.8,135.3,M,47.9,M,,0000*47
+$GPRMC,150804.000,A,5347.5498,N,00143.6457,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150805.000,5347.5498,N,00143.6455,W,1,05,1.8,136.0,M,47.9,M,,0000*44
+$GPRMC,150805.000,A,5347.5498,N,00143.6455,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150806.000,5347.5499,N,00143.6453,W,1,07,1.1,136.7,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,09,30,04,02,14,31,,,,,,2.3,1.1,2.1*30
+$GPGSV,3,1,10,30,78,263,32,12,54,078,26,14,43,244,37,29,40,189,41*77
+$GPGSV,3,2,10,02,25,087,41,31,24,302,24,09,20,135,15,04,19,047,33*72
+$GPGSV,3,3,10,32,09,317,,20,05,338,*7A
+$GPRMC,150806.000,A,5347.5499,N,00143.6453,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150807.000,5347.5499,N,00143.6451,W,1,07,1.1,137.4,M,47.9,M,,0000*4D
+$GPRMC,150807.000,A,5347.5499,N,00143.6451,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150808.000,5347.5499,N,00143.6449,W,1,07,1.1,138.2,M,47.9,M,,0000*42
+$GPRMC,150808.000,A,5347.5499,N,00143.6449,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150809.000,5347.5499,N,00143.6447,W,1,07,1.1,138.9,M,47.9,M,,0000*46
+$GPRMC,150809.000,A,5347.5499,N,00143.6447,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150810.000,5347.5499,N,00143.6444,W,1,07,1.1,139.6,M,47.9,M,,0000*43
+$GPRMC,150810.000,A,5347.5499,N,00143.6444,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150811.000,5347.5499,N,00143.6442,W,1,07,1.1,140.3,M,47.9,M,,0000*4F
+$GPGSA,A,3,29,09,30,04,02,14,31,,,,,,2.3,1.1,2.1*30
+$GPGSV,3,1,10,30,78,263,30,12,54,078,27,14,43,244,36,29,40,189,41*75
+$GPGSV,3,2,10,02,25,087,41,31,24,302,25,09,20,135,16,04,19,047,33*70
+$GPGSV,3,3,10,32,09,317,,20,05,338,*7A
+$GPRMC,150811.000,A,5347.5499,N,00143.6442,W,0.00,241.59,140808,,,A*78
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150812.000,5347.5499,N,00143.6440,W,1,07,1.1,141.1,M,47.9,M,,0000*4D
+$GPRMC,150812.000,A,5347.5499,N,00143.6440,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150813.000,5347.5499,N,00143.6438,W,1,08,1.0,141.9,M,47.9,M,,0000*45
+$GPRMC,150813.000,A,5347.5499,N,00143.6438,W,0.00,241.59,140808,,,A*77
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150814.000,5347.5500,N,00143.6436,W,1,08,1.0,142.6,M,47.9,M,,0000*41
+$GPRMC,150814.000,A,5347.5500,N,00143.6436,W,0.00,241.59,140808,,,A*7F
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150815.000,5347.5500,N,00143.6435,W,1,08,1.0,143.5,M,47.9,M,,0000*41
+$GPRMC,150815.000,A,5347.5500,N,00143.6435,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150816.000,5347.5500,N,00143.6436,W,1,08,1.0,142.8,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,30,12,53,078,32,14,42,243,35,29,41,189,40*75
+$GPGSV,3,2,10,31,25,302,25,02,25,086,41,09,19,135,24,04,19,046,33*7A
+$GPGSV,3,3,10,32,08,316,,20,05,337,16*72
+$GPRMC,150816.000,A,5347.5500,N,00143.6436,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150817.000,5347.5499,N,00143.6439,W,1,08,1.0,141.0,M,47.9,M,,0000*49
+$GPRMC,150817.000,A,5347.5499,N,00143.6439,W,0.00,241.59,140808,,,A*72
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150818.000,5347.5499,N,00143.6444,W,1,08,1.0,138.9,M,47.9,M,,0000*4B
+$GPRMC,150818.000,A,5347.5499,N,00143.6444,W,0.00,241.59,140808,,,A*77
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150819.000,5347.5498,N,00143.6448,W,1,08,1.0,136.8,M,47.9,M,,0000*48
+$GPRMC,150819.000,A,5347.5498,N,00143.6448,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150820.000,5347.5497,N,00143.6451,W,1,08,1.0,135.3,M,47.9,M,,0000*4D
+$GPRMC,150820.000,A,5347.5497,N,00143.6451,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150821.000,5347.5496,N,00143.6454,W,1,08,1.0,133.5,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,31,12,53,078,33,14,42,243,35,29,41,189,40*75
+$GPGSV,3,2,10,31,25,302,25,02,25,086,41,09,19,135,25,04,19,046,33*7B
+$GPGSV,3,3,10,32,08,316,,20,05,337,22*75
+$GPRMC,150821.000,A,5347.5496,N,00143.6454,W,0.00,241.59,140808,,,A*73
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150822.000,5347.5495,N,00143.6456,W,1,08,1.0,131.9,M,47.9,M,,0000*44
+$GPRMC,150822.000,A,5347.5495,N,00143.6456,W,0.00,241.59,140808,,,A*71
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150823.000,5347.5494,N,00143.6459,W,1,08,1.0,130.2,M,47.9,M,,0000*41
+$GPRMC,150823.000,A,5347.5494,N,00143.6459,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150824.000,5347.5492,N,00143.6461,W,1,08,1.0,128.7,M,47.9,M,,0000*47
+$GPRMC,150824.000,A,5347.5492,N,00143.6461,W,0.00,241.59,140808,,,A*74
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150825.000,5347.5490,N,00143.6463,W,1,08,1.0,127.1,M,47.9,M,,0000*4F
+$GPRMC,150825.000,A,5347.5490,N,00143.6463,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150826.000,5347.5489,N,00143.6464,W,1,08,1.0,126.0,M,47.9,M,,0000*43
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,31,12,53,078,33,14,42,243,35,29,41,189,39*7B
+$GPGSV,3,2,10,31,25,302,25,02,25,086,42,09,19,135,26,04,19,046,32*7A
+$GPGSV,3,3,10,32,08,316,,20,05,337,22*75
+$GPRMC,150826.000,A,5347.5489,N,00143.6464,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150827.000,5347.5487,N,00143.6465,W,1,08,1.0,124.8,M,47.9,M,,0000*47
+$GPRMC,150827.000,A,5347.5487,N,00143.6465,W,0.00,241.59,140808,,,A*77
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150828.000,5347.5486,N,00143.6466,W,1,08,1.0,123.7,M,47.9,M,,0000*42
+$GPRMC,150828.000,A,5347.5486,N,00143.6466,W,0.00,241.59,140808,,,A*7A
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150829.000,5347.5485,N,00143.6467,W,1,08,1.0,122.7,M,47.9,M,,0000*40
+$GPRMC,150829.000,A,5347.5485,N,00143.6467,W,0.00,241.59,140808,,,A*79
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150830.000,5347.5483,N,00143.6468,W,1,08,1.0,121.7,M,47.9,M,,0000*42
+$GPRMC,150830.000,A,5347.5483,N,00143.6468,W,0.00,241.59,140808,,,A*78
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150831.000,5347.5482,N,00143.6468,W,1,08,1.0,120.8,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,33,12,53,078,33,14,42,243,35,29,41,189,39*79
+$GPGSV,3,2,10,31,25,302,25,02,25,086,42,09,19,135,27,04,19,046,27*7F
+$GPGSV,3,3,10,32,08,316,,20,05,337,*75
+$GPRMC,150831.000,A,5347.5482,N,00143.6468,W,0.00,241.59,140808,,,A*78
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150832.000,5347.5483,N,00143.6469,W,1,08,1.0,122.1,M,47.9,M,,0000*44
+$GPRMC,150832.000,A,5347.5483,N,00143.6469,W,0.00,241.59,140808,,,A*7B
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150833.000,5347.5484,N,00143.6469,W,1,08,1.0,123.2,M,47.9,M,,0000*40
+$GPRMC,150833.000,A,5347.5484,N,00143.6469,W,0.00,241.59,140808,,,A*7D
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150834.000,5347.5482,N,00143.6469,W,1,08,1.0,122.4,M,47.9,M,,0000*46
+$GPRMC,150834.000,A,5347.5482,N,00143.6469,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150835.000,5347.5481,N,00143.6469,W,1,08,1.0,121.9,M,47.9,M,,0000*4A
+$GPRMC,150835.000,A,5347.5481,N,00143.6469,W,0.00,241.59,140808,,,A*7E
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150836.000,5347.5481,N,00143.6470,W,1,08,1.0,123.1,M,47.9,M,,0000*4B
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,34,12,53,078,39,14,42,243,34,29,41,189,43*78
+$GPGSV,3,2,10,31,25,302,24,02,25,086,43,09,19,135,28,04,19,046,27*70
+$GPGSV,3,3,10,32,08,316,,20,05,337,20*77
+$GPRMC,150836.000,A,5347.5481,N,00143.6470,W,0.00,241.59,140808,,,A*75
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150837.000,5347.5480,N,00143.6468,W,1,08,1.0,124.3,M,47.9,M,,0000*47
+$GPRMC,150837.000,A,5347.5480,N,00143.6468,W,0.00,241.59,140808,,,A*7C
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150838.000,5347.5477,N,00143.6465,W,1,08,1.0,125.1,M,47.9,M,,0000*4E
+$GPRMC,150838.000,A,5347.5477,N,00143.6465,W,0.00,241.59,140808,,,A*76
+$GPVTG,241.59,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150839.000,5347.5473,N,00143.6459,W,1,08,1.0,125.8,M,47.9,M,,0000*4D
+$GPRMC,150839.000,A,5347.5473,N,00143.6459,W,1.89,142.34,140808,,,A*77
+$GPVTG,142.34,T,,M,1.89,N,3.5,K,A*0B
+$GPGGA,150840.000,5347.5468,N,00143.6453,W,1,08,1.0,126.5,M,47.9,M,,0000*4D
+$GPRMC,150840.000,A,5347.5468,N,00143.6453,W,0.00,142.34,140808,,,A*79
+$GPVTG,142.34,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,150841.000,5347.5463,N,00143.6449,W,1,07,1.2,127.8,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,30,12,04,02,14,31,,,,,,2.3,1.2,2.0*38
+$GPGSV,3,1,10,30,79,264,35,12,53,078,39,14,42,243,34,29,41,189,44*7E
+$GPGSV,3,2,10,31,25,302,26,02,25,086,36,09,19,135,28,04,19,046,27*70
+$GPGSV,3,3,10,32,08,316,,20,05,337,20*77
+$GPRMC,150841.000,A,5347.5463,N,00143.6449,W,1.90,179.37,140808,,,A*7B
+$GPVTG,179.37,T,,M,1.90,N,3.5,K,A*08
+$GPGGA,150842.000,5347.5453,N,00143.6442,W,1,08,1.0,130.2,M,47.9,M,,0000*47
+$GPRMC,150842.000,A,5347.5453,N,00143.6442,W,0.00,179.37,140808,,,A*78
+$GPVTG,179.37,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150843.000,5347.5444,N,00143.6434,W,1,08,1.0,132.9,M,47.9,M,,0000*48
+$GPRMC,150843.000,A,5347.5444,N,00143.6434,W,0.00,179.37,140808,,,A*7E
+$GPVTG,179.37,T,,M,0.00,N,0.0,K,A*06
+$GPGGA,150844.000,5347.5439,N,00143.6435,W,1,08,1.0,133.8,M,47.9,M,,0000*44
+$GPRMC,150844.000,A,5347.5439,N,00143.6435,W,2.07,182.12,140808,,,A*74
+$GPVTG,182.12,T,,M,2.07,N,3.8,K,A*0B
+$GPGGA,150845.000,5347.5428,N,00143.6431,W,1,08,1.0,135.7,M,47.9,M,,0000*48
+$GPRMC,150845.000,A,5347.5428,N,00143.6431,W,2.54,191.64,140808,,,A*74
+$GPVTG,191.64,T,,M,2.54,N,4.7,K,A*06
+$GPGGA,150846.000,5347.5419,N,00143.6431,W,1,08,1.0,136.1,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,33,12,53,078,36,14,42,243,35,29,41,189,44*76
+$GPGSV,3,2,10,31,25,302,39,02,25,086,23,09,19,135,35,04,19,046,32*72
+$GPGSV,3,3,10,32,08,316,,20,05,337,17*73
+$GPRMC,150846.000,A,5347.5419,N,00143.6431,W,2.95,186.70,140808,,,A*7B
+$GPVTG,186.70,T,,M,2.95,N,5.5,K,A*0B
+$GPGGA,150847.000,5347.5408,N,00143.6432,W,1,08,1.0,136.5,M,47.9,M,,0000*4A
+$GPRMC,150847.000,A,5347.5408,N,00143.6432,W,3.40,186.94,140808,,,A*7A
+$GPVTG,186.94,T,,M,3.40,N,6.3,K,A*0D
+$GPGGA,150848.000,5347.5398,N,00143.6434,W,1,08,1.0,136.6,M,47.9,M,,0000*4E
+$GPRMC,150848.000,A,5347.5398,N,00143.6434,W,3.65,188.65,140808,,,A*7A
+$GPVTG,188.65,T,,M,3.65,N,6.8,K,A*01
+$GPGGA,150849.000,5347.5386,N,00143.6433,W,1,08,1.0,136.4,M,47.9,M,,0000*45
+$GPRMC,150849.000,A,5347.5386,N,00143.6433,W,3.98,173.54,140808,,,A*77
+$GPVTG,173.54,T,,M,3.98,N,7.4,K,A*08
+$GPGGA,150850.000,5347.5378,N,00143.6430,W,1,08,1.0,137.2,M,47.9,M,,0000*48
+$GPRMC,150850.000,A,5347.5378,N,00143.6430,W,3.27,171.65,140808,,,A*79
+$GPVTG,171.65,T,,M,3.27,N,6.1,K,A*08
+$GPGGA,150851.000,5347.5375,N,00143.6428,W,1,08,1.0,138.0,M,47.9,M,,0000*40
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,34,12,53,078,32,14,42,243,36,29,41,189,36*73
+$GPGSV,3,2,10,31,25,302,27,02,25,086,41,09,19,135,41,04,19,046,27*7E
+$GPGSV,3,3,10,32,08,316,,20,05,337,20*77
+$GPRMC,150851.000,A,5347.5375,N,00143.6428,W,0.00,171.65,140808,,,A*7A
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150852.000,5347.5374,N,00143.6426,W,1,08,1.0,138.9,M,47.9,M,,0000*45
+$GPRMC,150852.000,A,5347.5374,N,00143.6426,W,0.00,171.65,140808,,,A*76
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150853.000,5347.5374,N,00143.6425,W,1,08,1.0,139.8,M,47.9,M,,0000*47
+$GPRMC,150853.000,A,5347.5374,N,00143.6425,W,0.00,171.65,140808,,,A*74
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150854.000,5347.5375,N,00143.6423,W,1,08,1.0,140.6,M,47.9,M,,0000*47
+$GPRMC,150854.000,A,5347.5375,N,00143.6423,W,0.00,171.65,140808,,,A*74
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150855.000,5347.5376,N,00143.6421,W,1,08,1.0,141.3,M,47.9,M,,0000*43
+$GPRMC,150855.000,A,5347.5376,N,00143.6421,W,0.00,171.65,140808,,,A*74
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150856.000,5347.5377,N,00143.6419,W,1,08,1.0,142.1,M,47.9,M,,0000*4B
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,35,12,53,078,33,14,42,243,37,29,41,189,38*7C
+$GPGSV,3,2,10,31,25,302,27,02,25,086,36,09,19,135,41,04,19,046,29*70
+$GPGSV,3,3,10,32,08,316,,20,05,337,19*7D
+$GPRMC,150856.000,A,5347.5377,N,00143.6419,W,0.00,171.65,140808,,,A*7D
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150857.000,5347.5377,N,00143.6416,W,1,08,1.0,143.0,M,47.9,M,,0000*45
+$GPRMC,150857.000,A,5347.5377,N,00143.6416,W,0.00,171.65,140808,,,A*73
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150858.000,5347.5378,N,00143.6414,W,1,08,1.0,143.6,M,47.9,M,,0000*41
+$GPRMC,150858.000,A,5347.5378,N,00143.6414,W,0.00,171.65,140808,,,A*71
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150859.000,5347.5378,N,00143.6412,W,1,08,1.0,144.2,M,47.9,M,,0000*45
+$GPRMC,150859.000,A,5347.5378,N,00143.6412,W,0.00,171.65,140808,,,A*76
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150900.000,5347.5378,N,00143.6409,W,1,08,1.0,145.0,M,47.9,M,,0000*41
+$GPRMC,150900.000,A,5347.5378,N,00143.6409,W,0.00,171.65,140808,,,A*71
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150901.000,5347.5379,N,00143.6407,W,1,08,1.0,145.5,M,47.9,M,,0000*4A
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,35,12,53,078,33,14,42,243,37,29,41,189,39*7D
+$GPGSV,3,2,10,31,25,302,27,02,25,086,36,09,19,135,42,04,19,046,30*7B
+$GPGSV,3,3,10,32,08,316,,20,05,337,*75
+$GPRMC,150901.000,A,5347.5379,N,00143.6407,W,0.00,171.65,140808,,,A*7F
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150902.000,5347.5379,N,00143.6405,W,1,08,1.0,146.0,M,47.9,M,,0000*4D
+$GPRMC,150902.000,A,5347.5379,N,00143.6405,W,0.00,171.65,140808,,,A*7E
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150903.000,5347.5380,N,00143.6403,W,1,08,1.0,146.4,M,47.9,M,,0000*48
+$GPRMC,150903.000,A,5347.5380,N,00143.6403,W,0.00,171.65,140808,,,A*7F
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150904.000,5347.5380,N,00143.6401,W,1,09,0.9,146.9,M,47.9,M,,0000*49
+$GPRMC,150904.000,A,5347.5380,N,00143.6401,W,0.00,171.65,140808,,,A*7A
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150905.000,5347.5380,N,00143.6399,W,1,08,1.0,147.4,M,47.9,M,,0000*4B
+$GPRMC,150905.000,A,5347.5380,N,00143.6399,W,0.00,171.65,140808,,,A*7D
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150906.000,5347.5381,N,00143.6397,W,1,08,1.0,147.7,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,30,12,02,14,31,32,,,,,1.8,1.0,1.5*38
+$GPGSV,3,1,10,30,79,264,36,12,53,078,34,14,42,243,38,29,41,189,39*76
+$GPGSV,3,2,10,31,25,302,27,02,25,086,35,09,19,135,42,04,19,046,23*7A
+$GPGSV,3,3,10,32,08,316,27,20,05,337,15*74
+$GPRMC,150906.000,A,5347.5381,N,00143.6397,W,0.00,171.65,140808,,,A*71
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150907.000,5347.5382,N,00143.6396,W,1,08,1.0,148.1,M,47.9,M,,0000*4E
+$GPRMC,150907.000,A,5347.5382,N,00143.6396,W,0.00,171.65,140808,,,A*72
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150908.000,5347.5382,N,00143.6394,W,1,08,1.0,148.6,M,47.9,M,,0000*44
+$GPRMC,150908.000,A,5347.5382,N,00143.6394,W,0.00,171.65,140808,,,A*7F
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150909.000,5347.5382,N,00143.6392,W,1,09,0.9,148.9,M,47.9,M,,0000*45
+$GPRMC,150909.000,A,5347.5382,N,00143.6392,W,0.00,171.65,140808,,,A*78
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150910.000,5347.5382,N,00143.6391,W,1,09,0.9,149.2,M,47.9,M,,0000*44
+$GPRMC,150910.000,A,5347.5382,N,00143.6391,W,0.00,171.65,140808,,,A*73
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150911.000,5347.5382,N,00143.6390,W,1,09,0.9,149.5,M,47.9,M,,0000*43
+$GPGSA,A,3,29,09,30,12,04,02,14,31,32,,,,1.7,0.9,1.5*3B
+$GPGSV,3,1,10,30,79,264,35,12,53,078,33,14,42,243,39,29,41,189,39*73
+$GPGSV,3,2,10,31,25,302,28,02,25,086,35,09,19,135,42,04,19,046,28*7E
+$GPGSV,3,3,10,32,08,316,26,20,05,337,21*72
+$GPRMC,150911.000,A,5347.5382,N,00143.6390,W,0.00,171.65,140808,,,A*73
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150912.000,5347.5383,N,00143.6389,W,1,09,0.9,149.8,M,47.9,M,,0000*44
+$GPRMC,150912.000,A,5347.5383,N,00143.6389,W,0.00,171.65,140808,,,A*79
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150913.000,5347.5383,N,00143.6387,W,1,08,1.0,150.2,M,47.9,M,,0000*40
+$GPRMC,150913.000,A,5347.5383,N,00143.6387,W,0.00,171.65,140808,,,A*76
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150914.000,5347.5383,N,00143.6386,W,1,08,1.0,150.5,M,47.9,M,,0000*41
+$GPRMC,150914.000,A,5347.5383,N,00143.6386,W,0.00,171.65,140808,,,A*70
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150915.000,5347.5383,N,00143.6385,W,1,08,1.0,150.8,M,47.9,M,,0000*4E
+$GPRMC,150915.000,A,5347.5383,N,00143.6385,W,0.00,171.65,140808,,,A*72
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150916.000,5347.5384,N,00143.6383,W,1,08,1.0,151.1,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,35,12,53,078,28,14,42,243,39,29,41,189,38*78
+$GPGSV,3,2,10,31,25,302,27,02,25,086,35,09,19,135,42,04,19,046,28*71
+$GPGSV,3,3,10,32,08,316,,20,05,337,21*76
+$GPRMC,150916.000,A,5347.5384,N,00143.6383,W,0.00,171.65,140808,,,A*70
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150917.000,5347.5384,N,00143.6382,W,1,08,1.0,151.4,M,47.9,M,,0000*41
+$GPRMC,150917.000,A,5347.5384,N,00143.6382,W,0.00,171.65,140808,,,A*70
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150918.000,5347.5384,N,00143.6381,W,1,08,1.0,151.8,M,47.9,M,,0000*41
+$GPRMC,150918.000,A,5347.5384,N,00143.6381,W,0.00,171.65,140808,,,A*7C
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150919.000,5347.5384,N,00143.6380,W,1,08,1.0,152.1,M,47.9,M,,0000*4B
+$GPRMC,150919.000,A,5347.5384,N,00143.6380,W,0.00,171.65,140808,,,A*7C
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150920.000,5347.5384,N,00143.6379,W,1,09,0.9,152.5,M,47.9,M,,0000*4A
+$GPRMC,150920.000,A,5347.5384,N,00143.6379,W,0.00,171.65,140808,,,A*70
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150921.000,5347.5384,N,00143.6378,W,1,09,0.9,152.9,M,47.9,M,,0000*46
+$GPGSA,A,3,29,09,30,12,04,02,14,31,32,,,,1.7,0.9,1.5*3B
+$GPGSV,3,1,10,30,79,264,35,12,53,078,27,14,42,243,39,29,41,189,38*77
+$GPGSV,3,2,10,31,25,302,26,02,25,086,35,09,19,135,42,04,19,046,29*71
+$GPGSV,3,3,10,32,08,316,24,20,05,337,*73
+$GPRMC,150921.000,A,5347.5384,N,00143.6378,W,0.00,171.65,140808,,,A*70
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150922.000,5347.5385,N,00143.6377,W,1,09,0.9,153.3,M,47.9,M,,0000*40
+$GPRMC,150922.000,A,5347.5385,N,00143.6377,W,0.00,171.65,140808,,,A*7D
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150923.000,5347.5385,N,00143.6376,W,1,09,0.9,153.6,M,47.9,M,,0000*45
+$GPRMC,150923.000,A,5347.5385,N,00143.6376,W,0.00,171.65,140808,,,A*7D
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150924.000,5347.5384,N,00143.6374,W,1,09,0.9,154.1,M,47.9,M,,0000*41
+$GPRMC,150924.000,A,5347.5384,N,00143.6374,W,0.00,171.65,140808,,,A*79
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150925.000,5347.5385,N,00143.6371,W,1,09,0.9,155.0,M,47.9,M,,0000*44
+$GPRMC,150925.000,A,5347.5385,N,00143.6371,W,0.00,171.65,140808,,,A*7C
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150926.000,5347.5384,N,00143.6367,W,1,09,0.9,155.3,M,47.9,M,,0000*42
+$GPGSA,A,3,29,09,30,12,04,02,14,31,32,,,,1.7,0.9,1.5*3B
+$GPGSV,3,1,10,30,79,264,35,12,53,078,35,14,42,243,39,29,41,189,38*74
+$GPGSV,3,2,10,31,25,302,22,02,25,086,35,09,19,135,42,04,19,046,29*75
+$GPGSV,3,3,10,32,08,316,24,20,05,337,22*73
+$GPRMC,150926.000,A,5347.5384,N,00143.6367,W,0.00,171.65,140808,,,A*79
+$GPVTG,171.65,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,150927.000,5347.5379,N,00143.6357,W,1,08,1.0,155.6,M,47.9,M,,0000*4E
+$GPRMC,150927.000,A,5347.5379,N,00143.6357,W,2.66,129.88,140808,,,A*75
+$GPVTG,129.88,T,,M,2.66,N,4.9,K,A*08
+$GPGGA,150928.000,5347.5375,N,00143.6336,W,1,08,1.0,154.9,M,47.9,M,,0000*44
+$GPRMC,150928.000,A,5347.5375,N,00143.6336,W,5.37,105.28,140808,,,A*76
+$GPVTG,105.28,T,,M,5.37,N,9.9,K,A*02
+$GPGGA,150929.000,5347.5372,N,00143.6295,W,1,07,1.1,155.6,M,47.9,M,,0000*4A
+$GPRMC,150929.000,A,5347.5372,N,00143.6295,W,8.11,92.01,140808,,,A*45
+$GPVTG,92.01,T,,M,8.11,N,15.0,K,A*0B
+$GPGGA,150930.000,5347.5378,N,00143.6248,W,1,08,1.0,155.0,M,47.9,M,,0000*40
+$GPRMC,150930.000,A,5347.5378,N,00143.6248,W,10.16,87.89,140808,,,A*7D
+$GPVTG,87.89,T,,M,10.16,N,18.8,K,A*34
+$GPGGA,150931.000,5347.5384,N,00143.6198,W,1,08,1.0,155.3,M,47.9,M,,0000*4F
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,31,12,53,078,41,14,42,243,25,29,41,189,35*73
+$GPGSV,3,2,10,31,25,302,34,02,25,086,36,09,19,135,34,04,19,046,25*7C
+$GPGSV,3,3,10,32,08,316,,20,05,337,16*72
+$GPRMC,150931.000,A,5347.5384,N,00143.6198,W,10.60,85.17,140808,,,A*75
+$GPVTG,85.17,T,,M,10.60,N,19.6,K,A*3F
+$GPGGA,150932.000,5347.5391,N,00143.6154,W,1,08,1.0,155.4,M,47.9,M,,0000*4F
+$GPRMC,150932.000,A,5347.5391,N,00143.6154,W,9.77,85.44,140808,,,A*4A
+$GPVTG,85.44,T,,M,9.77,N,18.1,K,A*01
+$GPGGA,150933.000,5347.5399,N,00143.6118,W,1,08,1.0,155.3,M,47.9,M,,0000*49
+$GPRMC,150933.000,A,5347.5399,N,00143.6118,W,8.42,84.32,140808,,,A*4C
+$GPVTG,84.32,T,,M,8.42,N,15.6,K,A*0C
+$GPGGA,150934.000,5347.5404,N,00143.6088,W,1,08,1.0,155.9,M,47.9,M,,0000*4F
+$GPRMC,150934.000,A,5347.5404,N,00143.6088,W,6.43,84.61,140808,,,A*49
+$GPVTG,84.61,T,,M,6.43,N,11.9,K,A*0E
+$GPGGA,150935.000,5347.5409,N,00143.6068,W,1,08,1.0,156.1,M,47.9,M,,0000*46
+$GPRMC,150935.000,A,5347.5409,N,00143.6068,W,4.38,87.35,140808,,,A*47
+$GPVTG,87.35,T,,M,4.38,N,8.1,K,A*32
+$GPGGA,150936.000,5347.5414,N,00143.6056,W,1,08,1.0,156.6,M,47.9,M,,0000*43
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,32,12,53,078,42,14,42,243,25,29,41,189,36*70
+$GPGSV,3,2,10,31,25,302,26,02,25,086,36,09,19,135,33,04,19,046,38*74
+$GPGSV,3,3,10,32,08,316,,20,05,337,20*77
+$GPRMC,150936.000,A,5347.5414,N,00143.6056,W,2.81,70.29,140808,,,A*44
+$GPVTG,70.29,T,,M,2.81,N,5.2,K,A*3D
+$GPGGA,150937.000,5347.5418,N,00143.6049,W,1,08,1.0,156.8,M,47.9,M,,0000*4E
+$GPRMC,150937.000,A,5347.5418,N,00143.6049,W,0.00,70.29,140808,,,A*4C
+$GPVTG,70.29,T,,M,0.00,N,0.0,K,A*31
+$GPGGA,150938.000,5347.5421,N,00143.6044,W,1,08,1.0,156.9,M,47.9,M,,0000*47
+$GPRMC,150938.000,A,5347.5421,N,00143.6044,W,0.00,70.29,140808,,,A*44
+$GPVTG,70.29,T,,M,0.00,N,0.0,K,A*31
+$GPGGA,150939.000,5347.5418,N,00143.6035,W,1,08,1.0,157.3,M,47.9,M,,0000*41
+$GPRMC,150939.000,A,5347.5418,N,00143.6035,W,1.62,128.52,140808,,,A*7C
+$GPVTG,128.52,T,,M,1.62,N,3.0,K,A*07
+$GPGGA,150940.000,5347.5406,N,00143.6033,W,1,08,1.0,157.2,M,47.9,M,,0000*47
+$GPRMC,150940.000,A,5347.5406,N,00143.6033,W,4.56,189.12,140808,,,A*76
+$GPVTG,189.12,T,,M,4.56,N,8.4,K,A*05
+$GPGGA,150941.000,5347.5382,N,00143.6036,W,1,08,1.0,157.2,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,36,12,53,078,22,14,42,243,44,29,41,189,43*77
+$GPGSV,3,2,10,31,25,302,32,02,25,086,25,09,19,135,24,04,19,046,33*7E
+$GPGSV,3,3,10,32,08,316,19,20,05,337,21*7E
+$GPRMC,150941.000,A,5347.5382,N,00143.6036,W,7.76,184.02,140808,,,A*74
+$GPVTG,184.02,T,,M,7.76,N,14.4,K,A*35
+$GPGGA,150942.000,5347.5352,N,00143.6040,W,1,06,1.3,157.3,M,47.9,M,,0000*4B
+$GPRMC,150942.000,A,5347.5352,N,00143.6040,W,9.24,191.69,140808,,,A*7B
+$GPVTG,191.69,T,,M,9.24,N,17.1,K,A*33
+$GPGGA,150943.000,5347.5324,N,00143.6049,W,1,07,1.1,156.9,M,47.9,M,,0000*4A
+$GPRMC,150943.000,A,5347.5324,N,00143.6049,W,9.79,189.45,140808,,,A*7D
+$GPVTG,189.45,T,,M,9.79,N,18.1,K,A*33
+$GPGGA,150944.000,5347.5297,N,00143.6058,W,1,08,1.0,156.6,M,47.9,M,,0000*45
+$GPRMC,150944.000,A,5347.5297,N,00143.6058,W,9.47,190.14,140808,,,A*72
+$GPVTG,190.14,T,,M,9.47,N,17.5,K,A*39
+$GPGGA,150945.000,5347.5271,N,00143.6070,W,1,08,1.0,155.8,M,47.9,M,,0000*4B
+$GPRMC,150945.000,A,5347.5271,N,00143.6070,W,8.47,191.22,140808,,,A*74
+$GPVTG,191.22,T,,M,8.47,N,15.7,K,A*3C
+$GPGGA,150946.000,5347.5250,N,00143.6077,W,1,08,1.0,155.4,M,47.9,M,,0000*40
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,34,12,53,078,34,14,42,243,40,29,41,189,43*76
+$GPGSV,3,2,10,31,25,302,35,02,25,086,39,09,19,135,29,04,19,046,23*78
+$GPGSV,3,3,10,32,08,316,,20,05,337,17*73
+$GPRMC,150946.000,A,5347.5250,N,00143.6077,W,7.40,188.21,140808,,,A*70
+$GPVTG,188.21,T,,M,7.40,N,13.7,K,A*39
+$GPGGA,150947.000,5347.5232,N,00143.6080,W,1,08,1.0,154.9,M,47.9,M,,0000*41
+$GPRMC,150947.000,A,5347.5232,N,00143.6080,W,6.08,181.51,140808,,,A*7E
+$GPVTG,181.51,T,,M,6.08,N,11.3,K,A*3C
+$GPGGA,150948.000,5347.5217,N,00143.6077,W,1,08,1.0,154.3,M,47.9,M,,0000*4B
+$GPRMC,150948.000,A,5347.5217,N,00143.6077,W,4.55,165.45,140808,,,A*7B
+$GPVTG,165.45,T,,M,4.55,N,8.4,K,A*06
+$GPGGA,150949.000,5347.5206,N,00143.6069,W,1,08,1.0,154.1,M,47.9,M,,0000*47
+$GPRMC,150949.000,A,5347.5206,N,00143.6069,W,3.46,152.87,140808,,,A*7A
+$GPVTG,152.87,T,,M,3.46,N,6.4,K,A*07
+$GPGGA,150950.000,5347.5198,N,00143.6063,W,1,08,1.0,153.4,M,47.9,M,,0000*43
+$GPRMC,150950.000,A,5347.5198,N,00143.6063,W,2.81,143.40,140808,,,A*7D
+$GPVTG,143.40,T,,M,2.81,N,5.2,K,A*03
+$GPGGA,150951.000,5347.5193,N,00143.6057,W,1,08,1.0,153.3,M,47.9,M,,0000*49
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,34,12,53,078,34,14,42,243,31,29,41,189,42*71
+$GPGSV,3,2,10,31,25,302,38,02,25,086,27,09,19,135,38,04,19,046,23*7A
+$GPGSV,3,3,10,32,08,316,,20,05,337,*75
+$GPRMC,150951.000,A,5347.5193,N,00143.6057,W,0.00,143.40,140808,,,A*7B
+$GPVTG,143.40,T,,M,0.00,N,0.0,K,A*0F
+$GPGGA,150952.000,5347.5189,N,00143.6054,W,1,08,1.0,153.2,M,47.9,M,,0000*43
+$GPRMC,150952.000,A,5347.5189,N,00143.6054,W,0.00,143.40,140808,,,A*70
+$GPVTG,143.40,T,,M,0.00,N,0.0,K,A*0F
+$GPGGA,150953.000,5347.5184,N,00143.6055,W,1,07,1.4,153.2,M,47.9,M,,0000*45
+$GPRMC,150953.000,A,5347.5184,N,00143.6055,W,0.00,143.40,140808,,,A*7D
+$GPVTG,143.40,T,,M,0.00,N,0.0,K,A*0F
+$GPGGA,150954.000,5347.5179,N,00143.6055,W,1,09,0.9,153.2,M,47.9,M,,0000*42
+$GPRMC,150954.000,A,5347.5179,N,00143.6055,W,1.67,181.04,140808,,,A*76
+$GPVTG,181.04,T,,M,1.67,N,3.1,K,A*03
+$GPGGA,150955.000,5347.5172,N,00143.6057,W,1,08,1.0,153.1,M,47.9,M,,0000*40
+$GPRMC,150955.000,A,5347.5172,N,00143.6057,W,2.07,191.48,140808,,,A*72
+$GPVTG,191.48,T,,M,2.07,N,3.8,K,A*06
+$GPGGA,150956.000,5347.5167,N,00143.6060,W,1,08,1.0,153.0,M,47.9,M,,0000*42
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,34,12,53,078,32,14,42,243,36,29,41,189,33*76
+$GPGSV,3,2,10,31,25,302,29,02,25,086,39,09,19,135,33,04,19,046,26*7B
+$GPGSV,3,3,10,32,08,316,,20,05,337,21*76
+$GPRMC,150956.000,A,5347.5167,N,00143.6060,W,0.00,191.48,140808,,,A*74
+$GPVTG,191.48,T,,M,0.00,N,0.0,K,A*08
+$GPGGA,150957.000,5347.5165,N,00143.6068,W,1,09,0.9,152.0,M,47.9,M,,0000*41
+$GPRMC,150957.000,A,5347.5165,N,00143.6068,W,0.00,191.48,140808,,,A*7F
+$GPVTG,191.48,T,,M,0.00,N,0.0,K,A*08
+$GPGGA,150958.000,5347.5161,N,00143.6074,W,1,09,0.9,151.4,M,47.9,M,,0000*40
+$GPRMC,150958.000,A,5347.5161,N,00143.6074,W,0.00,191.48,140808,,,A*79
+$GPVTG,191.48,T,,M,0.00,N,0.0,K,A*08
+$GPGGA,150959.000,5347.5158,N,00143.6079,W,1,09,0.9,151.3,M,47.9,M,,0000*41
+$GPRMC,150959.000,A,5347.5158,N,00143.6079,W,0.00,191.48,140808,,,A*7F
+$GPVTG,191.48,T,,M,0.00,N,0.0,K,A*08
+$GPGGA,151000.000,5347.5156,N,00143.6090,W,1,09,0.9,151.3,M,47.9,M,,0000*4C
+$GPRMC,151000.000,A,5347.5156,N,00143.6090,W,2.63,264.60,140808,,,A*76
+$GPVTG,264.60,T,,M,2.63,N,4.9,K,A*01
+$GPGGA,151001.000,5347.5158,N,00143.6108,W,1,09,0.9,151.4,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,30,12,04,02,14,31,32,,,,1.7,0.9,1.5*3B
+$GPGSV,3,1,10,30,79,264,37,12,53,078,34,14,42,243,40,29,41,189,39*78
+$GPGSV,3,2,10,31,25,302,41,02,25,086,38,09,19,135,29,04,19,046,28*71
+$GPGSV,3,3,10,32,08,316,25,20,05,337,*72
+$GPRMC,151001.000,A,5347.5158,N,00143.6108,W,3.75,296.37,140808,,,A*70
+$GPVTG,296.37,T,,M,3.75,N,6.9,K,A*0A
+$GPGGA,151002.000,5347.5162,N,00143.6121,W,1,09,0.9,151.6,M,47.9,M,,0000*47
+$GPRMC,151002.000,A,5347.5162,N,00143.6121,W,3.42,328.88,140808,,,A*75
+$GPVTG,328.88,T,,M,3.42,N,6.3,K,A*04
+$GPGGA,151003.000,5347.5167,N,00143.6125,W,1,09,0.9,151.7,M,47.9,M,,0000*46
+$GPRMC,151003.000,A,5347.5167,N,00143.6125,W,0.00,328.88,140808,,,A*70
+$GPVTG,328.88,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151004.000,5347.5170,N,00143.6126,W,1,09,0.9,151.4,M,47.9,M,,0000*47
+$GPRMC,151004.000,A,5347.5170,N,00143.6126,W,0.00,328.88,140808,,,A*72
+$GPVTG,328.88,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151005.000,5347.5173,N,00143.6124,W,1,09,0.9,151.7,M,47.9,M,,0000*44
+$GPRMC,151005.000,A,5347.5173,N,00143.6124,W,0.00,328.88,140808,,,A*72
+$GPVTG,328.88,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151006.000,5347.5179,N,00143.6121,W,1,09,0.9,152.2,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,04,02,14,31,32,,,,1.7,0.9,1.5*3B
+$GPGSV,3,1,10,30,79,264,30,12,53,078,37,14,42,243,32,29,41,189,36*76
+$GPGSV,3,2,10,31,25,302,37,02,25,086,35,09,19,135,30,04,19,046,38*74
+$GPGSV,3,3,10,32,08,316,24,20,05,337,21*70
+$GPRMC,151006.000,A,5347.5179,N,00143.6121,W,2.12,18.05,140808,,,A*4A
+$GPVTG,18.05,T,,M,2.12,N,3.9,K,A*3A
+$GPGGA,151007.000,5347.5192,N,00143.6114,W,1,09,0.9,152.9,M,47.9,M,,0000*47
+$GPRMC,151007.000,A,5347.5192,N,00143.6114,W,4.18,23.11,140808,,,A*49
+$GPVTG,23.11,T,,M,4.18,N,7.7,K,A*31
+$GPGGA,151008.000,5347.5212,N,00143.6102,W,1,08,1.0,153.2,M,47.9,M,,0000*47
+$GPRMC,151008.000,A,5347.5212,N,00143.6102,W,7.36,19.78,140808,,,A*43
+$GPVTG,19.78,T,,M,7.36,N,13.6,K,A*0C
+$GPGGA,151009.000,5347.5237,N,00143.6088,W,1,08,1.0,153.1,M,47.9,M,,0000*41
+$GPRMC,151009.000,A,5347.5237,N,00143.6088,W,9.33,16.79,140808,,,A*43
+$GPVTG,16.79,T,,M,9.33,N,17.3,K,A*08
+$GPGGA,151010.000,5347.5260,N,00143.6077,W,1,08,1.0,153.1,M,47.9,M,,0000*4B
+$GPRMC,151010.000,A,5347.5260,N,00143.6077,W,8.87,14.09,140808,,,A*42
+$GPVTG,14.09,T,,M,8.87,N,16.4,K,A*05
+$GPGGA,151011.000,5347.5282,N,00143.6068,W,1,09,0.9,153.2,M,47.9,M,,0000*42
+$GPGSA,A,3,29,09,30,12,04,02,14,31,32,,,,1.7,0.9,1.5*3B
+$GPGSV,3,1,10,30,79,264,32,12,53,078,39,14,42,243,33,29,41,189,28*74
+$GPGSV,3,2,10,31,25,302,27,02,25,086,33,09,19,135,28,04,19,046,27*74
+$GPGSV,3,3,10,32,08,316,15,20,05,337,*71
+$GPRMC,151011.000,A,5347.5282,N,00143.6068,W,8.20,10.70,140808,,,A*46
+$GPVTG,10.70,T,,M,8.20,N,15.2,K,A*07
+$GPGGA,151012.000,5347.5301,N,00143.6062,W,1,08,1.0,153.2,M,47.9,M,,0000*48
+$GPRMC,151012.000,A,5347.5301,N,00143.6062,W,7.40,8.22,140808,,,A*72
+$GPVTG,8.22,T,,M,7.40,N,13.7,K,A*33
+$GPGGA,151013.000,5347.5316,N,00143.6059,W,1,08,1.0,153.3,M,47.9,M,,0000*46
+$GPRMC,151013.000,A,5347.5316,N,00143.6059,W,6.23,8.10,140808,,,A*78
+$GPVTG,8.10,T,,M,6.23,N,11.5,K,A*36
+$GPGGA,151014.000,5347.5326,N,00143.6057,W,1,08,1.0,153.7,M,47.9,M,,0000*48
+$GPRMC,151014.000,A,5347.5326,N,00143.6057,W,4.27,5.59,140808,,,A*74
+$GPVTG,5.59,T,,M,4.27,N,7.9,K,A*0B
+$GPGGA,151015.000,5347.5332,N,00143.6059,W,1,08,1.0,154.2,M,47.9,M,,0000*40
+$GPRMC,151015.000,A,5347.5332,N,00143.6059,W,0.00,5.59,140808,,,A*7F
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151016.000,5347.5336,N,00143.6060,W,1,08,1.0,155.1,M,47.9,M,,0000*4F
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,30,12,53,078,37,14,42,243,36,29,41,189,35*71
+$GPGSV,3,2,10,31,25,302,41,02,25,086,25,09,19,135,35,04,19,046,36*7F
+$GPGSV,3,3,10,32,08,316,,20,05,337,*75
+$GPRMC,151016.000,A,5347.5336,N,00143.6060,W,0.00,5.59,140808,,,A*72
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151017.000,5347.5337,N,00143.6062,W,1,08,1.0,155.4,M,47.9,M,,0000*48
+$GPRMC,151017.000,A,5347.5337,N,00143.6062,W,0.00,5.59,140808,,,A*70
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151018.000,5347.5338,N,00143.6063,W,1,08,1.0,155.7,M,47.9,M,,0000*4A
+$GPRMC,151018.000,A,5347.5338,N,00143.6063,W,0.00,5.59,140808,,,A*71
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151019.000,5347.5338,N,00143.6065,W,1,08,1.0,156.1,M,47.9,M,,0000*48
+$GPRMC,151019.000,A,5347.5338,N,00143.6065,W,0.00,5.59,140808,,,A*76
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151020.000,5347.5339,N,00143.6065,W,1,08,1.0,156.7,M,47.9,M,,0000*45
+$GPRMC,151020.000,A,5347.5339,N,00143.6065,W,0.00,5.59,140808,,,A*7D
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151021.000,5347.5340,N,00143.6067,W,1,08,1.0,157.0,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,31,12,53,078,37,14,42,243,35,29,41,189,40*71
+$GPGSV,3,2,10,31,25,302,39,02,25,086,26,09,19,135,37,04,19,046,36*71
+$GPGSV,3,3,10,32,08,316,,20,05,337,17*73
+$GPRMC,151021.000,A,5347.5340,N,00143.6067,W,0.00,5.59,140808,,,A*70
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151022.000,5347.5340,N,00143.6068,W,1,08,1.0,157.3,M,47.9,M,,0000*41
+$GPRMC,151022.000,A,5347.5340,N,00143.6068,W,0.00,5.59,140808,,,A*7C
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151023.000,5347.5341,N,00143.6070,W,1,08,1.0,157.5,M,47.9,M,,0000*4E
+$GPRMC,151023.000,A,5347.5341,N,00143.6070,W,0.00,5.59,140808,,,A*75
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151024.000,5347.5341,N,00143.6070,W,1,08,1.0,157.8,M,47.9,M,,0000*44
+$GPRMC,151024.000,A,5347.5341,N,00143.6070,W,0.00,5.59,140808,,,A*72
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151025.000,5347.5342,N,00143.6072,W,1,08,1.0,157.9,M,47.9,M,,0000*45
+$GPRMC,151025.000,A,5347.5342,N,00143.6072,W,0.00,5.59,140808,,,A*72
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151026.000,5347.5343,N,00143.6072,W,1,08,1.0,158.3,M,47.9,M,,0000*42
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,32,12,53,078,37,14,42,243,35,29,41,189,40*72
+$GPGSV,3,2,10,31,25,302,38,02,25,086,26,09,19,135,37,04,19,046,36*70
+$GPGSV,3,3,10,32,08,316,,20,05,337,*75
+$GPRMC,151026.000,A,5347.5343,N,00143.6072,W,0.00,5.59,140808,,,A*70
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151027.000,5347.5344,N,00143.6072,W,1,08,1.0,158.9,M,47.9,M,,0000*4E
+$GPRMC,151027.000,A,5347.5344,N,00143.6072,W,0.00,5.59,140808,,,A*76
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151028.000,5347.5345,N,00143.6072,W,1,08,1.0,159.5,M,47.9,M,,0000*4D
+$GPRMC,151028.000,A,5347.5345,N,00143.6072,W,0.00,5.59,140808,,,A*78
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151029.000,5347.5346,N,00143.6073,W,1,08,1.0,160.0,M,47.9,M,,0000*41
+$GPRMC,151029.000,A,5347.5346,N,00143.6073,W,0.00,5.59,140808,,,A*7B
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151030.000,5347.5347,N,00143.6073,W,1,08,1.0,160.4,M,47.9,M,,0000*4C
+$GPRMC,151030.000,A,5347.5347,N,00143.6073,W,0.00,5.59,140808,,,A*72
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151031.000,5347.5349,N,00143.6074,W,1,08,1.0,160.8,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,32,12,53,078,37,14,42,243,20,29,41,189,35*74
+$GPGSV,3,2,10,31,25,302,44,02,25,086,26,09,19,135,37,04,19,046,37*7A
+$GPGSV,3,3,10,32,08,316,,20,05,337,15*71
+$GPRMC,151031.000,A,5347.5349,N,00143.6074,W,0.00,5.59,140808,,,A*7A
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151032.000,5347.5350,N,00143.6075,W,1,08,1.0,161.2,M,47.9,M,,0000*49
+$GPRMC,151032.000,A,5347.5350,N,00143.6075,W,0.00,5.59,140808,,,A*70
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151033.000,5347.5350,N,00143.6075,W,1,08,1.0,161.4,M,47.9,M,,0000*4E
+$GPRMC,151033.000,A,5347.5350,N,00143.6075,W,0.00,5.59,140808,,,A*71
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151034.000,5347.5353,N,00143.6075,W,1,08,1.0,161.5,M,47.9,M,,0000*4B
+$GPRMC,151034.000,A,5347.5353,N,00143.6075,W,0.00,5.59,140808,,,A*75
+$GPVTG,5.59,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151035.000,5347.5358,N,00143.6076,W,1,08,1.0,160.5,M,47.9,M,,0000*43
+$GPRMC,151035.000,A,5347.5358,N,00143.6076,W,1.93,353.26,140808,,,A*7F
+$GPVTG,353.26,T,,M,1.93,N,3.6,K,A*02
+$GPGGA,151036.000,5347.5364,N,00143.6078,W,1,08,1.0,160.3,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,32,12,53,078,37,14,42,243,28,29,41,189,37*7E
+$GPGSV,3,2,10,31,25,302,41,02,25,086,27,09,19,135,32,04,19,046,24*79
+$GPGSV,3,3,10,32,08,316,,20,05,337,*75
+$GPRMC,151036.000,A,5347.5364,N,00143.6078,W,0.00,353.26,140808,,,A*76
+$GPVTG,353.26,T,,M,0.00,N,0.0,K,A*0C
+$GPGGA,151037.000,5347.5369,N,00143.6079,W,1,08,1.0,159.5,M,47.9,M,,0000*46
+$GPRMC,151037.000,A,5347.5369,N,00143.6079,W,0.00,353.26,140808,,,A*7B
+$GPVTG,353.26,T,,M,0.00,N,0.0,K,A*0C
+$GPGGA,151038.000,5347.5374,N,00143.6083,W,1,08,1.0,159.5,M,47.9,M,,0000*40
+$GPRMC,151038.000,A,5347.5374,N,00143.6083,W,0.00,353.26,140808,,,A*7D
+$GPVTG,353.26,T,,M,0.00,N,0.0,K,A*0C
+$GPGGA,151039.000,5347.5380,N,00143.6091,W,1,08,1.0,158.9,M,47.9,M,,0000*44
+$GPRMC,151039.000,A,5347.5380,N,00143.6091,W,2.78,313.62,140808,,,A*7D
+$GPVTG,313.62,T,,M,2.78,N,5.1,K,A*01
+$GPGGA,151040.000,5347.5386,N,00143.6110,W,1,07,1.2,158.2,M,47.9,M,,0000*42
+$GPRMC,151040.000,A,5347.5386,N,00143.6110,W,4.80,288.83,140808,,,A*70
+$GPVTG,288.83,T,,M,4.80,N,8.9,K,A*09
+$GPGGA,151041.000,5347.5389,N,00143.6143,W,1,08,1.0,157.7,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,36,12,53,078,34,14,42,243,39,29,41,189,35*7B
+$GPGSV,3,2,10,31,25,302,38,02,25,086,38,09,19,135,32,04,19,046,27*7A
+$GPGSV,3,3,10,32,08,316,,20,05,337,16*72
+$GPRMC,151041.000,A,5347.5389,N,00143.6143,W,6.90,276.03,140808,,,A*72
+$GPVTG,276.03,T,,M,6.90,N,12.8,K,A*39
+$GPGGA,151042.000,5347.5389,N,00143.6189,W,1,08,1.0,157.0,M,47.9,M,,0000*4F
+$GPRMC,151042.000,A,5347.5389,N,00143.6189,W,9.72,269.88,140808,,,A*79
+$GPVTG,269.88,T,,M,9.72,N,18.0,K,A*35
+$GPGGA,151043.000,5347.5387,N,00143.6252,W,1,07,1.2,156.4,M,47.9,M,,0000*4D
+$GPRMC,151043.000,A,5347.5387,N,00143.6252,W,13.08,266.80,140808,,,A*42
+$GPVTG,266.80,T,,M,13.08,N,24.2,K,A*09
+$GPGGA,151044.000,5347.5384,N,00143.6325,W,1,08,1.0,155.5,M,47.9,M,,0000*47
+$GPRMC,151044.000,A,5347.5384,N,00143.6325,W,15.21,265.57,140808,,,A*43
+$GPVTG,265.57,T,,M,15.21,N,28.2,K,A*01
+$GPGGA,151045.000,5347.5379,N,00143.6401,W,1,09,0.9,154.5,M,47.9,M,,0000*4D
+$GPRMC,151045.000,A,5347.5379,N,00143.6401,W,16.05,265.96,140808,,,A*49
+$GPVTG,265.96,T,,M,16.05,N,29.7,K,A*0D
+$GPGGA,151046.000,5347.5374,N,00143.6480,W,1,09,0.9,153.8,M,47.9,M,,0000*40
+$GPGSA,A,3,29,09,30,12,04,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,79,264,38,12,53,078,30,14,42,243,38,29,41,189,41*73
+$GPGSV,3,2,10,31,25,302,43,02,25,086,43,09,19,135,30,04,19,046,32*7C
+$GPGSV,3,3,10,32,08,316,31,20,05,337,*77
+$GPRMC,151046.000,A,5347.5374,N,00143.6480,W,16.59,264.98,140808,,,A*48
+$GPVTG,264.98,T,,M,16.59,N,30.7,K,A*03
+$GPGGA,151047.000,5347.5370,N,00143.6562,W,1,09,0.9,153.0,M,47.9,M,,0000*40
+$GPRMC,151047.000,A,5347.5370,N,00143.6562,W,17.12,266.45,140808,,,A*4C
+$GPVTG,266.45,T,,M,17.12,N,31.7,K,A*0E
+$GPGGA,151048.000,5347.5367,N,00143.6646,W,1,08,1.1,152.4,M,47.9,M,,0000*41
+$GPRMC,151048.000,A,5347.5367,N,00143.6646,W,17.67,267.39,140808,,,A*48
+$GPVTG,267.39,T,,M,17.67,N,32.7,K,A*05
+$GPGGA,151049.000,5347.5364,N,00143.6732,W,1,08,1.1,151.7,M,47.9,M,,0000*41
+$GPRMC,151049.000,A,5347.5364,N,00143.6732,W,18.21,266.92,140808,,,A*45
+$GPVTG,266.92,T,,M,18.21,N,33.7,K,A*09
+$GPGGA,151050.000,5347.5359,N,00143.6822,W,1,08,1.1,151.1,M,47.9,M,,0000*4F
+$GPRMC,151050.000,A,5347.5359,N,00143.6822,W,18.78,266.59,140808,,,A*46
+$GPVTG,266.59,T,,M,18.78,N,34.8,K,A*0A
+$GPGGA,151051.000,5347.5354,N,00143.6913,W,1,08,1.0,150.5,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,30,12,04,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,79,264,38,12,53,078,30,14,42,243,39,29,41,189,43*70
+$GPGSV,3,2,10,31,25,302,28,02,25,086,43,09,19,135,29,04,19,046,32*79
+$GPGSV,3,3,10,32,08,316,21,20,05,337,*76
+$GPRMC,151051.000,A,5347.5354,N,00143.6913,W,19.29,265.90,140808,,,A*4A
+$GPVTG,265.90,T,,M,19.29,N,35.7,K,A*07
+$GPGGA,151052.000,5347.5350,N,00143.7006,W,1,07,1.2,149.8,M,47.9,M,,0000*47
+$GPRMC,151052.000,A,5347.5350,N,00143.7006,W,19.72,266.28,140808,,,A*4F
+$GPVTG,266.28,T,,M,19.72,N,36.5,K,A*08
+$GPGGA,151053.000,5347.5346,N,00143.7103,W,1,07,1.2,148.8,M,47.9,M,,0000*44
+$GPRMC,151053.000,A,5347.5346,N,00143.7103,W,20.37,268.50,140808,,,A*47
+$GPVTG,268.50,T,,M,20.37,N,37.7,K,A*01
+$GPGGA,151054.000,5347.5344,N,00143.7202,W,1,07,1.2,148.2,M,47.9,M,,0000*49
+$GPRMC,151054.000,A,5347.5344,N,00143.7202,W,20.76,266.43,140808,,,A*49
+$GPVTG,266.43,T,,M,20.76,N,38.5,K,A*05
+$GPGGA,151055.000,5347.5341,N,00143.7301,W,1,05,1.4,147.5,M,47.9,M,,0000*43
+$GPRMC,151055.000,A,5347.5341,N,00143.7301,W,20.97,269.24,140808,,,A*4E
+$GPVTG,269.24,T,,M,20.97,N,38.8,K,A*09
+$GPGGA,151056.000,5347.5340,N,00143.7402,W,1,05,1.4,146.7,M,47.9,M,,0000*46
+$GPGSA,A,3,29,30,02,14,31,,,,,,,,2.8,1.4,2.5*37
+$GPGSV,3,1,10,30,79,264,38,12,53,078,,14,42,243,39,29,41,189,44*74
+$GPGSV,3,2,10,31,25,302,43,02,25,086,43,09,19,135,16,04,19,046,*79
+$GPGSV,3,3,10,32,08,316,,20,05,337,*75
+$GPRMC,151056.000,A,5347.5340,N,00143.7402,W,21.36,270.34,140808,,,A*4B
+$GPVTG,270.34,T,,M,21.36,N,39.6,K,A*05
+$GPGGA,151057.000,5347.5339,N,00143.7505,W,1,05,1.4,146.0,M,47.9,M,,0000*48
+$GPRMC,151057.000,A,5347.5339,N,00143.7505,W,21.74,269.40,140808,,,A*4F
+$GPVTG,269.40,T,,M,21.74,N,40.3,K,A*03
+$GPGGA,151058.000,5347.5338,N,00143.7610,W,1,05,1.4,145.4,M,47.9,M,,0000*46
+$GPRMC,151058.000,A,5347.5338,N,00143.7610,W,22.14,269.02,140808,,,A*45
+$GPVTG,269.02,T,,M,22.14,N,41.0,K,A*02
+$GPGGA,151059.000,5347.5337,N,00143.7716,W,1,05,1.4,144.7,M,47.9,M,,0000*4D
+$GPRMC,151059.000,A,5347.5337,N,00143.7716,W,22.51,269.96,140808,,,A*40
+$GPVTG,269.96,T,,M,22.51,N,41.7,K,A*09
+$GPGGA,151100.000,5347.5336,N,00143.7824,W,1,05,1.4,144.1,M,47.9,M,,0000*49
+$GPRMC,151100.000,A,5347.5336,N,00143.7824,W,22.90,269.88,140808,,,A*40
+$GPVTG,269.88,T,,M,22.90,N,42.4,K,A*0B
+$GPGGA,151101.000,5347.5335,N,00143.7934,W,1,07,1.2,143.5,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,30,12,02,14,31,04,,,,,,2.4,1.2,2.1*3E
+$GPGSV,3,1,10,30,79,264,37,12,53,078,27,14,42,243,37,29,41,189,43*77
+$GPGSV,3,2,10,31,25,302,43,02,25,086,43,09,19,135,19,04,19,046,33*76
+$GPGSV,3,3,10,32,08,316,20,20,05,337,21*74
+$GPRMC,151101.000,A,5347.5335,N,00143.7934,W,23.24,269.17,140808,,,A*4A
+$GPVTG,269.17,T,,M,23.24,N,43.0,K,A*06
+$GPGGA,151102.000,5347.5334,N,00143.8044,W,1,07,1.2,142.9,M,47.9,M,,0000*42
+$GPRMC,151102.000,A,5347.5334,N,00143.8044,W,23.34,269.50,140808,,,A*4B
+$GPVTG,269.50,T,,M,23.34,N,43.2,K,A*06
+$GPGGA,151103.000,5347.5333,N,00143.8155,W,1,08,1.0,142.5,M,47.9,M,,0000*44
+$GPRMC,151103.000,A,5347.5333,N,00143.8155,W,23.40,269.49,140808,,,A*47
+$GPVTG,269.49,T,,M,23.40,N,43.3,K,A*0C
+$GPGGA,151104.000,5347.5332,N,00143.8267,W,1,07,1.1,141.8,M,47.9,M,,0000*40
+$GPRMC,151104.000,A,5347.5332,N,00143.8267,W,23.68,269.36,140808,,,A*41
+$GPVTG,269.36,T,,M,23.68,N,43.8,K,A*05
+$GPGGA,151105.000,5347.5331,N,00143.8381,W,1,06,1.3,141.2,M,47.9,M,,0000*42
+$GPRMC,151105.000,A,5347.5331,N,00143.8381,W,24.03,269.96,140808,,,A*4A
+$GPVTG,269.96,T,,M,24.03,N,44.5,K,A*0F
+$GPGGA,151106.000,5347.5331,N,00143.8496,W,1,06,1.3,140.7,M,47.9,M,,0000*44
+$GPGSA,A,3,29,30,04,02,14,31,,,,,,,2.7,1.3,2.4*3A
+$GPGSV,3,1,10,30,79,264,37,12,53,078,19,14,42,243,35,29,41,189,44*7F
+$GPGSV,3,2,10,31,25,302,43,02,25,086,43,09,19,135,23,04,19,046,30*7C
+$GPGSV,3,3,10,32,08,316,,20,05,337,21*76
+$GPRMC,151106.000,A,5347.5331,N,00143.8496,W,24.38,270.91,140808,,,A*4F
+$GPVTG,270.91,T,,M,24.38,N,45.1,K,A*0D
+$GPGGA,151107.000,5347.5333,N,00143.8612,W,1,07,1.1,140.5,M,47.9,M,,0000*48
+$GPRMC,151107.000,A,5347.5333,N,00143.8612,W,24.72,271.55,140808,,,A*45
+$GPVTG,271.55,T,,M,24.72,N,45.8,K,A*03
+$GPGGA,151108.000,5347.5334,N,00143.8730,W,1,07,1.1,140.1,M,47.9,M,,0000*45
+$GPRMC,151108.000,A,5347.5334,N,00143.8730,W,25.07,270.44,140808,,,A*4E
+$GPVTG,270.44,T,,M,25.07,N,46.4,K,A*0E
+$GPGGA,151109.000,5347.5334,N,00143.8850,W,1,07,1.1,139.6,M,47.9,M,,0000*44
+$GPRMC,151109.000,A,5347.5334,N,00143.8850,W,25.32,269.84,140808,,,A*44
+$GPVTG,269.84,T,,M,25.32,N,46.9,K,A*01
+$GPGGA,151110.000,5347.5333,N,00143.8970,W,1,07,1.1,139.0,M,47.9,M,,0000*4E
+$GPRMC,151110.000,A,5347.5333,N,00143.8970,W,25.38,269.39,140808,,,A*44
+$GPVTG,269.39,T,,M,25.38,N,47.0,K,A*05
+$GPGGA,151111.000,5347.5332,N,00143.9089,W,1,06,1.3,138.4,M,47.9,M,,0000*46
+$GPGSA,A,3,29,09,30,02,14,31,,,,,,,2.4,1.3,2.1*31
+$GPGSV,3,1,10,30,79,264,37,12,53,078,,14,42,243,35,29,41,189,36*72
+$GPGSV,3,2,10,31,25,302,44,02,25,086,44,09,19,135,29,04,19,046,23*74
+$GPGSV,3,3,10,32,08,316,,20,05,337,22*75
+$GPRMC,151111.000,A,5347.5332,N,00143.9089,W,25.29,270.14,140808,,,A*4D
+$GPVTG,270.14,T,,M,25.29,N,46.8,K,A*0B
+$GPGGA,151112.000,5347.5333,N,00143.9209,W,1,07,1.1,137.8,M,47.9,M,,0000*4E
+$GPRMC,151112.000,A,5347.5333,N,00143.9209,W,25.31,271.56,140808,,,A*4B
+$GPVTG,271.56,T,,M,25.31,N,46.9,K,A*04
+$GPGGA,151113.000,5347.5335,N,00143.9329,W,1,08,1.0,137.4,M,47.9,M,,0000*48
+$GPRMC,151113.000,A,5347.5335,N,00143.9329,W,25.52,272.51,140808,,,A*4E
+$GPVTG,272.51,T,,M,25.52,N,47.3,K,A*0E
+$GPGGA,151114.000,5347.5339,N,00143.9450,W,1,08,1.0,136.9,M,47.9,M,,0000*46
+$GPRMC,151114.000,A,5347.5339,N,00143.9450,W,25.72,273.38,140808,,,A*40
+$GPVTG,273.38,T,,M,25.72,N,47.6,K,A*07
+$GPGGA,151115.000,5347.5343,N,00143.9571,W,1,09,0.9,136.7,M,47.9,M,,0000*4F
+$GPRMC,151115.000,A,5347.5343,N,00143.9571,W,25.87,273.35,140808,,,A*49
+$GPVTG,273.35,T,,M,25.87,N,47.9,K,A*0F
+$GPGGA,151116.000,5347.5348,N,00143.9694,W,1,09,0.9,136.3,M,47.9,M,,0000*4B
+$GPGSA,A,3,29,09,30,12,32,02,14,31,04,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,80,266,37,12,52,079,33,29,42,189,40,14,41,242,35*76
+$GPGSV,3,2,10,31,26,302,43,02,26,084,44,04,18,045,23,09,18,136,29*71
+$GPGSV,3,3,10,32,08,315,32,20,05,336,24*70
+$GPRMC,151116.000,A,5347.5348,N,00143.9694,W,25.98,273.52,140808,,,A*46
+$GPVTG,273.52,T,,M,25.98,N,48.1,K,A*07
+$GPGGA,151117.000,5347.5352,N,00143.9815,W,1,09,0.9,135.8,M,47.9,M,,0000*4E
+$GPRMC,151117.000,A,5347.5352,N,00143.9815,W,25.77,273.13,140808,,,A*4F
+$GPVTG,273.13,T,,M,25.77,N,47.7,K,A*0A
+$GPGGA,151118.000,5347.5357,N,00143.9933,W,1,08,1.0,135.7,M,47.9,M,,0000*47
+$GPRMC,151118.000,A,5347.5357,N,00143.9933,W,25.19,274.94,140808,,,A*40
+$GPVTG,274.94,T,,M,25.19,N,46.7,K,A*0B
+$GPGGA,151119.000,5347.5362,N,00144.0050,W,1,08,1.0,135.5,M,47.9,M,,0000*40
+$GPRMC,151119.000,A,5347.5362,N,00144.0050,W,24.84,273.96,140808,,,A*45
+$GPVTG,273.96,T,,M,24.84,N,46.0,K,A*0C
+$GPGGA,151120.000,5347.5367,N,00144.0166,W,1,09,0.9,135.1,M,47.9,M,,0000*46
+$GPRMC,151120.000,A,5347.5367,N,00144.0166,W,24.65,274.14,140808,,,A*4C
+$GPVTG,274.14,T,,M,24.65,N,45.7,K,A*0A
+$GPGGA,151121.000,5347.5373,N,00144.0280,W,1,09,0.9,134.7,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,32,02,14,31,04,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,80,266,37,12,52,079,33,29,42,189,41,14,41,242,35*77
+$GPGSV,3,2,10,31,26,302,43,02,26,084,44,04,18,045,27,09,18,136,28*74
+$GPGSV,3,3,10,32,08,315,38,20,05,336,27*79
+$GPRMC,151121.000,A,5347.5373,N,00144.0280,W,24.41,274.55,140808,,,A*40
+$GPVTG,274.55,T,,M,24.41,N,45.2,K,A*0C
+$GPGGA,151122.000,5347.5378,N,00144.0394,W,1,09,0.9,134.3,M,47.9,M,,0000*46
+$GPRMC,151122.000,A,5347.5378,N,00144.0394,W,24.28,275.07,140808,,,A*45
+$GPVTG,275.07,T,,M,24.28,N,45.0,K,A*07
+$GPGGA,151123.000,5347.5384,N,00144.0508,W,1,09,0.9,134.0,M,47.9,M,,0000*44
+$GPRMC,151123.000,A,5347.5384,N,00144.0508,W,24.23,275.04,140808,,,A*4C
+$GPVTG,275.04,T,,M,24.23,N,44.9,K,A*07
+$GPGGA,151124.000,5347.5391,N,00144.0621,W,1,09,0.9,133.7,M,47.9,M,,0000*4F
+$GPRMC,151124.000,A,5347.5391,N,00144.0621,W,24.14,275.82,140808,,,A*4D
+$GPVTG,275.82,T,,M,24.14,N,44.7,K,A*03
+$GPGGA,151125.000,5347.5397,N,00144.0734,W,1,08,1.0,133.3,M,47.9,M,,0000*40
+$GPRMC,151125.000,A,5347.5397,N,00144.0734,W,23.99,275.34,140808,,,A*40
+$GPVTG,275.34,T,,M,23.99,N,44.4,K,A*0F
+$GPGGA,151126.000,5347.5404,N,00144.0844,W,1,09,0.9,133.1,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,09,30,12,32,02,14,31,04,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,80,266,37,12,52,079,34,29,42,189,33,14,41,242,38*78
+$GPGSV,3,2,10,31,26,302,42,02,26,084,43,04,18,045,28,09,18,136,29*7C
+$GPGSV,3,3,10,32,08,315,18,20,05,336,20*7C
+$GPRMC,151126.000,A,5347.5404,N,00144.0844,W,23.63,276.15,140808,,,A*43
+$GPVTG,276.15,T,,M,23.63,N,43.8,K,A*01
+$GPGGA,151127.000,5347.5410,N,00144.0953,W,1,09,0.9,132.9,M,47.9,M,,0000*47
+$GPRMC,151127.000,A,5347.5410,N,00144.0953,W,23.30,274.84,140808,,,A*4C
+$GPVTG,274.84,T,,M,23.30,N,43.1,K,A*04
+$GPGGA,151128.000,5347.5417,N,00144.1062,W,1,07,1.2,132.7,M,47.9,M,,0000*4F
+$GPRMC,151128.000,A,5347.5417,N,00144.1062,W,23.20,275.77,140808,,,A*42
+$GPVTG,275.77,T,,M,23.20,N,43.0,K,A*09
+$GPGGA,151129.000,5347.5424,N,00144.1170,W,1,07,1.1,132.7,M,47.9,M,,0000*4F
+$GPRMC,151129.000,A,5347.5424,N,00144.1170,W,23.14,275.78,140808,,,A*49
+$GPVTG,275.78,T,,M,23.14,N,42.8,K,A*08
+$GPGGA,151130.000,5347.5432,N,00144.1277,W,1,07,1.1,132.7,M,47.9,M,,0000*44
+$GPRMC,151130.000,A,5347.5432,N,00144.1277,W,23.06,276.38,140808,,,A*46
+$GPVTG,276.38,T,,M,23.06,N,42.7,K,A*03
+$GPGGA,151131.000,5347.5441,N,00144.1384,W,1,07,1.1,132.6,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,09,30,12,02,14,31,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,10,30,80,266,36,12,52,079,34,29,42,189,40,14,41,242,40*72
+$GPGSV,3,2,10,31,26,302,42,02,26,084,43,04,18,045,19,09,18,136,35*73
+$GPGSV,3,3,10,32,08,315,21,20,05,336,18*7D
+$GPRMC,151131.000,A,5347.5441,N,00144.1384,W,22.98,277.55,140808,,,A*42
+$GPVTG,277.55,T,,M,22.98,N,42.6,K,A*0E
+$GPGGA,151132.000,5347.5450,N,00144.1491,W,1,07,1.1,132.5,M,47.9,M,,0000*4E
+$GPRMC,151132.000,A,5347.5450,N,00144.1491,W,22.93,278.07,140808,,,A*41
+$GPVTG,278.07,T,,M,22.93,N,42.5,K,A*0E
+$GPGGA,151133.000,5347.5460,N,00144.1597,W,1,08,1.0,132.4,M,47.9,M,,0000*44
+$GPRMC,151133.000,A,5347.5460,N,00144.1597,W,22.90,279.02,140808,,,A*43
+$GPVTG,279.02,T,,M,22.90,N,42.4,K,A*08
+$GPGGA,151134.000,5347.5471,N,00144.1703,W,1,07,1.1,132.3,M,47.9,M,,0000*45
+$GPRMC,151134.000,A,5347.5471,N,00144.1703,W,22.84,279.41,140808,,,A*49
+$GPVTG,279.41,T,,M,22.84,N,42.3,K,A*0D
+$GPGGA,151135.000,5347.5481,N,00144.1808,W,1,07,1.1,132.1,M,47.9,M,,0000*4D
+$GPRMC,151135.000,A,5347.5481,N,00144.1808,W,22.72,278.80,140808,,,A*46
+$GPVTG,278.80,T,,M,22.72,N,42.1,K,A*0A
+$GPGGA,151136.000,5347.5490,N,00144.1913,W,1,07,1.1,131.9,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,02,14,31,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,10,30,80,266,36,12,52,079,34,29,42,189,39,14,41,242,41*7D
+$GPGSV,3,2,10,31,26,302,41,02,26,084,43,04,18,045,,09,18,136,34*79
+$GPGSV,3,3,10,32,08,315,,20,05,336,24*71
+$GPRMC,151136.000,A,5347.5490,N,00144.1913,W,22.49,276.51,140808,,,A*44
+$GPVTG,276.51,T,,M,22.49,N,41.7,K,A*05
+$GPGGA,151137.000,5347.5497,N,00144.2016,W,1,08,1.0,131.7,M,47.9,M,,0000*47
+$GPRMC,151137.000,A,5347.5497,N,00144.2016,W,22.15,276.61,140808,,,A*47
+$GPVTG,276.61,T,,M,22.15,N,41.0,K,A*08
+$GPGGA,151138.000,5347.5505,N,00144.2116,W,1,08,1.0,131.5,M,47.9,M,,0000*41
+$GPRMC,151138.000,A,5347.5505,N,00144.2116,W,21.48,277.82,140808,,,A*44
+$GPVTG,277.82,T,,M,21.48,N,39.8,K,A*08
+$GPGGA,151139.000,5347.5513,N,00144.2211,W,1,07,1.1,131.3,M,47.9,M,,0000*4B
+$GPRMC,151139.000,A,5347.5513,N,00144.2211,W,20.45,277.65,140808,,,A*43
+$GPVTG,277.65,T,,M,20.45,N,37.9,K,A*02
+$GPGGA,151140.000,5347.5521,N,00144.2302,W,1,07,1.1,131.1,M,47.9,M,,0000*45
+$GPRMC,151140.000,A,5347.5521,N,00144.2302,W,19.52,277.42,140808,,,A*46
+$GPVTG,277.42,T,,M,19.52,N,36.1,K,A*02
+$GPGGA,151141.000,5347.5528,N,00144.2389,W,1,07,1.1,130.8,M,47.9,M,,0000*46
+$GPGSA,A,3,29,09,30,12,02,14,31,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,10,30,80,266,35,12,52,079,35,29,42,189,39,14,41,242,42*7C
+$GPGSV,3,2,10,31,26,302,41,02,26,084,43,04,18,045,13,09,18,136,34*7B
+$GPGSV,3,3,10,32,08,315,,20,05,336,18*7E
+$GPRMC,151141.000,A,5347.5528,N,00144.2389,W,18.79,277.75,140808,,,A*41
+$GPVTG,277.75,T,,M,18.79,N,34.8,K,A*05
+$GPGGA,151142.000,5347.5535,N,00144.2471,W,1,08,1.0,130.6,M,47.9,M,,0000*49
+$GPRMC,151142.000,A,5347.5535,N,00144.2471,W,17.72,278.48,140808,,,A*4B
+$GPVTG,278.48,T,,M,17.72,N,32.8,K,A*06
+$GPGGA,151143.000,5347.5542,N,00144.2541,W,1,09,0.9,130.5,M,47.9,M,,0000*40
+$GPRMC,151143.000,A,5347.5542,N,00144.2541,W,15.26,278.50,140808,,,A*42
+$GPVTG,278.50,T,,M,15.26,N,28.3,K,A*0C
+$GPGGA,151144.000,5347.5548,N,00144.2600,W,1,08,1.0,130.6,M,47.9,M,,0000*41
+$GPRMC,151144.000,A,5347.5548,N,00144.2600,W,12.92,278.62,140808,,,A*40
+$GPVTG,278.62,T,,M,12.92,N,23.9,K,A*04
+$GPGGA,151145.000,5347.5553,N,00144.2657,W,1,08,1.0,130.5,M,47.9,M,,0000*4B
+$GPRMC,151145.000,A,5347.5553,N,00144.2657,W,12.37,278.79,140808,,,A*4C
+$GPVTG,278.79,T,,M,12.37,N,22.9,K,A*00
+$GPGGA,151146.000,5347.5559,N,00144.2716,W,1,09,0.9,130.2,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,266,35,12,52,079,35,29,42,189,39,14,41,241,43*7F
+$GPGSV,3,2,10,31,27,302,41,02,26,084,43,04,18,045,25,09,17,136,35*71
+$GPGSV,3,3,10,32,08,315,27,20,05,336,13*70
+$GPRMC,151146.000,A,5347.5559,N,00144.2716,W,12.67,279.33,140808,,,A*4B
+$GPVTG,279.33,T,,M,12.67,N,23.5,K,A*07
+$GPGGA,151147.000,5347.5565,N,00144.2776,W,1,09,0.9,130.0,M,47.9,M,,0000*42
+$GPRMC,151147.000,A,5347.5565,N,00144.2776,W,13.13,279.29,140808,,,A*4A
+$GPVTG,279.29,T,,M,13.13,N,24.3,K,A*0F
+$GPGGA,151148.000,5347.5571,N,00144.2839,W,1,09,0.9,129.7,M,47.9,M,,0000*43
+$GPRMC,151148.000,A,5347.5571,N,00144.2839,W,13.61,279.05,140808,,,A*4F
+$GPVTG,279.05,T,,M,13.61,N,25.2,K,A*04
+$GPGGA,151149.000,5347.5578,N,00144.2904,W,1,09,0.9,129.3,M,47.9,M,,0000*40
+$GPRMC,151149.000,A,5347.5578,N,00144.2904,W,14.08,279.51,140808,,,A*41
+$GPVTG,279.51,T,,M,14.08,N,26.1,K,A*0D
+$GPGGA,151150.000,5347.5584,N,00144.2971,W,1,09,0.9,128.9,M,47.9,M,,0000*42
+$GPRMC,151150.000,A,5347.5584,N,00144.2971,W,14.51,280.00,140808,,,A*46
+$GPVTG,280.00,T,,M,14.51,N,26.9,K,A*0B
+$GPGGA,151151.000,5347.5591,N,00144.3047,W,1,08,1.0,128.6,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,09,04,30,12,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,81,266,37,12,52,079,35,29,42,189,38,14,41,241,43*7C
+$GPGSV,3,2,10,31,27,302,40,02,26,084,43,04,18,045,29,09,17,136,28*70
+$GPGSV,3,3,10,32,08,315,23,20,05,336,17*70
+$GPRMC,151151.000,A,5347.5591,N,00144.3047,W,16.08,278.08,140808,,,A*4F
+$GPVTG,278.08,T,,M,16.08,N,29.8,K,A*04
+$GPGGA,151152.000,5347.5598,N,00144.3134,W,1,09,0.9,128.2,M,47.9,M,,0000*4E
+$GPRMC,151152.000,A,5347.5598,N,00144.3134,W,18.50,277.63,140808,,,A*41
+$GPVTG,277.63,T,,M,18.50,N,34.3,K,A*02
+$GPGGA,151153.000,5347.5606,N,00144.3228,W,1,08,1.0,127.7,M,47.9,M,,0000*46
+$GPRMC,151153.000,A,5347.5606,N,00144.3228,W,20.10,277.68,140808,,,A*4E
+$GPVTG,277.68,T,,M,20.10,N,37.2,K,A*04
+$GPGGA,151154.000,5347.5613,N,00144.3325,W,1,08,1.0,127.0,M,47.9,M,,0000*4E
+$GPRMC,151154.000,A,5347.5613,N,00144.3325,W,20.90,278.02,140808,,,A*4A
+$GPVTG,278.02,T,,M,20.90,N,38.7,K,A*05
+$GPGGA,151155.000,5347.5622,N,00144.3425,W,1,08,1.0,126.4,M,47.9,M,,0000*4F
+$GPRMC,151155.000,A,5347.5622,N,00144.3425,W,21.45,278.49,140808,,,A*48
+$GPVTG,278.49,T,,M,21.45,N,39.7,K,A*02
+$GPGGA,151156.000,5347.5631,N,00144.3531,W,1,08,1.0,125.7,M,47.9,M,,0000*4A
+$GPGSA,A,3,29,09,30,12,02,14,31,32,,,,,1.8,1.0,1.4*39
+$GPGSV,3,1,10,30,81,266,35,12,52,079,35,29,42,189,40,14,41,241,43*71
+$GPGSV,3,2,10,31,27,302,41,02,26,084,43,04,18,045,,09,17,136,20*72
+$GPGSV,3,3,10,32,08,315,38,20,05,336,17*7A
+$GPRMC,151156.000,A,5347.5631,N,00144.3531,W,22.65,279.33,140808,,,A*40
+$GPVTG,279.33,T,,M,22.65,N,41.9,K,A*0E
+$GPGGA,151157.000,5347.5642,N,00144.3644,W,1,09,0.9,125.0,M,47.9,M,,0000*40
+$GPRMC,151157.000,A,5347.5642,N,00144.3644,W,24.19,279.37,140808,,,A*4D
+$GPVTG,279.37,T,,M,24.19,N,44.8,K,A*03
+$GPGGA,151158.000,5347.5653,N,00144.3760,W,1,09,0.9,124.3,M,47.9,M,,0000*4A
+$GPRMC,151158.000,A,5347.5653,N,00144.3760,W,25.05,279.45,140808,,,A*4C
+$GPVTG,279.45,T,,M,25.05,N,46.4,K,A*04
+$GPGGA,151159.000,5347.5664,N,00144.3878,W,1,09,0.9,123.5,M,47.9,M,,0000*48
+$GPRMC,151159.000,A,5347.5664,N,00144.3878,W,25.38,279.53,140808,,,A*46
+$GPVTG,279.53,T,,M,25.38,N,47.0,K,A*08
+$GPGGA,151200.000,5347.5676,N,00144.3997,W,1,09,0.9,122.9,M,47.9,M,,0000*49
+$GPRMC,151200.000,A,5347.5676,N,00144.3997,W,25.55,279.82,140808,,,A*4D
+$GPVTG,279.82,T,,M,25.55,N,47.3,K,A*0C
+$GPGGA,151201.000,5347.5688,N,00144.4116,W,1,09,0.9,122.2,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,266,35,12,52,079,35,29,42,189,40,14,41,241,43*71
+$GPGSV,3,2,10,31,27,302,41,02,26,084,42,04,18,045,28,09,17,136,19*73
+$GPGSV,3,3,10,32,08,315,37,20,05,336,*73
+$GPRMC,151201.000,A,5347.5688,N,00144.4116,W,25.56,280.15,140808,,,A*40
+$GPVTG,280.15,T,,M,25.56,N,47.3,K,A*07
+$GPGGA,151202.000,5347.5701,N,00144.4234,W,1,09,0.9,121.4,M,47.9,M,,0000*41
+$GPRMC,151202.000,A,5347.5701,N,00144.4234,W,25.54,280.43,140808,,,A*41
+$GPVTG,280.43,T,,M,25.54,N,47.3,K,A*06
+$GPGGA,151203.000,5347.5713,N,00144.4348,W,1,09,0.9,120.6,M,47.9,M,,0000*4A
+$GPRMC,151203.000,A,5347.5713,N,00144.4348,W,24.61,280.59,140808,,,A*45
+$GPVTG,280.59,T,,M,24.61,N,45.6,K,A*0D
+$GPGGA,151204.000,5347.5725,N,00144.4448,W,1,09,0.9,120.0,M,47.9,M,,0000*49
+$GPRMC,151204.000,A,5347.5725,N,00144.4448,W,21.65,280.87,140808,,,A*42
+$GPVTG,280.87,T,,M,21.65,N,40.1,K,A*0D
+$GPGGA,151205.000,5347.5734,N,00144.4528,W,1,09,0.9,119.4,M,47.9,M,,0000*41
+$GPRMC,151205.000,A,5347.5734,N,00144.4528,W,17.53,280.74,140808,,,A*48
+$GPVTG,280.74,T,,M,17.53,N,32.5,K,A*00
+$GPGGA,151206.000,5347.5742,N,00144.4590,W,1,09,0.9,118.9,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,266,31,12,52,079,35,29,42,189,40,14,41,241,44*72
+$GPGSV,3,2,10,31,27,302,41,02,26,084,42,04,18,045,27,09,17,136,25*73
+$GPGSV,3,3,10,32,08,315,44,20,05,336,22*77
+$GPRMC,151206.000,A,5347.5742,N,00144.4590,W,13.85,280.73,140808,,,A*41
+$GPVTG,280.73,T,,M,13.85,N,25.7,K,A*0C
+$GPGGA,151207.000,5347.5747,N,00144.4639,W,1,08,1.2,118.4,M,47.9,M,,0000*4E
+$GPRMC,151207.000,A,5347.5747,N,00144.4639,W,10.78,279.32,140808,,,A*47
+$GPVTG,279.32,T,,M,10.78,N,20.0,K,A*0C
+$GPGGA,151208.000,5347.5751,N,00144.4674,W,1,08,1.2,118.1,M,47.9,M,,0000*4A
+$GPRMC,151208.000,A,5347.5751,N,00144.4674,W,7.94,278.29,140808,,,A*79
+$GPVTG,278.29,T,,M,7.94,N,14.7,K,A*33
+$GPGGA,151209.000,5347.5754,N,00144.4699,W,1,08,1.2,117.8,M,47.9,M,,0000*4B
+$GPRMC,151209.000,A,5347.5754,N,00144.4699,W,5.72,277.19,140808,,,A*78
+$GPVTG,277.19,T,,M,5.72,N,10.6,K,A*30
+$GPGGA,151210.000,5347.5755,N,00144.4716,W,1,09,0.9,117.6,M,47.9,M,,0000*41
+$GPRMC,151210.000,A,5347.5755,N,00144.4716,W,3.80,274.98,140808,,,A*76
+$GPVTG,274.98,T,,M,3.80,N,7.0,K,A*01
+$GPGGA,151211.000,5347.5756,N,00144.4722,W,1,09,0.9,117.5,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,266,32,12,52,079,35,29,42,189,39,14,41,241,44*7F
+$GPGSV,3,2,10,31,27,302,40,02,26,084,42,04,18,045,27,09,17,136,28*7F
+$GPGSV,3,3,10,32,08,315,44,20,05,336,26*73
+$GPRMC,151211.000,A,5347.5756,N,00144.4722,W,0.00,274.98,140808,,,A*78
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151212.000,5347.5756,N,00144.4722,W,1,09,0.9,117.3,M,47.9,M,,0000*42
+$GPRMC,151212.000,A,5347.5756,N,00144.4722,W,0.00,274.98,140808,,,A*7B
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151213.000,5347.5756,N,00144.4721,W,1,09,0.9,117.3,M,47.9,M,,0000*40
+$GPRMC,151213.000,A,5347.5756,N,00144.4721,W,0.00,274.98,140808,,,A*79
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151214.000,5347.5756,N,00144.4720,W,1,09,0.9,117.2,M,47.9,M,,0000*47
+$GPRMC,151214.000,A,5347.5756,N,00144.4720,W,0.00,274.98,140808,,,A*7F
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151215.000,5347.5756,N,00144.4718,W,1,09,0.9,117.1,M,47.9,M,,0000*4E
+$GPRMC,151215.000,A,5347.5756,N,00144.4718,W,0.00,274.98,140808,,,A*75
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151216.000,5347.5756,N,00144.4717,W,1,09,0.9,117.0,M,47.9,M,,0000*43
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,266,32,12,52,079,35,29,42,189,40,14,41,241,44*71
+$GPGSV,3,2,10,31,27,302,39,02,26,084,42,04,18,045,27,09,17,136,28*71
+$GPGSV,3,3,10,32,08,315,44,20,05,336,25*70
+$GPRMC,151216.000,A,5347.5756,N,00144.4717,W,0.00,274.98,140808,,,A*79
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151217.000,5347.5755,N,00144.4717,W,1,09,0.9,116.9,M,47.9,M,,0000*49
+$GPRMC,151217.000,A,5347.5755,N,00144.4717,W,0.00,274.98,140808,,,A*7B
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151218.000,5347.5755,N,00144.4716,W,1,09,0.9,116.9,M,47.9,M,,0000*47
+$GPRMC,151218.000,A,5347.5755,N,00144.4716,W,0.00,274.98,140808,,,A*75
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151219.000,5347.5755,N,00144.4715,W,1,09,0.9,116.8,M,47.9,M,,0000*44
+$GPRMC,151219.000,A,5347.5755,N,00144.4715,W,0.00,274.98,140808,,,A*77
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151220.000,5347.5756,N,00144.4719,W,1,09,0.9,116.6,M,47.9,M,,0000*4F
+$GPRMC,151220.000,A,5347.5756,N,00144.4719,W,0.00,274.98,140808,,,A*72
+$GPVTG,274.98,T,,M,0.00,N,0.0,K,A*0D
+$GPGGA,151221.000,5347.5759,N,00144.4738,W,1,09,0.9,116.9,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,266,32,12,52,079,35,29,42,189,40,14,41,241,44*71
+$GPGSV,3,2,10,31,27,302,39,02,26,084,42,04,18,045,27,09,17,136,34*7C
+$GPGSV,3,3,10,32,08,315,43,20,05,336,30*73
+$GPRMC,151221.000,A,5347.5759,N,00144.4738,W,4.28,282.07,140808,,,A*7E
+$GPVTG,282.07,T,,M,4.28,N,7.9,K,A*02
+$GPGGA,151222.000,5347.5764,N,00144.4779,W,1,09,0.9,116.7,M,47.9,M,,0000*4B
+$GPRMC,151222.000,A,5347.5764,N,00144.4779,W,8.72,283.09,140808,,,A*7A
+$GPVTG,283.09,T,,M,8.72,N,16.1,K,A*36
+$GPGGA,151223.000,5347.5771,N,00144.4834,W,1,09,0.9,116.4,M,47.9,M,,0000*4B
+$GPRMC,151223.000,A,5347.5771,N,00144.4834,W,11.89,282.36,140808,,,A*48
+$GPVTG,282.36,T,,M,11.89,N,22.0,K,A*01
+$GPGGA,151224.000,5347.5779,N,00144.4901,W,1,09,0.9,115.9,M,47.9,M,,0000*4D
+$GPRMC,151224.000,A,5347.5779,N,00144.4901,W,14.55,282.44,140808,,,A*41
+$GPVTG,282.44,T,,M,14.55,N,27.0,K,A*05
+$GPGGA,151225.000,5347.5791,N,00144.4979,W,1,09,0.9,116.1,M,47.9,M,,0000*4E
+$GPRMC,151225.000,A,5347.5791,N,00144.4979,W,16.97,283.01,140808,,,A*45
+$GPVTG,283.01,T,,M,16.97,N,31.4,K,A*0A
+$GPGGA,151226.000,5347.5804,N,00144.5063,W,1,09,0.9,116.4,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,266,32,12,52,079,30,29,42,189,32,14,41,241,44*71
+$GPGSV,3,2,10,31,27,302,39,02,26,084,41,04,18,045,32,09,17,136,34*7B
+$GPGSV,3,3,10,32,08,315,25,20,05,336,23*71
+$GPRMC,151226.000,A,5347.5804,N,00144.5063,W,18.10,283.79,140808,,,A*48
+$GPVTG,283.79,T,,M,18.10,N,33.5,K,A*07
+$GPGGA,151227.000,5347.5817,N,00144.5148,W,1,09,0.9,116.5,M,47.9,M,,0000*42
+$GPRMC,151227.000,A,5347.5817,N,00144.5148,W,18.56,283.26,140808,,,A*4B
+$GPVTG,283.26,T,,M,18.56,N,34.4,K,A*09
+$GPGGA,151228.000,5347.5828,N,00144.5234,W,1,09,0.9,116.6,M,47.9,M,,0000*4A
+$GPRMC,151228.000,A,5347.5828,N,00144.5234,W,18.81,281.06,140808,,,A*4A
+$GPVTG,281.06,T,,M,18.81,N,34.8,K,A*0F
+$GPGGA,151229.000,5347.5836,N,00144.5317,W,1,09,0.9,116.3,M,47.9,M,,0000*41
+$GPRMC,151229.000,A,5347.5836,N,00144.5317,W,17.93,277.94,140808,,,A*4A
+$GPVTG,277.94,T,,M,17.93,N,33.2,K,A*0C
+$GPGGA,151230.000,5347.5841,N,00144.5391,W,1,09,0.9,116.0,M,47.9,M,,0000*44
+$GPRMC,151230.000,A,5347.5841,N,00144.5391,W,15.71,275.60,140808,,,A*4B
+$GPVTG,275.60,T,,M,15.71,N,29.1,K,A*03
+$GPGGA,151231.000,5347.5845,N,00144.5452,W,1,08,1.2,116.2,M,47.9,M,,0000*40
+$GPGSA,A,3,29,04,30,12,02,14,31,32,,,,,2.2,1.2,1.8*33
+$GPGSV,3,1,10,30,81,266,33,12,52,079,33,29,42,189,38,14,41,241,40*7D
+$GPGSV,3,2,10,31,27,302,40,02,26,084,42,04,18,045,26,09,17,136,21*77
+$GPGSV,3,3,10,32,08,315,29,20,05,336,16*7B
+$GPRMC,151231.000,A,5347.5845,N,00144.5452,W,13.19,273.73,140808,,,A*4A
+$GPVTG,273.73,T,,M,13.19,N,24.4,K,A*07
+$GPGGA,151232.000,5347.5849,N,00144.5505,W,1,09,0.9,117.0,M,47.9,M,,0000*44
+$GPRMC,151232.000,A,5347.5849,N,00144.5505,W,11.36,272.86,140808,,,A*42
+$GPVTG,272.86,T,,M,11.36,N,21.0,K,A*02
+$GPGGA,151233.000,5347.5850,N,00144.5547,W,1,09,0.9,117.1,M,47.9,M,,0000*4A
+$GPRMC,151233.000,A,5347.5850,N,00144.5547,W,8.99,270.96,140808,,,A*73
+$GPVTG,270.96,T,,M,8.99,N,16.6,K,A*3E
+$GPGGA,151234.000,5347.5849,N,00144.5570,W,1,08,1.2,117.4,M,47.9,M,,0000*4F
+$GPRMC,151234.000,A,5347.5849,N,00144.5570,W,5.54,265.14,140808,,,A*7A
+$GPVTG,265.14,T,,M,5.54,N,10.3,K,A*3F
+$GPGGA,151235.000,5347.5850,N,00144.5578,W,1,08,1.2,117.4,M,47.9,M,,0000*4E
+$GPRMC,151235.000,A,5347.5850,N,00144.5578,W,0.00,265.14,140808,,,A*7F
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151236.000,5347.5849,N,00144.5580,W,1,08,1.2,117.6,M,47.9,M,,0000*40
+$GPGSA,A,3,29,04,30,12,02,14,31,32,,,,,2.2,1.2,1.8*33
+$GPGSV,3,1,10,30,81,266,33,12,52,079,24,29,42,189,29,14,41,241,26*7B
+$GPGSV,3,2,10,31,27,302,42,02,26,084,43,04,18,045,29,09,17,136,20*7A
+$GPGSV,3,3,10,32,08,315,25,20,05,336,19*78
+$GPRMC,151236.000,A,5347.5849,N,00144.5580,W,0.00,265.14,140808,,,A*73
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151237.000,5347.5848,N,00144.5579,W,1,08,1.2,117.8,M,47.9,M,,0000*48
+$GPRMC,151237.000,A,5347.5848,N,00144.5579,W,0.00,265.14,140808,,,A*75
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151238.000,5347.5848,N,00144.5578,W,1,08,1.2,117.9,M,47.9,M,,0000*47
+$GPRMC,151238.000,A,5347.5848,N,00144.5578,W,0.00,265.14,140808,,,A*7B
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151239.000,5347.5847,N,00144.5577,W,1,08,1.2,118.0,M,47.9,M,,0000*40
+$GPRMC,151239.000,A,5347.5847,N,00144.5577,W,0.00,265.14,140808,,,A*7A
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151240.000,5347.5846,N,00144.5577,W,1,08,1.2,118.2,M,47.9,M,,0000*4D
+$GPRMC,151240.000,A,5347.5846,N,00144.5577,W,0.00,265.14,140808,,,A*75
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151241.000,5347.5845,N,00144.5577,W,1,08,1.2,118.5,M,47.9,M,,0000*48
+$GPGSA,A,3,29,04,30,12,02,14,31,32,,,,,2.2,1.2,1.8*33
+$GPGSV,3,1,10,30,81,266,34,12,52,079,23,29,42,189,28,14,41,241,26*7A
+$GPGSV,3,2,10,31,27,302,43,02,26,084,43,04,18,045,30,09,17,136,20*73
+$GPGSV,3,3,10,32,08,315,26,20,05,336,20*71
+$GPRMC,151241.000,A,5347.5845,N,00144.5577,W,0.00,265.14,140808,,,A*77
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151242.000,5347.5844,N,00144.5577,W,1,07,1.2,118.8,M,47.9,M,,0000*48
+$GPRMC,151242.000,A,5347.5844,N,00144.5577,W,0.00,265.14,140808,,,A*75
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151243.000,5347.5843,N,00144.5577,W,1,08,1.2,119.0,M,47.9,M,,0000*48
+$GPRMC,151243.000,A,5347.5843,N,00144.5577,W,0.00,265.14,140808,,,A*73
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151244.000,5347.5842,N,00144.5576,W,1,08,1.2,119.3,M,47.9,M,,0000*4C
+$GPRMC,151244.000,A,5347.5842,N,00144.5576,W,0.00,265.14,140808,,,A*74
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151245.000,5347.5841,N,00144.5577,W,1,08,1.2,119.4,M,47.9,M,,0000*48
+$GPRMC,151245.000,A,5347.5841,N,00144.5577,W,0.00,265.14,140808,,,A*77
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151246.000,5347.5839,N,00144.5577,W,1,08,1.2,119.6,M,47.9,M,,0000*46
+$GPGSA,A,3,29,04,30,12,02,14,31,32,,,,,2.2,1.2,1.8*33
+$GPGSV,3,1,10,30,81,267,34,12,51,079,25,29,43,189,28,14,41,241,27*7E
+$GPGSV,3,2,10,31,27,302,44,02,26,084,43,04,18,044,30,09,17,136,20*75
+$GPGSV,3,3,10,32,08,314,26,20,05,336,*72
+$GPRMC,151246.000,A,5347.5839,N,00144.5577,W,0.00,265.14,140808,,,A*7B
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151247.000,5347.5838,N,00144.5577,W,1,08,1.2,119.8,M,47.9,M,,0000*48
+$GPRMC,151247.000,A,5347.5838,N,00144.5577,W,0.00,265.14,140808,,,A*7B
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151248.000,5347.5836,N,00144.5577,W,1,08,1.2,119.9,M,47.9,M,,0000*48
+$GPRMC,151248.000,A,5347.5836,N,00144.5577,W,0.00,265.14,140808,,,A*7A
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151249.000,5347.5834,N,00144.5578,W,1,08,1.2,120.0,M,47.9,M,,0000*47
+$GPRMC,151249.000,A,5347.5834,N,00144.5578,W,0.00,265.14,140808,,,A*76
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151250.000,5347.5833,N,00144.5578,W,1,08,1.2,120.1,M,47.9,M,,0000*49
+$GPRMC,151250.000,A,5347.5833,N,00144.5578,W,0.00,265.14,140808,,,A*79
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151251.000,5347.5831,N,00144.5578,W,1,08,1.2,120.2,M,47.9,M,,0000*49
+$GPGSA,A,3,29,04,30,12,02,14,31,32,,,,,2.2,1.2,1.8*33
+$GPGSV,3,1,10,30,81,267,35,12,51,079,28,29,43,189,28,14,41,241,28*7D
+$GPGSV,3,2,10,31,27,302,44,02,26,084,43,04,18,044,29,09,17,136,19*77
+$GPGSV,3,3,10,32,08,314,25,20,05,336,17*77
+$GPRMC,151251.000,A,5347.5831,N,00144.5578,W,0.00,265.14,140808,,,A*7A
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151252.000,5347.5830,N,00144.5580,W,1,08,1.2,120.3,M,47.9,M,,0000*4D
+$GPRMC,151252.000,A,5347.5830,N,00144.5580,W,0.00,265.14,140808,,,A*7F
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151253.000,5347.5827,N,00144.5582,W,1,08,1.2,119.8,M,47.9,M,,0000*49
+$GPRMC,151253.000,A,5347.5827,N,00144.5582,W,0.00,265.14,140808,,,A*7A
+$GPVTG,265.14,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151254.000,5347.5827,N,00144.5589,W,1,07,1.2,119.5,M,47.9,M,,0000*47
+$GPRMC,151254.000,A,5347.5827,N,00144.5589,W,1.34,271.87,140808,,,A*7F
+$GPVTG,271.87,T,,M,1.34,N,2.5,K,A*07
+$GPGGA,151255.000,5347.5827,N,00144.5608,W,1,08,1.2,119.2,M,47.9,M,,0000*44
+$GPRMC,151255.000,A,5347.5827,N,00144.5608,W,4.07,272.59,140808,,,A*71
+$GPVTG,272.59,T,,M,4.07,N,7.5,K,A*07
+$GPGGA,151256.000,5347.5827,N,00144.5641,W,1,08,1.2,119.1,M,47.9,M,,0000*49
+$GPGSA,A,3,29,04,30,12,02,14,31,32,,,,,2.2,1.2,1.8*33
+$GPGSV,3,1,10,30,81,267,35,12,51,079,26,29,43,189,30,14,41,241,35*76
+$GPGSV,3,2,10,31,27,302,44,02,26,084,43,04,18,044,33,09,17,136,20*76
+$GPGSV,3,3,10,32,08,314,26,20,05,336,*72
+$GPRMC,151256.000,A,5347.5827,N,00144.5641,W,7.01,270.33,140808,,,A*74
+$GPVTG,270.33,T,,M,7.01,N,13.0,K,A*3C
+$GPGGA,151257.000,5347.5827,N,00144.5684,W,1,08,1.2,118.8,M,47.9,M,,0000*49
+$GPRMC,151257.000,A,5347.5827,N,00144.5684,W,9.13,269.66,140808,,,A*79
+$GPVTG,269.66,T,,M,9.13,N,16.9,K,A*35
+$GPGGA,151258.000,5347.5827,N,00144.5737,W,1,08,1.0,118.5,M,47.9,M,,0000*40
+$GPRMC,151258.000,A,5347.5827,N,00144.5737,W,11.19,269.25,140808,,,A*4B
+$GPVTG,269.25,T,,M,11.19,N,20.7,K,A*0A
+$GPGGA,151259.000,5347.5827,N,00144.5794,W,1,08,1.0,118.3,M,47.9,M,,0000*4E
+$GPRMC,151259.000,A,5347.5827,N,00144.5794,W,12.20,268.37,140808,,,A*48
+$GPVTG,268.37,T,,M,12.20,N,22.6,K,A*02
+$GPGGA,151300.000,5347.5828,N,00144.5852,W,1,08,1.0,118.0,M,47.9,M,,0000*4A
+$GPRMC,151300.000,A,5347.5828,N,00144.5852,W,12.26,274.27,140808,,,A*45
+$GPVTG,274.27,T,,M,12.26,N,22.7,K,A*09
+$GPGGA,151301.000,5347.5833,N,00144.5908,W,1,08,1.0,117.6,M,47.9,M,,0000*46
+$GPGSA,A,3,29,09,04,30,12,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,81,267,34,12,51,079,32,29,43,189,37,14,41,241,44*73
+$GPGSV,3,2,10,31,27,302,41,02,26,084,43,04,18,044,33,09,17,136,32*70
+$GPGSV,3,3,10,32,08,314,,20,05,336,*76
+$GPRMC,151301.000,A,5347.5833,N,00144.5908,W,12.20,284.85,140808,,,A*41
+$GPVTG,284.85,T,,M,12.20,N,22.6,K,A*09
+$GPGGA,151302.000,5347.5846,N,00144.5962,W,1,09,0.9,117.2,M,47.9,M,,0000*46
+$GPRMC,151302.000,A,5347.5846,N,00144.5962,W,12.18,297.99,140808,,,A*48
+$GPVTG,297.99,T,,M,12.18,N,22.6,K,A*0D
+$GPGGA,151303.000,5347.5870,N,00144.6006,W,1,08,1.0,116.8,M,47.9,M,,0000*48
+$GPRMC,151303.000,A,5347.5870,N,00144.6006,W,12.49,317.13,140808,,,A*4B
+$GPVTG,317.13,T,,M,12.49,N,23.1,K,A*04
+$GPGGA,151304.000,5347.5904,N,00144.6034,W,1,08,1.0,116.9,M,47.9,M,,0000*4D
+$GPRMC,151304.000,A,5347.5904,N,00144.6034,W,12.98,336.50,140808,,,A*47
+$GPVTG,336.50,T,,M,12.98,N,24.0,K,A*0A
+$GPGGA,151305.000,5347.5943,N,00144.6039,W,1,08,1.0,116.7,M,47.9,M,,0000*4C
+$GPRMC,151305.000,A,5347.5943,N,00144.6039,W,13.38,359.75,140808,,,A*4D
+$GPVTG,359.75,T,,M,13.38,N,24.8,K,A*07
+$GPGGA,151306.000,5347.5996,N,00144.6032,W,1,09,0.9,120.1,M,47.9,M,,0000*46
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,267,32,12,51,079,39,29,43,189,33,14,41,241,25*7D
+$GPGSV,3,2,10,31,27,302,28,02,26,084,36,04,18,044,39,09,17,136,36*73
+$GPGSV,3,3,10,32,08,314,21,20,05,336,*75
+$GPRMC,151306.000,A,5347.5996,N,00144.6032,W,14.94,10.27,140808,,,A*75
+$GPVTG,10.27,T,,M,14.94,N,27.7,K,A*33
+$GPGGA,151307.000,5347.6052,N,00144.6012,W,1,08,1.0,121.6,M,47.9,M,,0000*48
+$GPRMC,151307.000,A,5347.6052,N,00144.6012,W,17.50,17.36,140808,,,A*78
+$GPVTG,17.36,T,,M,17.50,N,32.4,K,A*38
+$GPGGA,151308.000,5347.6104,N,00144.5985,W,1,08,1.0,121.8,M,47.9,M,,0000*4F
+$GPRMC,151308.000,A,5347.6104,N,00144.5985,W,18.90,16.56,140808,,,A*75
+$GPVTG,16.56,T,,M,18.90,N,35.0,K,A*3F
+$GPGGA,151309.000,5347.6162,N,00144.5959,W,1,08,1.0,122.8,M,47.9,M,,0000*4C
+$GPRMC,151309.000,A,5347.6162,N,00144.5959,W,19.56,14.89,140808,,,A*7E
+$GPVTG,14.89,T,,M,19.56,N,36.2,K,A*35
+$GPGGA,151310.000,5347.6222,N,00144.5936,W,1,08,1.0,123.6,M,47.9,M,,0000*45
+$GPRMC,151310.000,A,5347.6222,N,00144.5936,W,20.63,11.59,140808,,,A*7C
+$GPVTG,11.59,T,,M,20.63,N,38.2,K,A*3F
+$GPGGA,151311.000,5347.6286,N,00144.5917,W,1,08,1.0,123.8,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,04,30,12,02,14,31,,,,,2.0,1.0,1.7*34
+$GPGSV,3,1,10,30,81,267,29,12,51,079,38,29,43,189,32,14,41,241,26*74
+$GPGSV,3,2,10,31,27,302,26,02,26,084,30,04,18,044,42,09,17,136,30*71
+$GPGSV,3,3,10,32,08,314,20,20,05,336,*74
+$GPRMC,151311.000,A,5347.6286,N,00144.5917,W,21.81,7.08,140808,,,A*4E
+$GPVTG,7.08,T,,M,21.81,N,40.4,K,A*08
+$GPGGA,151312.000,5347.6347,N,00144.5899,W,1,08,1.0,124.6,M,47.9,M,,0000*46
+$GPRMC,151312.000,A,5347.6347,N,00144.5899,W,22.56,3.21,140808,,,A*40
+$GPVTG,3.21,T,,M,22.56,N,41.8,K,A*03
+$GPGGA,151313.000,5347.6410,N,00144.5900,W,1,08,1.0,124.7,M,47.9,M,,0000*42
+$GPRMC,151313.000,A,5347.6410,N,00144.5900,W,22.12,358.78,140808,,,A*44
+$GPVTG,358.78,T,,M,22.12,N,41.0,K,A*0A
+$GPGGA,151314.000,5347.6470,N,00144.5908,W,1,08,1.0,124.8,M,47.9,M,,0000*44
+$GPRMC,151314.000,A,5347.6470,N,00144.5908,W,20.81,354.88,140808,,,A*46
+$GPVTG,354.88,T,,M,20.81,N,38.5,K,A*0A
+$GPGGA,151315.000,5347.6528,N,00144.5922,W,1,08,1.0,125.5,M,47.9,M,,0000*4D
+$GPRMC,151315.000,A,5347.6528,N,00144.5922,W,20.10,352.36,140808,,,A*48
+$GPVTG,352.36,T,,M,20.10,N,37.2,K,A*09
+$GPGGA,151316.000,5347.6583,N,00144.5939,W,1,07,1.1,125.3,M,47.9,M,,0000*4D
+$GPGSA,A,3,29,09,30,12,02,14,31,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,10,30,81,267,33,12,51,079,37,29,43,189,35,14,41,241,31*71
+$GPGSV,3,2,10,31,27,302,39,02,26,084,34,04,18,044,23,09,17,136,33*7F
+$GPGSV,3,3,10,32,08,314,,20,05,336,12*75
+$GPRMC,151316.000,A,5347.6583,N,00144.5939,W,20.25,349.90,140808,,,A*40
+$GPVTG,349.90,T,,M,20.25,N,37.5,K,A*0E
+$GPGGA,151317.000,5347.6639,N,00144.5951,W,1,07,1.1,126.0,M,47.9,M,,0000*40
+$GPRMC,151317.000,A,5347.6639,N,00144.5951,W,20.37,348.21,140808,,,A*45
+$GPVTG,348.21,T,,M,20.37,N,37.7,K,A*04
+$GPGGA,151318.000,5347.6696,N,00144.5972,W,1,08,1.0,126.8,M,47.9,M,,0000*4D
+$GPRMC,151318.000,A,5347.6696,N,00144.5972,W,20.53,348.01,140808,,,A*4E
+$GPVTG,348.01,T,,M,20.53,N,38.0,K,A*0C
+$GPGGA,151319.000,5347.6754,N,00144.5996,W,1,08,1.0,127.7,M,47.9,M,,0000*47
+$GPRMC,151319.000,A,5347.6754,N,00144.5996,W,21.23,345.08,140808,,,A*48
+$GPVTG,345.08,T,,M,21.23,N,39.3,K,A*0C
+$GPGGA,151320.000,5347.6813,N,00144.6025,W,1,09,0.9,128.3,M,47.9,M,,0000*41
+$GPRMC,151320.000,A,5347.6813,N,00144.6025,W,22.27,342.30,140808,,,A*47
+$GPVTG,342.30,T,,M,22.27,N,41.3,K,A*08
+$GPGGA,151321.000,5347.6873,N,00144.6059,W,1,09,0.9,128.9,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,267,26,12,51,079,37,29,43,189,35,14,41,241,38*7C
+$GPGSV,3,2,10,31,27,302,28,02,26,084,32,04,18,044,30,09,17,136,39*71
+$GPGSV,3,3,10,32,08,314,26,20,05,336,12*71
+$GPRMC,151321.000,A,5347.6873,N,00144.6059,W,23.03,341.27,140808,,,A*49
+$GPVTG,341.27,T,,M,23.03,N,42.7,K,A*0D
+$GPGGA,151322.000,5347.6934,N,00144.6094,W,1,09,0.9,129.4,M,47.9,M,,0000*4B
+$GPRMC,151322.000,A,5347.6934,N,00144.6094,W,23.22,340.73,140808,,,A*4A
+$GPVTG,340.73,T,,M,23.22,N,43.0,K,A*08
+$GPGGA,151323.000,5347.6998,N,00144.6135,W,1,08,1.0,129.2,M,47.9,M,,0000*49
+$GPRMC,151323.000,A,5347.6998,N,00144.6135,W,23.36,340.02,140808,,,A*44
+$GPVTG,340.02,T,,M,23.36,N,43.3,K,A*08
+$GPGGA,151324.000,5347.7059,N,00144.6174,W,1,09,0.9,131.3,M,47.9,M,,0000*4F
+$GPRMC,151324.000,A,5347.7059,N,00144.6174,W,23.20,339.49,140808,,,A*45
+$GPVTG,339.49,T,,M,23.20,N,43.0,K,A*0D
+$GPGGA,151325.000,5347.7119,N,00144.6214,W,1,09,0.9,131.7,M,47.9,M,,0000*4A
+$GPRMC,151325.000,A,5347.7119,N,00144.6214,W,23.32,338.16,140808,,,A*4C
+$GPVTG,338.16,T,,M,23.32,N,43.2,K,A*07
+$GPGGA,151326.000,5347.7182,N,00144.6252,W,1,09,0.9,132.9,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,267,24,12,51,079,34,29,43,189,37,14,41,241,32*75
+$GPGSV,3,2,10,31,27,302,23,02,26,084,32,04,18,044,31,09,17,136,38*7A
+$GPGSV,3,3,10,32,08,314,21,20,05,336,20*77
+$GPRMC,151326.000,A,5347.7182,N,00144.6252,W,24.32,341.65,140808,,,A*42
+$GPVTG,341.65,T,,M,24.32,N,45.0,K,A*0E
+$GPGGA,151327.000,5347.7244,N,00144.6288,W,1,09,0.9,134.3,M,47.9,M,,0000*47
+$GPRMC,151327.000,A,5347.7244,N,00144.6288,W,24.50,340.55,140808,,,A*4B
+$GPVTG,340.55,T,,M,24.50,N,45.4,K,A*0C
+$GPGGA,151328.000,5347.7309,N,00144.6329,W,1,09,0.9,134.2,M,47.9,M,,0000*4B
+$GPRMC,151328.000,A,5347.7309,N,00144.6329,W,24.53,341.77,140808,,,A*44
+$GPVTG,341.77,T,,M,24.53,N,45.4,K,A*0E
+$GPGGA,151329.000,5347.7375,N,00144.6364,W,1,09,0.9,134.6,M,47.9,M,,0000*4C
+$GPRMC,151329.000,A,5347.7375,N,00144.6364,W,24.26,341.74,140808,,,A*46
+$GPVTG,341.74,T,,M,24.26,N,44.9,K,A*03
+$GPGGA,151330.000,5347.7438,N,00144.6400,W,1,09,0.9,135.0,M,47.9,M,,0000*48
+$GPRMC,151330.000,A,5347.7438,N,00144.6400,W,23.55,342.12,140808,,,A*45
+$GPVTG,342.12,T,,M,23.55,N,43.6,K,A*0B
+$GPGGA,151331.000,5347.7499,N,00144.6436,W,1,09,0.9,131.7,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,267,28,12,51,079,33,29,43,189,36,14,41,241,30*7D
+$GPGSV,3,2,10,31,27,302,36,02,26,084,34,04,18,044,31,09,17,136,38*78
+$GPGSV,3,3,10,32,08,314,31,20,05,336,08*7C
+$GPRMC,151331.000,A,5347.7499,N,00144.6436,W,23.52,343.59,140808,,,A*43
+$GPVTG,343.59,T,,M,23.52,N,43.6,K,A*02
+$GPGGA,151332.000,5347.7561,N,00144.6469,W,1,09,0.9,129.5,M,47.9,M,,0000*40
+$GPRMC,151332.000,A,5347.7561,N,00144.6469,W,22.90,344.09,140808,,,A*41
+$GPVTG,344.09,T,,M,22.90,N,42.4,K,A*0C
+$GPGGA,151333.000,5347.7615,N,00144.6495,W,1,09,0.9,127.8,M,47.9,M,,0000*41
+$GPRMC,151333.000,A,5347.7615,N,00144.6495,W,20.28,344.33,140808,,,A*4B
+$GPVTG,344.33,T,,M,20.28,N,37.6,K,A*04
+$GPGGA,151334.000,5347.7658,N,00144.6515,W,1,09,0.9,126.4,M,47.9,M,,0000*4B
+$GPRMC,151334.000,A,5347.7658,N,00144.6515,W,16.20,343.98,140808,,,A*47
+$GPVTG,343.98,T,,M,16.20,N,30.0,K,A*0E
+$GPGGA,151335.000,5347.7690,N,00144.6531,W,1,09,0.9,126.2,M,47.9,M,,0000*4E
+$GPRMC,151335.000,A,5347.7690,N,00144.6531,W,12.43,345.14,140808,,,A*47
+$GPVTG,345.14,T,,M,12.43,N,23.0,K,A*0F
+$GPGGA,151336.000,5347.7714,N,00144.6542,W,1,09,0.9,126.2,M,47.9,M,,0000*44
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,267,31,12,51,079,34,29,43,189,29,14,41,241,31*7D
+$GPGSV,3,2,10,31,27,302,35,02,26,084,34,04,18,044,31,09,17,136,32*71
+$GPGSV,3,3,10,32,08,314,35,20,05,336,30*73
+$GPRMC,151336.000,A,5347.7714,N,00144.6542,W,9.28,343.77,140808,,,A*79
+$GPVTG,343.77,T,,M,9.28,N,17.2,K,A*3E
+$GPGGA,151337.000,5347.7732,N,00144.6548,W,1,09,0.9,126.1,M,47.9,M,,0000*48
+$GPRMC,151337.000,A,5347.7732,N,00144.6548,W,6.48,344.91,140808,,,A*70
+$GPVTG,344.91,T,,M,6.48,N,12.0,K,A*3F
+$GPGGA,151338.000,5347.7746,N,00144.6548,W,1,09,0.9,125.9,M,47.9,M,,0000*4F
+$GPRMC,151338.000,A,5347.7746,N,00144.6548,W,4.30,344.39,140808,,,A*73
+$GPVTG,344.39,T,,M,4.30,N,8.0,K,A*0B
+$GPGGA,151339.000,5347.7749,N,00144.6552,W,1,09,0.9,126.0,M,47.9,M,,0000*40
+$GPRMC,151339.000,A,5347.7749,N,00144.6552,W,0.00,344.39,140808,,,A*71
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151340.000,5347.7749,N,00144.6552,W,1,09,0.9,126.1,M,47.9,M,,0000*4F
+$GPRMC,151340.000,A,5347.7749,N,00144.6552,W,0.00,344.39,140808,,,A*7F
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151341.000,5347.7748,N,00144.6550,W,1,09,0.9,125.9,M,47.9,M,,0000*46
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,81,267,22,12,51,079,35,29,43,189,37,14,41,241,32*72
+$GPGSV,3,2,10,31,27,302,36,02,26,084,34,04,18,044,34,09,17,136,37*72
+$GPGSV,3,3,10,32,08,314,35,20,05,336,26*74
+$GPRMC,151341.000,A,5347.7748,N,00144.6550,W,0.00,344.39,140808,,,A*7D
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151342.000,5347.7747,N,00144.6549,W,1,09,0.9,126.3,M,47.9,M,,0000*4B
+$GPRMC,151342.000,A,5347.7747,N,00144.6549,W,0.00,344.39,140808,,,A*79
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151343.000,5347.7747,N,00144.6548,W,1,09,0.9,126.7,M,47.9,M,,0000*4F
+$GPRMC,151343.000,A,5347.7747,N,00144.6548,W,0.00,344.39,140808,,,A*79
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151344.000,5347.7747,N,00144.6546,W,1,09,0.9,127.1,M,47.9,M,,0000*41
+$GPRMC,151344.000,A,5347.7747,N,00144.6546,W,0.00,344.39,140808,,,A*70
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151345.000,5347.7747,N,00144.6545,W,1,09,0.9,127.5,M,47.9,M,,0000*47
+$GPRMC,151345.000,A,5347.7747,N,00144.6545,W,0.00,344.39,140808,,,A*72
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151346.000,5347.7747,N,00144.6544,W,1,09,0.9,127.7,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,20,12,51,079,35,29,43,189,37,14,41,241,31*70
+$GPGSV,3,2,10,31,28,302,36,02,26,083,34,04,18,044,35,09,17,136,37*7B
+$GPGSV,3,3,10,32,08,314,35,20,05,335,26*77
+$GPRMC,151346.000,A,5347.7747,N,00144.6544,W,0.00,344.39,140808,,,A*70
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151347.000,5347.7746,N,00144.6543,W,1,09,0.9,127.8,M,47.9,M,,0000*4F
+$GPRMC,151347.000,A,5347.7746,N,00144.6543,W,0.00,344.39,140808,,,A*77
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151348.000,5347.7746,N,00144.6541,W,1,09,0.9,128.1,M,47.9,M,,0000*44
+$GPRMC,151348.000,A,5347.7746,N,00144.6541,W,0.00,344.39,140808,,,A*7A
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151349.000,5347.7746,N,00144.6540,W,1,09,0.9,128.4,M,47.9,M,,0000*41
+$GPRMC,151349.000,A,5347.7746,N,00144.6540,W,0.00,344.39,140808,,,A*7A
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151350.000,5347.7746,N,00144.6539,W,1,09,0.9,128.8,M,47.9,M,,0000*4B
+$GPRMC,151350.000,A,5347.7746,N,00144.6539,W,0.00,344.39,140808,,,A*7C
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151351.000,5347.7746,N,00144.6538,W,1,09,0.9,129.1,M,47.9,M,,0000*43
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,20,12,51,079,35,29,43,189,37,14,41,241,31*70
+$GPGSV,3,2,10,31,28,302,36,02,26,083,35,04,18,044,35,09,17,136,37*7A
+$GPGSV,3,3,10,32,08,314,35,20,05,335,26*77
+$GPRMC,151351.000,A,5347.7746,N,00144.6538,W,0.00,344.39,140808,,,A*7C
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151352.000,5347.7746,N,00144.6537,W,1,09,0.9,129.4,M,47.9,M,,0000*4A
+$GPRMC,151352.000,A,5347.7746,N,00144.6537,W,0.00,344.39,140808,,,A*70
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151353.000,5347.7746,N,00144.6536,W,1,09,0.9,129.6,M,47.9,M,,0000*48
+$GPRMC,151353.000,A,5347.7746,N,00144.6536,W,0.00,344.39,140808,,,A*70
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151354.000,5347.7746,N,00144.6535,W,1,09,0.9,129.7,M,47.9,M,,0000*4D
+$GPRMC,151354.000,A,5347.7746,N,00144.6535,W,0.00,344.39,140808,,,A*74
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151355.000,5347.7746,N,00144.6534,W,1,09,0.9,129.8,M,47.9,M,,0000*42
+$GPRMC,151355.000,A,5347.7746,N,00144.6534,W,0.00,344.39,140808,,,A*74
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151356.000,5347.7746,N,00144.6534,W,1,09,0.9,130.1,M,47.9,M,,0000*40
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,20,12,51,079,36,29,43,189,37,14,41,241,33*71
+$GPGSV,3,2,10,31,28,302,36,02,26,083,35,04,18,044,35,09,17,136,37*7A
+$GPGSV,3,3,10,32,08,314,34,20,05,335,26*76
+$GPRMC,151356.000,A,5347.7746,N,00144.6534,W,0.00,344.39,140808,,,A*77
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151357.000,5347.7746,N,00144.6533,W,1,09,0.9,130.3,M,47.9,M,,0000*44
+$GPRMC,151357.000,A,5347.7746,N,00144.6533,W,0.00,344.39,140808,,,A*71
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151358.000,5347.7746,N,00144.6533,W,1,09,0.9,130.6,M,47.9,M,,0000*4E
+$GPRMC,151358.000,A,5347.7746,N,00144.6533,W,0.00,344.39,140808,,,A*7E
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151359.000,5347.7746,N,00144.6532,W,1,09,0.9,130.7,M,47.9,M,,0000*4F
+$GPRMC,151359.000,A,5347.7746,N,00144.6532,W,0.00,344.39,140808,,,A*7E
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151400.000,5347.7745,N,00144.6532,W,1,09,0.9,130.7,M,47.9,M,,0000*47
+$GPRMC,151400.000,A,5347.7745,N,00144.6532,W,0.00,344.39,140808,,,A*76
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151401.000,5347.7745,N,00144.6531,W,1,09,0.9,130.9,M,47.9,M,,0000*4B
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,19,12,51,079,36,29,43,189,37,14,41,240,33*7A
+$GPGSV,3,2,10,31,28,302,36,02,26,083,35,04,18,044,35,09,16,136,37*7B
+$GPGSV,3,3,10,32,08,314,33,20,05,335,20*77
+$GPRMC,151401.000,A,5347.7745,N,00144.6531,W,0.00,344.39,140808,,,A*74
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151402.000,5347.7745,N,00144.6531,W,1,09,0.9,131.1,M,47.9,M,,0000*41
+$GPRMC,151402.000,A,5347.7745,N,00144.6531,W,0.00,344.39,140808,,,A*77
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151403.000,5347.7745,N,00144.6530,W,1,09,0.9,131.1,M,47.9,M,,0000*41
+$GPRMC,151403.000,A,5347.7745,N,00144.6530,W,0.00,344.39,140808,,,A*77
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151404.000,5347.7745,N,00144.6530,W,1,09,0.9,131.1,M,47.9,M,,0000*46
+$GPRMC,151404.000,A,5347.7745,N,00144.6530,W,0.00,344.39,140808,,,A*70
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151405.000,5347.7745,N,00144.6530,W,1,09,0.9,131.1,M,47.9,M,,0000*47
+$GPRMC,151405.000,A,5347.7745,N,00144.6530,W,0.00,344.39,140808,,,A*71
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151406.000,5347.7745,N,00144.6528,W,1,09,0.9,131.2,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,26,12,51,079,37,29,43,189,33,14,40,240,35*74
+$GPGSV,3,2,10,31,28,302,36,02,26,083,35,04,18,044,34,09,16,136,37*7A
+$GPGSV,3,3,10,32,08,314,34,20,05,335,34*75
+$GPRMC,151406.000,A,5347.7745,N,00144.6528,W,0.00,344.39,140808,,,A*7B
+$GPVTG,344.39,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151407.000,5347.7749,N,00144.6529,W,1,09,0.9,131.2,M,47.9,M,,0000*42
+$GPRMC,151407.000,A,5347.7749,N,00144.6529,W,1.13,343.82,140808,,,A*73
+$GPVTG,343.82,T,,M,1.13,N,2.1,K,A*03
+$GPGGA,151408.000,5347.7761,N,00144.6534,W,1,09,0.9,131.1,M,47.9,M,,0000*48
+$GPRMC,151408.000,A,5347.7761,N,00144.6534,W,4.16,343.78,140808,,,A*7F
+$GPVTG,343.78,T,,M,4.16,N,7.7,K,A*05
+$GPGGA,151409.000,5347.7782,N,00144.6545,W,1,09,0.9,130.9,M,47.9,M,,0000*4B
+$GPRMC,151409.000,A,5347.7782,N,00144.6545,W,7.49,341.79,140808,,,A*7F
+$GPVTG,341.79,T,,M,7.49,N,13.9,K,A*34
+$GPGGA,151410.000,5347.7806,N,00144.6557,W,1,09,0.9,130.9,M,47.9,M,,0000*43
+$GPRMC,151410.000,A,5347.7806,N,00144.6557,W,9.10,343.69,140808,,,A*76
+$GPVTG,343.69,T,,M,9.10,N,16.9,K,A*30
+$GPGGA,151411.000,5347.7835,N,00144.6570,W,1,09,0.9,130.8,M,47.9,M,,0000*46
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,30,12,51,079,36,29,43,189,31,14,40,240,34*71
+$GPGSV,3,2,10,31,28,302,33,02,26,083,35,04,18,044,32,09,16,136,36*78
+$GPGSV,3,3,10,32,08,314,35,20,05,335,24*75
+$GPRMC,151411.000,A,5347.7835,N,00144.6570,W,10.55,344.03,140808,,,A*40
+$GPVTG,344.03,T,,M,10.55,N,19.5,K,A*01
+$GPGGA,151412.000,5347.7870,N,00144.6588,W,1,09,0.9,128.9,M,47.9,M,,0000*4B
+$GPRMC,151412.000,A,5347.7870,N,00144.6588,W,13.12,341.99,140808,,,A*43
+$GPVTG,341.99,T,,M,13.12,N,24.3,K,A*0F
+$GPGGA,151413.000,5347.7914,N,00144.6610,W,1,09,0.9,127.4,M,47.9,M,,0000*49
+$GPRMC,151413.000,A,5347.7914,N,00144.6610,W,16.02,343.05,140808,,,A*40
+$GPVTG,343.05,T,,M,16.02,N,29.7,K,A*05
+$GPGGA,151414.000,5347.7964,N,00144.6635,W,1,09,0.9,126.5,M,47.9,M,,0000*4E
+$GPRMC,151414.000,A,5347.7964,N,00144.6635,W,18.23,342.83,140808,,,A*45
+$GPVTG,342.83,T,,M,18.23,N,33.8,K,A*03
+$GPGGA,151415.000,5347.8018,N,00144.6662,W,1,09,0.9,125.6,M,47.9,M,,0000*40
+$GPRMC,151415.000,A,5347.8018,N,00144.6662,W,20.00,342.84,140808,,,A*46
+$GPVTG,342.84,T,,M,20.00,N,37.0,K,A*02
+$GPGGA,151416.000,5347.8078,N,00144.6692,W,1,09,0.9,125.2,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,31,12,51,079,36,29,43,189,27,14,40,240,30*73
+$GPGSV,3,2,10,31,28,302,28,02,26,083,35,04,18,044,29,09,16,136,35*7B
+$GPGSV,3,3,10,32,08,314,23,20,05,335,33*74
+$GPRMC,151416.000,A,5347.8078,N,00144.6692,W,22.18,342.74,140808,,,A*48
+$GPVTG,342.74,T,,M,22.18,N,41.1,K,A*06
+$GPGGA,151417.000,5347.8141,N,00144.6725,W,1,09,0.9,125.3,M,47.9,M,,0000*48
+$GPRMC,151417.000,A,5347.8141,N,00144.6725,W,23.34,340.96,140808,,,A*4E
+$GPVTG,340.96,T,,M,23.34,N,43.2,K,A*06
+$GPGGA,151418.000,5347.8206,N,00144.6767,W,1,09,0.9,126.0,M,47.9,M,,0000*41
+$GPRMC,151418.000,A,5347.8206,N,00144.6767,W,23.92,339.28,140808,,,A*40
+$GPVTG,339.28,T,,M,23.92,N,44.3,K,A*07
+$GPGGA,151419.000,5347.8271,N,00144.6812,W,1,08,1.0,126.0,M,47.9,M,,0000*44
+$GPRMC,151419.000,A,5347.8271,N,00144.6812,W,24.84,338.67,140808,,,A*46
+$GPVTG,338.67,T,,M,24.84,N,46.0,K,A*0C
+$GPGGA,151420.000,5347.8338,N,00144.6861,W,1,08,1.0,126.3,M,47.9,M,,0000*45
+$GPRMC,151420.000,A,5347.8338,N,00144.6861,W,25.78,336.73,140808,,,A*4D
+$GPVTG,336.73,T,,M,25.78,N,47.7,K,A*03
+$GPGGA,151421.000,5347.8408,N,00144.6916,W,1,08,1.0,126.5,M,47.9,M,,0000*47
+$GPGSA,A,3,29,09,30,12,02,14,31,32,,,,,1.8,1.0,1.4*39
+$GPGSV,3,1,10,30,82,267,32,12,51,079,36,29,43,189,37,14,40,240,36*77
+$GPGSV,3,2,10,31,28,302,43,02,26,083,36,04,18,044,,09,16,136,35*7E
+$GPGSV,3,3,10,32,08,314,30,20,05,335,28*7C
+$GPRMC,151421.000,A,5347.8408,N,00144.6916,W,26.92,335.46,140808,,,A*4B
+$GPVTG,335.46,T,,M,26.92,N,49.8,K,A*00
+$GPGGA,151422.000,5347.8478,N,00144.6974,W,1,08,1.0,126.6,M,47.9,M,,0000*44
+$GPRMC,151422.000,A,5347.8478,N,00144.6974,W,27.76,333.75,140808,,,A*46
+$GPVTG,333.75,T,,M,27.76,N,51.4,K,A*08
+$GPGGA,151423.000,5347.8548,N,00144.7037,W,1,09,0.9,126.6,M,47.9,M,,0000*41
+$GPRMC,151423.000,A,5347.8548,N,00144.7037,W,27.92,331.49,140808,,,A*4D
+$GPVTG,331.49,T,,M,27.92,N,51.7,K,A*0C
+$GPGGA,151424.000,5347.8617,N,00144.7104,W,1,08,1.0,126.4,M,47.9,M,,0000*45
+$GPRMC,151424.000,A,5347.8617,N,00144.7104,W,28.16,329.45,140808,,,A*44
+$GPVTG,329.45,T,,M,28.16,N,52.1,K,A*0F
+$GPGGA,151425.000,5347.8686,N,00144.7177,W,1,08,1.0,126.3,M,47.9,M,,0000*4F
+$GPRMC,151425.000,A,5347.8686,N,00144.7177,W,28.61,327.58,140808,,,A*4B
+$GPVTG,327.58,T,,M,28.61,N,53.0,K,A*0D
+$GPGGA,151426.000,5347.8753,N,00144.7253,W,1,09,0.9,124.9,M,47.9,M,,0000*41
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,32,12,51,079,31,29,43,189,37,14,40,240,39*7F
+$GPGSV,3,2,10,31,28,302,37,02,26,083,32,04,18,044,31,09,16,136,41*78
+$GPGSV,3,3,10,32,08,314,26,20,05,335,38*7A
+$GPRMC,151426.000,A,5347.8753,N,00144.7253,W,28.90,326.20,140808,,,A*44
+$GPVTG,326.20,T,,M,28.90,N,53.5,K,A*08
+$GPGGA,151427.000,5347.8822,N,00144.7330,W,1,09,0.9,124.5,M,47.9,M,,0000*41
+$GPRMC,151427.000,A,5347.8822,N,00144.7330,W,29.21,325.77,140808,,,A*42
+$GPVTG,325.77,T,,M,29.21,N,54.1,K,A*01
+$GPGGA,151428.000,5347.8891,N,00144.7410,W,1,09,0.9,124.1,M,47.9,M,,0000*47
+$GPRMC,151428.000,A,5347.8891,N,00144.7410,W,29.68,325.70,140808,,,A*4A
+$GPVTG,325.70,T,,M,29.68,N,55.0,K,A*0B
+$GPGGA,151429.000,5347.8961,N,00144.7492,W,1,09,0.9,123.5,M,47.9,M,,0000*41
+$GPRMC,151429.000,A,5347.8961,N,00144.7492,W,30.24,325.50,140808,,,A*4D
+$GPVTG,325.50,T,,M,30.24,N,56.0,K,A*0A
+$GPGGA,151430.000,5347.9033,N,00144.7578,W,1,09,0.9,122.7,M,47.9,M,,0000*40
+$GPRMC,151430.000,A,5347.9033,N,00144.7578,W,31.24,324.86,140808,,,A*44
+$GPVTG,324.86,T,,M,31.24,N,57.9,K,A*09
+$GPGGA,151431.000,5347.9104,N,00144.7664,W,1,09,0.9,121.7,M,47.9,M,,0000*49
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,267,25,12,51,079,33,29,43,189,34,14,40,240,38*79
+$GPGSV,3,2,10,31,28,302,39,02,26,083,27,04,18,044,31,09,16,136,41*72
+$GPGSV,3,3,10,32,08,314,33,20,05,335,30*76
+$GPRMC,151431.000,A,5347.9104,N,00144.7664,W,31.23,324.71,140808,,,A*41
+$GPVTG,324.71,T,,M,31.23,N,57.8,K,A*07
+$GPGGA,151432.000,5347.9172,N,00144.7748,W,1,09,0.9,121.0,M,47.9,M,,0000*43
+$GPRMC,151432.000,A,5347.9172,N,00144.7748,W,30.20,324.09,140808,,,A*41
+$GPVTG,324.09,T,,M,30.20,N,55.9,K,A*09
+$GPGGA,151433.000,5347.9239,N,00144.7831,W,1,09,0.9,120.1,M,47.9,M,,0000*4F
+$GPRMC,151433.000,A,5347.9239,N,00144.7831,W,29.62,323.61,140808,,,A*4A
+$GPVTG,323.61,T,,M,29.62,N,54.9,K,A*0F
+$GPGGA,151434.000,5347.9303,N,00144.7914,W,1,09,0.9,119.4,M,47.9,M,,0000*49
+$GPRMC,151434.000,A,5347.9303,N,00144.7914,W,29.18,323.06,140808,,,A*4F
+$GPVTG,323.06,T,,M,29.18,N,54.0,K,A*0A
+$GPGGA,151435.000,5347.9367,N,00144.7997,W,1,09,0.9,118.7,M,47.9,M,,0000*43
+$GPRMC,151435.000,A,5347.9367,N,00144.7997,W,28.77,322.28,140808,,,A*42
+$GPVTG,322.28,T,,M,28.77,N,53.3,K,A*0B
+$GPGGA,151436.000,5347.9430,N,00144.8081,W,1,09,0.9,117.9,M,47.9,M,,0000*45
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,268,25,12,51,079,33,29,44,189,30,14,40,240,34*79
+$GPGSV,3,2,10,31,28,302,39,02,26,083,30,04,18,044,23,09,16,136,41*77
+$GPGSV,3,3,10,32,07,314,30,20,05,335,41*7C
+$GPRMC,151436.000,A,5347.9430,N,00144.8081,W,28.80,321.62,140808,,,A*40
+$GPVTG,321.62,T,,M,28.80,N,53.3,K,A*0E
+$GPGGA,151437.000,5347.9493,N,00144.8166,W,1,09,0.9,117.1,M,47.9,M,,0000*4D
+$GPRMC,151437.000,A,5347.9493,N,00144.8166,W,29.09,321.34,140808,,,A*43
+$GPVTG,321.34,T,,M,29.09,N,53.9,K,A*07
+$GPGGA,151438.000,5347.9556,N,00144.8254,W,1,09,0.9,116.5,M,47.9,M,,0000*4D
+$GPRMC,151438.000,A,5347.9556,N,00144.8254,W,29.31,320.71,140808,,,A*4D
+$GPVTG,320.71,T,,M,29.31,N,54.3,K,A*01
+$GPGGA,151439.000,5347.9621,N,00144.8343,W,1,09,0.9,115.6,M,47.9,M,,0000*48
+$GPRMC,151439.000,A,5347.9621,N,00144.8343,W,29.97,321.27,140808,,,A*46
+$GPVTG,321.27,T,,M,29.97,N,55.5,K,A*08
+$GPGGA,151440.000,5347.9687,N,00144.8435,W,1,09,0.9,115.1,M,47.9,M,,0000*4B
+$GPRMC,151440.000,A,5347.9687,N,00144.8435,W,30.75,320.06,140808,,,A*44
+$GPVTG,320.06,T,,M,30.75,N,57.0,K,A*09
+$GPGGA,151441.000,5347.9753,N,00144.8530,W,1,09,0.9,114.8,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,268,33,12,51,079,33,29,44,189,30,14,40,240,40*7D
+$GPGSV,3,2,10,31,28,302,39,02,26,083,30,04,18,044,37,09,16,136,42*71
+$GPGSV,3,3,10,32,07,314,35,20,05,335,33*7C
+$GPRMC,151441.000,A,5347.9753,N,00144.8530,W,31.11,319.43,140808,,,A*41
+$GPVTG,319.43,T,,M,31.11,N,57.6,K,A*07
+$GPGGA,151442.000,5347.9819,N,00144.8625,W,1,09,0.9,114.5,M,47.9,M,,0000*46
+$GPRMC,151442.000,A,5347.9819,N,00144.8625,W,31.16,319.25,140808,,,A*43
+$GPVTG,319.25,T,,M,31.16,N,57.7,K,A*01
+$GPGGA,151443.000,5347.9883,N,00144.8718,W,1,09,0.9,114.3,M,47.9,M,,0000*4D
+$GPRMC,151443.000,A,5347.9883,N,00144.8718,W,30.31,319.06,140808,,,A*4B
+$GPVTG,319.06,T,,M,30.31,N,56.1,K,A*03
+$GPGGA,151444.000,5347.9942,N,00144.8805,W,1,09,0.9,113.9,M,47.9,M,,0000*48
+$GPRMC,151444.000,A,5347.9942,N,00144.8805,W,28.30,318.87,140808,,,A*43
+$GPVTG,318.87,T,,M,28.30,N,52.4,K,A*02
+$GPGGA,151445.000,5347.9997,N,00144.8885,W,1,09,0.9,113.6,M,47.9,M,,0000*46
+$GPRMC,151445.000,A,5347.9997,N,00144.8885,W,26.17,319.20,140808,,,A*45
+$GPVTG,319.20,T,,M,26.17,N,48.5,K,A*0F
+$GPGGA,151446.000,5348.0046,N,00144.8955,W,1,09,0.9,113.4,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,268,33,12,51,079,33,29,44,189,31,14,40,240,42*7E
+$GPGSV,3,2,10,31,28,302,40,02,26,083,30,04,18,044,38,09,16,136,42*70
+$GPGSV,3,3,10,32,07,314,36,20,05,335,33*7F
+$GPRMC,151446.000,A,5348.0046,N,00144.8955,W,23.14,319.81,140808,,,A*44
+$GPVTG,319.81,T,,M,23.14,N,42.9,K,A*04
+$GPGGA,151447.000,5348.0086,N,00144.9012,W,1,09,0.9,113.0,M,47.9,M,,0000*4A
+$GPRMC,151447.000,A,5348.0086,N,00144.9012,W,19.05,319.90,140808,,,A*4B
+$GPVTG,319.90,T,,M,19.05,N,35.3,K,A*07
+$GPGGA,151448.000,5348.0117,N,00144.9058,W,1,09,0.9,112.3,M,47.9,M,,0000*40
+$GPRMC,151448.000,A,5348.0117,N,00144.9058,W,15.39,319.18,140808,,,A*40
+$GPVTG,319.18,T,,M,15.39,N,28.5,K,A*0E
+$GPGGA,151449.000,5348.0146,N,00144.9099,W,1,09,0.9,111.7,M,47.9,M,,0000*4F
+$GPRMC,151449.000,A,5348.0146,N,00144.9099,W,13.42,319.45,140808,,,A*4A
+$GPVTG,319.45,T,,M,13.42,N,24.8,K,A*0D
+$GPGGA,151450.000,5348.0170,N,00144.9137,W,1,09,0.9,111.1,M,47.9,M,,0000*41
+$GPRMC,151450.000,A,5348.0170,N,00144.9137,W,12.50,318.34,140808,,,A*47
+$GPVTG,318.34,T,,M,12.50,N,23.2,K,A*05
+$GPGGA,151451.000,5348.0190,N,00144.9170,W,1,09,0.9,110.5,M,47.9,M,,0000*48
+$GPGSA,A,3,29,09,04,30,12,02,14,31,32,,,,1.7,0.9,1.4*3A
+$GPGSV,3,1,10,30,82,268,32,12,51,079,26,29,44,189,32,14,40,240,41*7B
+$GPGSV,3,2,10,31,28,302,40,02,26,083,30,04,18,044,29,09,16,136,42*70
+$GPGSV,3,3,10,32,07,314,23,20,05,335,39*71
+$GPRMC,151451.000,A,5348.0190,N,00144.9170,W,10.68,319.44,140808,,,A*44
+$GPVTG,319.44,T,,M,10.68,N,19.8,K,A*09
+$GPGGA,151452.000,5348.0205,N,00144.9196,W,1,09,0.9,110.0,M,47.9,M,,0000*49
+$GPRMC,151452.000,A,5348.0205,N,00144.9196,W,8.32,316.79,140808,,,A*77
+$GPVTG,316.79,T,,M,8.32,N,15.4,K,A*3E
+$GPGGA,151453.000,5348.0215,N,00144.9215,W,1,09,0.9,108.2,M,47.9,M,,0000*4A
+$GPRMC,151453.000,A,5348.0215,N,00144.9215,W,6.24,323.35,140808,,,A*78
+$GPVTG,323.35,T,,M,6.24,N,11.6,K,A*3F
+$GPGGA,151454.000,5348.0222,N,00144.9229,W,1,09,0.9,106.7,M,47.9,M,,0000*4D
+$GPRMC,151454.000,A,5348.0222,N,00144.9229,W,4.61,319.28,140808,,,A*72
+$GPVTG,319.28,T,,M,4.61,N,8.5,K,A*02
+$GPGGA,151455.000,5348.0228,N,00144.9242,W,1,08,1.0,105.5,M,47.9,M,,0000*43
+$GPRMC,151455.000,A,5348.0228,N,00144.9242,W,3.89,314.55,140808,,,A*72
+$GPVTG,314.55,T,,M,3.89,N,7.2,K,A*0C
+$GPGGA,151456.000,5348.0232,N,00144.9252,W,1,08,1.0,105.1,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,02,14,31,32,,,,,1.8,1.0,1.4*39
+$GPGSV,3,1,10,30,82,268,31,12,51,079,26,29,44,189,33,14,40,240,42*7A
+$GPGSV,3,2,10,31,28,302,38,02,26,083,30,04,18,044,26,09,16,136,43*71
+$GPGSV,3,3,10,32,07,314,24,20,05,335,40*78
+$GPRMC,151456.000,A,5348.0232,N,00144.9252,W,2.91,315.93,140808,,,A*78
+$GPVTG,315.93,T,,M,2.91,N,5.4,K,A*0B
+$GPGGA,151457.000,5348.0233,N,00144.9257,W,1,08,1.0,103.7,M,47.9,M,,0000*4B
+$GPRMC,151457.000,A,5348.0233,N,00144.9257,W,0.00,315.93,140808,,,A*77
+$GPVTG,315.93,T,,M,0.00,N,0.0,K,A*00
+$GPGGA,151458.000,5348.0234,N,00144.9259,W,1,08,1.0,103.5,M,47.9,M,,0000*4F
+$GPRMC,151458.000,A,5348.0234,N,00144.9259,W,0.00,315.93,140808,,,A*71
+$GPVTG,315.93,T,,M,0.00,N,0.0,K,A*00
+$GPGGA,151459.000,5348.0237,N,00144.9262,W,1,08,1.0,103.7,M,47.9,M,,0000*47
+$GPRMC,151459.000,A,5348.0237,N,00144.9262,W,1.63,310.60,140808,,,A*76
+$GPVTG,310.60,T,,M,1.63,N,3.0,K,A*0E
+$GPGGA,151500.000,5348.0241,N,00144.9269,W,1,08,1.0,104.2,M,47.9,M,,0000*42
+$GPRMC,151500.000,A,5348.0241,N,00144.9269,W,2.84,305.59,140808,,,A*75
+$GPVTG,305.59,T,,M,2.84,N,5.3,K,A*0F
+$GPGGA,151501.000,5348.0248,N,00144.9279,W,1,08,1.0,104.7,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,02,14,31,32,,,,,1.8,1.0,1.4*39
+$GPGSV,3,1,10,30,82,268,28,12,51,079,24,29,44,189,33,14,40,240,42*70
+$GPGSV,3,2,10,31,28,302,37,02,26,083,30,04,18,044,24,09,16,136,42*7D
+$GPGSV,3,3,10,32,07,314,24,20,05,335,40*78
+$GPRMC,151501.000,A,5348.0248,N,00144.9279,W,3.74,314.55,140808,,,A*7E
+$GPVTG,314.55,T,,M,3.74,N,6.9,K,A*04
+$GPGGA,151502.000,5348.0258,N,00144.9293,W,1,08,1.0,105.0,M,47.9,M,,0000*4E
+$GPRMC,151502.000,A,5348.0258,N,00144.9293,W,4.67,317.74,140808,,,A*7D
+$GPVTG,317.74,T,,M,4.67,N,8.7,K,A*01
+$GPGGA,151503.000,5348.0272,N,00144.9312,W,1,09,1.0,105.4,M,47.9,M,,0000*4A
+$GPRMC,151503.000,A,5348.0272,N,00144.9312,W,6.63,322.85,140808,,,A*72
+$GPVTG,322.85,T,,M,6.63,N,12.3,K,A*30
+$GPGGA,151504.000,5348.0293,N,00144.9336,W,1,09,1.0,105.6,M,47.9,M,,0000*46
+$GPRMC,151504.000,A,5348.0293,N,00144.9336,W,9.10,323.03,140808,,,A*78
+$GPVTG,323.03,T,,M,9.10,N,16.8,K,A*3B
+$GPGGA,151505.000,5348.0317,N,00144.9369,W,1,09,1.0,105.8,M,47.9,M,,0000*4E
+$GPRMC,151505.000,A,5348.0317,N,00144.9369,W,11.27,320.62,140808,,,A*47
+$GPVTG,320.62,T,,M,11.27,N,20.9,K,A*06
+$GPGGA,151506.000,5348.0343,N,00144.9407,W,1,09,1.0,105.5,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,30,12,20,02,14,31,32,,,,1.7,1.0,1.3*33
+$GPGSV,3,1,10,30,82,268,27,12,50,079,25,29,44,189,34,14,40,240,41*7B
+$GPGSV,3,2,10,31,28,302,41,02,26,083,29,04,18,044,24,09,16,136,42*74
+$GPGSV,3,3,10,32,07,314,32,20,05,335,40*7F
+$GPRMC,151506.000,A,5348.0343,N,00144.9407,W,12.52,320.35,140808,,,A*49
+$GPVTG,320.35,T,,M,12.52,N,23.2,K,A*0D
+$GPGGA,151507.000,5348.0372,N,00144.9448,W,1,09,1.0,105.5,M,47.9,M,,0000*46
+$GPRMC,151507.000,A,5348.0372,N,00144.9448,W,13.38,319.82,140808,,,A*4A
+$GPVTG,319.82,T,,M,13.38,N,24.8,K,A*0B
+$GPGGA,151508.000,5348.0402,N,00144.9490,W,1,10,0.9,105.9,M,47.9,M,,0000*40
+$GPRMC,151508.000,A,5348.0402,N,00144.9490,W,14.24,320.38,140808,,,A*41
+$GPVTG,320.38,T,,M,14.24,N,26.4,K,A*04
+$GPGGA,151509.000,5348.0434,N,00144.9535,W,1,10,0.9,105.9,M,47.9,M,,0000*4A
+$GPRMC,151509.000,A,5348.0434,N,00144.9535,W,14.82,321.19,140808,,,A*45
+$GPVTG,321.19,T,,M,14.82,N,27.5,K,A*0A
+$GPGGA,151510.000,5348.0467,N,00144.9581,W,1,10,0.9,106.1,M,47.9,M,,0000*40
+$GPRMC,151510.000,A,5348.0467,N,00144.9581,W,15.59,320.41,140808,,,A*4F
+$GPVTG,320.41,T,,M,15.59,N,28.9,K,A*02
+$GPGGA,151511.000,5348.0502,N,00144.9636,W,1,10,0.9,105.2,M,47.9,M,,0000*4C
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,27,12,50,079,30,29,44,189,34,14,40,240,41*7F
+$GPGSV,3,2,10,31,28,302,41,02,26,083,30,04,18,044,28,09,16,136,42*70
+$GPGSV,3,3,10,32,07,314,28,20,05,335,40*74
+$GPRMC,151511.000,A,5348.0502,N,00144.9636,W,17.07,319.69,140808,,,A*4A
+$GPVTG,319.69,T,,M,17.07,N,31.6,K,A*0C
+$GPGGA,151512.000,5348.0543,N,00144.9694,W,1,10,0.9,104.9,M,47.9,M,,0000*48
+$GPRMC,151512.000,A,5348.0543,N,00144.9694,W,18.79,323.18,140808,,,A*4D
+$GPVTG,323.18,T,,M,18.79,N,34.8,K,A*0E
+$GPGGA,151513.000,5348.0589,N,00144.9755,W,1,10,0.9,104.6,M,47.9,M,,0000*4C
+$GPRMC,151513.000,A,5348.0589,N,00144.9755,W,21.07,321.51,140808,,,A*4A
+$GPVTG,321.51,T,,M,21.07,N,39.0,K,A*07
+$GPGGA,151514.000,5348.0639,N,00144.9825,W,1,10,0.9,104.2,M,47.9,M,,0000*4F
+$GPRMC,151514.000,A,5348.0639,N,00144.9825,W,23.13,319.98,140808,,,A*44
+$GPVTG,319.98,T,,M,23.13,N,42.8,K,A*0A
+$GPGGA,151515.000,5348.0691,N,00144.9898,W,1,10,0.9,103.9,M,47.9,M,,0000*46
+$GPRMC,151515.000,A,5348.0691,N,00144.9898,W,24.24,319.48,140808,,,A*4F
+$GPVTG,319.48,T,,M,24.24,N,44.9,K,A*03
+$GPGGA,151516.000,5348.0744,N,00144.9974,W,1,10,0.9,103.8,M,47.9,M,,0000*4E
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,28,12,50,079,32,29,44,189,33,14,40,240,42*76
+$GPGSV,3,2,10,31,28,302,41,02,26,083,32,04,18,044,34,09,16,136,42*7F
+$GPGSV,3,3,10,32,07,314,36,20,05,335,36*7A
+$GPRMC,151516.000,A,5348.0744,N,00144.9974,W,24.95,319.36,140808,,,A*45
+$GPVTG,319.36,T,,M,24.95,N,46.2,K,A*09
+$GPGGA,151517.000,5348.0798,N,00145.0052,W,1,10,0.9,103.5,M,47.9,M,,0000*46
+$GPRMC,151517.000,A,5348.0798,N,00145.0052,W,25.14,318.85,140808,,,A*41
+$GPVTG,318.85,T,,M,25.14,N,46.6,K,A*0C
+$GPGGA,151518.000,5348.0851,N,00145.0130,W,1,09,1.0,103.3,M,47.9,M,,0000*40
+$GPRMC,151518.000,A,5348.0851,N,00145.0130,W,25.14,318.45,140808,,,A*4D
+$GPVTG,318.45,T,,M,25.14,N,46.6,K,A*00
+$GPGGA,151519.000,5348.0904,N,00145.0211,W,1,09,1.0,102.5,M,47.9,M,,0000*47
+$GPRMC,151519.000,A,5348.0904,N,00145.0211,W,25.44,318.49,140808,,,A*44
+$GPVTG,318.49,T,,M,25.44,N,47.1,K,A*0F
+$GPGGA,151520.000,5348.0958,N,00145.0293,W,1,09,1.0,102.0,M,47.9,M,,0000*4B
+$GPRMC,151520.000,A,5348.0958,N,00145.0293,W,25.92,318.50,140808,,,A*4E
+$GPVTG,318.50,T,,M,25.92,N,48.0,K,A*02
+$GPGGA,151521.000,5348.1012,N,00145.0376,W,1,10,0.9,101.4,M,47.9,M,,0000*41
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,30,12,50,079,33,29,44,189,33,14,40,240,42*7E
+$GPGSV,3,2,10,31,28,302,41,02,26,083,31,04,18,044,28,09,16,136,42*71
+$GPGSV,3,3,10,32,07,314,35,20,05,335,35*7A
+$GPRMC,151521.000,A,5348.1012,N,00145.0376,W,26.05,318.52,140808,,,A*4C
+$GPVTG,318.52,T,,M,26.05,N,48.2,K,A*0F
+$GPGGA,151522.000,5348.1066,N,00145.0457,W,1,10,0.9,100.8,M,47.9,M,,0000*48
+$GPRMC,151522.000,A,5348.1066,N,00145.0457,W,25.85,318.77,140808,,,A*44
+$GPVTG,318.77,T,,M,25.85,N,47.9,K,A*07
+$GPGGA,151523.000,5348.1120,N,00145.0537,W,1,10,0.9,100.3,M,47.9,M,,0000*46
+$GPRMC,151523.000,A,5348.1120,N,00145.0537,W,25.64,319.66,140808,,,A*4F
+$GPVTG,319.66,T,,M,25.64,N,47.5,K,A*05
+$GPGGA,151524.000,5348.1174,N,00145.0615,W,1,10,0.9,99.8,M,47.9,M,,0000*79
+$GPRMC,151524.000,A,5348.1174,N,00145.0615,W,25.55,319.59,140808,,,A*44
+$GPVTG,319.59,T,,M,25.55,N,47.3,K,A*0D
+$GPGGA,151525.000,5348.1228,N,00145.0694,W,1,10,0.9,99.4,M,47.9,M,,0000*77
+$GPRMC,151525.000,A,5348.1228,N,00145.0694,W,25.40,319.08,140808,,,A*46
+$GPVTG,319.08,T,,M,25.40,N,47.0,K,A*0E
+$GPGGA,151526.000,5348.1280,N,00145.0771,W,1,10,0.9,99.2,M,47.9,M,,0000*7A
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,30,12,50,079,34,29,44,189,32,14,40,240,42*78
+$GPGSV,3,2,10,31,28,302,41,02,26,083,31,04,18,044,31,09,16,136,43*78
+$GPGSV,3,3,10,32,07,314,28,20,05,335,27*75
+$GPRMC,151526.000,A,5348.1280,N,00145.0771,W,25.07,318.77,140808,,,A*47
+$GPVTG,318.77,T,,M,25.07,N,46.4,K,A*01
+$GPGGA,151527.000,5348.1333,N,00145.0848,W,1,10,0.9,98.8,M,47.9,M,,0000*7C
+$GPRMC,151527.000,A,5348.1333,N,00145.0848,W,24.80,319.16,140808,,,A*42
+$GPVTG,319.16,T,,M,24.80,N,45.9,K,A*07
+$GPGGA,151528.000,5348.1386,N,00145.0925,W,1,10,0.9,98.5,M,47.9,M,,0000*7A
+$GPRMC,151528.000,A,5348.1386,N,00145.0925,W,25.00,318.96,140808,,,A*49
+$GPVTG,318.96,T,,M,25.00,N,46.3,K,A*0E
+$GPGGA,151529.000,5348.1439,N,00145.1004,W,1,10,0.9,98.2,M,47.9,M,,0000*74
+$GPRMC,151529.000,A,5348.1439,N,00145.1004,W,25.35,318.78,140808,,,A*46
+$GPVTG,318.78,T,,M,25.35,N,47.0,K,A*0A
+$GPGGA,151530.000,5348.1491,N,00145.1079,W,1,10,0.9,97.9,M,47.9,M,,0000*70
+$GPRMC,151530.000,A,5348.1491,N,00145.1079,W,24.59,319.68,140808,,,A*4D
+$GPVTG,319.68,T,,M,24.59,N,45.5,K,A*06
+$GPGGA,151531.000,5348.1538,N,00145.1144,W,1,10,0.9,97.7,M,47.9,M,,0000*72
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,31,12,50,079,34,29,44,189,32,14,40,240,43*78
+$GPGSV,3,2,10,31,28,302,41,02,26,083,31,04,18,044,38,09,16,136,43*71
+$GPGSV,3,3,10,32,07,314,34,20,05,335,30*7E
+$GPRMC,151531.000,A,5348.1538,N,00145.1144,W,21.70,321.01,140808,,,A*4B
+$GPVTG,321.01,T,,M,21.70,N,40.2,K,A*0E
+$GPGGA,151532.000,5348.1576,N,00145.1194,W,1,10,0.9,97.6,M,47.9,M,,0000*77
+$GPRMC,151532.000,A,5348.1576,N,00145.1194,W,17.41,321.74,140808,,,A*4A
+$GPVTG,321.74,T,,M,17.41,N,32.2,K,A*0E
+$GPGGA,151533.000,5348.1604,N,00145.1231,W,1,10,0.9,97.4,M,47.9,M,,0000*7E
+$GPRMC,151533.000,A,5348.1604,N,00145.1231,W,13.17,322.43,140808,,,A*41
+$GPVTG,322.43,T,,M,13.17,N,24.4,K,A*0F
+$GPGGA,151534.000,5348.1625,N,00145.1257,W,1,10,0.9,97.3,M,47.9,M,,0000*7D
+$GPRMC,151534.000,A,5348.1625,N,00145.1257,W,9.56,322.99,140808,,,A*7C
+$GPVTG,322.99,T,,M,9.56,N,17.7,K,A*35
+$GPGGA,151535.000,5348.1641,N,00145.1276,W,1,10,0.9,97.4,M,47.9,M,,0000*7A
+$GPRMC,151535.000,A,5348.1641,N,00145.1276,W,7.00,322.76,140808,,,A*70
+$GPVTG,322.76,T,,M,7.00,N,13.0,K,A*3A
+$GPGGA,151536.000,5348.1653,N,00145.1291,W,1,10,0.9,97.5,M,47.9,M,,0000*72
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,31,12,50,079,36,29,44,189,33,14,40,240,45*7D
+$GPGSV,3,2,10,31,28,302,42,02,26,083,35,04,18,044,38,09,16,136,43*76
+$GPGSV,3,3,10,32,07,314,26,20,05,335,34*79
+$GPRMC,151536.000,A,5348.1653,N,00145.1291,W,5.45,323.10,140808,,,A*7B
+$GPVTG,323.10,T,,M,5.45,N,10.1,K,A*3A
+$GPGGA,151537.000,5348.1663,N,00145.1303,W,1,10,0.9,97.5,M,47.9,M,,0000*7A
+$GPRMC,151537.000,A,5348.1663,N,00145.1303,W,4.30,322.64,140808,,,A*72
+$GPVTG,322.64,T,,M,4.30,N,8.0,K,A*03
+$GPGGA,151538.000,5348.1670,N,00145.1311,W,1,10,0.9,97.6,M,47.9,M,,0000*77
+$GPRMC,151538.000,A,5348.1670,N,00145.1311,W,3.04,323.17,140808,,,A*79
+$GPVTG,323.17,T,,M,3.04,N,5.6,K,A*0D
+$GPGGA,151539.000,5348.1674,N,00145.1315,W,1,10,0.9,97.6,M,47.9,M,,0000*76
+$GPRMC,151539.000,A,5348.1674,N,00145.1315,W,0.00,323.17,140808,,,A*7F
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151540.000,5348.1676,N,00145.1316,W,1,10,0.9,97.7,M,47.9,M,,0000*78
+$GPRMC,151540.000,A,5348.1676,N,00145.1316,W,0.00,323.17,140808,,,A*70
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151541.000,5348.1678,N,00145.1317,W,1,10,0.9,97.7,M,47.9,M,,0000*76
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,31,12,50,080,35,29,44,189,35,14,40,240,46*7D
+$GPGSV,3,2,10,31,28,302,36,02,26,082,35,04,18,043,34,09,16,136,42*7E
+$GPGSV,3,3,10,32,07,313,23,20,05,335,34*7B
+$GPRMC,151541.000,A,5348.1678,N,00145.1317,W,0.00,323.17,140808,,,A*7E
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151542.000,5348.1678,N,00145.1317,W,1,09,0.9,97.7,M,47.9,M,,0000*7D
+$GPRMC,151542.000,A,5348.1678,N,00145.1317,W,0.00,323.17,140808,,,A*7D
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151543.000,5348.1678,N,00145.1317,W,1,09,0.9,97.6,M,47.9,M,,0000*7D
+$GPRMC,151543.000,A,5348.1678,N,00145.1317,W,0.00,323.17,140808,,,A*7C
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151544.000,5348.1678,N,00145.1317,W,1,09,0.9,97.7,M,47.9,M,,0000*7B
+$GPRMC,151544.000,A,5348.1678,N,00145.1317,W,0.00,323.17,140808,,,A*7B
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151545.000,5348.1677,N,00145.1317,W,1,09,0.9,97.8,M,47.9,M,,0000*7A
+$GPRMC,151545.000,A,5348.1677,N,00145.1317,W,0.00,323.17,140808,,,A*75
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151546.000,5348.1677,N,00145.1317,W,1,09,0.9,97.8,M,47.9,M,,0000*79
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,,,,1.7,0.9,1.4*39
+$GPGSV,3,1,10,30,82,268,31,12,50,080,35,29,44,189,37,14,40,240,46*7F
+$GPGSV,3,2,10,31,28,302,34,02,26,082,37,04,18,043,36,09,16,136,41*7F
+$GPGSV,3,3,10,32,07,313,,20,05,334,34*7B
+$GPRMC,151546.000,A,5348.1677,N,00145.1317,W,0.00,323.17,140808,,,A*76
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151547.000,5348.1677,N,00145.1317,W,1,09,0.9,97.9,M,47.9,M,,0000*79
+$GPRMC,151547.000,A,5348.1677,N,00145.1317,W,0.00,323.17,140808,,,A*77
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151548.000,5348.1677,N,00145.1317,W,1,09,0.9,98.0,M,47.9,M,,0000*70
+$GPRMC,151548.000,A,5348.1677,N,00145.1317,W,0.00,323.17,140808,,,A*78
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151549.000,5348.1677,N,00145.1317,W,1,09,0.9,98.0,M,47.9,M,,0000*71
+$GPRMC,151549.000,A,5348.1677,N,00145.1317,W,0.00,323.17,140808,,,A*79
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151550.000,5348.1677,N,00145.1317,W,1,09,0.9,98.0,M,47.9,M,,0000*79
+$GPRMC,151550.000,A,5348.1677,N,00145.1317,W,0.00,323.17,140808,,,A*71
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151551.000,5348.1677,N,00145.1317,W,1,09,0.9,98.1,M,47.9,M,,0000*79
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,,,,1.7,0.9,1.4*39
+$GPGSV,3,1,10,30,82,268,31,12,50,080,36,29,44,189,37,14,40,240,46*7C
+$GPGSV,3,2,10,31,28,302,35,02,26,082,39,04,18,043,36,09,16,136,41*70
+$GPGSV,3,3,10,32,07,313,,20,05,334,34*7B
+$GPRMC,151551.000,A,5348.1677,N,00145.1317,W,0.00,323.17,140808,,,A*70
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151552.000,5348.1677,N,00145.1316,W,1,09,0.9,98.1,M,47.9,M,,0000*7B
+$GPRMC,151552.000,A,5348.1677,N,00145.1316,W,0.00,323.17,140808,,,A*72
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151553.000,5348.1677,N,00145.1316,W,1,09,0.9,98.2,M,47.9,M,,0000*79
+$GPRMC,151553.000,A,5348.1677,N,00145.1316,W,0.00,323.17,140808,,,A*73
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151554.000,5348.1677,N,00145.1316,W,1,10,0.9,98.2,M,47.9,M,,0000*76
+$GPRMC,151554.000,A,5348.1677,N,00145.1316,W,0.00,323.17,140808,,,A*74
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151555.000,5348.1677,N,00145.1316,W,1,10,0.9,98.2,M,47.9,M,,0000*77
+$GPRMC,151555.000,A,5348.1677,N,00145.1316,W,0.00,323.17,140808,,,A*75
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151556.000,5348.1677,N,00145.1316,W,1,10,0.9,98.2,M,47.9,M,,0000*74
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,31,12,50,080,37,29,44,189,36,14,40,240,46*7C
+$GPGSV,3,2,10,31,28,302,35,02,26,082,39,04,18,043,37,09,16,136,41*71
+$GPGSV,3,3,10,32,07,313,24,20,05,334,34*7D
+$GPRMC,151556.000,A,5348.1677,N,00145.1316,W,0.00,323.17,140808,,,A*76
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151557.000,5348.1677,N,00145.1316,W,1,10,0.9,98.3,M,47.9,M,,0000*74
+$GPRMC,151557.000,A,5348.1677,N,00145.1316,W,0.00,323.17,140808,,,A*77
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151558.000,5348.1676,N,00145.1316,W,1,10,0.9,98.3,M,47.9,M,,0000*7A
+$GPRMC,151558.000,A,5348.1676,N,00145.1316,W,0.00,323.17,140808,,,A*79
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151559.000,5348.1676,N,00145.1316,W,1,10,0.9,98.3,M,47.9,M,,0000*7B
+$GPRMC,151559.000,A,5348.1676,N,00145.1316,W,0.00,323.17,140808,,,A*78
+$GPVTG,323.17,T,,M,0.00,N,0.0,K,A*09
+$GPGGA,151600.000,5348.1681,N,00145.1321,W,1,10,0.9,98.2,M,47.9,M,,0000*79
+$GPRMC,151600.000,A,5348.1681,N,00145.1321,W,1.93,324.16,140808,,,A*76
+$GPVTG,324.16,T,,M,1.93,N,3.6,K,A*01
+$GPGGA,151601.000,5348.1694,N,00145.1336,W,1,10,0.9,98.1,M,47.9,M,,0000*79
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,27,12,50,080,37,29,44,189,36,14,40,240,46*7B
+$GPGSV,3,2,10,31,28,302,42,02,26,082,39,04,18,043,36,09,16,136,41*70
+$GPGSV,3,3,10,32,07,313,29,20,05,334,34*70
+$GPRMC,151601.000,A,5348.1694,N,00145.1336,W,5.60,326.08,140808,,,A*70
+$GPVTG,326.08,T,,M,5.60,N,10.4,K,A*34
+$GPGGA,151602.000,5348.1714,N,00145.1359,W,1,10,0.9,98.2,M,47.9,M,,0000*79
+$GPRMC,151602.000,A,5348.1714,N,00145.1359,W,8.53,325.79,140808,,,A*7B
+$GPVTG,325.79,T,,M,8.53,N,15.8,K,A*35
+$GPGGA,151603.000,5348.1738,N,00145.1386,W,1,10,0.9,98.3,M,47.9,M,,0000*75
+$GPRMC,151603.000,A,5348.1738,N,00145.1386,W,10.31,326.49,140808,,,A*4B
+$GPVTG,326.49,T,,M,10.31,N,19.1,K,A*0D
+$GPGGA,151604.000,5348.1767,N,00145.1418,W,1,10,0.9,98.2,M,47.9,M,,0000*79
+$GPRMC,151604.000,A,5348.1767,N,00145.1418,W,12.40,327.08,140808,,,A*46
+$GPVTG,327.08,T,,M,12.40,N,23.0,K,A*05
+$GPGGA,151605.000,5348.1803,N,00145.1457,W,1,10,0.9,98.1,M,47.9,M,,0000*7D
+$GPRMC,151605.000,A,5348.1803,N,00145.1457,W,15.00,327.81,140808,,,A*43
+$GPVTG,327.81,T,,M,15.00,N,27.8,K,A*0B
+$GPGGA,151606.000,5348.1845,N,00145.1500,W,1,10,0.9,98.1,M,47.9,M,,0000*7F
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,82,268,28,12,50,080,37,29,44,189,35,14,40,240,45*74
+$GPGSV,3,2,10,31,28,302,41,02,26,082,36,04,18,043,21,09,16,136,41*7A
+$GPGSV,3,3,10,32,07,313,29,20,05,334,28*7D
+$GPRMC,151606.000,A,5348.1845,N,00145.1500,W,17.56,329.38,140808,,,A*4C
+$GPVTG,329.38,T,,M,17.56,N,32.5,K,A*0F
+$GPGGA,151607.000,5348.1892,N,00145.1546,W,1,10,0.9,98.0,M,47.9,M,,0000*77
+$GPRMC,151607.000,A,5348.1892,N,00145.1546,W,19.52,331.17,140808,,,A*4B
+$GPVTG,331.17,T,,M,19.52,N,36.1,K,A*01
+$GPGGA,151608.000,5348.1946,N,00145.1594,W,1,09,0.9,98.0,M,47.9,M,,0000*77
+$GPRMC,151608.000,A,5348.1946,N,00145.1594,W,21.38,332.87,140808,,,A*4E
+$GPVTG,332.87,T,,M,21.38,N,39.6,K,A*04
+$GPGGA,151609.000,5348.2005,N,00145.1643,W,1,09,0.9,97.9,M,47.9,M,,0000*74
+$GPRMC,151609.000,A,5348.2005,N,00145.1643,W,23.47,334.67,140808,,,A*49
+$GPVTG,334.67,T,,M,23.47,N,43.5,K,A*08
+$GPGGA,151610.000,5348.2068,N,00145.1691,W,1,09,0.9,97.8,M,47.9,M,,0000*79
+$GPRMC,151610.000,A,5348.2068,N,00145.1691,W,24.69,336.74,140808,,,A*4E
+$GPVTG,336.74,T,,M,24.69,N,45.7,K,A*07
+$GPGGA,151611.000,5348.2133,N,00145.1738,W,1,10,0.9,97.8,M,47.9,M,,0000*7D
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,28,12,50,080,36,29,44,189,38,14,40,239,31*75
+$GPGSV,3,2,10,31,28,302,41,02,26,082,31,04,18,043,28,09,16,136,40*75
+$GPGSV,3,3,10,32,07,313,34,20,05,334,24*7D
+$GPRMC,151611.000,A,5348.2133,N,00145.1738,W,25.18,337.12,140808,,,A*44
+$GPVTG,337.12,T,,M,25.18,N,46.6,K,A*03
+$GPGGA,151612.000,5348.2200,N,00145.1785,W,1,10,0.9,97.6,M,47.9,M,,0000*75
+$GPRMC,151612.000,A,5348.2200,N,00145.1785,W,26.03,337.94,140808,,,A*45
+$GPVTG,337.94,T,,M,26.03,N,48.2,K,A*0E
+$GPGGA,151613.000,5348.2270,N,00145.1831,W,1,10,0.9,97.6,M,47.9,M,,0000*73
+$GPRMC,151613.000,A,5348.2270,N,00145.1831,W,26.75,339.20,140808,,,A*43
+$GPVTG,339.20,T,,M,26.75,N,49.5,K,A*08
+$GPGGA,151614.000,5348.2341,N,00145.1871,W,1,10,0.9,97.5,M,47.9,M,,0000*70
+$GPRMC,151614.000,A,5348.2341,N,00145.1871,W,26.83,341.11,140808,,,A*47
+$GPVTG,341.11,T,,M,26.83,N,49.7,K,A*0E
+$GPGGA,151615.000,5348.2414,N,00145.1909,W,1,10,0.9,97.4,M,47.9,M,,0000*79
+$GPRMC,151615.000,A,5348.2414,N,00145.1909,W,26.96,342.63,140808,,,A*4D
+$GPVTG,342.63,T,,M,26.96,N,49.9,K,A*02
+$GPGGA,151616.000,5348.2488,N,00145.1947,W,1,10,0.9,97.3,M,47.9,M,,0000*72
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,28,12,50,080,31,29,44,189,38,14,40,239,27*75
+$GPGSV,3,2,10,31,28,302,32,02,26,082,32,04,18,043,33,09,16,136,34*7B
+$GPGSV,3,3,10,32,07,313,29,20,05,334,33*77
+$GPRMC,151616.000,A,5348.2488,N,00145.1947,W,27.55,343.67,140808,,,A*4A
+$GPVTG,343.67,T,,M,27.55,N,51.0,K,A*09
+$GPGGA,151617.000,5348.2564,N,00145.1983,W,1,10,0.9,97.2,M,47.9,M,,0000*79
+$GPRMC,151617.000,A,5348.2564,N,00145.1983,W,27.99,344.63,140808,,,A*43
+$GPVTG,344.63,T,,M,27.99,N,51.8,K,A*02
+$GPGGA,151618.000,5348.2638,N,00145.2016,W,1,10,0.9,97.3,M,47.9,M,,0000*7B
+$GPRMC,151618.000,A,5348.2638,N,00145.2016,W,27.57,346.35,140808,,,A*43
+$GPVTG,346.35,T,,M,27.57,N,51.1,K,A*08
+$GPGGA,151619.000,5348.2714,N,00145.2043,W,1,10,0.9,96.7,M,47.9,M,,0000*70
+$GPRMC,151619.000,A,5348.2714,N,00145.2043,W,26.97,349.08,140808,,,A*41
+$GPVTG,349.08,T,,M,26.97,N,50.0,K,A*04
+$GPGGA,151620.000,5348.2787,N,00145.2066,W,1,10,0.9,96.5,M,47.9,M,,0000*75
+$GPRMC,151620.000,A,5348.2787,N,00145.2066,W,26.52,350.85,140808,,,A*42
+$GPVTG,350.85,T,,M,26.52,N,49.1,K,A*09
+$GPGGA,151621.000,5348.2860,N,00145.2086,W,1,10,0.9,96.1,M,47.9,M,,0000*78
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,27,12,50,080,33,29,44,189,37,14,40,239,28*78
+$GPGSV,3,2,10,31,28,302,43,02,26,082,38,04,18,043,39,09,16,136,33*7A
+$GPGSV,3,3,10,32,07,313,37,20,05,334,33*78
+$GPRMC,151621.000,A,5348.2860,N,00145.2086,W,26.34,351.54,140808,,,A*46
+$GPVTG,351.54,T,,M,26.34,N,48.8,K,A*0C
+$GPGGA,151622.000,5348.2935,N,00145.2106,W,1,09,1.2,95.8,M,47.9,M,,0000*7B
+$GPRMC,151622.000,A,5348.2935,N,00145.2106,W,26.91,351.55,140808,,,A*43
+$GPVTG,351.55,T,,M,26.91,N,49.8,K,A*03
+$GPGGA,151623.000,5348.3012,N,00145.2126,W,1,09,0.9,95.4,M,47.9,M,,0000*73
+$GPRMC,151623.000,A,5348.3012,N,00145.2126,W,28.08,351.16,140808,,,A*44
+$GPVTG,351.16,T,,M,28.08,N,52.0,K,A*08
+$GPGGA,151624.000,5348.3094,N,00145.2150,W,1,09,0.9,95.5,M,47.9,M,,0000*7A
+$GPRMC,151624.000,A,5348.3094,N,00145.2150,W,29.34,350.34,140808,,,A*43
+$GPVTG,350.34,T,,M,29.34,N,54.3,K,A*02
+$GPGGA,151625.000,5348.3178,N,00145.2176,W,1,09,0.9,95.6,M,47.9,M,,0000*7F
+$GPRMC,151625.000,A,5348.3178,N,00145.2176,W,30.22,349.37,140808,,,A*41
+$GPVTG,349.37,T,,M,30.22,N,56.0,K,A*07
+$GPGGA,151626.000,5348.3263,N,00145.2205,W,1,09,0.9,95.5,M,47.9,M,,0000*71
+$GPGSA,A,3,29,09,04,30,12,20,02,31,32,,,,1.6,0.9,1.3*3B
+$GPGSV,3,1,10,30,83,269,25,12,50,080,31,29,44,189,37,14,40,239,27*77
+$GPGSV,3,2,10,31,28,302,44,02,26,082,38,04,18,043,32,09,16,136,37*72
+$GPGSV,3,3,10,32,07,313,32,20,05,334,28*77
+$GPRMC,151626.000,A,5348.3263,N,00145.2205,W,30.76,348.34,140808,,,A*4F
+$GPVTG,348.34,T,,M,30.76,N,57.0,K,A*05
+$GPGGA,151627.000,5348.3349,N,00145.2238,W,1,09,0.9,95.5,M,47.9,M,,0000*77
+$GPRMC,151627.000,A,5348.3349,N,00145.2238,W,31.32,346.56,140808,,,A*42
+$GPVTG,346.56,T,,M,31.32,N,58.0,K,A*01
+$GPGGA,151628.000,5348.3436,N,00145.2275,W,1,08,1.1,95.7,M,47.9,M,,0000*74
+$GPRMC,151628.000,A,5348.3436,N,00145.2275,W,32.03,345.28,140808,,,A*40
+$GPVTG,345.28,T,,M,32.03,N,59.3,K,A*08
+$GPGGA,151629.000,5348.3524,N,00145.2317,W,1,09,0.9,95.4,M,47.9,M,,0000*79
+$GPRMC,151629.000,A,5348.3524,N,00145.2317,W,32.89,344.19,140808,,,A*47
+$GPVTG,344.19,T,,M,32.89,N,60.9,K,A*09
+$GPGGA,151630.000,5348.3612,N,00145.2363,W,1,10,0.9,95.2,M,47.9,M,,0000*7A
+$GPRMC,151630.000,A,5348.3612,N,00145.2363,W,33.05,342.44,140808,,,A*41
+$GPVTG,342.44,T,,M,33.05,N,61.2,K,A*08
+$GPGGA,151631.000,5348.3699,N,00145.2412,W,1,10,0.9,95.1,M,47.9,M,,0000*7A
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,31,12,50,080,36,29,44,189,29,14,40,239,35*79
+$GPGSV,3,2,10,31,28,302,41,02,26,082,37,04,18,043,30,09,16,136,36*7B
+$GPGSV,3,3,10,32,07,313,39,20,05,334,36*73
+$GPRMC,151631.000,A,5348.3699,N,00145.2412,W,32.48,339.90,140808,,,A*4F
+$GPVTG,339.90,T,,M,32.48,N,60.1,K,A*07
+$GPGGA,151632.000,5348.3783,N,00145.2465,W,1,10,0.9,95.1,M,47.9,M,,0000*73
+$GPRMC,151632.000,A,5348.3783,N,00145.2465,W,31.86,338.49,140808,,,A*42
+$GPVTG,338.49,T,,M,31.86,N,59.0,K,A*08
+$GPGGA,151633.000,5348.3865,N,00145.2518,W,1,10,0.9,95.0,M,47.9,M,,0000*7F
+$GPRMC,151633.000,A,5348.3865,N,00145.2518,W,31.19,338.23,140808,,,A*45
+$GPVTG,338.23,T,,M,31.19,N,57.8,K,A*04
+$GPGGA,151634.000,5348.3944,N,00145.2572,W,1,10,0.9,95.0,M,47.9,M,,0000*76
+$GPRMC,151634.000,A,5348.3944,N,00145.2572,W,30.56,337.87,140808,,,A*47
+$GPVTG,337.87,T,,M,30.56,N,56.6,K,A*00
+$GPGGA,151635.000,5348.4020,N,00145.2627,W,1,09,0.9,95.1,M,47.9,M,,0000*71
+$GPRMC,151635.000,A,5348.4020,N,00145.2627,W,29.88,337.24,140808,,,A*4B
+$GPVTG,337.24,T,,M,29.88,N,55.3,K,A*04
+$GPGGA,151636.000,5348.4094,N,00145.2681,W,1,09,0.9,95.2,M,47.9,M,,0000*72
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,,,,1.7,0.9,1.4*39
+$GPGSV,3,1,10,30,83,269,31,12,50,080,40,29,44,189,37,14,40,239,35*77
+$GPGSV,3,2,10,31,28,302,44,02,26,082,36,04,18,043,34,09,16,136,37*7A
+$GPGSV,3,3,10,32,07,313,17,20,05,334,26*7E
+$GPRMC,151636.000,A,5348.4094,N,00145.2681,W,28.79,337.12,140808,,,A*41
+$GPVTG,337.12,T,,M,28.79,N,53.3,K,A*08
+$GPGGA,151637.000,5348.4159,N,00145.2729,W,1,09,0.9,95.2,M,47.9,M,,0000*70
+$GPRMC,151637.000,A,5348.4159,N,00145.2729,W,25.78,336.99,140808,,,A*4D
+$GPVTG,336.99,T,,M,25.78,N,47.7,K,A*07
+$GPGGA,151638.000,5348.4211,N,00145.2769,W,1,09,0.9,95.3,M,47.9,M,,0000*75
+$GPRMC,151638.000,A,5348.4211,N,00145.2769,W,21.07,337.30,140808,,,A*47
+$GPVTG,337.30,T,,M,21.07,N,39.0,K,A*07
+$GPGGA,151639.000,5348.4254,N,00145.2801,W,1,09,0.9,95.4,M,47.9,M,,0000*73
+$GPRMC,151639.000,A,5348.4254,N,00145.2801,W,17.07,337.40,140808,,,A*44
+$GPVTG,337.40,T,,M,17.07,N,31.6,K,A*0B
+$GPGGA,151640.000,5348.4287,N,00145.2826,W,1,10,0.9,94.2,M,47.9,M,,0000*79
+$GPRMC,151640.000,A,5348.4287,N,00145.2826,W,13.76,337.41,140808,,,A*42
+$GPVTG,337.41,T,,M,13.76,N,25.5,K,A*0E
+$GPGGA,151641.000,5348.4313,N,00145.2846,W,1,10,0.9,94.2,M,47.9,M,,0000*72
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,34,12,50,080,36,29,45,189,37,14,40,239,35*72
+$GPGSV,3,2,10,31,29,302,43,02,27,082,36,04,18,043,33,09,15,136,37*79
+$GPGSV,3,3,10,32,07,313,40,20,05,334,27*7D
+$GPRMC,151641.000,A,5348.4313,N,00145.2846,W,10.64,337.50,140808,,,A*49
+$GPVTG,337.50,T,,M,10.64,N,19.7,K,A*03
+$GPGGA,151642.000,5348.4331,N,00145.2860,W,1,10,0.9,94.2,M,47.9,M,,0000*75
+$GPRMC,151642.000,A,5348.4331,N,00145.2860,W,7.95,337.11,140808,,,A*73
+$GPVTG,337.11,T,,M,7.95,N,14.7,K,A*33
+$GPGGA,151643.000,5348.4346,N,00145.2872,W,1,10,0.9,94.4,M,47.9,M,,0000*71
+$GPRMC,151643.000,A,5348.4346,N,00145.2872,W,6.20,337.38,140808,,,A*75
+$GPVTG,337.38,T,,M,6.20,N,11.5,K,A*30
+$GPGGA,151644.000,5348.4358,N,00145.2882,W,1,10,0.9,94.5,M,47.9,M,,0000*77
+$GPRMC,151644.000,A,5348.4358,N,00145.2882,W,5.42,337.53,140808,,,A*78
+$GPVTG,337.53,T,,M,5.42,N,10.0,K,A*3E
+$GPGGA,151645.000,5348.4370,N,00145.2891,W,1,10,0.9,94.6,M,47.9,M,,0000*7D
+$GPRMC,151645.000,A,5348.4370,N,00145.2891,W,5.01,338.08,140808,,,A*77
+$GPVTG,338.08,T,,M,5.01,N,9.3,K,A*03
+$GPGGA,151646.000,5348.4382,N,00145.2901,W,1,10,0.9,94.7,M,47.9,M,,0000*7A
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,33,12,50,080,38,29,45,189,38,14,40,239,34*75
+$GPGSV,3,2,10,31,29,302,43,02,27,082,36,04,18,043,33,09,15,136,38*76
+$GPGSV,3,3,10,32,07,313,31,20,05,334,33*7E
+$GPRMC,151646.000,A,5348.4382,N,00145.2901,W,5.14,337.02,140808,,,A*70
+$GPVTG,337.02,T,,M,5.14,N,9.5,K,A*04
+$GPGGA,151647.000,5348.4395,N,00145.2912,W,1,10,0.9,94.7,M,47.9,M,,0000*7F
+$GPRMC,151647.000,A,5348.4395,N,00145.2912,W,5.36,337.26,140808,,,A*73
+$GPVTG,337.26,T,,M,5.36,N,9.9,K,A*0E
+$GPGGA,151648.000,5348.4407,N,00145.2921,W,1,10,0.9,94.8,M,47.9,M,,0000*73
+$GPRMC,151648.000,A,5348.4407,N,00145.2921,W,5.03,338.08,140808,,,A*75
+$GPVTG,338.08,T,,M,5.03,N,9.3,K,A*01
+$GPGGA,151649.000,5348.4416,N,00145.2929,W,1,10,0.9,94.9,M,47.9,M,,0000*7B
+$GPRMC,151649.000,A,5348.4416,N,00145.2929,W,4.19,338.12,140808,,,A*7D
+$GPVTG,338.12,T,,M,4.19,N,7.8,K,A*05
+$GPGGA,151650.000,5348.4425,N,00145.2935,W,1,10,0.9,94.9,M,47.9,M,,0000*7E
+$GPRMC,151650.000,A,5348.4425,N,00145.2935,W,3.49,337.81,140808,,,A*7F
+$GPVTG,337.81,T,,M,3.49,N,6.5,K,A*0E
+$GPGGA,151651.000,5348.4433,N,00145.2941,W,1,10,0.9,95.1,M,47.9,M,,0000*72
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,28,12,50,080,42,29,45,189,38,14,40,239,37*71
+$GPGSV,3,2,10,31,29,302,42,02,27,082,34,04,18,043,33,09,15,136,38*75
+$GPGSV,3,3,10,32,07,313,29,20,05,334,24*71
+$GPRMC,151651.000,A,5348.4433,N,00145.2941,W,3.38,338.42,140808,,,A*7C
+$GPVTG,338.42,T,,M,3.38,N,6.3,K,A*0E
+$GPGGA,151652.000,5348.4441,N,00145.2948,W,1,10,0.9,95.2,M,47.9,M,,0000*7E
+$GPRMC,151652.000,A,5348.4441,N,00145.2948,W,3.44,337.27,140808,,,A*74
+$GPVTG,337.27,T,,M,3.44,N,6.4,K,A*0E
+$GPGGA,151653.000,5348.4449,N,00145.2954,W,1,10,0.9,95.4,M,47.9,M,,0000*7C
+$GPRMC,151653.000,A,5348.4449,N,00145.2954,W,3.39,336.71,140808,,,A*78
+$GPVTG,336.71,T,,M,3.39,N,6.3,K,A*01
+$GPGGA,151654.000,5348.4456,N,00145.2961,W,1,10,0.9,95.5,M,47.9,M,,0000*72
+$GPRMC,151654.000,A,5348.4456,N,00145.2961,W,3.37,336.79,140808,,,A*71
+$GPVTG,336.79,T,,M,3.37,N,6.2,K,A*06
+$GPGGA,151655.000,5348.4464,N,00145.2967,W,1,10,0.9,95.6,M,47.9,M,,0000*77
+$GPRMC,151655.000,A,5348.4464,N,00145.2967,W,3.19,337.48,140808,,,A*78
+$GPVTG,337.48,T,,M,3.19,N,5.9,K,A*01
+$GPGGA,151656.000,5348.4471,N,00145.2972,W,1,10,0.9,95.6,M,47.9,M,,0000*74
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,30,12,50,080,40,29,45,189,38,14,40,239,35*78
+$GPGSV,3,2,10,31,29,302,40,02,27,082,35,04,18,043,34,09,15,136,38*71
+$GPGSV,3,3,10,32,07,313,30,20,05,334,31*7D
+$GPRMC,151656.000,A,5348.4471,N,00145.2972,W,2.86,337.36,140808,,,A*75
+$GPVTG,337.36,T,,M,2.86,N,5.3,K,A*05
+$GPGGA,151657.000,5348.4477,N,00145.2977,W,1,10,0.9,95.7,M,47.9,M,,0000*77
+$GPRMC,151657.000,A,5348.4477,N,00145.2977,W,2.77,336.63,140808,,,A*78
+$GPVTG,336.63,T,,M,2.77,N,5.1,K,A*08
+$GPGGA,151658.000,5348.4484,N,00145.2983,W,1,10,0.9,95.8,M,47.9,M,,0000*70
+$GPRMC,151658.000,A,5348.4484,N,00145.2983,W,2.95,336.65,140808,,,A*7A
+$GPVTG,336.65,T,,M,2.95,N,5.5,K,A*06
+$GPGGA,151659.000,5348.4490,N,00145.2990,W,1,10,0.9,96.0,M,47.9,M,,0000*7D
+$GPRMC,151659.000,A,5348.4490,N,00145.2990,W,2.94,337.52,140808,,,A*78
+$GPVTG,337.52,T,,M,2.94,N,5.4,K,A*03
+$GPGGA,151700.000,5348.4498,N,00145.2995,W,1,10,0.9,96.1,M,47.9,M,,0000*7C
+$GPRMC,151700.000,A,5348.4498,N,00145.2995,W,2.95,336.50,140808,,,A*7A
+$GPVTG,336.50,T,,M,2.95,N,5.5,K,A*00
+$GPGGA,151701.000,5348.4505,N,00145.3001,W,1,10,0.9,96.2,M,47.9,M,,0000*7E
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,10,30,83,269,30,12,50,080,40,29,45,189,38,14,40,239,35*78
+$GPGSV,3,2,10,31,29,302,39,02,27,082,35,04,18,043,31,09,15,136,37*75
+$GPGSV,3,3,10,32,07,313,30,20,05,334,32*7E
+$GPRMC,151701.000,A,5348.4505,N,00145.3001,W,3.18,337.37,140808,,,A*7F
+$GPVTG,337.37,T,,M,3.18,N,5.9,K,A*08
+$GPGGA,151702.000,5348.4513,N,00145.3006,W,1,10,0.9,96.3,M,47.9,M,,0000*7C
+$GPRMC,151702.000,A,5348.4513,N,00145.3006,W,3.18,337.56,140808,,,A*7B
+$GPVTG,337.56,T,,M,3.18,N,5.9,K,A*0F
+$GPGGA,151703.000,5348.4521,N,00145.3011,W,1,10,0.9,96.4,M,47.9,M,,0000*7D
+$GPRMC,151703.000,A,5348.4521,N,00145.3011,W,2.95,338.26,140808,,,A*71
+$GPVTG,338.26,T,,M,2.95,N,5.5,K,A*0F
+$GPGGA,151704.000,5348.4528,N,00145.3016,W,1,10,0.9,96.5,M,47.9,M,,0000*75
+$GPRMC,151704.000,A,5348.4528,N,00145.3016,W,2.81,336.72,140808,,,A*72
+$GPVTG,336.72,T,,M,2.81,N,5.2,K,A*02
+$GPGGA,151705.000,5348.4535,N,00145.3021,W,1,10,0.9,96.6,M,47.9,M,,0000*7F
+$GPRMC,151705.000,A,5348.4535,N,00145.3021,W,3.00,336.48,140808,,,A*7A
+$GPVTG,336.48,T,,M,3.00,N,5.5,K,A*04
+$GPGGA,151706.000,5348.4543,N,00145.3027,W,1,10,0.9,96.7,M,47.9,M,,0000*7A
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,269,31,12,50,080,40,29,45,189,38,14,39,239,35*76
+$GPGSV,3,2,11,31,29,302,36,02,27,082,35,04,18,043,34,09,15,136,37*7E
+$GPGSV,3,3,11,32,07,313,25,20,04,334,33,24,00,151,*48
+$GPRMC,151706.000,A,5348.4543,N,00145.3027,W,3.24,337.29,140808,,,A*7E
+$GPVTG,337.29,T,,M,3.24,N,6.0,K,A*02
+$GPGGA,151707.000,5348.4554,N,00145.3035,W,1,10,0.9,96.8,M,47.9,M,,0000*71
+$GPRMC,151707.000,A,5348.4554,N,00145.3035,W,4.31,336.32,140808,,,A*72
+$GPVTG,336.32,T,,M,4.31,N,8.0,K,A*04
+$GPGGA,151708.000,5348.4568,N,00145.3046,W,1,10,0.9,96.9,M,47.9,M,,0000*74
+$GPRMC,151708.000,A,5348.4568,N,00145.3046,W,5.57,336.41,140808,,,A*73
+$GPVTG,336.41,T,,M,5.57,N,10.3,K,A*3B
+$GPGGA,151709.000,5348.4586,N,00145.3059,W,1,10,0.9,97.1,M,47.9,M,,0000*72
+$GPRMC,151709.000,A,5348.4586,N,00145.3059,W,6.97,336.51,140808,,,A*72
+$GPVTG,336.51,T,,M,6.97,N,12.9,K,A*3D
+$GPGGA,151710.000,5348.4608,N,00145.3075,W,1,10,0.9,98.2,M,47.9,M,,0000*7D
+$GPRMC,151710.000,A,5348.4608,N,00145.3075,W,8.90,336.95,140808,,,A*70
+$GPVTG,336.95,T,,M,8.90,N,16.5,K,A*34
+$GPGGA,151711.000,5348.4632,N,00145.3093,W,1,10,0.9,98.5,M,47.9,M,,0000*7A
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,269,31,12,50,080,40,29,45,189,38,14,39,239,35*76
+$GPGSV,3,2,11,31,29,302,44,02,27,082,34,04,18,043,34,09,15,136,37*7A
+$GPGSV,3,3,11,32,07,313,36,20,04,334,27,24,00,151,18*46
+$GPRMC,151711.000,A,5348.4632,N,00145.3093,W,9.46,337.01,140808,,,A*76
+$GPVTG,337.01,T,,M,9.46,N,17.5,K,A*33
+$GPGGA,151712.000,5348.4655,N,00145.3110,W,1,10,0.9,98.8,M,47.9,M,,0000*7F
+$GPRMC,151712.000,A,5348.4655,N,00145.3110,W,9.00,335.99,140808,,,A*7F
+$GPVTG,335.99,T,,M,9.00,N,16.7,K,A*31
+$GPGGA,151713.000,5348.4677,N,00145.3127,W,1,10,0.9,98.9,M,47.9,M,,0000*7B
+$GPRMC,151713.000,A,5348.4677,N,00145.3127,W,8.69,336.39,140808,,,A*7D
+$GPVTG,336.39,T,,M,8.69,N,16.1,K,A*30
+$GPGGA,151714.000,5348.4699,N,00145.3143,W,1,10,0.9,99.0,M,47.9,M,,0000*76
+$GPRMC,151714.000,A,5348.4699,N,00145.3143,W,8.48,336.68,140808,,,A*7F
+$GPVTG,336.68,T,,M,8.48,N,15.7,K,A*32
+$GPGGA,151715.000,5348.4719,N,00145.3159,W,1,10,0.9,99.1,M,47.9,M,,0000*74
+$GPRMC,151715.000,A,5348.4719,N,00145.3159,W,8.13,335.28,140808,,,A*75
+$GPVTG,335.28,T,,M,8.13,N,15.1,K,A*3D
+$GPGGA,151716.000,5348.4739,N,00145.3175,W,1,10,0.9,99.2,M,47.9,M,,0000*78
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,269,31,12,50,080,37,29,45,189,39,14,39,239,35*77
+$GPGSV,3,2,11,31,29,302,43,02,27,082,34,04,18,043,33,09,15,136,37*7A
+$GPGSV,3,3,11,32,07,313,31,20,04,334,27,24,00,151,*48
+$GPRMC,151716.000,A,5348.4739,N,00145.3175,W,7.77,335.88,140808,,,A*7D
+$GPVTG,335.88,T,,M,7.77,N,14.4,K,A*3E
+$GPGGA,151717.000,5348.4757,N,00145.3190,W,1,10,0.9,99.3,M,47.9,M,,0000*7B
+$GPRMC,151717.000,A,5348.4757,N,00145.3190,W,7.45,334.91,140808,,,A*77
+$GPVTG,334.91,T,,M,7.45,N,13.8,K,A*3D
+$GPGGA,151718.000,5348.4776,N,00145.3205,W,1,10,0.9,99.4,M,47.9,M,,0000*7F
+$GPRMC,151718.000,A,5348.4776,N,00145.3205,W,7.43,335.93,140808,,,A*71
+$GPVTG,335.93,T,,M,7.43,N,13.8,K,A*38
+$GPGGA,151719.000,5348.4795,N,00145.3220,W,1,10,0.9,99.5,M,47.9,M,,0000*75
+$GPRMC,151719.000,A,5348.4795,N,00145.3220,W,7.56,335.66,140808,,,A*74
+$GPVTG,335.66,T,,M,7.56,N,14.0,K,A*39
+$GPGGA,151720.000,5348.4814,N,00145.3235,W,1,10,0.9,99.6,M,47.9,M,,0000*7E
+$GPRMC,151720.000,A,5348.4814,N,00145.3235,W,7.41,335.99,140808,,,A*7A
+$GPVTG,335.99,T,,M,7.41,N,13.7,K,A*3F
+$GPGGA,151721.000,5348.4832,N,00145.3250,W,1,10,0.9,99.6,M,47.9,M,,0000*78
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,269,31,12,50,080,36,29,45,189,39,14,39,239,34*77
+$GPGSV,3,2,11,31,29,302,43,02,27,082,33,04,18,043,26,09,15,136,37*79
+$GPGSV,3,3,11,32,07,313,31,20,04,334,27,24,00,151,*48
+$GPRMC,151721.000,A,5348.4832,N,00145.3250,W,7.23,335.57,140808,,,A*7A
+$GPVTG,335.57,T,,M,7.23,N,13.4,K,A*3A
+$GPGGA,151722.000,5348.4851,N,00145.3265,W,1,10,0.9,99.6,M,47.9,M,,0000*78
+$GPRMC,151722.000,A,5348.4851,N,00145.3265,W,7.56,335.89,140808,,,A*7B
+$GPVTG,335.89,T,,M,7.56,N,14.0,K,A*38
+$GPGGA,151723.000,5348.4873,N,00145.3282,W,1,10,0.9,99.6,M,47.9,M,,0000*70
+$GPRMC,151723.000,A,5348.4873,N,00145.3282,W,8.81,336.82,140808,,,A*7E
+$GPVTG,336.82,T,,M,8.81,N,16.3,K,A*34
+$GPGGA,151724.000,5348.4900,N,00145.3302,W,1,10,0.9,99.7,M,47.9,M,,0000*7A
+$GPRMC,151724.000,A,5348.4900,N,00145.3302,W,10.29,336.25,140808,,,A*43
+$GPVTG,336.25,T,,M,10.29,N,19.1,K,A*0F
+$GPGGA,151725.000,5348.4927,N,00145.3323,W,1,10,0.9,99.8,M,47.9,M,,0000*72
+$GPRMC,151725.000,A,5348.4927,N,00145.3323,W,10.85,336.23,140808,,,A*44
+$GPVTG,336.23,T,,M,10.85,N,20.1,K,A*05
+$GPGGA,151726.000,5348.4955,N,00145.3344,W,1,10,0.9,99.9,M,47.9,M,,0000*74
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,269,31,12,50,080,35,29,45,189,39,14,39,239,34*74
+$GPGSV,3,2,11,31,29,302,43,02,27,082,33,04,18,043,31,09,15,136,37*7F
+$GPGSV,3,3,11,32,07,313,32,20,04,334,27,24,00,151,12*48
+$GPRMC,151726.000,A,5348.4955,N,00145.3344,W,10.70,335.86,140808,,,A*45
+$GPVTG,335.86,T,,M,10.70,N,19.8,K,A*00
+$GPGGA,151727.000,5348.4982,N,00145.3365,W,1,10,0.9,100.0,M,47.9,M,,0000*44
+$GPRMC,151727.000,A,5348.4982,N,00145.3365,W,10.64,335.10,140808,,,A*47
+$GPVTG,335.10,T,,M,10.64,N,19.7,K,A*05
+$GPGGA,151728.000,5348.5010,N,00145.3388,W,1,09,0.9,100.1,M,47.9,M,,0000*42
+$GPRMC,151728.000,A,5348.5010,N,00145.3388,W,11.31,334.81,140808,,,A*40
+$GPVTG,334.81,T,,M,11.31,N,21.0,K,A*01
+$GPGGA,151729.000,5348.5041,N,00145.3413,W,1,10,0.9,100.1,M,47.9,M,,0000*4A
+$GPRMC,151729.000,A,5348.5041,N,00145.3413,W,12.02,335.06,140808,,,A*4D
+$GPVTG,335.06,T,,M,12.02,N,22.3,K,A*0C
+$GPGGA,151730.000,5348.5071,N,00145.3437,W,1,10,0.9,100.2,M,47.9,M,,0000*44
+$GPRMC,151730.000,A,5348.5071,N,00145.3437,W,12.00,335.33,140808,,,A*44
+$GPVTG,335.33,T,,M,12.00,N,22.2,K,A*09
+$GPGGA,151731.000,5348.5101,N,00145.3461,W,1,10,0.9,100.3,M,47.9,M,,0000*41
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,269,31,12,50,080,35,29,45,189,39,14,39,239,34*74
+$GPGSV,3,2,11,31,29,302,43,02,27,082,34,04,18,043,26,09,15,136,36*7F
+$GPGSV,3,3,11,32,07,313,22,20,04,334,20,24,00,151,*4D
+$GPRMC,151731.000,A,5348.5101,N,00145.3461,W,11.82,334.85,140808,,,A*45
+$GPVTG,334.85,T,,M,11.82,N,21.9,K,A*04
+$GPGGA,151732.000,5348.5130,N,00145.3485,W,1,10,0.9,100.4,M,47.9,M,,0000*4D
+$GPRMC,151732.000,A,5348.5130,N,00145.3485,W,11.64,334.23,140808,,,A*4A
+$GPVTG,334.23,T,,M,11.64,N,21.5,K,A*0C
+$GPGGA,151733.000,5348.5160,N,00145.3509,W,1,10,0.9,100.2,M,47.9,M,,0000*4A
+$GPRMC,151733.000,A,5348.5160,N,00145.3509,W,11.75,333.56,140808,,,A*4E
+$GPVTG,333.56,T,,M,11.75,N,21.8,K,A*04
+$GPGGA,151734.000,5348.5191,N,00145.3535,W,1,10,0.9,100.1,M,47.9,M,,0000*4F
+$GPRMC,151734.000,A,5348.5191,N,00145.3535,W,12.50,333.79,140808,,,A*41
+$GPVTG,333.79,T,,M,12.50,N,23.1,K,A*06
+$GPGGA,151735.000,5348.5226,N,00145.3565,W,1,10,0.9,100.0,M,47.9,M,,0000*45
+$GPRMC,151735.000,A,5348.5226,N,00145.3565,W,13.79,332.87,140808,,,A*40
+$GPVTG,332.87,T,,M,13.79,N,25.5,K,A*0E
+$GPGGA,151736.000,5348.5265,N,00145.3597,W,1,10,0.9,99.8,M,47.9,M,,0000*75
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,270,32,12,49,080,36,29,45,189,39,14,39,239,35*75
+$GPGSV,3,2,11,31,29,302,41,02,27,082,35,04,18,042,36,09,15,137,37*7C
+$GPGSV,3,3,11,32,07,313,22,20,04,334,21,24,00,151,*4C
+$GPRMC,151736.000,A,5348.5265,N,00145.3597,W,15.32,332.40,140808,,,A*4B
+$GPVTG,332.40,T,,M,15.32,N,28.4,K,A*00
+$GPGGA,151737.000,5348.5306,N,00145.3632,W,1,09,0.9,99.7,M,47.9,M,,0000*7B
+$GPRMC,151737.000,A,5348.5306,N,00145.3632,W,16.31,332.62,140808,,,A*42
+$GPVTG,332.62,T,,M,16.31,N,30.2,K,A*0F
+$GPGGA,151738.000,5348.5347,N,00145.3667,W,1,09,0.9,99.5,M,47.9,M,,0000*73
+$GPRMC,151738.000,A,5348.5347,N,00145.3667,W,16.41,332.60,140808,,,A*4D
+$GPVTG,332.60,T,,M,16.41,N,30.4,K,A*0C
+$GPGGA,151739.000,5348.5387,N,00145.3701,W,1,09,0.9,99.2,M,47.9,M,,0000*78
+$GPRMC,151739.000,A,5348.5387,N,00145.3701,W,16.08,332.90,140808,,,A*43
+$GPVTG,332.90,T,,M,16.08,N,29.8,K,A*0A
+$GPGGA,151740.000,5348.5426,N,00145.3734,W,1,09,0.9,98.9,M,47.9,M,,0000*76
+$GPRMC,151740.000,A,5348.5426,N,00145.3734,W,15.50,332.61,140808,,,A*47
+$GPVTG,332.61,T,,M,15.50,N,28.7,K,A*04
+$GPGGA,151741.000,5348.5463,N,00145.3766,W,1,09,0.9,98.7,M,47.9,M,,0000*7F
+$GPGSA,A,3,29,09,04,30,12,20,02,14,31,,,,1.7,0.9,1.4*39
+$GPGSV,3,1,11,30,83,270,32,12,49,080,37,29,45,189,39,14,39,239,36*77
+$GPGSV,3,2,11,31,29,302,41,02,27,082,36,04,18,042,37,09,15,137,37*7E
+$GPGSV,3,3,11,32,07,313,,20,04,334,37,24,00,151,*4B
+$GPRMC,151741.000,A,5348.5463,N,00145.3766,W,14.78,332.03,140808,,,A*4F
+$GPVTG,332.03,T,,M,14.78,N,27.4,K,A*07
+$GPGGA,151742.000,5348.5498,N,00145.3797,W,1,09,0.9,98.5,M,47.9,M,,0000*74
+$GPRMC,151742.000,A,5348.5498,N,00145.3797,W,14.05,331.68,140808,,,A*42
+$GPVTG,331.68,T,,M,14.05,N,26.0,K,A*06
+$GPGGA,151743.000,5348.5530,N,00145.3827,W,1,09,0.9,98.3,M,47.9,M,,0000*74
+$GPRMC,151743.000,A,5348.5530,N,00145.3827,W,13.39,331.05,140808,,,A*47
+$GPVTG,331.05,T,,M,13.39,N,24.8,K,A*0F
+$GPGGA,151744.000,5348.5560,N,00145.3856,W,1,08,1.0,96.5,M,47.9,M,,0000*71
+$GPRMC,151744.000,A,5348.5560,N,00145.3856,W,12.98,330.31,140808,,,A*4F
+$GPVTG,330.31,T,,M,12.98,N,24.0,K,A*0B
+$GPGGA,151745.000,5348.5591,N,00145.3886,W,1,06,1.2,95.1,M,47.9,M,,0000*78
+$GPRMC,151745.000,A,5348.5591,N,00145.3886,W,13.11,330.33,140808,,,A*4F
+$GPVTG,330.33,T,,M,13.11,N,24.3,K,A*0A
+$GPGGA,151746.000,5348.5622,N,00145.3917,W,1,05,1.3,95.1,M,47.9,M,,0000*7B
+$GPGSA,A,3,29,09,12,20,02,,,,,,,,2.4,1.3,2.0*35
+$GPGSV,3,1,11,30,83,270,23,12,49,080,25,29,45,189,32,14,39,239,21*79
+$GPGSV,3,2,11,31,29,302,20,02,27,082,29,04,18,042,,09,15,137,39*7D
+$GPGSV,3,3,11,32,07,313,,20,04,334,28,24,00,151,*45
+$GPRMC,151746.000,A,5348.5622,N,00145.3917,W,13.10,328.99,140808,,,A*46
+$GPVTG,328.99,T,,M,13.10,N,24.3,K,A*02
+$GPGGA,151747.000,5348.5652,N,00145.3951,W,1,07,1.4,94.1,M,47.9,M,,0000*7B
+$GPRMC,151747.000,A,5348.5652,N,00145.3951,W,12.89,327.75,140808,,,A*4E
+$GPVTG,327.75,T,,M,12.89,N,23.9,K,A*03
+$GPGGA,151748.000,5348.5682,N,00145.3982,W,1,07,1.4,94.2,M,47.9,M,,0000*74
+$GPRMC,151748.000,A,5348.5682,N,00145.3982,W,12.74,328.42,140808,,,A*4B
+$GPVTG,328.42,T,,M,12.74,N,23.6,K,A*05
+$GPGGA,151749.000,5348.5707,N,00145.4016,W,1,08,1.1,93.3,M,47.9,M,,0000*76
+$GPRMC,151749.000,A,5348.5707,N,00145.4016,W,11.39,325.15,140808,,,A*40
+$GPVTG,325.15,T,,M,11.39,N,21.1,K,A*05
+$GPGGA,151750.000,5348.5729,N,00145.4036,W,1,08,1.1,92.4,M,47.9,M,,0000*76
+$GPRMC,151750.000,A,5348.5729,N,00145.4036,W,9.20,327.81,140808,,,A*78
+$GPVTG,327.81,T,,M,9.20,N,17.0,K,A*3F
+$GPGGA,151751.000,5348.5744,N,00145.4053,W,1,09,0.9,91.0,M,47.9,M,,0000*70
+$GPGSA,A,3,09,04,30,12,20,02,31,29,32,,,,1.6,0.9,1.3*3B
+$GPGSV,3,1,11,30,83,270,34,12,49,080,34,29,45,189,39,14,39,239,27*72
+$GPGSV,3,2,11,31,29,302,40,02,27,082,35,04,18,042,36,09,15,137,26*7D
+$GPGSV,3,3,11,32,07,313,30,20,04,334,32,24,00,151,*4D
+$GPRMC,151751.000,A,5348.5744,N,00145.4053,W,7.26,329.48,140808,,,A*72
+$GPVTG,329.48,T,,M,7.26,N,13.4,K,A*3C
+$GPGGA,151752.000,5348.5759,N,00145.4063,W,1,10,0.9,90.1,M,47.9,M,,0000*74
+$GPRMC,151752.000,A,5348.5759,N,00145.4063,W,5.96,325.87,140808,,,A*78
+$GPVTG,325.87,T,,M,5.96,N,11.0,K,A*3C
+$GPGGA,151753.000,5348.5772,N,00145.4074,W,1,10,0.9,89.2,M,47.9,M,,0000*71
+$GPRMC,151753.000,A,5348.5772,N,00145.4074,W,5.15,327.00,140808,,,A*70
+$GPVTG,327.00,T,,M,5.15,N,9.5,K,A*06
+$GPGGA,151754.000,5348.5783,N,00145.4083,W,1,10,0.9,88.3,M,47.9,M,,0000*70
+$GPRMC,151754.000,A,5348.5783,N,00145.4083,W,4.45,327.78,140808,,,A*7A
+$GPVTG,327.78,T,,M,4.45,N,8.2,K,A*0B
+$GPGGA,151755.000,5348.5793,N,00145.4092,W,1,10,0.9,87.5,M,47.9,M,,0000*79
+$GPRMC,151755.000,A,5348.5793,N,00145.4092,W,3.99,327.82,140808,,,A*79
+$GPVTG,327.82,T,,M,3.99,N,7.4,K,A*01
+$GPGGA,151756.000,5348.5801,N,00145.4099,W,1,10,0.9,86.8,M,47.9,M,,0000*79
+$GPGSA,A,3,09,04,30,12,20,02,14,31,29,32,,,1.6,0.9,1.3*3E
+$GPGSV,3,1,11,30,83,270,34,12,49,080,33,29,45,189,39,14,39,239,42*76
+$GPGSV,3,2,11,31,29,302,38,02,27,082,35,04,18,042,35,09,15,137,26*71
+$GPGSV,3,3,11,32,07,313,27,20,04,334,31,24,00,151,*48
+$GPRMC,151756.000,A,5348.5801,N,00145.4099,W,3.65,328.17,140808,,,A*75
+$GPVTG,328.17,T,,M,3.65,N,6.8,K,A*0C
+$GPGGA,151757.000,5348.5807,N,00145.4106,W,1,10,0.9,85.9,M,47.9,M,,0000*7B
+$GPRMC,151757.000,A,5348.5807,N,00145.4106,W,2.86,326.86,140808,,,A*7F
+$GPVTG,326.86,T,,M,2.86,N,5.3,K,A*0E
+$GPGGA,151758.000,5348.5812,N,00145.4109,W,1,09,0.9,85.7,M,47.9,M,,0000*79
+$GPRMC,151758.000,A,5348.5812,N,00145.4109,W,0.00,326.86,140808,,,A*77
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151759.000,5348.5814,N,00145.4111,W,1,09,0.9,85.7,M,47.9,M,,0000*77
+$GPRMC,151759.000,A,5348.5814,N,00145.4111,W,0.00,326.86,140808,,,A*79
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151800.000,5348.5815,N,00145.4111,W,1,09,0.9,85.6,M,47.9,M,,0000*74
+$GPRMC,151800.000,A,5348.5815,N,00145.4111,W,0.00,326.86,140808,,,A*7B
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151801.000,5348.5815,N,00145.4111,W,1,08,1.0,85.6,M,47.9,M,,0000*7C
+$GPGSA,A,3,09,04,30,12,02,14,31,29,,,,,1.9,1.0,1.7*3E
+$GPGSV,3,1,11,30,83,270,25,12,49,080,33,29,45,189,40,14,39,239,42*78
+$GPGSV,3,2,11,31,29,302,35,02,27,082,35,04,18,042,26,09,15,137,34*7D
+$GPGSV,3,3,11,32,07,313,,20,04,334,28,24,00,151,*45
+$GPRMC,151801.000,A,5348.5815,N,00145.4111,W,0.00,326.86,140808,,,A*7A
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151802.000,5348.5816,N,00145.4111,W,1,08,1.0,85.7,M,47.9,M,,0000*7D
+$GPRMC,151802.000,A,5348.5816,N,00145.4111,W,0.00,326.86,140808,,,A*7A
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151803.000,5348.5816,N,00145.4111,W,1,08,1.0,85.7,M,47.9,M,,0000*7C
+$GPRMC,151803.000,A,5348.5816,N,00145.4111,W,0.00,326.86,140808,,,A*7B
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151804.000,5348.5817,N,00145.4111,W,1,08,1.0,85.9,M,47.9,M,,0000*74
+$GPRMC,151804.000,A,5348.5817,N,00145.4111,W,0.00,326.86,140808,,,A*7D
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151805.000,5348.5817,N,00145.4111,W,1,08,1.0,85.9,M,47.9,M,,0000*75
+$GPRMC,151805.000,A,5348.5817,N,00145.4111,W,0.00,326.86,140808,,,A*7C
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151806.000,5348.5817,N,00145.4111,W,1,08,1.0,85.7,M,47.9,M,,0000*78
+$GPGSA,A,3,09,04,30,12,02,14,31,29,,,,,1.9,1.0,1.7*3E
+$GPGSV,3,1,11,30,83,270,25,12,49,080,33,29,45,189,40,14,39,239,41*7B
+$GPGSV,3,2,11,31,29,302,35,02,27,082,36,04,18,042,28,09,15,137,34*70
+$GPGSV,3,3,11,32,07,313,,20,04,334,34,24,00,151,*48
+$GPRMC,151806.000,A,5348.5817,N,00145.4111,W,0.00,326.86,140808,,,A*7F
+$GPVTG,326.86,T,,M,0.00,N,0.0,K,A*04
+$GPGGA,151807.000,5348.5821,N,00145.4114,W,1,08,1.0,85.7,M,47.9,M,,0000*79
+$GPRMC,151807.000,A,5348.5821,N,00145.4114,W,1.13,328.09,140808,,,A*74
+$GPVTG,328.09,T,,M,1.13,N,2.1,K,A*0D
+$GPGGA,151808.000,5348.5832,N,00145.4124,W,1,08,1.0,85.8,M,47.9,M,,0000*78
+$GPRMC,151808.000,A,5348.5832,N,00145.4124,W,4.06,328.74,140808,,,A*71
+$GPVTG,328.74,T,,M,4.06,N,7.5,K,A*07
+$GPGGA,151809.000,5348.5848,N,00145.4141,W,1,08,1.0,86.0,M,47.9,M,,0000*7C
+$GPRMC,151809.000,A,5348.5848,N,00145.4141,W,6.59,327.82,140808,,,A*70
+$GPVTG,327.82,T,,M,6.59,N,12.2,K,A*3A
+$GPGGA,151810.000,5348.5866,N,00145.4159,W,1,08,1.0,86.2,M,47.9,M,,0000*73
+$GPRMC,151810.000,A,5348.5866,N,00145.4159,W,7.29,328.09,140808,,,A*77
+$GPVTG,328.09,T,,M,7.29,N,13.5,K,A*36
+$GPGGA,151811.000,5348.5887,N,00145.4180,W,1,09,0.9,86.4,M,47.9,M,,0000*76
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,270,32,12,49,080,33,29,45,189,39,14,39,238,41*75
+$GPGSV,3,2,11,31,29,302,38,02,27,081,36,04,18,042,35,09,15,137,42*73
+$GPGSV,3,3,11,32,07,313,37,20,04,334,33,24,00,151,*4B
+$GPRMC,151811.000,A,5348.5887,N,00145.4180,W,8.41,328.86,140808,,,A*7B
+$GPVTG,328.86,T,,M,8.41,N,15.6,K,A*35
+$GPGGA,151812.000,5348.5912,N,00145.4205,W,1,09,0.9,86.6,M,47.9,M,,0000*74
+$GPRMC,151812.000,A,5348.5912,N,00145.4205,W,10.39,329.58,140808,,,A*4F
+$GPVTG,329.58,T,,M,10.39,N,19.2,K,A*09
+$GPGGA,151813.000,5348.5940,N,00145.4233,W,1,09,0.9,86.7,M,47.9,M,,0000*76
+$GPRMC,151813.000,A,5348.5940,N,00145.4233,W,11.36,330.01,140808,,,A*46
+$GPVTG,330.01,T,,M,11.36,N,21.0,K,A*0A
+$GPGGA,151814.000,5348.5968,N,00145.4260,W,1,09,0.9,86.8,M,47.9,M,,0000*72
+$GPRMC,151814.000,A,5348.5968,N,00145.4260,W,11.35,330.10,140808,,,A*4E
+$GPVTG,330.10,T,,M,11.35,N,21.0,K,A*09
+$GPGGA,151815.000,5348.5996,N,00145.4286,W,1,09,0.9,86.9,M,47.9,M,,0000*7B
+$GPRMC,151815.000,A,5348.5996,N,00145.4286,W,11.18,329.76,140808,,,A*41
+$GPVTG,329.76,T,,M,11.18,N,20.7,K,A*08
+$GPGGA,151816.000,5348.6022,N,00145.4312,W,1,09,0.9,87.1,M,47.9,M,,0000*78
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,270,32,12,49,080,34,29,45,189,40,14,39,238,41*7C
+$GPGSV,3,2,11,31,29,302,39,02,27,081,36,04,18,042,36,09,15,137,41*72
+$GPGSV,3,3,11,32,07,312,29,20,04,334,31,24,00,151,*47
+$GPRMC,151816.000,A,5348.6022,N,00145.4312,W,10.91,329.61,140808,,,A*4D
+$GPVTG,329.61,T,,M,10.91,N,20.2,K,A*0B
+$GPGGA,151817.000,5348.6048,N,00145.4338,W,1,09,0.9,87.3,M,47.9,M,,0000*7F
+$GPRMC,151817.000,A,5348.6048,N,00145.4338,W,10.60,328.78,140808,,,A*4F
+$GPVTG,328.78,T,,M,10.60,N,19.6,K,A*02
+$GPGGA,151818.000,5348.6074,N,00145.4365,W,1,09,0.9,87.4,M,47.9,M,,0000*70
+$GPRMC,151818.000,A,5348.6074,N,00145.4365,W,10.88,328.31,140808,,,A*4C
+$GPVTG,328.31,T,,M,10.88,N,20.2,K,A*07
+$GPGGA,151819.000,5348.6104,N,00145.4396,W,1,09,0.9,87.6,M,47.9,M,,0000*79
+$GPRMC,151819.000,A,5348.6104,N,00145.4396,W,12.32,327.63,140808,,,A*4C
+$GPVTG,327.63,T,,M,12.32,N,22.8,K,A*04
+$GPGGA,151820.000,5348.6138,N,00145.4432,W,1,09,0.9,87.7,M,47.9,M,,0000*74
+$GPRMC,151820.000,A,5348.6138,N,00145.4432,W,14.26,328.71,140808,,,A*4F
+$GPVTG,328.71,T,,M,14.26,N,26.4,K,A*03
+$GPGGA,151821.000,5348.6177,N,00145.4471,W,1,09,0.9,87.8,M,47.9,M,,0000*76
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,270,32,12,49,080,33,29,45,189,39,14,39,238,41*75
+$GPGSV,3,2,11,31,29,302,39,02,27,081,36,04,18,042,36,09,15,137,42*71
+$GPGSV,3,3,11,32,07,312,39,20,04,334,31,24,00,151,*46
+$GPRMC,151821.000,A,5348.6177,N,00145.4471,W,16.07,329.66,140808,,,A*44
+$GPVTG,329.66,T,,M,16.07,N,29.8,K,A*06
+$GPGGA,151822.000,5348.6218,N,00145.4511,W,1,09,0.9,87.9,M,47.9,M,,0000*79
+$GPRMC,151822.000,A,5348.6218,N,00145.4511,W,16.91,329.52,140808,,,A*42
+$GPVTG,329.52,T,,M,16.91,N,31.3,K,A*0C
+$GPGGA,151823.000,5348.6260,N,00145.4553,W,1,09,0.9,88.1,M,47.9,M,,0000*76
+$GPRMC,151823.000,A,5348.6260,N,00145.4553,W,17.24,328.94,140808,,,A*4E
+$GPVTG,328.94,T,,M,17.24,N,31.9,K,A*02
+$GPGGA,151824.000,5348.6303,N,00145.4597,W,1,09,0.9,88.2,M,47.9,M,,0000*7E
+$GPRMC,151824.000,A,5348.6303,N,00145.4597,W,18.02,328.41,140808,,,A*46
+$GPVTG,328.41,T,,M,18.02,N,33.4,K,A*0E
+$GPGGA,151825.000,5348.6347,N,00145.4643,W,1,09,0.9,88.3,M,47.9,M,,0000*74
+$GPRMC,151825.000,A,5348.6347,N,00145.4643,W,18.40,327.73,140808,,,A*45
+$GPVTG,327.73,T,,M,18.40,N,34.1,K,A*04
+$GPGGA,151826.000,5348.6390,N,00145.4689,W,1,08,1.0,88.4,M,47.9,M,,0000*75
+$GPGSA,A,3,09,30,12,02,14,31,29,32,,,,,1.7,1.0,1.4*36
+$GPGSV,3,1,11,30,84,270,33,12,49,080,32,29,45,189,39,14,39,238,41*75
+$GPGSV,3,2,11,31,29,302,39,02,27,081,37,04,18,042,21,09,15,137,42*76
+$GPGSV,3,3,11,32,07,312,38,20,04,334,31,24,00,151,*47
+$GPRMC,151826.000,A,5348.6390,N,00145.4689,W,18.19,326.95,140808,,,A*4F
+$GPVTG,326.95,T,,M,18.19,N,33.7,K,A*00
+$GPGGA,151827.000,5348.6433,N,00145.4735,W,1,08,1.0,88.6,M,47.9,M,,0000*7E
+$GPRMC,151827.000,A,5348.6433,N,00145.4735,W,18.03,327.60,140808,,,A*46
+$GPVTG,327.60,T,,M,18.03,N,33.4,K,A*03
+$GPGGA,151828.000,5348.6475,N,00145.4779,W,1,09,0.9,88.8,M,47.9,M,,0000*7C
+$GPRMC,151828.000,A,5348.6475,N,00145.4779,W,17.88,328.94,140808,,,A*4B
+$GPVTG,328.94,T,,M,17.88,N,33.1,K,A*0E
+$GPGGA,151829.000,5348.6518,N,00145.4821,W,1,09,0.9,88.8,M,47.9,M,,0000*75
+$GPRMC,151829.000,A,5348.6518,N,00145.4821,W,17.58,330.47,140808,,,A*48
+$GPVTG,330.47,T,,M,17.58,N,32.5,K,A*01
+$GPGGA,151830.000,5348.6560,N,00145.4860,W,1,09,0.9,88.9,M,47.9,M,,0000*76
+$GPRMC,151830.000,A,5348.6560,N,00145.4860,W,17.15,331.02,140808,,,A*43
+$GPVTG,331.02,T,,M,17.15,N,31.8,K,A*06
+$GPGGA,151831.000,5348.6601,N,00145.4899,W,1,09,0.9,89.0,M,47.9,M,,0000*7D
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,270,33,12,49,080,37,29,45,189,39,14,39,238,41*70
+$GPGSV,3,2,11,31,29,302,39,02,27,081,36,04,18,042,27,09,15,137,41*72
+$GPGSV,3,3,11,32,07,312,35,20,04,334,31,24,00,151,*4A
+$GPRMC,151831.000,A,5348.6601,N,00145.4899,W,16.77,330.08,140808,,,A*4E
+$GPVTG,330.08,T,,M,16.77,N,31.1,K,A*01
+$GPGGA,151832.000,5348.6641,N,00145.4939,W,1,09,0.9,89.0,M,47.9,M,,0000*71
+$GPRMC,151832.000,A,5348.6641,N,00145.4939,W,16.67,329.14,140808,,,A*46
+$GPVTG,329.14,T,,M,16.67,N,30.9,K,A*0C
+$GPGGA,151833.000,5348.6683,N,00145.4981,W,1,09,0.9,89.0,M,47.9,M,,0000*7D
+$GPRMC,151833.000,A,5348.6683,N,00145.4981,W,17.37,329.04,140808,,,A*4F
+$GPVTG,329.04,T,,M,17.37,N,32.2,K,A*00
+$GPGGA,151834.000,5348.6728,N,00145.5027,W,1,09,0.9,89.0,M,47.9,M,,0000*7E
+$GPRMC,151834.000,A,5348.6728,N,00145.5027,W,18.80,328.38,140808,,,A*41
+$GPVTG,328.38,T,,M,18.80,N,34.8,K,A*01
+$GPGGA,151835.000,5348.6776,N,00145.5077,W,1,09,0.9,89.1,M,47.9,M,,0000*70
+$GPRMC,151835.000,A,5348.6776,N,00145.5077,W,20.21,328.30,140808,,,A*46
+$GPVTG,328.30,T,,M,20.21,N,37.4,K,A*06
+$GPGGA,151836.000,5348.6828,N,00145.5131,W,1,09,0.9,89.1,M,47.9,M,,0000*74
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,270,34,12,49,080,35,29,45,189,39,14,39,238,41*75
+$GPGSV,3,2,11,31,29,302,39,02,27,081,36,04,18,042,27,09,15,137,41*72
+$GPGSV,3,3,11,32,07,312,27,20,04,334,35,24,00,151,*4D
+$GPRMC,151836.000,A,5348.6828,N,00145.5131,W,21.53,328.64,140808,,,A*47
+$GPVTG,328.64,T,,M,21.53,N,39.9,K,A*00
+$GPGGA,151837.000,5348.6883,N,00145.5186,W,1,09,0.9,89.0,M,47.9,M,,0000*79
+$GPRMC,151837.000,A,5348.6883,N,00145.5186,W,22.67,328.91,140808,,,A*45
+$GPVTG,328.91,T,,M,22.67,N,42.0,K,A*0B
+$GPGGA,151838.000,5348.6938,N,00145.5242,W,1,09,0.9,89.0,M,47.9,M,,0000*7C
+$GPRMC,151838.000,A,5348.6938,N,00145.5242,W,23.02,328.85,140808,,,A*47
+$GPVTG,328.85,T,,M,23.02,N,42.6,K,A*0A
+$GPGGA,151839.000,5348.6993,N,00145.5299,W,1,09,0.9,89.0,M,47.9,M,,0000*7A
+$GPRMC,151839.000,A,5348.6993,N,00145.5299,W,23.10,328.73,140808,,,A*4B
+$GPVTG,328.73,T,,M,23.10,N,42.8,K,A*0E
+$GPGGA,151840.000,5348.7050,N,00145.5357,W,1,09,0.9,89.0,M,47.9,M,,0000*70
+$GPRMC,151840.000,A,5348.7050,N,00145.5357,W,23.66,328.36,140808,,,A*41
+$GPVTG,328.36,T,,M,23.66,N,43.8,K,A*0F
+$GPGGA,151841.000,5348.7107,N,00145.5417,W,1,09,0.9,88.9,M,47.9,M,,0000*79
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,270,34,12,49,080,27,29,46,189,39,14,39,238,40*74
+$GPGSV,3,2,11,31,30,302,39,02,27,081,38,04,18,042,26,09,14,137,41*74
+$GPGSV,3,3,11,32,07,312,37,20,04,333,21,24,00,151,*4E
+$GPRMC,151841.000,A,5348.7107,N,00145.5417,W,24.01,327.81,140808,,,A*45
+$GPVTG,327.81,T,,M,24.01,N,44.5,K,A*00
+$GPGGA,151842.000,5348.7164,N,00145.5477,W,1,09,0.9,89.0,M,47.9,M,,0000*71
+$GPRMC,151842.000,A,5348.7164,N,00145.5477,W,23.87,327.90,140808,,,A*4C
+$GPVTG,327.90,T,,M,23.87,N,44.2,K,A*0E
+$GPGGA,151843.000,5348.7220,N,00145.5536,W,1,09,0.9,89.0,M,47.9,M,,0000*77
+$GPRMC,151843.000,A,5348.7220,N,00145.5536,W,23.67,327.86,140808,,,A*43
+$GPVTG,327.86,T,,M,23.67,N,43.8,K,A*0A
+$GPGGA,151844.000,5348.7275,N,00145.5594,W,1,09,0.9,89.0,M,47.9,M,,0000*78
+$GPRMC,151844.000,A,5348.7275,N,00145.5594,W,23.38,327.70,140808,,,A*4F
+$GPVTG,327.70,T,,M,23.38,N,43.3,K,A*02
+$GPGGA,151845.000,5348.7330,N,00145.5652,W,1,09,0.9,89.1,M,47.9,M,,0000*71
+$GPRMC,151845.000,A,5348.7330,N,00145.5652,W,22.91,327.97,140808,,,A*4C
+$GPVTG,327.97,T,,M,22.91,N,42.4,K,A*0F
+$GPGGA,151846.000,5348.7383,N,00145.5706,W,1,09,0.9,89.2,M,47.9,M,,0000*79
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,49,080,31,29,46,189,38,14,39,238,40*73
+$GPGSV,3,2,11,31,30,302,39,02,27,081,40,04,17,042,28,09,14,137,41*7A
+$GPGSV,3,3,11,32,07,312,37,20,04,333,33,24,00,151,*4D
+$GPRMC,151846.000,A,5348.7383,N,00145.5706,W,22.32,328.72,140808,,,A*4A
+$GPVTG,328.72,T,,M,22.32,N,41.3,K,A*06
+$GPGGA,151847.000,5348.7436,N,00145.5758,W,1,09,0.9,89.3,M,47.9,M,,0000*7B
+$GPRMC,151847.000,A,5348.7436,N,00145.5758,W,21.81,329.76,140808,,,A*47
+$GPVTG,329.76,T,,M,21.81,N,40.4,K,A*0E
+$GPGGA,151848.000,5348.7487,N,00145.5809,W,1,09,0.9,89.3,M,47.9,M,,0000*75
+$GPRMC,151848.000,A,5348.7487,N,00145.5809,W,21.35,328.34,140808,,,A*41
+$GPVTG,328.34,T,,M,21.35,N,39.5,K,A*09
+$GPGGA,151849.000,5348.7537,N,00145.5861,W,1,09,0.9,89.4,M,47.9,M,,0000*77
+$GPRMC,151849.000,A,5348.7537,N,00145.5861,W,20.89,328.28,140808,,,A*4F
+$GPVTG,328.28,T,,M,20.89,N,38.7,K,A*01
+$GPGGA,151850.000,5348.7584,N,00145.5910,W,1,09,0.9,89.6,M,47.9,M,,0000*72
+$GPRMC,151850.000,A,5348.7584,N,00145.5910,W,19.98,328.08,140808,,,A*40
+$GPVTG,328.08,T,,M,19.98,N,37.0,K,A*01
+$GPGGA,151851.000,5348.7626,N,00145.5952,W,1,09,0.9,89.8,M,47.9,M,,0000*70
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,49,080,28,29,46,189,38,14,39,238,41*7A
+$GPGSV,3,2,11,31,30,302,39,02,27,081,35,04,17,042,32,09,14,137,41*73
+$GPGSV,3,3,11,32,07,312,37,20,04,333,25,24,00,151,10*4B
+$GPRMC,151851.000,A,5348.7626,N,00145.5952,W,17.40,328.63,140808,,,A*4A
+$GPVTG,328.63,T,,M,17.40,N,32.2,K,A*00
+$GPGGA,151852.000,5348.7658,N,00145.5987,W,1,09,0.9,89.9,M,47.9,M,,0000*73
+$GPRMC,151852.000,A,5348.7658,N,00145.5987,W,13.86,325.65,140808,,,A*4D
+$GPVTG,325.65,T,,M,13.86,N,25.7,K,A*06
+$GPGGA,151853.000,5348.7682,N,00145.6014,W,1,09,0.9,89.8,M,47.9,M,,0000*74
+$GPRMC,151853.000,A,5348.7682,N,00145.6014,W,10.59,324.48,140808,,,A*44
+$GPVTG,324.48,T,,M,10.59,N,19.6,K,A*07
+$GPGGA,151854.000,5348.7700,N,00145.6036,W,1,09,0.9,89.9,M,47.9,M,,0000*79
+$GPRMC,151854.000,A,5348.7700,N,00145.6036,W,8.00,324.26,140808,,,A*75
+$GPVTG,324.26,T,,M,8.00,N,14.8,K,A*39
+$GPGGA,151855.000,5348.7714,N,00145.6052,W,1,09,0.9,90.1,M,47.9,M,,0000*7F
+$GPRMC,151855.000,A,5348.7714,N,00145.6052,W,6.09,324.31,140808,,,A*72
+$GPVTG,324.31,T,,M,6.09,N,11.3,K,A*36
+$GPGGA,151856.000,5348.7725,N,00145.6064,W,1,09,0.9,90.3,M,47.9,M,,0000*79
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,49,080,28,29,46,189,30,14,39,238,42*71
+$GPGSV,3,2,11,31,30,302,40,02,27,081,35,04,17,042,38,09,14,137,41*77
+$GPGSV,3,3,11,32,07,312,32,20,04,333,33,24,00,151,*48
+$GPRMC,151856.000,A,5348.7725,N,00145.6064,W,4.80,324.38,140808,,,A*7C
+$GPVTG,324.38,T,,M,4.80,N,8.9,K,A*0E
+$GPGGA,151857.000,5348.7737,N,00145.6078,W,1,09,0.9,90.3,M,47.9,M,,0000*76
+$GPRMC,151857.000,A,5348.7737,N,00145.6078,W,5.34,324.63,140808,,,A*73
+$GPVTG,324.63,T,,M,5.34,N,9.9,K,A*0F
+$GPGGA,151858.000,5348.7755,N,00145.6099,W,1,09,0.9,90.4,M,47.9,M,,0000*75
+$GPRMC,151858.000,A,5348.7755,N,00145.6099,W,7.87,325.62,140808,,,A*7D
+$GPVTG,325.62,T,,M,7.87,N,14.6,K,A*36
+$GPGGA,151859.000,5348.7779,N,00145.6126,W,1,09,0.9,90.7,M,47.9,M,,0000*7C
+$GPRMC,151859.000,A,5348.7779,N,00145.6126,W,10.46,326.24,140808,,,A*4D
+$GPVTG,326.24,T,,M,10.46,N,19.4,K,A*03
+$GPGGA,151900.000,5348.7808,N,00145.6157,W,1,09,0.9,90.8,M,47.9,M,,0000*71
+$GPRMC,151900.000,A,5348.7808,N,00145.6157,W,12.25,326.91,140808,,,A*46
+$GPVTG,326.91,T,,M,12.25,N,22.7,K,A*01
+$GPGGA,151901.000,5348.7839,N,00145.6191,W,1,09,0.9,91.0,M,47.9,M,,0000*71
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,49,080,28,29,46,189,37,14,39,238,42*76
+$GPGSV,3,2,11,31,30,302,41,02,27,081,36,04,17,042,34,09,14,137,41*79
+$GPGSV,3,3,11,32,07,312,38,20,04,333,33,24,00,151,*42
+$GPRMC,151901.000,A,5348.7839,N,00145.6191,W,13.43,327.90,140808,,,A*4E
+$GPVTG,327.90,T,,M,13.43,N,24.9,K,A*08
+$GPGGA,151902.000,5348.7872,N,00145.6225,W,1,09,0.9,91.3,M,47.9,M,,0000*72
+$GPRMC,151902.000,A,5348.7872,N,00145.6225,W,13.75,327.96,140808,,,A*4D
+$GPVTG,327.96,T,,M,13.75,N,25.5,K,A*06
+$GPGGA,151903.000,5348.7906,N,00145.6260,W,1,09,0.9,91.6,M,47.9,M,,0000*75
+$GPRMC,151903.000,A,5348.7906,N,00145.6260,W,14.51,327.78,140808,,,A*4E
+$GPVTG,327.78,T,,M,14.51,N,26.9,K,A*08
+$GPGGA,151904.000,5348.7945,N,00145.6301,W,1,09,0.9,91.8,M,47.9,M,,0000*7D
+$GPRMC,151904.000,A,5348.7945,N,00145.6301,W,16.36,328.22,140808,,,A*4B
+$GPVTG,328.22,T,,M,16.36,N,30.3,K,A*06
+$GPGGA,151905.000,5348.7989,N,00145.6346,W,1,09,0.9,92.0,M,47.9,M,,0000*74
+$GPRMC,151905.000,A,5348.7989,N,00145.6346,W,18.35,328.67,140808,,,A*45
+$GPVTG,328.67,T,,M,18.35,N,34.0,K,A*0D
+$GPGGA,151906.000,5348.8036,N,00145.6394,W,1,09,0.9,92.0,M,47.9,M,,0000*7A
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,49,080,35,29,46,189,37,14,39,238,42*7A
+$GPGSV,3,2,11,31,30,302,40,02,27,081,36,04,17,042,34,09,14,137,42*7B
+$GPGSV,3,3,11,32,07,312,34,20,04,333,25,24,00,151,*49
+$GPRMC,151906.000,A,5348.8036,N,00145.6394,W,19.59,329.04,140808,,,A*44
+$GPVTG,329.04,T,,M,19.59,N,36.3,K,A*03
+$GPGGA,151907.000,5348.8085,N,00145.6444,W,1,09,0.9,91.9,M,47.9,M,,0000*73
+$GPRMC,151907.000,A,5348.8085,N,00145.6444,W,20.60,329.34,140808,,,A*44
+$GPVTG,329.34,T,,M,20.60,N,38.1,K,A*0C
+$GPGGA,151908.000,5348.8138,N,00145.6497,W,1,09,0.9,91.8,M,47.9,M,,0000*74
+$GPRMC,151908.000,A,5348.8138,N,00145.6497,W,22.08,329.68,140808,,,A*47
+$GPVTG,329.68,T,,M,22.08,N,40.9,K,A*0E
+$GPGGA,151909.000,5348.8194,N,00145.6552,W,1,09,0.9,91.7,M,47.9,M,,0000*74
+$GPRMC,151909.000,A,5348.8194,N,00145.6552,W,23.17,330.53,140808,,,A*47
+$GPVTG,330.53,T,,M,23.17,N,42.9,K,A*03
+$GPGGA,151910.000,5348.8251,N,00145.6606,W,1,09,0.9,91.6,M,47.9,M,,0000*75
+$GPRMC,151910.000,A,5348.8251,N,00145.6606,W,23.34,331.18,140808,,,A*48
+$GPVTG,331.18,T,,M,23.34,N,43.2,K,A*06
+$GPGGA,151911.000,5348.8308,N,00145.6658,W,1,09,0.9,91.6,M,47.9,M,,0000*72
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,49,080,36,29,46,189,38,14,39,238,41*75
+$GPGSV,3,2,11,31,30,302,41,02,27,081,36,04,17,042,34,09,14,137,41*79
+$GPGSV,3,3,11,32,07,312,37,20,04,333,31,24,00,151,*4F
+$GPRMC,151911.000,A,5348.8308,N,00145.6658,W,23.22,331.68,140808,,,A*4F
+$GPVTG,331.68,T,,M,23.22,N,43.0,K,A*04
+$GPGGA,151912.000,5348.8366,N,00145.6710,W,1,09,0.9,91.4,M,47.9,M,,0000*76
+$GPRMC,151912.000,A,5348.8366,N,00145.6710,W,23.66,332.51,140808,,,A*40
+$GPVTG,332.51,T,,M,23.66,N,43.8,K,A*05
+$GPGGA,151913.000,5348.8427,N,00145.6763,W,1,09,0.9,91.3,M,47.9,M,,0000*76
+$GPRMC,151913.000,A,5348.8427,N,00145.6763,W,24.31,332.75,140808,,,A*44
+$GPVTG,332.75,T,,M,24.31,N,45.0,K,A*08
+$GPGGA,151914.000,5348.8488,N,00145.6816,W,1,09,0.9,91.2,M,47.9,M,,0000*78
+$GPRMC,151914.000,A,5348.8488,N,00145.6816,W,24.57,332.95,140808,,,A*45
+$GPVTG,332.95,T,,M,24.57,N,45.5,K,A*03
+$GPGGA,151915.000,5348.8548,N,00145.6869,W,1,09,0.9,91.0,M,47.9,M,,0000*7E
+$GPRMC,151915.000,A,5348.8548,N,00145.6869,W,24.40,333.26,140808,,,A*4E
+$GPVTG,333.26,T,,M,24.40,N,45.2,K,A*0B
+$GPGGA,151916.000,5348.8608,N,00145.6920,W,1,09,0.9,90.9,M,47.9,M,,0000*7E
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,49,080,37,29,46,189,38,14,39,238,40*75
+$GPGSV,3,2,11,31,30,302,41,02,27,081,37,04,17,042,34,09,14,137,37*79
+$GPGSV,3,3,11,32,07,312,34,20,04,333,32,24,00,151,16*48
+$GPRMC,151916.000,A,5348.8608,N,00145.6920,W,23.95,332.60,140808,,,A*4A
+$GPVTG,332.60,T,,M,23.95,N,44.4,K,A*00
+$GPGGA,151917.000,5348.8665,N,00145.6973,W,1,09,0.9,90.9,M,47.9,M,,0000*72
+$GPRMC,151917.000,A,5348.8665,N,00145.6973,W,23.48,330.30,140808,,,A*41
+$GPVTG,330.30,T,,M,23.48,N,43.5,K,A*01
+$GPGGA,151918.000,5348.8719,N,00145.7031,W,1,09,0.9,90.9,M,47.9,M,,0000*79
+$GPRMC,151918.000,A,5348.8719,N,00145.7031,W,22.96,324.63,140808,,,A*4B
+$GPVTG,324.63,T,,M,22.96,N,42.5,K,A*01
+$GPGGA,151919.000,5348.8768,N,00145.7097,W,1,09,0.9,91.1,M,47.9,M,,0000*7B
+$GPRMC,151919.000,A,5348.8768,N,00145.7097,W,22.36,317.35,140808,,,A*49
+$GPVTG,317.35,T,,M,22.36,N,41.4,K,A*0A
+$GPGGA,151920.000,5348.8807,N,00145.7174,W,1,09,0.9,90.9,M,47.9,M,,0000*72
+$GPRMC,151920.000,A,5348.8807,N,00145.7174,W,21.85,306.82,140808,,,A*4E
+$GPVTG,306.82,T,,M,21.85,N,40.5,K,A*0D
+$GPGGA,151921.000,5348.8840,N,00145.7261,W,1,08,0.9,90.8,M,47.9,M,,0000*77
+$GPGSA,A,3,09,04,30,12,14,31,29,32,,,,,1.7,0.9,1.4*38
+$GPGSV,3,1,11,30,84,271,34,12,49,080,37,29,46,189,35,14,39,238,36*79
+$GPGSV,3,2,11,31,30,302,36,02,27,081,24,04,17,042,30,09,14,137,35*7D
+$GPGSV,3,3,11,32,07,312,35,20,04,333,37,24,00,151,*4B
+$GPRMC,151921.000,A,5348.8840,N,00145.7261,W,21.90,300.53,140808,,,A*45
+$GPVTG,300.53,T,,M,21.90,N,40.6,K,A*00
+$GPGGA,151922.000,5348.8868,N,00145.7357,W,1,09,0.9,90.1,M,47.9,M,,0000*72
+$GPRMC,151922.000,A,5348.8868,N,00145.7357,W,22.68,295.31,140808,,,A*45
+$GPVTG,295.31,T,,M,22.68,N,42.0,K,A*09
+$GPGGA,151923.000,5348.8896,N,00145.7456,W,1,09,0.9,89.3,M,47.9,M,,0000*7E
+$GPRMC,151923.000,A,5348.8896,N,00145.7456,W,23.47,295.21,140808,,,A*4E
+$GPVTG,295.21,T,,M,23.47,N,43.5,K,A*00
+$GPGGA,151924.000,5348.8925,N,00145.7561,W,1,09,0.9,88.9,M,47.9,M,,0000*7E
+$GPRMC,151924.000,A,5348.8925,N,00145.7561,W,24.44,294.53,140808,,,A*45
+$GPVTG,294.53,T,,M,24.44,N,45.3,K,A*00
+$GPGGA,151925.000,5348.8955,N,00145.7673,W,1,09,0.9,88.6,M,47.9,M,,0000*77
+$GPRMC,151925.000,A,5348.8955,N,00145.7673,W,25.90,295.77,140808,,,A*4C
+$GPVTG,295.77,T,,M,25.90,N,48.0,K,A*01
+$GPGGA,151926.000,5348.8987,N,00145.7786,W,1,09,0.9,87.9,M,47.9,M,,0000*70
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,31,12,49,080,37,29,46,189,28,14,39,238,23*74
+$GPGSV,3,2,11,31,30,302,33,02,27,081,35,04,17,042,34,09,14,137,37*7E
+$GPGSV,3,3,11,32,07,312,40,20,04,333,36,24,00,151,*48
+$GPRMC,151926.000,A,5348.8987,N,00145.7786,W,26.80,295.05,140808,,,A*4C
+$GPVTG,295.05,T,,M,26.80,N,49.6,K,A*01
+$GPGGA,151927.000,5348.9016,N,00145.7902,W,1,09,0.9,87.2,M,47.9,M,,0000*78
+$GPRMC,151927.000,A,5348.9016,N,00145.7902,W,26.90,296.05,140808,,,A*4D
+$GPVTG,296.05,T,,M,26.90,N,49.8,K,A*0D
+$GPGGA,151928.000,5348.9049,N,00145.8016,W,1,09,0.9,87.0,M,47.9,M,,0000*7C
+$GPRMC,151928.000,A,5348.9049,N,00145.8016,W,26.97,296.61,140808,,,A*4E
+$GPVTG,296.61,T,,M,26.97,N,50.0,K,A*08
+$GPGGA,151929.000,5348.9090,N,00145.8125,W,1,09,0.9,86.5,M,47.9,M,,0000*7C
+$GPRMC,151929.000,A,5348.9090,N,00145.8125,W,27.72,305.68,140808,,,A*42
+$GPVTG,305.68,T,,M,27.72,N,51.3,K,A*02
+$GPGGA,151930.000,5348.9143,N,00145.8226,W,1,09,0.9,86.6,M,47.9,M,,0000*78
+$GPRMC,151930.000,A,5348.9143,N,00145.8226,W,28.36,313.68,140808,,,A*4D
+$GPVTG,313.68,T,,M,28.36,N,52.5,K,A*0F
+$GPGGA,151931.000,5348.9200,N,00145.8315,W,1,09,0.9,86.5,M,47.9,M,,0000*7F
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,31,12,49,080,27,29,46,189,30,14,39,238,40*79
+$GPGSV,3,2,11,31,30,302,43,02,27,081,33,04,17,042,42,09,14,137,39*70
+$GPGSV,3,3,11,32,07,312,40,20,04,333,29,24,00,151,*46
+$GPRMC,151931.000,A,5348.9200,N,00145.8315,W,27.57,317.72,140808,,,A*4E
+$GPVTG,317.72,T,,M,27.57,N,51.1,K,A*0F
+$GPGGA,151932.000,5348.9257,N,00145.8395,W,1,09,0.9,86.5,M,47.9,M,,0000*76
+$GPRMC,151932.000,A,5348.9257,N,00145.8395,W,26.39,322.25,140808,,,A*4A
+$GPVTG,322.25,T,,M,26.39,N,48.9,K,A*02
+$GPGGA,151933.000,5348.9317,N,00145.8467,W,1,09,0.9,86.4,M,47.9,M,,0000*79
+$GPRMC,151933.000,A,5348.9317,N,00145.8467,W,26.16,325.97,140808,,,A*47
+$GPVTG,325.97,T,,M,26.16,N,48.4,K,A*0C
+$GPGGA,151934.000,5348.9379,N,00145.8534,W,1,09,0.9,86.3,M,47.9,M,,0000*76
+$GPRMC,151934.000,A,5348.9379,N,00145.8534,W,26.21,326.47,140808,,,A*45
+$GPVTG,326.47,T,,M,26.21,N,48.5,K,A*07
+$GPGGA,151935.000,5348.9440,N,00145.8601,W,1,09,0.9,86.3,M,47.9,M,,0000*7F
+$GPRMC,151935.000,A,5348.9440,N,00145.8601,W,25.86,326.49,140808,,,A*4C
+$GPVTG,326.49,T,,M,25.86,N,47.9,K,A*04
+$GPGGA,151936.000,5348.9499,N,00145.8666,W,1,09,0.9,86.2,M,47.9,M,,0000*78
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,36,12,49,080,23,29,46,189,36,14,39,238,42*7E
+$GPGSV,3,2,11,31,30,302,42,02,27,081,38,04,17,042,35,09,14,137,40*74
+$GPGSV,3,3,11,32,07,312,29,20,04,333,24,24,00,151,*44
+$GPRMC,151936.000,A,5348.9499,N,00145.8666,W,25.30,326.26,140808,,,A*4E
+$GPVTG,326.26,T,,M,25.30,N,46.9,K,A*01
+$GPGGA,151937.000,5348.9557,N,00145.8730,W,1,09,0.9,86.1,M,47.9,M,,0000*7B
+$GPRMC,151937.000,A,5348.9557,N,00145.8730,W,24.66,325.51,140808,,,A*4F
+$GPVTG,325.51,T,,M,24.66,N,45.7,K,A*0D
+$GPGGA,151938.000,5348.9613,N,00145.8794,W,1,09,0.9,86.0,M,47.9,M,,0000*78
+$GPRMC,151938.000,A,5348.9613,N,00145.8794,W,24.21,325.30,140808,,,A*49
+$GPVTG,325.30,T,,M,24.21,N,44.8,K,A*07
+$GPGGA,151939.000,5348.9670,N,00145.8859,W,1,09,0.9,85.9,M,47.9,M,,0000*78
+$GPRMC,151939.000,A,5348.9670,N,00145.8859,W,24.34,325.23,140808,,,A*45
+$GPVTG,325.23,T,,M,24.34,N,45.1,K,A*09
+$GPGGA,151940.000,5348.9727,N,00145.8925,W,1,09,0.9,85.8,M,47.9,M,,0000*7E
+$GPRMC,151940.000,A,5348.9727,N,00145.8925,W,24.78,325.44,140808,,,A*4B
+$GPVTG,325.44,T,,M,24.78,N,45.9,K,A*08
+$GPGGA,151941.000,5348.9785,N,00145.8992,W,1,09,0.9,85.8,M,47.9,M,,0000*7B
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,36,12,48,080,30,29,46,189,33,14,39,238,43*79
+$GPGSV,3,2,11,31,30,302,42,02,27,081,36,04,17,042,36,09,14,137,40*79
+$GPGSV,3,3,11,32,07,312,37,20,04,333,25,24,01,151,*4B
+$GPRMC,151941.000,A,5348.9785,N,00145.8992,W,24.99,325.16,140808,,,A*46
+$GPVTG,325.16,T,,M,24.99,N,46.3,K,A*09
+$GPGGA,151942.000,5348.9842,N,00145.9059,W,1,09,0.9,85.6,M,47.9,M,,0000*7D
+$GPRMC,151942.000,A,5348.9842,N,00145.9059,W,24.83,325.04,140808,,,A*46
+$GPVTG,325.04,T,,M,24.83,N,46.0,K,A*02
+$GPGGA,151943.000,5348.9899,N,00145.9125,W,1,09,0.9,85.6,M,47.9,M,,0000*70
+$GPRMC,151943.000,A,5348.9899,N,00145.9125,W,24.55,325.01,140808,,,A*45
+$GPVTG,325.01,T,,M,24.55,N,45.5,K,A*0A
+$GPGGA,151944.000,5348.9955,N,00145.9191,W,1,09,0.9,85.4,M,47.9,M,,0000*7B
+$GPRMC,151944.000,A,5348.9955,N,00145.9191,W,24.33,325.38,140808,,,A*46
+$GPVTG,325.38,T,,M,24.33,N,45.1,K,A*04
+$GPGGA,151945.000,5349.0011,N,00145.9253,W,1,09,0.9,85.4,M,47.9,M,,0000*76
+$GPRMC,151945.000,A,5349.0011,N,00145.9253,W,24.11,327.26,140808,,,A*46
+$GPVTG,327.26,T,,M,24.11,N,44.6,K,A*0F
+$GPGGA,151946.000,5349.0067,N,00145.9314,W,1,09,0.9,85.3,M,47.9,M,,0000*71
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,36,12,48,080,26,29,46,189,38,14,39,238,43*75
+$GPGSV,3,2,11,31,30,302,42,02,27,081,33,04,17,042,27,09,14,137,40*7C
+$GPGSV,3,3,11,32,07,312,28,20,04,333,29,24,01,151,*49
+$GPRMC,151946.000,A,5349.0067,N,00145.9314,W,23.88,327.78,140808,,,A*4A
+$GPVTG,327.78,T,,M,23.88,N,44.2,K,A*07
+$GPGGA,151947.000,5349.0124,N,00145.9373,W,1,09,0.9,85.2,M,47.9,M,,0000*76
+$GPRMC,151947.000,A,5349.0124,N,00145.9373,W,24.00,328.43,140808,,,A*4C
+$GPVTG,328.43,T,,M,24.00,N,44.5,K,A*00
+$GPGGA,151948.000,5349.0182,N,00145.9432,W,1,09,0.9,85.2,M,47.9,M,,0000*77
+$GPRMC,151948.000,A,5349.0182,N,00145.9432,W,24.21,329.47,140808,,,A*4B
+$GPVTG,329.47,T,,M,24.21,N,44.8,K,A*0B
+$GPGGA,151949.000,5349.0240,N,00145.9489,W,1,09,0.9,85.1,M,47.9,M,,0000*78
+$GPRMC,151949.000,A,5349.0240,N,00145.9489,W,24.03,329.26,140808,,,A*40
+$GPVTG,329.26,T,,M,24.03,N,44.5,K,A*01
+$GPGGA,151950.000,5349.0297,N,00145.9547,W,1,09,0.9,85.0,M,47.9,M,,0000*78
+$GPRMC,151950.000,A,5349.0297,N,00145.9547,W,23.93,329.24,140808,,,A*4D
+$GPVTG,329.24,T,,M,23.93,N,44.3,K,A*0B
+$GPGGA,151951.000,5349.0356,N,00145.9606,W,1,09,0.9,85.0,M,47.9,M,,0000*73
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,36,12,48,080,27,29,46,189,39,14,39,238,42*74
+$GPGSV,3,2,11,31,30,302,41,02,27,081,37,04,17,042,35,09,14,137,41*79
+$GPGSV,3,3,11,32,07,312,30,20,04,333,29,24,01,151,11*40
+$GPRMC,151951.000,A,5349.0356,N,00145.9606,W,24.41,329.71,140808,,,A*4E
+$GPVTG,329.71,T,,M,24.41,N,45.2,K,A*03
+$GPGGA,151952.000,5349.0417,N,00145.9666,W,1,09,0.9,85.0,M,47.9,M,,0000*74
+$GPRMC,151952.000,A,5349.0417,N,00145.9666,W,25.33,330.29,140808,,,A*48
+$GPVTG,330.29,T,,M,25.33,N,46.9,K,A*0A
+$GPGGA,151953.000,5349.0481,N,00145.9727,W,1,09,0.9,85.0,M,47.9,M,,0000*7E
+$GPRMC,151953.000,A,5349.0481,N,00145.9727,W,26.38,330.31,140808,,,A*43
+$GPVTG,330.31,T,,M,26.38,N,48.9,K,A*05
+$GPGGA,151954.000,5349.0548,N,00145.9790,W,1,09,0.9,84.8,M,47.9,M,,0000*78
+$GPRMC,151954.000,A,5349.0548,N,00145.9790,W,27.41,331.14,140808,,,A*45
+$GPVTG,331.14,T,,M,27.41,N,50.8,K,A*04
+$GPGGA,151955.000,5349.0617,N,00145.9854,W,1,09,0.9,84.8,M,47.9,M,,0000*77
+$GPRMC,151955.000,A,5349.0617,N,00145.9854,W,27.94,331.62,140808,,,A*43
+$GPVTG,331.62,T,,M,27.94,N,51.7,K,A*03
+$GPGGA,151956.000,5349.0686,N,00145.9916,W,1,09,0.9,84.6,M,47.9,M,,0000*75
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,35,12,48,080,31,29,46,189,39,14,39,238,37*72
+$GPGSV,3,2,11,31,30,302,41,02,27,081,38,04,17,042,32,09,14,137,41*71
+$GPGSV,3,3,11,32,07,312,26,20,04,333,30,24,01,151,*4F
+$GPRMC,151956.000,A,5349.0686,N,00145.9916,W,28.06,332.46,140808,,,A*4E
+$GPVTG,332.46,T,,M,28.06,N,52.0,K,A*06
+$GPGGA,151957.000,5349.0757,N,00145.9977,W,1,09,0.9,84.5,M,47.9,M,,0000*7D
+$GPRMC,151957.000,A,5349.0757,N,00145.9977,W,28.61,333.25,140808,,,A*40
+$GPVTG,333.25,T,,M,28.61,N,53.0,K,A*02
+$GPGGA,151958.000,5349.0831,N,00146.0039,W,1,09,0.9,84.3,M,47.9,M,,0000*72
+$GPRMC,151958.000,A,5349.0831,N,00146.0039,W,29.68,334.11,140808,,,A*41
+$GPVTG,334.11,T,,M,29.68,N,55.0,K,A*0C
+$GPGGA,151959.000,5349.0908,N,00146.0101,W,1,09,0.9,84.2,M,47.9,M,,0000*73
+$GPRMC,151959.000,A,5349.0908,N,00146.0101,W,30.51,334.84,140808,,,A*4F
+$GPVTG,334.84,T,,M,30.51,N,56.5,K,A*04
+$GPGGA,152000.000,5349.0986,N,00146.0162,W,1,09,0.9,84.0,M,47.9,M,,0000*74
+$GPRMC,152000.000,A,5349.0986,N,00146.0162,W,30.60,335.35,140808,,,A*43
+$GPVTG,335.35,T,,M,30.60,N,56.7,K,A*0F
+$GPGGA,152001.000,5349.1063,N,00146.0222,W,1,09,0.9,83.8,M,47.9,M,,0000*7E
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,35,12,48,080,33,29,46,189,39,14,39,238,37*70
+$GPGSV,3,2,11,31,30,302,42,02,27,081,30,04,17,042,31,09,14,137,37*78
+$GPGSV,3,3,11,32,07,312,29,20,04,333,30,24,01,151,*40
+$GPRMC,152001.000,A,5349.1063,N,00146.0222,W,30.40,335.41,140808,,,A*47
+$GPVTG,335.41,T,,M,30.40,N,56.3,K,A*0A
+$GPGGA,152002.000,5349.1141,N,00146.0281,W,1,09,0.9,83.6,M,47.9,M,,0000*7B
+$GPRMC,152002.000,A,5349.1141,N,00146.0281,W,30.43,335.62,140808,,,A*4E
+$GPVTG,335.62,T,,M,30.43,N,56.3,K,A*08
+$GPGGA,152003.000,5349.1217,N,00146.0340,W,1,09,0.9,83.5,M,47.9,M,,0000*75
+$GPRMC,152003.000,A,5349.1217,N,00146.0340,W,30.25,335.48,140808,,,A*4B
+$GPVTG,335.48,T,,M,30.25,N,56.0,K,A*03
+$GPGGA,152004.000,5349.1293,N,00146.0398,W,1,09,0.9,83.4,M,47.9,M,,0000*7A
+$GPRMC,152004.000,A,5349.1293,N,00146.0398,W,29.81,335.57,140808,,,A*4D
+$GPVTG,335.57,T,,M,29.81,N,55.2,K,A*0A
+$GPGGA,152005.000,5349.1368,N,00146.0455,W,1,09,0.9,83.2,M,47.9,M,,0000*7E
+$GPRMC,152005.000,A,5349.1368,N,00146.0455,W,29.42,336.07,140808,,,A*46
+$GPVTG,336.07,T,,M,29.42,N,54.5,K,A*05
+$GPGGA,152006.000,5349.1444,N,00146.0509,W,1,09,0.9,83.1,M,47.9,M,,0000*7F
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,35,12,48,080,40,29,46,189,39,14,39,238,31*72
+$GPGSV,3,2,11,31,30,302,43,02,27,081,34,04,17,042,26,09,14,137,37*7B
+$GPGSV,3,3,11,32,07,312,34,20,04,333,20,24,01,151,*4D
+$GPRMC,152006.000,A,5349.1444,N,00146.0509,W,29.47,337.72,140808,,,A*42
+$GPVTG,337.72,T,,M,29.47,N,54.6,K,A*00
+$GPGGA,152007.000,5349.1522,N,00146.0559,W,1,09,0.9,83.1,M,47.9,M,,0000*7A
+$GPRMC,152007.000,A,5349.1522,N,00146.0559,W,29.88,339.97,140808,,,A*41
+$GPVTG,339.97,T,,M,29.88,N,55.3,K,A*02
+$GPGGA,152008.000,5349.1601,N,00146.0605,W,1,09,0.9,83.0,M,47.9,M,,0000*7C
+$GPRMC,152008.000,A,5349.1601,N,00146.0605,W,30.02,341.89,140808,,,A*4C
+$GPVTG,341.89,T,,M,30.02,N,55.6,K,A*0D
+$GPGGA,152009.000,5349.1679,N,00146.0647,W,1,09,0.9,83.1,M,47.9,M,,0000*75
+$GPRMC,152009.000,A,5349.1679,N,00146.0647,W,29.70,342.48,140808,,,A*47
+$GPVTG,342.48,T,,M,29.70,N,55.0,K,A*08
+$GPGGA,152010.000,5349.1757,N,00146.0687,W,1,09,0.9,83.1,M,47.9,M,,0000*7C
+$GPRMC,152010.000,A,5349.1757,N,00146.0687,W,29.53,343.28,140808,,,A*48
+$GPVTG,343.28,T,,M,29.53,N,54.7,K,A*08
+$GPGGA,152011.000,5349.1837,N,00146.0727,W,1,09,0.9,82.8,M,47.9,M,,0000*77
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,48,080,35,29,46,189,33,14,39,238,25*7E
+$GPGSV,3,2,11,31,30,302,30,02,27,081,29,04,17,042,25,09,14,137,24*72
+$GPGSV,3,3,11,32,07,312,29,20,04,333,32,24,01,151,*42
+$GPRMC,152011.000,A,5349.1837,N,00146.0727,W,29.60,343.69,140808,,,A*4E
+$GPVTG,343.69,T,,M,29.60,N,54.8,K,A*02
+$GPGGA,152012.000,5349.1915,N,00146.0762,W,1,09,0.9,83.1,M,47.9,M,,0000*7C
+$GPRMC,152012.000,A,5349.1915,N,00146.0762,W,29.72,343.41,140808,,,A*44
+$GPVTG,343.41,T,,M,29.72,N,55.0,K,A*02
+$GPGGA,152013.000,5349.1995,N,00146.0801,W,1,09,0.9,82.9,M,47.9,M,,0000*76
+$GPRMC,152013.000,A,5349.1995,N,00146.0801,W,30.35,343.44,140808,,,A*49
+$GPVTG,343.44,T,,M,30.35,N,56.2,K,A*0D
+$GPGGA,152014.000,5349.2079,N,00146.0841,W,1,09,0.9,82.6,M,47.9,M,,0000*72
+$GPRMC,152014.000,A,5349.2079,N,00146.0841,W,30.59,344.92,140808,,,A*44
+$GPVTG,344.92,T,,M,30.59,N,56.6,K,A*0F
+$GPGGA,152015.000,5349.2162,N,00146.0877,W,1,09,0.9,82.3,M,47.9,M,,0000*78
+$GPRMC,152015.000,A,5349.2162,N,00146.0877,W,30.11,347.13,140808,,,A*4D
+$GPVTG,347.13,T,,M,30.11,N,55.8,K,A*04
+$GPGGA,152016.000,5349.2244,N,00146.0909,W,1,09,0.9,81.8,M,47.9,M,,0000*7C
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,33,12,48,080,33,29,46,189,39,14,39,238,25*75
+$GPGSV,3,2,11,31,30,302,38,02,27,081,35,04,17,042,30,09,14,137,33*75
+$GPGSV,3,3,11,32,07,312,19,20,04,333,20,24,01,151,*42
+$GPRMC,152016.000,A,5349.2244,N,00146.0909,W,29.95,347.69,140808,,,A*48
+$GPVTG,347.69,T,,M,29.95,N,55.5,K,A*00
+$GPGGA,152017.000,5349.2326,N,00146.0938,W,1,09,0.9,81.4,M,47.9,M,,0000*76
+$GPRMC,152017.000,A,5349.2326,N,00146.0938,W,30.24,349.18,140808,,,A*44
+$GPVTG,349.18,T,,M,30.24,N,56.0,K,A*0C
+$GPGGA,152018.000,5349.2410,N,00146.0965,W,1,09,0.9,81.0,M,47.9,M,,0000*77
+$GPRMC,152018.000,A,5349.2410,N,00146.0965,W,30.45,349.83,140808,,,A*44
+$GPVTG,349.83,T,,M,30.45,N,56.4,K,A*0D
+$GPGGA,152019.000,5349.2495,N,00146.0990,W,1,09,0.9,80.7,M,47.9,M,,0000*77
+$GPRMC,152019.000,A,5349.2495,N,00146.0990,W,30.60,350.32,140808,,,A*47
+$GPVTG,350.32,T,,M,30.60,N,56.7,K,A*0B
+$GPGGA,152020.000,5349.2580,N,00146.1016,W,1,09,0.9,80.2,M,47.9,M,,0000*7B
+$GPRMC,152020.000,A,5349.2580,N,00146.1016,W,31.17,349.59,140808,,,A*4A
+$GPVTG,349.59,T,,M,31.17,N,57.7,K,A*0E
+$GPGGA,152021.000,5349.2668,N,00146.1044,W,1,09,0.9,79.8,M,47.9,M,,0000*74
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,33,12,48,080,29,29,46,189,38,14,39,238,26*7C
+$GPGSV,3,2,11,31,30,302,39,02,27,081,32,04,17,042,34,09,14,137,26*73
+$GPGSV,3,3,11,32,07,312,23,20,04,333,25,24,01,151,*4E
+$GPRMC,152021.000,A,5349.2668,N,00146.1044,W,31.93,350.07,140808,,,A*46
+$GPVTG,350.07,T,,M,31.93,N,59.1,K,A*09
+$GPGGA,152022.000,5349.2757,N,00146.1071,W,1,09,0.9,79.7,M,47.9,M,,0000*73
+$GPRMC,152022.000,A,5349.2757,N,00146.1071,W,32.11,349.89,140808,,,A*49
+$GPVTG,349.89,T,,M,32.11,N,59.5,K,A*0A
+$GPGGA,152023.000,5349.2846,N,00146.1097,W,1,09,0.9,79.6,M,47.9,M,,0000*74
+$GPRMC,152023.000,A,5349.2846,N,00146.1097,W,31.87,350.89,140808,,,A*4B
+$GPVTG,350.89,T,,M,31.87,N,59.0,K,A*0B
+$GPGGA,152024.000,5349.2932,N,00146.1123,W,1,09,0.9,79.1,M,47.9,M,,0000*78
+$GPRMC,152024.000,A,5349.2932,N,00146.1123,W,31.51,349.50,140808,,,A*47
+$GPVTG,349.50,T,,M,31.51,N,58.3,K,A*0E
+$GPGGA,152025.000,5349.3018,N,00146.1149,W,1,09,0.9,78.5,M,47.9,M,,0000*70
+$GPRMC,152025.000,A,5349.3018,N,00146.1149,W,31.12,349.43,140808,,,A*4F
+$GPVTG,349.43,T,,M,31.12,N,57.6,K,A*01
+$GPGGA,152026.000,5349.3101,N,00146.1175,W,1,09,0.9,78.1,M,47.9,M,,0000*71
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,32,12,48,080,29,29,46,189,38,14,39,238,25*7E
+$GPGSV,3,2,11,31,30,302,44,02,27,081,35,04,17,042,28,09,14,137,32*76
+$GPGSV,3,3,11,32,07,312,36,20,04,333,23,24,01,151,*4C
+$GPRMC,152026.000,A,5349.3101,N,00146.1175,W,30.58,349.34,140808,,,A*45
+$GPVTG,349.34,T,,M,30.58,N,56.6,K,A*0F
+$GPGGA,152027.000,5349.3182,N,00146.1202,W,1,09,0.9,77.7,M,47.9,M,,0000*71
+$GPRMC,152027.000,A,5349.3182,N,00146.1202,W,29.65,348.43,140808,,,A*4B
+$GPVTG,348.43,T,,M,29.65,N,54.9,K,A*05
+$GPGGA,152028.000,5349.3261,N,00146.1230,W,1,09,0.9,77.6,M,47.9,M,,0000*70
+$GPRMC,152028.000,A,5349.3261,N,00146.1230,W,28.95,348.15,140808,,,A*46
+$GPVTG,348.15,T,,M,28.95,N,53.6,K,A*00
+$GPGGA,152029.000,5349.3338,N,00146.1261,W,1,09,0.9,77.4,M,47.9,M,,0000*7A
+$GPRMC,152029.000,A,5349.3338,N,00146.1261,W,28.43,345.32,140808,,,A*4D
+$GPVTG,345.32,T,,M,28.43,N,52.6,K,A*02
+$GPGGA,152030.000,5349.3412,N,00146.1299,W,1,09,0.9,77.0,M,47.9,M,,0000*7E
+$GPRMC,152030.000,A,5349.3412,N,00146.1299,W,28.10,342.11,140808,,,A*4D
+$GPVTG,342.11,T,,M,28.10,N,52.0,K,A*04
+$GPGGA,152031.000,5349.3485,N,00146.1344,W,1,09,0.9,76.4,M,47.9,M,,0000*75
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,32,12,48,080,37,29,46,189,30,14,39,238,28*74
+$GPGSV,3,2,11,31,30,302,36,02,27,081,24,04,17,042,28,09,14,137,25*75
+$GPGSV,3,3,11,32,07,312,22,20,04,333,35,24,01,151,*4E
+$GPRMC,152031.000,A,5349.3485,N,00146.1344,W,27.94,338.47,140808,,,A*4E
+$GPVTG,338.47,T,,M,27.94,N,51.7,K,A*0D
+$GPGGA,152032.000,5349.3557,N,00146.1397,W,1,09,0.9,76.2,M,47.9,M,,0000*70
+$GPRMC,152032.000,A,5349.3557,N,00146.1397,W,28.04,336.01,140808,,,A*47
+$GPVTG,336.01,T,,M,28.04,N,51.9,K,A*09
+$GPGGA,152033.000,5349.3627,N,00146.1454,W,1,09,0.9,75.8,M,47.9,M,,0000*74
+$GPRMC,152033.000,A,5349.3627,N,00146.1454,W,28.16,333.66,140808,,,A*4D
+$GPVTG,333.66,T,,M,28.16,N,52.2,K,A*06
+$GPGGA,152034.000,5349.3696,N,00146.1514,W,1,08,1.0,75.9,M,47.9,M,,0000*74
+$GPRMC,152034.000,A,5349.3696,N,00146.1514,W,27.59,333.34,140808,,,A*46
+$GPVTG,333.34,T,,M,27.59,N,51.1,K,A*05
+$GPGGA,152035.000,5349.3764,N,00146.1577,W,1,08,1.0,76.0,M,47.9,M,,0000*76
+$GPRMC,152035.000,A,5349.3764,N,00146.1577,W,27.44,332.59,140808,,,A*48
+$GPVTG,332.59,T,,M,27.44,N,50.8,K,A*0B
+$GPGGA,152036.000,5349.3833,N,00146.1640,W,1,09,0.9,76.0,M,47.9,M,,0000*76
+$GPGSA,A,3,09,04,30,12,02,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,32,12,48,080,37,29,46,189,37,14,39,238,29*72
+$GPGSV,3,2,11,31,30,302,36,02,27,081,40,04,17,042,37,09,14,137,37*7A
+$GPGSV,3,3,11,32,07,312,18,20,04,333,31,24,01,151,*43
+$GPRMC,152036.000,A,5349.3833,N,00146.1640,W,27.68,332.09,140808,,,A*4A
+$GPVTG,332.09,T,,M,27.68,N,51.3,K,A*0A
+$GPGGA,152037.000,5349.3901,N,00146.1702,W,1,09,0.9,76.0,M,47.9,M,,0000*70
+$GPRMC,152037.000,A,5349.3901,N,00146.1702,W,27.49,332.05,140808,,,A*43
+$GPVTG,332.05,T,,M,27.49,N,50.9,K,A*0E
+$GPGGA,152038.000,5349.3968,N,00146.1764,W,1,09,0.9,76.1,M,47.9,M,,0000*71
+$GPRMC,152038.000,A,5349.3968,N,00146.1764,W,27.21,332.09,140808,,,A*41
+$GPVTG,332.09,T,,M,27.21,N,50.4,K,A*01
+$GPGGA,152039.000,5349.4035,N,00146.1824,W,1,09,0.9,76.1,M,47.9,M,,0000*7D
+$GPRMC,152039.000,A,5349.4035,N,00146.1824,W,26.88,332.04,140808,,,A*42
+$GPVTG,332.04,T,,M,26.88,N,49.8,K,A*0A
+$GPGGA,152040.000,5349.4100,N,00146.1884,W,1,08,1.0,76.2,M,47.9,M,,0000*74
+$GPRMC,152040.000,A,5349.4100,N,00146.1884,W,26.59,332.20,140808,,,A*4B
+$GPVTG,332.20,T,,M,26.59,N,49.2,K,A*0A
+$GPGGA,152041.000,5349.4167,N,00146.1938,W,1,08,1.0,76.4,M,47.9,M,,0000*74
+$GPGSA,A,3,09,30,12,02,14,31,29,32,,,,,1.7,1.0,1.4*36
+$GPGSV,3,1,11,30,84,271,32,12,48,080,32,29,46,189,38,14,39,238,25*74
+$GPGSV,3,2,11,31,30,302,35,02,27,081,37,04,17,042,08,09,14,137,39*7B
+$GPGSV,3,3,11,32,07,312,24,20,04,333,31,24,01,151,*4C
+$GPRMC,152041.000,A,5349.4167,N,00146.1938,W,26.29,333.76,140808,,,A*48
+$GPVTG,333.76,T,,M,26.29,N,48.7,K,A*0B
+$GPGGA,152042.000,5349.4234,N,00146.1990,W,1,08,0.9,76.6,M,47.9,M,,0000*7A
+$GPRMC,152042.000,A,5349.4234,N,00146.1990,W,26.20,334.66,140808,,,A*43
+$GPVTG,334.66,T,,M,26.20,N,48.5,K,A*06
+$GPGGA,152043.000,5349.4300,N,00146.2043,W,1,07,1.2,76.7,M,47.9,M,,0000*7D
+$GPRMC,152043.000,A,5349.4300,N,00146.2043,W,26.55,335.39,140808,,,A*49
+$GPVTG,335.39,T,,M,26.55,N,49.2,K,A*09
+$GPGGA,152044.000,5349.4368,N,00146.2096,W,1,08,0.9,77.0,M,47.9,M,,0000*7F
+$GPRMC,152044.000,A,5349.4368,N,00146.2096,W,26.99,334.24,140808,,,A*45
+$GPVTG,334.24,T,,M,26.99,N,50.0,K,A*0E
+$GPGGA,152045.000,5349.4440,N,00146.2143,W,1,08,0.9,77.6,M,47.9,M,,0000*7C
+$GPRMC,152045.000,A,5349.4440,N,00146.2143,W,27.07,339.10,140808,,,A*4C
+$GPVTG,339.10,T,,M,27.07,N,50.1,K,A*03
+$GPGGA,152046.000,5349.4512,N,00146.2185,W,1,06,1.5,77.7,M,47.9,M,,0000*71
+$GPGSA,A,3,30,12,14,31,29,32,,,,,,,2.8,1.5,2.3*30
+$GPGSV,3,1,11,30,84,271,32,12,48,080,23,29,46,189,30,14,39,238,37*7F
+$GPGSV,3,2,11,31,30,302,39,02,27,081,,04,17,042,,09,14,137,20*73
+$GPGSV,3,3,11,32,07,312,23,20,04,333,36,24,01,151,*4C
+$GPRMC,152046.000,A,5349.4512,N,00146.2185,W,26.85,337.90,140808,,,A*4E
+$GPVTG,337.90,T,,M,26.85,N,49.7,K,A*00
+$GPGGA,152047.000,5349.4587,N,00146.2221,W,1,08,1.2,77.4,M,47.9,M,,0000*7B
+$GPRMC,152047.000,A,5349.4587,N,00146.2221,W,26.93,336.34,140808,,,A*46
+$GPVTG,336.34,T,,M,26.93,N,49.9,K,A*06
+$GPGGA,152048.000,5349.4660,N,00146.2263,W,1,07,1.3,77.4,M,47.9,M,,0000*76
+$GPRMC,152048.000,A,5349.4660,N,00146.2263,W,27.05,336.16,140808,,,A*4B
+$GPVTG,336.16,T,,M,27.05,N,50.1,K,A*08
+$GPGGA,152049.000,5349.4728,N,00146.2315,W,1,07,1.3,77.3,M,47.9,M,,0000*7D
+$GPRMC,152049.000,A,5349.4728,N,00146.2315,W,26.84,335.50,140808,,,A*4E
+$GPVTG,335.50,T,,M,26.84,N,49.7,K,A*0F
+$GPGGA,152050.000,5349.4794,N,00146.2368,W,1,07,1.3,76.8,M,47.9,M,,0000*72
+$GPRMC,152050.000,A,5349.4794,N,00146.2368,W,26.42,334.85,140808,,,A*48
+$GPVTG,334.85,T,,M,26.42,N,48.9,K,A*03
+$GPGGA,152051.000,5349.4858,N,00146.2423,W,1,07,1.3,76.6,M,47.9,M,,0000*7A
+$GPGSA,A,3,02,04,30,12,14,31,29,,,,,,2.5,1.3,2.2*3D
+$GPGSV,3,1,11,30,84,271,33,12,48,080,39,29,46,189,37,14,39,238,36*73
+$GPGSV,3,2,11,31,30,302,41,02,27,081,30,04,17,042,30,09,14,137,*7E
+$GPGSV,3,3,11,32,07,312,14,20,04,333,24,24,01,151,*4B
+$GPRMC,152051.000,A,5349.4858,N,00146.2423,W,25.73,333.22,140808,,,A*45
+$GPVTG,333.22,T,,M,25.73,N,47.7,K,A*09
+$GPGGA,152052.000,5349.4920,N,00146.2476,W,1,07,1.3,76.3,M,47.9,M,,0000*72
+$GPRMC,152052.000,A,5349.4920,N,00146.2476,W,24.98,332.93,140808,,,A*47
+$GPVTG,332.93,T,,M,24.98,N,46.3,K,A*03
+$GPGGA,152053.000,5349.4980,N,00146.2529,W,1,07,1.3,76.7,M,47.9,M,,0000*76
+$GPRMC,152053.000,A,5349.4980,N,00146.2529,W,24.33,331.83,140808,,,A*44
+$GPVTG,331.83,T,,M,24.33,N,45.1,K,A*01
+$GPGGA,152054.000,5349.5040,N,00146.2587,W,1,07,1.3,77.0,M,47.9,M,,0000*77
+$GPRMC,152054.000,A,5349.5040,N,00146.2587,W,24.69,331.10,140808,,,A*46
+$GPVTG,331.10,T,,M,24.69,N,45.7,K,A*02
+$GPGGA,152055.000,5349.5101,N,00146.2648,W,1,07,1.3,77.0,M,47.9,M,,0000*72
+$GPRMC,152055.000,A,5349.5101,N,00146.2648,W,25.61,329.57,140808,,,A*40
+$GPVTG,329.57,T,,M,25.61,N,47.4,K,A*00
+$GPGGA,152056.000,5349.5164,N,00146.2716,W,1,08,1.0,78.1,M,47.9,M,,0000*7A
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.7*3E
+$GPGSV,3,1,11,30,84,271,34,12,48,080,32,29,46,189,26,14,39,238,44*7A
+$GPGSV,3,2,11,31,30,302,31,02,27,081,34,04,17,042,34,09,14,137,41*7C
+$GPGSV,3,3,11,32,07,312,,20,04,333,29,24,01,151,16*44
+$GPRMC,152056.000,A,5349.5164,N,00146.2716,W,26.65,326.70,140808,,,A*47
+$GPVTG,326.70,T,,M,26.65,N,49.4,K,A*03
+$GPGGA,152057.000,5349.5225,N,00146.2789,W,1,09,0.9,79.4,M,47.9,M,,0000*76
+$GPRMC,152057.000,A,5349.5225,N,00146.2789,W,26.82,321.88,140808,,,A*4F
+$GPVTG,321.88,T,,M,26.82,N,49.7,K,A*09
+$GPGGA,152058.000,5349.5279,N,00146.2868,W,1,09,0.9,80.2,M,47.9,M,,0000*70
+$GPRMC,152058.000,A,5349.5279,N,00146.2868,W,25.77,316.82,140808,,,A*4E
+$GPVTG,316.82,T,,M,25.77,N,47.7,K,A*00
+$GPGGA,152059.000,5349.5326,N,00146.2950,W,1,09,0.9,80.7,M,47.9,M,,0000*75
+$GPRMC,152059.000,A,5349.5326,N,00146.2950,W,24.71,313.09,140808,,,A*4F
+$GPVTG,313.09,T,,M,24.71,N,45.8,K,A*0C
+$GPGGA,152100.000,5349.5369,N,00146.3035,W,1,09,0.9,81.5,M,47.9,M,,0000*7B
+$GPRMC,152100.000,A,5349.5369,N,00146.3035,W,23.90,309.20,140808,,,A*4A
+$GPVTG,309.20,T,,M,23.90,N,44.3,K,A*0E
+$GPGGA,152101.000,5349.5410,N,00146.3121,W,1,09,0.9,82.4,M,47.9,M,,0000*75
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,48,080,29,29,46,189,37,14,39,238,34*77
+$GPGSV,3,2,11,31,30,302,28,02,27,081,29,04,17,042,31,09,14,137,41*7D
+$GPGSV,3,3,11,32,07,312,32,20,04,333,36,24,01,151,*4C
+$GPRMC,152101.000,A,5349.5410,N,00146.3121,W,23.82,309.76,140808,,,A*46
+$GPVTG,309.76,T,,M,23.82,N,44.1,K,A*0C
+$GPGGA,152102.000,5349.5451,N,00146.3208,W,1,09,0.9,83.6,M,47.9,M,,0000*78
+$GPRMC,152102.000,A,5349.5451,N,00146.3208,W,23.70,308.59,140808,,,A*49
+$GPVTG,308.59,T,,M,23.70,N,43.9,K,A*02
+$GPGGA,152103.000,5349.5490,N,00146.3290,W,1,09,0.9,85.1,M,47.9,M,,0000*74
+$GPRMC,152103.000,A,5349.5490,N,00146.3290,W,23.11,311.41,140808,,,A*42
+$GPVTG,311.41,T,,M,23.11,N,42.8,K,A*04
+$GPGGA,152104.000,5349.5530,N,00146.3372,W,1,09,0.9,86.1,M,47.9,M,,0000*76
+$GPRMC,152104.000,A,5349.5530,N,00146.3372,W,22.93,312.77,140808,,,A*4E
+$GPVTG,312.77,T,,M,22.93,N,42.5,K,A*04
+$GPGGA,152105.000,5349.5572,N,00146.3455,W,1,09,0.9,86.5,M,47.9,M,,0000*77
+$GPRMC,152105.000,A,5349.5572,N,00146.3455,W,23.42,313.02,140808,,,A*45
+$GPVTG,313.02,T,,M,23.42,N,43.4,K,A*0A
+$GPGGA,152106.000,5349.5619,N,00146.3533,W,1,09,0.9,86.3,M,47.9,M,,0000*7D
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,30,12,48,080,28,29,46,189,37,14,39,238,44*75
+$GPGSV,3,2,11,31,30,302,42,02,27,081,28,04,17,042,32,09,14,137,31*74
+$GPGSV,3,3,11,32,07,312,40,20,04,333,42,24,01,151,*4A
+$GPRMC,152106.000,A,5349.5619,N,00146.3533,W,23.96,317.10,140808,,,A*47
+$GPVTG,317.10,T,,M,23.96,N,44.4,K,A*03
+$GPGGA,152107.000,5349.5671,N,00146.3610,W,1,09,0.9,86.2,M,47.9,M,,0000*71
+$GPRMC,152107.000,A,5349.5671,N,00146.3610,W,24.36,321.81,140808,,,A*4A
+$GPVTG,321.81,T,,M,24.36,N,45.1,K,A*07
+$GPGGA,152108.000,5349.5729,N,00146.3676,W,1,09,0.9,85.9,M,47.9,M,,0000*7A
+$GPRMC,152108.000,A,5349.5729,N,00146.3676,W,24.91,326.69,140808,,,A*45
+$GPVTG,326.69,T,,M,24.91,N,46.1,K,A*08
+$GPGGA,152109.000,5349.5791,N,00146.3739,W,1,09,0.9,85.7,M,47.9,M,,0000*7C
+$GPRMC,152109.000,A,5349.5791,N,00146.3739,W,25.80,331.04,140808,,,A*41
+$GPVTG,331.04,T,,M,25.80,N,47.8,K,A*0C
+$GPGGA,152110.000,5349.5857,N,00146.3796,W,1,09,0.9,84.9,M,47.9,M,,0000*7B
+$GPRMC,152110.000,A,5349.5857,N,00146.3796,W,26.53,335.66,140808,,,A*44
+$GPVTG,335.66,T,,M,26.53,N,49.1,K,A*06
+$GPGGA,152111.000,5349.5926,N,00146.3843,W,1,09,0.9,83.4,M,47.9,M,,0000*70
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,84,271,34,12,48,080,39,29,46,189,34,14,39,238,34*75
+$GPGSV,3,2,11,31,30,302,34,02,27,081,30,04,17,042,34,09,14,137,36*7D
+$GPGSV,3,3,11,32,07,312,24,20,04,333,36,24,01,151,*4B
+$GPRMC,152111.000,A,5349.5926,N,00146.3843,W,26.61,340.40,140808,,,A*42
+$GPVTG,340.40,T,,M,26.61,N,49.3,K,A*03
+$GPGGA,152112.000,5349.5997,N,00146.3880,W,1,09,0.9,82.2,M,47.9,M,,0000*71
+$GPRMC,152112.000,A,5349.5997,N,00146.3880,W,26.52,344.54,140808,,,A*45
+$GPVTG,344.54,T,,M,26.52,N,49.1,K,A*00
+$GPGGA,152113.000,5349.6070,N,00146.3913,W,1,09,0.9,80.5,M,47.9,M,,0000*7D
+$GPRMC,152113.000,A,5349.6070,N,00146.3913,W,26.73,346.06,140808,,,A*4A
+$GPVTG,346.06,T,,M,26.73,N,49.5,K,A*02
+$GPGGA,152114.000,5349.6143,N,00146.3946,W,1,09,0.9,79.3,M,47.9,M,,0000*7B
+$GPRMC,152114.000,A,5349.6143,N,00146.3946,W,26.89,344.58,140808,,,A*40
+$GPVTG,344.58,T,,M,26.89,N,49.8,K,A*03
+$GPGGA,152115.000,5349.6216,N,00146.3980,W,1,09,0.9,78.5,M,47.9,M,,0000*74
+$GPRMC,152115.000,A,5349.6216,N,00146.3980,W,26.92,343.50,140808,,,A*4D
+$GPVTG,343.50,T,,M,26.92,N,49.8,K,A*06
+$GPGGA,152116.000,5349.6290,N,00146.4016,W,1,09,0.9,77.2,M,47.9,M,,0000*70
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,85,273,33,12,48,081,39,29,47,188,33,14,38,237,29*75
+$GPGSV,3,2,11,31,31,302,30,02,27,080,36,04,17,041,29,09,13,137,29*79
+$GPGSV,3,3,11,32,06,311,18,20,04,332,22,24,01,150,12*40
+$GPRMC,152116.000,A,5349.6290,N,00146.4016,W,27.31,343.64,140808,,,A*4E
+$GPVTG,343.64,T,,M,27.31,N,50.6,K,A*0F
+$GPGGA,152117.000,5349.6365,N,00146.4054,W,1,09,0.9,76.2,M,47.9,M,,0000*7D
+$GPRMC,152117.000,A,5349.6365,N,00146.4054,W,27.57,343.73,140808,,,A*44
+$GPVTG,343.73,T,,M,27.57,N,51.1,K,A*0F
+$GPGGA,152118.000,5349.6440,N,00146.4091,W,1,09,0.9,75.6,M,47.9,M,,0000*7C
+$GPRMC,152118.000,A,5349.6440,N,00146.4091,W,27.86,343.27,140808,,,A*4F
+$GPVTG,343.27,T,,M,27.86,N,51.6,K,A*05
+$GPGGA,152119.000,5349.6516,N,00146.4129,W,1,09,0.9,75.7,M,47.9,M,,0000*7C
+$GPRMC,152119.000,A,5349.6516,N,00146.4129,W,28.61,342.91,140808,,,A*44
+$GPVTG,342.91,T,,M,28.61,N,53.0,K,A*0B
+$GPGGA,152120.000,5349.6595,N,00146.4171,W,1,09,0.9,75.3,M,47.9,M,,0000*74
+$GPRMC,152120.000,A,5349.6595,N,00146.4171,W,29.55,341.90,140808,,,A*4C
+$GPVTG,341.90,T,,M,29.55,N,54.7,K,A*0F
+$GPGGA,152121.000,5349.6675,N,00146.4217,W,1,09,0.9,74.7,M,47.9,M,,0000*7E
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,85,273,34,12,48,081,39,29,47,188,30,14,38,237,27*7F
+$GPGSV,3,2,11,31,31,302,29,02,27,080,36,04,17,041,26,09,13,137,36*70
+$GPGSV,3,3,11,32,06,311,20,20,04,332,25,24,01,150,*4F
+$GPRMC,152121.000,A,5349.6675,N,00146.4217,W,29.84,341.31,140808,,,A*44
+$GPVTG,341.31,T,,M,29.84,N,55.3,K,A*0D
+$GPGGA,152122.000,5349.6754,N,00146.4263,W,1,09,0.9,74.2,M,47.9,M,,0000*79
+$GPRMC,152122.000,A,5349.6754,N,00146.4263,W,29.41,341.81,140808,,,A*44
+$GPVTG,341.81,T,,M,29.41,N,54.5,K,A*08
+$GPGGA,152123.000,5349.6830,N,00146.4307,W,1,09,0.9,73.6,M,47.9,M,,0000*75
+$GPRMC,152123.000,A,5349.6830,N,00146.4307,W,28.77,341.58,140808,,,A*4B
+$GPVTG,341.58,T,,M,28.77,N,53.3,K,A*09
+$GPGGA,152124.000,5349.6903,N,00146.4352,W,1,09,0.9,72.9,M,47.9,M,,0000*7D
+$GPRMC,152124.000,A,5349.6903,N,00146.4352,W,27.48,339.68,140808,,,A*42
+$GPVTG,339.68,T,,M,27.48,N,50.9,K,A*0F
+$GPGGA,152125.000,5349.6970,N,00146.4397,W,1,09,0.9,72.0,M,47.9,M,,0000*78
+$GPRMC,152125.000,A,5349.6970,N,00146.4397,W,25.67,338.81,140808,,,A*47
+$GPVTG,338.81,T,,M,25.67,N,47.5,K,A*0C
+$GPGGA,152126.000,5349.7030,N,00146.4438,W,1,09,0.9,71.9,M,47.9,M,,0000*7F
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,85,273,35,12,48,081,39,29,47,188,31,14,38,237,30*79
+$GPGSV,3,2,11,31,31,302,41,02,27,080,32,04,17,041,27,09,13,137,31*7C
+$GPGSV,3,3,11,32,06,311,21,20,04,332,28,24,01,150,*43
+$GPRMC,152126.000,A,5349.7030,N,00146.4438,W,23.11,338.64,140808,,,A*46
+$GPVTG,338.64,T,,M,23.11,N,42.8,K,A*08
+$GPGGA,152127.000,5349.7081,N,00146.4475,W,1,09,0.9,71.8,M,47.9,M,,0000*7C
+$GPRMC,152127.000,A,5349.7081,N,00146.4475,W,20.17,337.33,140808,,,A*4C
+$GPVTG,337.33,T,,M,20.17,N,37.4,K,A*0E
+$GPGGA,152128.000,5349.7126,N,00146.4510,W,1,09,0.9,71.8,M,47.9,M,,0000*7D
+$GPRMC,152128.000,A,5349.7126,N,00146.4510,W,18.03,334.76,140808,,,A*41
+$GPVTG,334.76,T,,M,18.03,N,33.4,K,A*06
+$GPGGA,152129.000,5349.7171,N,00146.4549,W,1,09,0.9,72.4,M,47.9,M,,0000*7D
+$GPRMC,152129.000,A,5349.7171,N,00146.4549,W,17.85,332.76,140808,,,A*49
+$GPVTG,332.76,T,,M,17.85,N,33.1,K,A*04
+$GPGGA,152130.000,5349.7217,N,00146.4591,W,1,09,0.9,72.9,M,47.9,M,,0000*7E
+$GPRMC,152130.000,A,5349.7217,N,00146.4591,W,18.95,330.85,140808,,,A*47
+$GPVTG,330.85,T,,M,18.95,N,35.1,K,A*02
+$GPGGA,152131.000,5349.7265,N,00146.4636,W,1,09,0.9,73.3,M,47.9,M,,0000*7F
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,85,273,35,12,48,081,33,29,47,188,38,14,38,237,38*72
+$GPGSV,3,2,11,31,31,302,42,02,27,080,31,04,17,041,28,09,13,137,40*75
+$GPGSV,3,3,11,32,06,311,28,20,04,332,19,24,01,150,18*41
+$GPRMC,152131.000,A,5349.7265,N,00146.4636,W,19.60,332.14,140808,,,A*4C
+$GPVTG,332.14,T,,M,19.60,N,36.3,K,A*02
+$GPGGA,152132.000,5349.7314,N,00146.4680,W,1,09,0.9,73.9,M,47.9,M,,0000*7C
+$GPRMC,152132.000,A,5349.7314,N,00146.4680,W,20.15,332.15,140808,,,A*4C
+$GPVTG,332.15,T,,M,20.15,N,37.3,K,A*0A
+$GPGGA,152133.000,5349.7367,N,00146.4725,W,1,09,0.9,74.6,M,47.9,M,,0000*7F
+$GPRMC,152133.000,A,5349.7367,N,00146.4725,W,21.01,332.95,140808,,,A*4B
+$GPVTG,332.95,T,,M,21.01,N,38.9,K,A*03
+$GPGGA,152134.000,5349.7419,N,00146.4771,W,1,09,0.9,75.5,M,47.9,M,,0000*75
+$GPRMC,152134.000,A,5349.7419,N,00146.4771,W,21.29,332.47,140808,,,A*46
+$GPVTG,332.47,T,,M,21.29,N,39.4,K,A*0A
+$GPGGA,152135.000,5349.7469,N,00146.4820,W,1,09,0.9,76.5,M,47.9,M,,0000*7B
+$GPRMC,152135.000,A,5349.7469,N,00146.4820,W,20.96,328.06,140808,,,A*40
+$GPVTG,328.06,T,,M,20.96,N,38.8,K,A*0C
+$GPGGA,152136.000,5349.7515,N,00146.4881,W,1,09,0.9,77.5,M,47.9,M,,0000*78
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,85,273,35,12,48,081,34,29,47,188,30,14,38,237,39*7C
+$GPGSV,3,2,11,31,31,302,41,02,27,080,29,04,17,041,29,09,13,137,40*7E
+$GPGSV,3,3,11,32,06,311,37,20,04,332,22,24,01,150,20*4C
+$GPRMC,152136.000,A,5349.7515,N,00146.4881,W,21.08,317.67,140808,,,A*4F
+$GPVTG,317.67,T,,M,21.08,N,39.0,K,A*08
+$GPGGA,152137.000,5349.7555,N,00146.4956,W,1,09,0.9,78.5,M,47.9,M,,0000*79
+$GPRMC,152137.000,A,5349.7555,N,00146.4956,W,21.66,308.33,140808,,,A*46
+$GPVTG,308.33,T,,M,21.66,N,40.1,K,A*00
+$GPGGA,152138.000,5349.7589,N,00146.5046,W,1,09,0.9,78.9,M,47.9,M,,0000*72
+$GPRMC,152138.000,A,5349.7589,N,00146.5046,W,22.68,301.00,140808,,,A*45
+$GPVTG,301.00,T,,M,22.68,N,42.0,K,A*07
+$GPGGA,152139.000,5349.7620,N,00146.5150,W,1,09,0.9,79.4,M,47.9,M,,0000*79
+$GPRMC,152139.000,A,5349.7620,N,00146.5150,W,24.36,294.69,140808,,,A*4D
+$GPVTG,294.69,T,,M,24.36,N,45.1,K,A*0E
+$GPGGA,152140.000,5349.7649,N,00146.5261,W,1,09,0.9,80.0,M,47.9,M,,0000*7B
+$GPRMC,152140.000,A,5349.7649,N,00146.5261,W,25.34,295.09,140808,,,A*49
+$GPVTG,295.09,T,,M,25.34,N,46.9,K,A*01
+$GPGGA,152141.000,5349.7678,N,00146.5372,W,1,09,0.9,80.5,M,47.9,M,,0000*7E
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.4*3B
+$GPGSV,3,1,11,30,85,273,35,12,48,081,35,29,47,188,30,14,38,237,32*76
+$GPGSV,3,2,11,31,31,302,37,02,27,080,36,04,17,041,36,09,13,137,34*7C
+$GPGSV,3,3,11,32,06,311,34,20,04,332,29,24,01,150,19*4E
+$GPRMC,152141.000,A,5349.7678,N,00146.5372,W,25.53,295.16,140808,,,A*46
+$GPVTG,295.16,T,,M,25.53,N,47.3,K,A*05
+$GPGGA,152142.000,5349.7707,N,00146.5482,W,1,09,0.9,81.1,M,47.9,M,,0000*79
+$GPRMC,152142.000,A,5349.7707,N,00146.5482,W,25.42,294.11,140808,,,A*42
+$GPVTG,294.11,T,,M,25.42,N,47.1,K,A*01
+$GPGGA,152143.000,5349.7734,N,00146.5591,W,1,09,0.9,81.6,M,47.9,M,,0000*7C
+$GPRMC,152143.000,A,5349.7734,N,00146.5591,W,24.79,293.36,140808,,,A*4B
+$GPVTG,293.36,T,,M,24.79,N,45.9,K,A*00
+$GPGGA,152144.000,5349.7760,N,00146.5694,W,1,09,0.9,82.1,M,47.9,M,,0000*78
+$GPRMC,152144.000,A,5349.7760,N,00146.5694,W,23.80,294.35,140808,,,A*4E
+$GPVTG,294.35,T,,M,23.80,N,44.1,K,A*0C
+$GPGGA,152145.000,5349.7788,N,00146.5783,W,1,08,1.0,82.8,M,47.9,M,,0000*78
+$GPRMC,152145.000,A,5349.7788,N,00146.5783,W,21.92,301.20,140808,,,A*46
+$GPVTG,301.20,T,,M,21.92,N,40.6,K,A*07
+$GPGGA,152146.000,5349.7818,N,00146.5852,W,1,08,1.0,83.2,M,47.9,M,,0000*75
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,85,273,35,12,48,081,35,29,47,188,37,14,38,237,41*75
+$GPGSV,3,2,11,31,31,302,39,02,27,080,29,04,17,041,28,09,13,137,40*70
+$GPGSV,3,3,11,32,06,311,,20,04,332,,24,01,150,21*49
+$GPRMC,152146.000,A,5349.7818,N,00146.5852,W,19.22,310.02,140808,,,A*40
+$GPVTG,310.02,T,,M,19.22,N,35.6,K,A*05
+$GPGGA,152147.000,5349.7847,N,00146.5896,W,1,08,1.0,83.7,M,47.9,M,,0000*73
+$GPRMC,152147.000,A,5349.7847,N,00146.5896,W,15.55,321.70,140808,,,A*48
+$GPVTG,321.70,T,,M,15.55,N,28.8,K,A*0C
+$GPGGA,152148.000,5349.7865,N,00146.5914,W,1,08,1.0,84.2,M,47.9,M,,0000*75
+$GPRMC,152148.000,A,5349.7865,N,00146.5914,W,10.75,334.34,140808,,,A*4F
+$GPVTG,334.34,T,,M,10.75,N,19.9,K,A*0C
+$GPGGA,152149.000,5349.7875,N,00146.5918,W,1,08,1.0,84.7,M,47.9,M,,0000*7C
+$GPRMC,152149.000,A,5349.7875,N,00146.5918,W,6.08,341.40,140808,,,A*7F
+$GPVTG,341.40,T,,M,6.08,N,11.3,K,A*32
+$GPGGA,152150.000,5349.7880,N,00146.5919,W,1,08,1.0,85.1,M,47.9,M,,0000*78
+$GPRMC,152150.000,A,5349.7880,N,00146.5919,W,3.05,342.92,140808,,,A*78
+$GPVTG,342.92,T,,M,3.05,N,5.6,K,A*06
+$GPGGA,152151.000,5349.7882,N,00146.5915,W,1,08,1.0,85.4,M,47.9,M,,0000*72
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,85,273,30,12,48,081,31,29,47,188,35,14,38,237,37*77
+$GPGSV,3,2,11,31,31,302,40,02,27,080,29,04,17,041,27,09,13,137,40*71
+$GPGSV,3,3,11,32,06,311,16,20,04,332,,24,01,150,30*4E
+$GPRMC,152151.000,A,5349.7882,N,00146.5915,W,0.00,342.92,140808,,,A*71
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152152.000,5349.7881,N,00146.5910,W,1,08,1.0,85.8,M,47.9,M,,0000*7B
+$GPRMC,152152.000,A,5349.7881,N,00146.5910,W,0.00,342.92,140808,,,A*74
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152153.000,5349.7880,N,00146.5906,W,1,08,1.0,86.2,M,47.9,M,,0000*75
+$GPRMC,152153.000,A,5349.7880,N,00146.5906,W,0.00,342.92,140808,,,A*73
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152154.000,5349.7879,N,00146.5902,W,1,08,1.0,86.5,M,47.9,M,,0000*77
+$GPRMC,152154.000,A,5349.7879,N,00146.5902,W,0.00,342.92,140808,,,A*76
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152155.000,5349.7881,N,00146.5898,W,1,08,1.0,86.9,M,47.9,M,,0000*7F
+$GPRMC,152155.000,A,5349.7881,N,00146.5898,W,0.00,342.92,140808,,,A*72
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152156.000,5349.7883,N,00146.5896,W,1,08,1.0,87.1,M,47.9,M,,0000*79
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,85,273,32,12,48,081,28,29,47,188,29,14,38,237,37*70
+$GPGSV,3,2,11,31,31,302,41,02,27,080,28,04,17,041,30,09,13,137,39*79
+$GPGSV,3,3,11,32,06,311,13,20,04,332,,24,01,150,29*43
+$GPRMC,152156.000,A,5349.7883,N,00146.5896,W,0.00,342.92,140808,,,A*7D
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152157.000,5349.7885,N,00146.5893,W,1,08,1.0,87.3,M,47.9,M,,0000*79
+$GPRMC,152157.000,A,5349.7885,N,00146.5893,W,0.00,342.92,140808,,,A*7F
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152158.000,5349.7886,N,00146.5891,W,1,08,1.0,87.5,M,47.9,M,,0000*71
+$GPRMC,152158.000,A,5349.7886,N,00146.5891,W,0.00,342.92,140808,,,A*71
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152159.000,5349.7888,N,00146.5889,W,1,08,1.0,87.8,M,47.9,M,,0000*7A
+$GPRMC,152159.000,A,5349.7888,N,00146.5889,W,0.00,342.92,140808,,,A*77
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152200.000,5349.7890,N,00146.5886,W,1,08,1.0,88.0,M,47.9,M,,0000*74
+$GPRMC,152200.000,A,5349.7890,N,00146.5886,W,0.00,342.92,140808,,,A*7E
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152201.000,5349.7892,N,00146.5884,W,1,08,1.0,88.1,M,47.9,M,,0000*74
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,85,273,32,12,48,081,28,29,47,188,31,14,38,237,37*79
+$GPGSV,3,2,11,31,31,302,41,02,27,080,27,04,17,041,31,09,13,137,39*77
+$GPGSV,3,3,11,32,06,311,,20,04,332,,24,01,150,29*41
+$GPRMC,152201.000,A,5349.7892,N,00146.5884,W,0.00,342.92,140808,,,A*7F
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152202.000,5349.7894,N,00146.5881,W,1,08,1.0,88.3,M,47.9,M,,0000*76
+$GPRMC,152202.000,A,5349.7894,N,00146.5881,W,0.00,342.92,140808,,,A*7F
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152203.000,5349.7895,N,00146.5879,W,1,08,1.0,88.4,M,47.9,M,,0000*76
+$GPRMC,152203.000,A,5349.7895,N,00146.5879,W,0.00,342.92,140808,,,A*78
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152204.000,5349.7897,N,00146.5876,W,1,08,1.0,88.5,M,47.9,M,,0000*7D
+$GPRMC,152204.000,A,5349.7897,N,00146.5876,W,0.00,342.92,140808,,,A*72
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152205.000,5349.7899,N,00146.5874,W,1,08,1.0,88.6,M,47.9,M,,0000*73
+$GPRMC,152205.000,A,5349.7899,N,00146.5874,W,0.00,342.92,140808,,,A*7F
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152206.000,5349.7900,N,00146.5872,W,1,08,1.0,88.7,M,47.9,M,,0000*76
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,85,273,32,12,48,081,28,29,47,188,31,14,38,237,37*79
+$GPGSV,3,2,11,31,31,302,41,02,27,080,27,04,17,041,31,09,13,137,38*76
+$GPGSV,3,3,11,32,06,311,24,20,04,332,,24,01,150,29*47
+$GPRMC,152206.000,A,5349.7900,N,00146.5872,W,0.00,342.92,140808,,,A*7B
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152207.000,5349.7902,N,00146.5870,W,1,08,1.0,88.8,M,47.9,M,,0000*78
+$GPRMC,152207.000,A,5349.7902,N,00146.5870,W,0.00,342.92,140808,,,A*7A
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152208.000,5349.7903,N,00146.5868,W,1,08,1.0,88.8,M,47.9,M,,0000*7F
+$GPRMC,152208.000,A,5349.7903,N,00146.5868,W,0.00,342.92,140808,,,A*7D
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152209.000,5349.7904,N,00146.5865,W,1,08,1.0,88.9,M,47.9,M,,0000*75
+$GPRMC,152209.000,A,5349.7904,N,00146.5865,W,0.00,342.92,140808,,,A*76
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152210.000,5349.7906,N,00146.5863,W,1,08,1.0,88.9,M,47.9,M,,0000*79
+$GPRMC,152210.000,A,5349.7906,N,00146.5863,W,0.00,342.92,140808,,,A*7A
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152211.000,5349.7907,N,00146.5861,W,1,08,1.0,89.0,M,47.9,M,,0000*73
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,85,273,32,12,48,081,28,29,47,188,31,14,38,237,37*79
+$GPGSV,3,2,11,31,31,302,41,02,27,080,27,04,17,041,31,09,13,137,38*76
+$GPGSV,3,3,11,32,06,311,,20,04,332,,24,01,150,29*41
+$GPRMC,152211.000,A,5349.7907,N,00146.5861,W,0.00,342.92,140808,,,A*78
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152212.000,5349.7908,N,00146.5859,W,1,08,1.0,89.0,M,47.9,M,,0000*74
+$GPRMC,152212.000,A,5349.7908,N,00146.5859,W,0.00,342.92,140808,,,A*7F
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152213.000,5349.7910,N,00146.5857,W,1,08,1.0,89.0,M,47.9,M,,0000*72
+$GPRMC,152213.000,A,5349.7910,N,00146.5857,W,0.00,342.92,140808,,,A*79
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152214.000,5349.7911,N,00146.5855,W,1,08,1.0,88.8,M,47.9,M,,0000*7F
+$GPRMC,152214.000,A,5349.7911,N,00146.5855,W,0.00,342.92,140808,,,A*7D
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152215.000,5349.7912,N,00146.5853,W,1,08,1.0,88.6,M,47.9,M,,0000*75
+$GPRMC,152215.000,A,5349.7912,N,00146.5853,W,0.00,342.92,140808,,,A*79
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152216.000,5349.7913,N,00146.5852,W,1,08,1.0,88.4,M,47.9,M,,0000*74
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,275,24,12,47,081,28,29,47,188,31,14,38,237,36*75
+$GPGSV,3,2,11,31,31,302,41,02,27,079,33,04,17,041,31,09,13,137,38*75
+$GPGSV,3,3,11,32,06,311,,20,04,332,,24,01,150,29*41
+$GPRMC,152216.000,A,5349.7913,N,00146.5852,W,0.00,342.92,140808,,,A*7A
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152217.000,5349.7914,N,00146.5850,W,1,07,1.0,88.3,M,47.9,M,,0000*78
+$GPRMC,152217.000,A,5349.7914,N,00146.5850,W,0.00,342.92,140808,,,A*7E
+$GPVTG,342.92,T,,M,0.00,N,0.0,K,A*03
+$GPGGA,152218.000,5349.7918,N,00146.5852,W,1,07,1.0,88.2,M,47.9,M,,0000*78
+$GPRMC,152218.000,A,5349.7918,N,00146.5852,W,1.21,336.58,140808,,,A*78
+$GPVTG,336.58,T,,M,1.21,N,2.2,K,A*04
+$GPGGA,152219.000,5349.7930,N,00146.5858,W,1,07,1.0,88.0,M,47.9,M,,0000*7B
+$GPRMC,152219.000,A,5349.7930,N,00146.5858,W,4.31,340.64,140808,,,A*73
+$GPVTG,340.64,T,,M,4.31,N,8.0,K,A*06
+$GPGGA,152220.000,5349.7948,N,00146.5871,W,1,07,1.0,89.0,M,47.9,M,,0000*74
+$GPRMC,152220.000,A,5349.7948,N,00146.5871,W,7.69,341.15,140808,,,A*74
+$GPVTG,341.15,T,,M,7.69,N,14.2,K,A*30
+$GPGGA,152221.000,5349.7978,N,00146.5888,W,1,08,1.0,89.1,M,47.9,M,,0000*7E
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,275,31,12,47,081,34,29,47,188,32,14,38,237,36*7F
+$GPGSV,3,2,11,31,31,302,30,02,27,079,40,04,17,041,25,09,13,137,37*7D
+$GPGSV,3,3,11,32,06,311,,20,04,332,,24,01,150,30*49
+$GPRMC,152221.000,A,5349.7978,N,00146.5888,W,9.55,342.17,140808,,,A*70
+$GPVTG,342.17,T,,M,9.55,N,17.7,K,A*36
+$GPGGA,152222.000,5349.8006,N,00146.5904,W,1,08,1.0,89.1,M,47.9,M,,0000*77
+$GPRMC,152222.000,A,5349.8006,N,00146.5904,W,10.21,337.88,140808,,,A*46
+$GPVTG,337.88,T,,M,10.21,N,18.9,K,A*08
+$GPGGA,152223.000,5349.8034,N,00146.5926,W,1,08,1.0,89.9,M,47.9,M,,0000*7F
+$GPRMC,152223.000,A,5349.8034,N,00146.5926,W,10.56,329.04,140808,,,A*4D
+$GPVTG,329.04,T,,M,10.56,N,19.6,K,A*0D
+$GPGGA,152224.000,5349.8060,N,00146.5955,W,1,08,1.0,90.9,M,47.9,M,,0000*75
+$GPRMC,152224.000,A,5349.8060,N,00146.5955,W,11.10,320.20,140808,,,A*43
+$GPVTG,320.20,T,,M,11.10,N,20.6,K,A*0B
+$GPGGA,152225.000,5349.8084,N,00146.5994,W,1,08,1.0,91.5,M,47.9,M,,0000*7E
+$GPRMC,152225.000,A,5349.8084,N,00146.5994,W,11.76,311.70,140808,,,A*42
+$GPVTG,311.70,T,,M,11.76,N,21.8,K,A*03
+$GPGGA,152226.000,5349.8105,N,00146.6035,W,1,08,1.0,92.7,M,47.9,M,,0000*75
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,275,40,29,47,188,33,12,47,081,36,14,38,237,40*7B
+$GPGSV,3,2,11,31,31,302,34,02,27,079,32,04,17,041,33,09,13,137,41*7A
+$GPGSV,3,3,11,32,06,311,,20,04,332,,24,01,150,24*4C
+$GPRMC,152226.000,A,5349.8105,N,00146.6035,W,11.80,307.87,140808,,,A*4E
+$GPVTG,307.87,T,,M,11.80,N,21.9,K,A*04
+$GPGGA,152227.000,5349.8129,N,00146.6072,W,1,08,1.0,93.3,M,47.9,M,,0000*7C
+$GPRMC,152227.000,A,5349.8129,N,00146.6072,W,11.93,324.62,140808,,,A*4A
+$GPVTG,324.62,T,,M,11.93,N,22.1,K,A*07
+$GPGGA,152228.000,5349.8156,N,00146.6095,W,1,08,1.0,94.6,M,47.9,M,,0000*70
+$GPRMC,152228.000,A,5349.8156,N,00146.6095,W,12.24,347.69,140808,,,A*45
+$GPVTG,347.69,T,,M,12.24,N,22.7,K,A*00
+$GPGGA,152229.000,5349.8188,N,00146.6093,W,1,08,1.0,94.8,M,47.9,M,,0000*7A
+$GPRMC,152229.000,A,5349.8188,N,00146.6093,W,12.98,14.64,140808,,,A*7E
+$GPVTG,14.64,T,,M,12.98,N,24.0,K,A*3E
+$GPGGA,152230.000,5349.8230,N,00146.6066,W,1,08,1.0,95.1,M,47.9,M,,0000*70
+$GPRMC,152230.000,A,5349.8230,N,00146.6066,W,15.04,24.50,140808,,,A*7A
+$GPVTG,24.50,T,,M,15.04,N,27.9,K,A*32
+$GPGGA,152231.000,5349.8274,N,00146.6029,W,1,08,1.0,94.9,M,47.9,M,,0000*73
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,275,35,29,47,188,24,12,47,081,38,14,38,237,35*73
+$GPGSV,3,2,11,31,31,302,40,02,27,079,39,04,17,041,42,09,13,137,33*71
+$GPGSV,3,3,11,32,06,311,,20,04,332,,24,01,150,22*4A
+$GPRMC,152231.000,A,5349.8274,N,00146.6029,W,17.06,27.09,140808,,,A*7F
+$GPVTG,27.09,T,,M,17.06,N,31.6,K,A*35
+$GPGGA,152232.000,5349.8321,N,00146.5987,W,1,08,1.0,94.5,M,47.9,M,,0000*73
+$GPRMC,152232.000,A,5349.8321,N,00146.5987,W,18.62,26.65,140808,,,A*75
+$GPVTG,26.65,T,,M,18.62,N,34.5,K,A*35
+$GPGGA,152233.000,5349.8374,N,00146.5943,W,1,08,1.0,94.1,M,47.9,M,,0000*7E
+$GPRMC,152233.000,A,5349.8374,N,00146.5943,W,20.53,26.40,140808,,,A*72
+$GPVTG,26.40,T,,M,20.53,N,38.0,K,A*32
+$GPGGA,152234.000,5349.8431,N,00146.5897,W,1,08,1.0,93.6,M,47.9,M,,0000*77
+$GPRMC,152234.000,A,5349.8431,N,00146.5897,W,22.42,25.34,140808,,,A*79
+$GPVTG,25.34,T,,M,22.42,N,41.5,K,A*3B
+$GPGGA,152235.000,5349.8490,N,00146.5849,W,1,08,1.0,93.3,M,47.9,M,,0000*7B
+$GPRMC,152235.000,A,5349.8490,N,00146.5849,W,23.13,25.50,140808,,,A*77
+$GPVTG,25.50,T,,M,23.13,N,42.8,K,A*32
+$GPGGA,152236.000,5349.8547,N,00146.5803,W,1,08,1.0,92.8,M,47.9,M,,0000*77
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,275,36,29,47,188,24,12,47,081,39,14,38,237,30*74
+$GPGSV,3,2,11,31,31,302,42,02,27,079,38,04,17,041,41,09,13,137,34*76
+$GPGSV,3,3,11,32,06,311,,20,04,332,13,24,01,150,12*4B
+$GPRMC,152236.000,A,5349.8547,N,00146.5803,W,23.16,26.75,140808,,,A*70
+$GPVTG,26.75,T,,M,23.16,N,42.9,K,A*32
+$GPGGA,152237.000,5349.8604,N,00146.5758,W,1,08,1.0,92.1,M,47.9,M,,0000*7A
+$GPRMC,152237.000,A,5349.8604,N,00146.5758,W,23.01,25.20,140808,,,A*71
+$GPVTG,25.20,T,,M,23.01,N,42.6,K,A*38
+$GPGGA,152238.000,5349.8661,N,00146.5712,W,1,08,1.0,91.7,M,47.9,M,,0000*7D
+$GPRMC,152238.000,A,5349.8661,N,00146.5712,W,22.91,27.43,140808,,,A*7C
+$GPVTG,27.43,T,,M,22.91,N,42.4,K,A*35
+$GPGGA,152239.000,5349.8716,N,00146.5669,W,1,08,1.0,91.2,M,47.9,M,,0000*75
+$GPRMC,152239.000,A,5349.8716,N,00146.5669,W,22.54,24.88,140808,,,A*7C
+$GPVTG,24.88,T,,M,22.54,N,41.7,K,A*38
+$GPGGA,152240.000,5349.8768,N,00146.5630,W,1,08,1.0,90.7,M,47.9,M,,0000*7A
+$GPRMC,152240.000,A,5349.8768,N,00146.5630,W,21.10,24.42,140808,,,A*72
+$GPVTG,24.42,T,,M,21.10,N,39.1,K,A*34
+$GPGGA,152241.000,5349.8812,N,00146.5596,W,1,08,1.0,90.1,M,47.9,M,,0000*70
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,275,36,29,47,188,24,12,47,081,39,14,38,237,36*72
+$GPGSV,3,2,11,31,31,302,45,02,27,079,38,04,17,041,40,09,13,137,36*72
+$GPGSV,3,3,11,32,06,311,13,20,04,332,18,24,01,150,21*42
+$GPRMC,152241.000,A,5349.8812,N,00146.5596,W,18.28,25.11,140808,,,A*78
+$GPVTG,25.11,T,,M,18.28,N,33.9,K,A*30
+$GPGGA,152242.000,5349.8847,N,00146.5570,W,1,08,1.0,89.7,M,47.9,M,,0000*75
+$GPRMC,152242.000,A,5349.8847,N,00146.5570,W,14.54,24.65,140808,,,A*76
+$GPVTG,24.65,T,,M,14.54,N,26.9,K,A*31
+$GPGGA,152243.000,5349.8874,N,00146.5551,W,1,08,1.0,89.4,M,47.9,M,,0000*74
+$GPRMC,152243.000,A,5349.8874,N,00146.5551,W,11.15,25.03,140808,,,A*75
+$GPVTG,25.03,T,,M,11.15,N,20.7,K,A*38
+$GPGGA,152244.000,5349.8893,N,00146.5537,W,1,08,1.0,89.1,M,47.9,M,,0000*7F
+$GPRMC,152244.000,A,5349.8893,N,00146.5537,W,8.28,24.29,140808,,,A*44
+$GPVTG,24.29,T,,M,8.28,N,15.3,K,A*05
+$GPGGA,152245.000,5349.8906,N,00146.5528,W,1,08,1.0,88.8,M,47.9,M,,0000*75
+$GPRMC,152245.000,A,5349.8906,N,00146.5528,W,5.72,24.11,140808,,,A*4F
+$GPVTG,24.11,T,,M,5.72,N,10.6,K,A*0C
+$GPGGA,152246.000,5349.8913,N,00146.5523,W,1,09,0.9,88.5,M,47.9,M,,0000*7D
+$GPGSA,A,3,02,04,30,12,32,09,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,275,36,29,48,188,24,12,47,081,40,14,38,236,36*72
+$GPGSV,3,2,11,31,31,302,44,02,27,079,39,04,17,040,40,09,13,137,36*73
+$GPGSV,3,3,11,32,06,311,21,20,04,332,25,24,02,150,19*45
+$GPRMC,152246.000,A,5349.8913,N,00146.5523,W,3.51,26.98,140808,,,A*47
+$GPVTG,26.98,T,,M,3.51,N,6.5,K,A*3C
+$GPGGA,152247.000,5349.8915,N,00146.5522,W,1,09,0.9,88.3,M,47.9,M,,0000*7D
+$GPRMC,152247.000,A,5349.8915,N,00146.5522,W,0.00,26.98,140808,,,A*46
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152248.000,5349.8914,N,00146.5523,W,1,09,0.9,88.1,M,47.9,M,,0000*70
+$GPRMC,152248.000,A,5349.8914,N,00146.5523,W,0.00,26.98,140808,,,A*49
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152249.000,5349.8913,N,00146.5525,W,1,08,1.2,88.0,M,47.9,M,,0000*7A
+$GPRMC,152249.000,A,5349.8913,N,00146.5525,W,0.00,26.98,140808,,,A*49
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152250.000,5349.8911,N,00146.5526,W,1,08,1.2,87.8,M,47.9,M,,0000*74
+$GPRMC,152250.000,A,5349.8911,N,00146.5526,W,0.00,26.98,140808,,,A*40
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152251.000,5349.8909,N,00146.5527,W,1,09,0.9,87.7,M,47.9,M,,0000*79
+$GPGSA,A,3,02,04,30,12,32,09,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,275,37,29,48,188,19,12,47,081,39,14,38,236,37*72
+$GPGSV,3,2,11,31,31,302,46,02,27,079,39,04,17,040,40,09,13,137,29*7F
+$GPGSV,3,3,11,32,06,311,27,20,04,332,31,24,02,150,19*46
+$GPRMC,152251.000,A,5349.8909,N,00146.5527,W,0.00,26.98,140808,,,A*49
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152252.000,5349.8908,N,00146.5528,W,1,08,1.2,87.5,M,47.9,M,,0000*7D
+$GPRMC,152252.000,A,5349.8908,N,00146.5528,W,0.00,26.98,140808,,,A*44
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152253.000,5349.8906,N,00146.5528,W,1,08,1.2,87.4,M,47.9,M,,0000*73
+$GPRMC,152253.000,A,5349.8906,N,00146.5528,W,0.00,26.98,140808,,,A*4B
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152254.000,5349.8905,N,00146.5529,W,1,08,1.2,87.2,M,47.9,M,,0000*70
+$GPRMC,152254.000,A,5349.8905,N,00146.5529,W,0.00,26.98,140808,,,A*4E
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152255.000,5349.8903,N,00146.5529,W,1,08,1.2,87.1,M,47.9,M,,0000*74
+$GPRMC,152255.000,A,5349.8903,N,00146.5529,W,0.00,26.98,140808,,,A*49
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152256.000,5349.8902,N,00146.5530,W,1,08,1.2,86.9,M,47.9,M,,0000*77
+$GPGSA,A,3,02,04,30,12,32,14,31,29,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,86,275,37,29,48,188,18,12,47,081,39,14,38,236,37*73
+$GPGSV,3,2,11,31,31,302,46,02,27,079,39,04,17,040,40,09,13,137,27*71
+$GPGSV,3,3,11,32,06,311,26,20,04,332,29,24,02,150,18*4F
+$GPRMC,152256.000,A,5349.8902,N,00146.5530,W,0.00,26.98,140808,,,A*43
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152257.000,5349.8901,N,00146.5530,W,1,08,1.2,86.9,M,47.9,M,,0000*75
+$GPRMC,152257.000,A,5349.8901,N,00146.5530,W,0.00,26.98,140808,,,A*41
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152258.000,5349.8900,N,00146.5531,W,1,08,1.2,86.8,M,47.9,M,,0000*7B
+$GPRMC,152258.000,A,5349.8900,N,00146.5531,W,0.00,26.98,140808,,,A*4E
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152259.000,5349.8900,N,00146.5531,W,1,08,1.2,86.8,M,47.9,M,,0000*7A
+$GPRMC,152259.000,A,5349.8900,N,00146.5531,W,0.00,26.98,140808,,,A*4F
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152300.000,5349.8899,N,00146.5531,W,1,08,1.2,86.8,M,47.9,M,,0000*76
+$GPRMC,152300.000,A,5349.8899,N,00146.5531,W,0.00,26.98,140808,,,A*43
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152301.000,5349.8899,N,00146.5531,W,1,08,1.2,86.9,M,47.9,M,,0000*76
+$GPGSA,A,3,02,04,30,12,32,14,31,29,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,86,275,37,29,48,188,17,12,47,081,39,14,38,236,37*7C
+$GPGSV,3,2,11,31,31,302,46,02,27,079,39,04,17,040,40,09,13,137,*74
+$GPGSV,3,3,11,32,06,311,21,20,04,332,22,24,02,150,*4A
+$GPRMC,152301.000,A,5349.8899,N,00146.5531,W,0.00,26.98,140808,,,A*42
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152302.000,5349.8898,N,00146.5531,W,1,08,1.2,87.0,M,47.9,M,,0000*7C
+$GPRMC,152302.000,A,5349.8898,N,00146.5531,W,0.00,26.98,140808,,,A*40
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152303.000,5349.8898,N,00146.5531,W,1,08,1.2,87.1,M,47.9,M,,0000*7C
+$GPRMC,152303.000,A,5349.8898,N,00146.5531,W,0.00,26.98,140808,,,A*41
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152304.000,5349.8898,N,00146.5531,W,1,08,1.2,87.2,M,47.9,M,,0000*78
+$GPRMC,152304.000,A,5349.8898,N,00146.5531,W,0.00,26.98,140808,,,A*46
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152305.000,5349.8898,N,00146.5532,W,1,08,1.2,87.3,M,47.9,M,,0000*7B
+$GPRMC,152305.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*44
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152306.000,5349.8898,N,00146.5532,W,1,08,1.2,87.4,M,47.9,M,,0000*7F
+$GPGSA,A,3,02,04,30,12,32,14,31,29,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,86,275,36,29,48,188,17,12,47,081,40,14,38,236,37*73
+$GPGSV,3,2,11,31,31,302,47,02,27,079,39,04,17,040,40,09,13,137,24*73
+$GPGSV,3,3,11,32,06,311,21,20,04,332,,24,02,150,*4A
+$GPRMC,152306.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*47
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152307.000,5349.8898,N,00146.5532,W,1,08,1.2,87.6,M,47.9,M,,0000*7C
+$GPRMC,152307.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*46
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152308.000,5349.8898,N,00146.5532,W,1,08,1.2,87.7,M,47.9,M,,0000*72
+$GPRMC,152308.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*49
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152309.000,5349.8898,N,00146.5532,W,1,08,1.2,87.9,M,47.9,M,,0000*7D
+$GPRMC,152309.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*48
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152310.000,5349.8898,N,00146.5532,W,1,08,1.2,88.0,M,47.9,M,,0000*73
+$GPRMC,152310.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*40
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152311.000,5349.8898,N,00146.5532,W,1,08,1.2,88.0,M,47.9,M,,0000*72
+$GPGSA,A,3,02,04,30,12,32,14,31,29,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,86,275,36,29,48,188,18,12,47,081,40,14,38,236,37*7C
+$GPGSV,3,2,11,31,31,302,47,02,27,079,39,04,17,040,39,09,13,137,*7B
+$GPGSV,3,3,11,32,06,311,23,20,04,332,,24,02,150,*48
+$GPRMC,152311.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*41
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152312.000,5349.8898,N,00146.5532,W,1,08,1.2,88.1,M,47.9,M,,0000*70
+$GPRMC,152312.000,A,5349.8898,N,00146.5532,W,0.00,26.98,140808,,,A*42
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152313.000,5349.8897,N,00146.5533,W,1,08,1.2,88.1,M,47.9,M,,0000*7F
+$GPRMC,152313.000,A,5349.8897,N,00146.5533,W,0.00,26.98,140808,,,A*4D
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152314.000,5349.8897,N,00146.5533,W,1,08,1.2,88.1,M,47.9,M,,0000*78
+$GPRMC,152314.000,A,5349.8897,N,00146.5533,W,0.00,26.98,140808,,,A*4A
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152315.000,5349.8896,N,00146.5533,W,1,08,1.2,88.0,M,47.9,M,,0000*79
+$GPRMC,152315.000,A,5349.8896,N,00146.5533,W,0.00,26.98,140808,,,A*4A
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152316.000,5349.8896,N,00146.5533,W,1,09,0.9,88.1,M,47.9,M,,0000*70
+$GPGSA,A,3,02,04,30,12,32,09,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,276,36,29,48,188,20,12,47,081,41,14,37,236,37*7A
+$GPGSV,3,2,11,31,31,302,47,02,27,079,40,04,17,040,39,09,13,137,29*7E
+$GPGSV,3,3,11,32,06,311,21,20,04,332,22,24,02,150,20*48
+$GPRMC,152316.000,A,5349.8896,N,00146.5533,W,0.00,26.98,140808,,,A*49
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152317.000,5349.8896,N,00146.5533,W,1,09,0.9,88.1,M,47.9,M,,0000*71
+$GPRMC,152317.000,A,5349.8896,N,00146.5533,W,0.00,26.98,140808,,,A*48
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152318.000,5349.8896,N,00146.5534,W,1,09,0.9,88.2,M,47.9,M,,0000*7A
+$GPRMC,152318.000,A,5349.8896,N,00146.5534,W,0.00,26.98,140808,,,A*40
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152319.000,5349.8895,N,00146.5534,W,1,09,0.9,88.2,M,47.9,M,,0000*78
+$GPRMC,152319.000,A,5349.8895,N,00146.5534,W,0.00,26.98,140808,,,A*42
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152320.000,5349.8895,N,00146.5534,W,1,09,0.9,88.1,M,47.9,M,,0000*71
+$GPRMC,152320.000,A,5349.8895,N,00146.5534,W,0.00,26.98,140808,,,A*48
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152321.000,5349.8895,N,00146.5534,W,1,09,0.9,88.1,M,47.9,M,,0000*70
+$GPGSA,A,3,02,04,30,12,32,09,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,276,37,29,48,188,21,12,47,081,41,14,37,236,37*7A
+$GPGSV,3,2,11,31,31,302,47,02,27,079,40,04,17,040,39,09,13,137,31*77
+$GPGSV,3,3,11,32,06,311,24,20,04,332,25,24,02,150,18*41
+$GPRMC,152321.000,A,5349.8895,N,00146.5534,W,0.00,26.98,140808,,,A*49
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152322.000,5349.8894,N,00146.5535,W,1,09,0.9,88.0,M,47.9,M,,0000*72
+$GPRMC,152322.000,A,5349.8894,N,00146.5535,W,0.00,26.98,140808,,,A*4A
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152323.000,5349.8894,N,00146.5535,W,1,09,0.9,87.9,M,47.9,M,,0000*75
+$GPRMC,152323.000,A,5349.8894,N,00146.5535,W,0.00,26.98,140808,,,A*4B
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152324.000,5349.8893,N,00146.5535,W,1,09,0.9,87.9,M,47.9,M,,0000*75
+$GPRMC,152324.000,A,5349.8893,N,00146.5535,W,0.00,26.98,140808,,,A*4B
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152325.000,5349.8893,N,00146.5535,W,1,09,0.9,87.8,M,47.9,M,,0000*75
+$GPRMC,152325.000,A,5349.8893,N,00146.5535,W,0.00,26.98,140808,,,A*4A
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152326.000,5349.8892,N,00146.5536,W,1,09,0.9,87.7,M,47.9,M,,0000*7B
+$GPGSA,A,3,02,04,30,12,32,09,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,276,37,29,48,188,28,12,47,081,41,14,37,236,37*73
+$GPGSV,3,2,11,31,31,302,47,02,27,079,40,04,17,040,40,09,13,137,30*78
+$GPGSV,3,3,11,32,06,311,23,20,04,332,18,24,02,150,17*47
+$GPRMC,152326.000,A,5349.8892,N,00146.5536,W,0.00,26.98,140808,,,A*4B
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152327.000,5349.8892,N,00146.5536,W,1,08,1.2,87.5,M,47.9,M,,0000*73
+$GPRMC,152327.000,A,5349.8892,N,00146.5536,W,0.00,26.98,140808,,,A*4A
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152328.000,5349.8891,N,00146.5536,W,1,08,1.2,87.4,M,47.9,M,,0000*7E
+$GPRMC,152328.000,A,5349.8891,N,00146.5536,W,0.00,26.98,140808,,,A*46
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152329.000,5349.8890,N,00146.5537,W,1,08,1.2,87.3,M,47.9,M,,0000*78
+$GPRMC,152329.000,A,5349.8890,N,00146.5537,W,0.00,26.98,140808,,,A*47
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152330.000,5349.8890,N,00146.5537,W,1,08,1.2,87.2,M,47.9,M,,0000*71
+$GPRMC,152330.000,A,5349.8890,N,00146.5537,W,0.00,26.98,140808,,,A*4F
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152331.000,5349.8889,N,00146.5537,W,1,09,0.9,87.0,M,47.9,M,,0000*71
+$GPGSA,A,3,02,04,30,12,32,09,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,276,37,29,48,188,27,12,47,081,41,14,37,236,37*7C
+$GPGSV,3,2,11,31,31,302,47,02,27,079,40,04,17,040,39,09,13,137,30*76
+$GPGSV,3,3,11,32,06,311,21,20,04,332,19,24,02,150,17*44
+$GPRMC,152331.000,A,5349.8889,N,00146.5537,W,0.00,26.98,140808,,,A*46
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152332.000,5349.8889,N,00146.5538,W,1,08,1.2,86.9,M,47.9,M,,0000*7E
+$GPRMC,152332.000,A,5349.8889,N,00146.5538,W,0.00,26.98,140808,,,A*4A
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152333.000,5349.8888,N,00146.5538,W,1,08,1.2,86.8,M,47.9,M,,0000*7F
+$GPRMC,152333.000,A,5349.8888,N,00146.5538,W,0.00,26.98,140808,,,A*4A
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152334.000,5349.8888,N,00146.5538,W,1,08,1.2,86.7,M,47.9,M,,0000*77
+$GPRMC,152334.000,A,5349.8888,N,00146.5538,W,0.00,26.98,140808,,,A*4D
+$GPVTG,26.98,T,,M,0.00,N,0.0,K,A*38
+$GPGGA,152335.000,5349.8893,N,00146.5534,W,1,08,1.2,86.7,M,47.9,M,,0000*70
+$GPRMC,152335.000,A,5349.8893,N,00146.5534,W,1.93,26.64,140808,,,A*42
+$GPVTG,26.64,T,,M,1.93,N,3.6,K,A*35
+$GPGGA,152336.000,5349.8908,N,00146.5522,W,1,08,1.2,86.6,M,47.9,M,,0000*76
+$GPGSA,A,3,02,04,30,12,32,14,31,29,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,86,276,37,29,48,188,29,12,47,081,41,14,37,236,37*72
+$GPGSV,3,2,11,31,31,302,47,02,27,079,40,04,17,040,39,09,13,137,26*71
+$GPGSV,3,3,11,32,06,311,30,20,04,332,26,24,02,150,*4E
+$GPRMC,152336.000,A,5349.8908,N,00146.5522,W,5.90,25.66,140808,,,A*43
+$GPVTG,25.66,T,,M,5.90,N,10.9,K,A*0E
+$GPGGA,152337.000,5349.8932,N,00146.5506,W,1,08,1.2,86.5,M,47.9,M,,0000*7B
+$GPRMC,152337.000,A,5349.8932,N,00146.5506,W,8.69,18.91,140808,,,A*40
+$GPVTG,18.91,T,,M,8.69,N,16.1,K,A*0D
+$GPGGA,152338.000,5349.8956,N,00146.5498,W,1,08,1.2,86.3,M,47.9,M,,0000*76
+$GPRMC,152338.000,A,5349.8956,N,00146.5498,W,9.56,2.17,140808,,,A*73
+$GPVTG,2.17,T,,M,9.56,N,17.7,K,A*32
+$GPGGA,152339.000,5349.8981,N,00146.5510,W,1,08,1.2,86.2,M,47.9,M,,0000*7D
+$GPRMC,152339.000,A,5349.8981,N,00146.5510,W,9.90,333.54,140808,,,A*75
+$GPVTG,333.54,T,,M,9.90,N,18.3,K,A*35
+$GPGGA,152340.000,5349.8998,N,00146.5546,W,1,09,0.9,86.1,M,47.9,M,,0000*70
+$GPRMC,152340.000,A,5349.8998,N,00146.5546,W,10.54,300.68,140808,,,A*4F
+$GPVTG,300.68,T,,M,10.54,N,19.5,K,A*0D
+$GPGGA,152341.000,5349.9015,N,00146.5601,W,1,09,0.9,85.8,M,47.9,M,,0000*76
+$GPGSA,A,3,02,04,30,12,32,14,31,29,09,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,276,33,29,48,188,33,12,47,081,37,14,37,236,39*72
+$GPGSV,3,2,11,31,31,302,33,02,27,079,33,04,17,040,34,09,13,137,34*78
+$GPGSV,3,3,11,32,06,311,29,20,04,332,21,24,02,150,*41
+$GPRMC,152341.000,A,5349.9015,N,00146.5601,W,12.43,294.19,140808,,,A*4D
+$GPVTG,294.19,T,,M,12.43,N,23.0,K,A*0F
+$GPGGA,152342.000,5349.9033,N,00146.5665,W,1,09,0.9,86.0,M,47.9,M,,0000*78
+$GPRMC,152342.000,A,5349.9033,N,00146.5665,W,14.32,292.84,140808,,,A*4A
+$GPVTG,292.84,T,,M,14.32,N,26.5,K,A*0D
+$GPGGA,152343.000,5349.9051,N,00146.5732,W,1,09,0.9,86.2,M,47.9,M,,0000*7C
+$GPRMC,152343.000,A,5349.9051,N,00146.5732,W,15.23,293.53,140808,,,A*46
+$GPVTG,293.53,T,,M,15.23,N,28.2,K,A*0E
+$GPGGA,152344.000,5349.9071,N,00146.5800,W,1,09,0.9,86.7,M,47.9,M,,0000*72
+$GPRMC,152344.000,A,5349.9071,N,00146.5800,W,15.44,296.56,140808,,,A*4C
+$GPVTG,296.56,T,,M,15.44,N,28.6,K,A*0B
+$GPGGA,152345.000,5349.9092,N,00146.5863,W,1,09,0.9,87.1,M,47.9,M,,0000*7C
+$GPRMC,152345.000,A,5349.9092,N,00146.5863,W,15.15,301.68,140808,,,A*43
+$GPVTG,301.68,T,,M,15.15,N,28.1,K,A*0A
+$GPGGA,152346.000,5349.9117,N,00146.5923,W,1,09,0.9,87.7,M,47.9,M,,0000*70
+$GPGSA,A,3,02,04,30,12,32,14,31,29,09,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,86,276,34,29,48,188,30,12,47,081,36,14,37,236,36*78
+$GPGSV,3,2,11,31,31,302,33,02,27,079,27,04,17,040,30,09,13,137,35*78
+$GPGSV,3,3,11,32,06,311,25,20,04,332,28,24,02,150,*44
+$GPRMC,152346.000,A,5349.9117,N,00146.5923,W,15.00,307.55,140808,,,A*45
+$GPVTG,307.55,T,,M,15.00,N,27.8,K,A*00
+$GPGGA,152347.000,5349.9146,N,00146.5975,W,1,09,0.9,88.3,M,47.9,M,,0000*7D
+$GPRMC,152347.000,A,5349.9146,N,00146.5975,W,14.70,316.34,140808,,,A*42
+$GPVTG,316.34,T,,M,14.70,N,27.2,K,A*0B
+$GPGGA,152348.000,5349.9178,N,00146.6018,W,1,09,0.9,89.0,M,47.9,M,,0000*7C
+$GPRMC,152348.000,A,5349.9178,N,00146.6018,W,14.18,327.20,140808,,,A*48
+$GPVTG,327.20,T,,M,14.18,N,26.3,K,A*02
+$GPGGA,152349.000,5349.9212,N,00146.6049,W,1,09,0.9,89.4,M,47.9,M,,0000*72
+$GPRMC,152349.000,A,5349.9212,N,00146.6049,W,13.74,335.75,140808,,,A*4C
+$GPVTG,335.75,T,,M,13.74,N,25.4,K,A*08
+$GPGGA,152350.000,5349.9248,N,00146.6074,W,1,09,0.9,89.9,M,47.9,M,,0000*76
+$GPRMC,152350.000,A,5349.9248,N,00146.6074,W,13.34,340.97,140808,,,A*4F
+$GPVTG,340.97,T,,M,13.34,N,24.7,K,A*00
+$GPGGA,152351.000,5349.9282,N,00146.6089,W,1,08,1.0,90.2,M,47.9,M,,0000*79
+$GPGSA,A,3,02,04,30,12,14,31,29,09,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,276,33,29,48,188,35,12,47,081,37,14,37,236,28*74
+$GPGSV,3,2,11,31,31,302,41,02,27,079,38,04,17,040,39,09,13,137,35*7A
+$GPGSV,3,3,11,32,06,311,18,20,04,332,,24,02,150,*40
+$GPRMC,152351.000,A,5349.9282,N,00146.6089,W,12.91,351.08,140808,,,A*42
+$GPVTG,351.08,T,,M,12.91,N,23.9,K,A*01
+$GPGGA,152352.000,5349.9317,N,00146.6095,W,1,08,1.0,90.4,M,47.9,M,,0000*7C
+$GPRMC,152352.000,A,5349.9317,N,00146.6095,W,12.58,358.22,140808,,,A*45
+$GPVTG,358.22,T,,M,12.58,N,23.3,K,A*0F
+$GPGGA,152353.000,5349.9351,N,00146.6092,W,1,08,1.0,90.7,M,47.9,M,,0000*7B
+$GPRMC,152353.000,A,5349.9351,N,00146.6092,W,12.90,2.64,140808,,,A*4B
+$GPVTG,2.64,T,,M,12.90,N,23.9,K,A*0F
+$GPGGA,152354.000,5349.9386,N,00146.6088,W,1,08,1.0,91.0,M,47.9,M,,0000*7B
+$GPRMC,152354.000,A,5349.9386,N,00146.6088,W,13.26,1.65,140808,,,A*43
+$GPVTG,1.65,T,,M,13.26,N,24.6,K,A*09
+$GPGGA,152355.000,5349.9420,N,00146.6085,W,1,08,1.0,91.4,M,47.9,M,,0000*78
+$GPRMC,152355.000,A,5349.9420,N,00146.6085,W,13.17,1.95,140808,,,A*49
+$GPVTG,1.95,T,,M,13.17,N,24.4,K,A*06
+$GPGGA,152356.000,5349.9457,N,00146.6082,W,1,07,1.1,91.5,M,47.9,M,,0000*73
+$GPGSA,A,3,02,30,12,14,31,29,09,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,11,30,86,276,32,29,48,188,34,12,47,081,38,14,37,236,30*72
+$GPGSV,3,2,11,31,31,302,39,02,27,079,28,04,17,040,18,09,13,137,26*75
+$GPGSV,3,3,11,32,06,311,,20,04,332,25,24,02,150,*4E
+$GPRMC,152356.000,A,5349.9457,N,00146.6082,W,13.71,0.92,140808,,,A*4B
+$GPVTG,0.92,T,,M,13.71,N,25.4,K,A*01
+$GPGGA,152357.000,5349.9495,N,00146.6079,W,1,07,1.1,91.7,M,47.9,M,,0000*7A
+$GPRMC,152357.000,A,5349.9495,N,00146.6079,W,14.28,0.58,140808,,,A*4D
+$GPVTG,0.58,T,,M,14.28,N,26.4,K,A*0F
+$GPGGA,152358.000,5349.9532,N,00146.6077,W,1,07,1.1,91.8,M,47.9,M,,0000*78
+$GPRMC,152358.000,A,5349.9532,N,00146.6077,W,14.02,359.80,140808,,,A*42
+$GPVTG,359.80,T,,M,14.02,N,26.0,K,A*09
+$GPGGA,152359.000,5349.9566,N,00146.6074,W,1,07,1.1,92.1,M,47.9,M,,0000*71
+$GPRMC,152359.000,A,5349.9566,N,00146.6074,W,13.29,0.48,140808,,,A*44
+$GPVTG,0.48,T,,M,13.29,N,24.6,K,A*08
+$GPGGA,152400.000,5349.9599,N,00146.6073,W,1,07,1.1,92.9,M,47.9,M,,0000*75
+$GPRMC,152400.000,A,5349.9599,N,00146.6073,W,12.85,0.08,140808,,,A*4B
+$GPVTG,0.08,T,,M,12.85,N,23.8,K,A*02
+$GPGGA,152401.000,5349.9634,N,00146.6077,W,1,08,1.0,94.0,M,47.9,M,,0000*75
+$GPGSA,A,3,02,04,30,12,14,31,29,09,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,86,276,33,29,48,188,34,12,47,081,38,14,37,236,30*73
+$GPGSV,3,2,11,31,31,302,29,02,27,079,38,04,17,040,33,09,13,137,22*78
+$GPGSV,3,3,11,32,06,311,,20,04,332,29,24,02,150,*42
+$GPRMC,152401.000,A,5349.9634,N,00146.6077,W,12.85,355.32,140808,,,A*40
+$GPVTG,355.32,T,,M,12.85,N,23.8,K,A*08
+$GPGGA,152402.000,5349.9669,N,00146.6084,W,1,07,1.3,95.0,M,47.9,M,,0000*7F
+$GPRMC,152402.000,A,5349.9669,N,00146.6084,W,13.02,353.66,140808,,,A*4E
+$GPVTG,353.66,T,,M,13.02,N,24.1,K,A*0F
+$GPGGA,152403.000,5349.9704,N,00146.6094,W,1,07,1.3,95.1,M,47.9,M,,0000*74
+$GPRMC,152403.000,A,5349.9704,N,00146.6094,W,12.84,356.37,140808,,,A*4A
+$GPVTG,356.37,T,,M,12.84,N,23.8,K,A*0F
+$GPGGA,152404.000,5349.9742,N,00146.6105,W,1,08,1.2,95.1,M,47.9,M,,0000*76
+$GPRMC,152404.000,A,5349.9742,N,00146.6105,W,13.25,356.35,140808,,,A*4E
+$GPVTG,356.35,T,,M,13.25,N,24.5,K,A*0D
+$GPGGA,152405.000,5349.9783,N,00146.6113,W,1,08,1.2,95.6,M,47.9,M,,0000*7A
+$GPRMC,152405.000,A,5349.9783,N,00146.6113,W,14.25,352.56,140808,,,A*43
+$GPVTG,352.56,T,,M,14.25,N,26.4,K,A*08
+$GPGGA,152406.000,5349.9823,N,00146.6121,W,1,08,1.2,94.8,M,47.9,M,,0000*72
+$GPGSA,A,3,02,04,30,12,14,31,29,32,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,86,276,33,29,48,188,35,12,47,081,34,14,37,236,31*7F
+$GPGSV,3,2,11,31,31,302,36,02,27,079,34,04,17,040,24,09,13,137,18*75
+$GPGSV,3,3,11,32,06,311,27,20,04,332,24,24,02,150,*4A
+$GPRMC,152406.000,A,5349.9823,N,00146.6121,W,14.17,354.85,140808,,,A*4D
+$GPVTG,354.85,T,,M,14.17,N,26.2,K,A*07
+$GPGGA,152407.000,5349.9864,N,00146.6132,W,1,08,1.2,93.7,M,47.9,M,,0000*7A
+$GPRMC,152407.000,A,5349.9864,N,00146.6132,W,14.40,352.60,140808,,,A*42
+$GPVTG,352.60,T,,M,14.40,N,26.7,K,A*0D
+$GPGGA,152408.000,5349.9907,N,00146.6142,W,1,08,1.2,92.6,M,47.9,M,,0000*76
+$GPRMC,152408.000,A,5349.9907,N,00146.6142,W,15.00,353.10,140808,,,A*4D
+$GPVTG,353.10,T,,M,15.00,N,27.8,K,A*00
+$GPGGA,152409.000,5349.9949,N,00146.6150,W,1,08,1.2,91.5,M,47.9,M,,0000*7E
+$GPRMC,152409.000,A,5349.9949,N,00146.6150,W,15.11,354.48,140808,,,A*4F
+$GPVTG,354.48,T,,M,15.11,N,28.0,K,A*0D
+$GPGGA,152410.000,5349.9992,N,00146.6157,W,1,08,1.2,90.3,M,47.9,M,,0000*70
+$GPRMC,152410.000,A,5349.9992,N,00146.6157,W,15.31,354.29,140808,,,A*43
+$GPVTG,354.29,T,,M,15.31,N,28.4,K,A*0C
+$GPGGA,152411.000,5350.0035,N,00146.6168,W,1,08,1.2,90.4,M,47.9,M,,0000*7F
+$GPGSA,A,3,02,04,30,12,14,31,29,32,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,86,276,34,29,48,188,36,12,47,081,36,14,37,236,32*7A
+$GPGSV,3,2,11,31,31,302,42,02,27,079,27,04,17,040,29,09,13,137,*70
+$GPGSV,3,3,11,32,06,311,28,20,04,332,30,24,02,150,*40
+$GPRMC,152411.000,A,5350.0035,N,00146.6168,W,15.40,351.49,140808,,,A*4E
+$GPVTG,351.49,T,,M,15.40,N,28.5,K,A*08
+$GPGGA,152412.000,5350.0077,N,00146.6179,W,1,08,1.2,89.9,M,47.9,M,,0000*7F
+$GPRMC,152412.000,A,5350.0077,N,00146.6179,W,14.85,351.44,140808,,,A*4E
+$GPVTG,351.44,T,,M,14.85,N,27.5,K,A*02
+$GPGGA,152413.000,5350.0114,N,00146.6190,W,1,08,1.2,89.7,M,47.9,M,,0000*73
+$GPRMC,152413.000,A,5350.0114,N,00146.6190,W,13.60,352.97,140808,,,A*4D
+$GPVTG,352.97,T,,M,13.60,N,25.2,K,A*06
+$GPGGA,152414.000,5350.0148,N,00146.6201,W,1,08,1.2,90.2,M,47.9,M,,0000*7B
+$GPRMC,152414.000,A,5350.0148,N,00146.6201,W,12.00,350.65,140808,,,A*40
+$GPVTG,350.65,T,,M,12.00,N,22.2,K,A*09
+$GPGGA,152415.000,5350.0179,N,00146.6211,W,1,08,1.2,90.2,M,47.9,M,,0000*79
+$GPRMC,152415.000,A,5350.0179,N,00146.6211,W,11.14,350.58,140808,,,A*4A
+$GPVTG,350.58,T,,M,11.14,N,20.6,K,A*07
+$GPGGA,152416.000,5350.0208,N,00146.6222,W,1,08,1.2,88.7,M,47.9,M,,0000*73
+$GPGSA,A,3,02,04,30,12,14,31,29,32,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,87,279,35,29,48,188,37,12,46,081,36,14,37,236,35*72
+$GPGSV,3,2,11,31,32,302,43,02,28,078,35,04,17,040,27,09,12,138,*7F
+$GPGSV,3,3,11,32,06,310,28,20,04,331,18,24,02,150,*48
+$GPRMC,152416.000,A,5350.0208,N,00146.6222,W,11.00,347.33,140808,,,A*42
+$GPVTG,347.33,T,,M,11.00,N,20.4,K,A*0B
+$GPGGA,152417.000,5350.0238,N,00146.6234,W,1,07,1.3,87.5,M,47.9,M,,0000*75
+$GPRMC,152417.000,A,5350.0238,N,00146.6234,W,11.15,345.98,140808,,,A*40
+$GPVTG,345.98,T,,M,11.15,N,20.6,K,A*0E
+$GPGGA,152418.000,5350.0268,N,00146.6248,W,1,08,1.2,86.5,M,47.9,M,,0000*7B
+$GPRMC,152418.000,A,5350.0268,N,00146.6248,W,11.09,345.23,140808,,,A*4C
+$GPVTG,345.23,T,,M,11.09,N,20.5,K,A*00
+$GPGGA,152419.000,5350.0301,N,00146.6258,W,1,08,1.2,87.5,M,47.9,M,,0000*74
+$GPRMC,152419.000,A,5350.0301,N,00146.6258,W,10.36,342.91,140808,,,A*41
+$GPVTG,342.91,T,,M,10.36,N,19.2,K,A*0E
+$GPGGA,152420.000,5350.0326,N,00146.6270,W,1,08,1.2,88.1,M,47.9,M,,0000*7A
+$GPRMC,152420.000,A,5350.0326,N,00146.6270,W,8.98,340.44,140808,,,A*73
+$GPVTG,340.44,T,,M,8.98,N,16.6,K,A*32
+$GPGGA,152421.000,5350.0347,N,00146.6282,W,1,08,1.2,87.9,M,47.9,M,,0000*76
+$GPGSA,A,3,02,04,30,12,14,31,29,32,,,,,2.3,1.2,1.9*33
+$GPGSV,3,1,11,30,87,279,31,29,48,188,35,12,46,081,36,14,37,236,37*76
+$GPGSV,3,2,11,31,32,302,37,02,28,078,26,04,17,040,29,09,12,138,*70
+$GPGSV,3,3,11,32,06,310,22,20,04,331,17,24,02,150,*4D
+$GPRMC,152421.000,A,5350.0347,N,00146.6282,W,7.35,337.58,140808,,,A*7D
+$GPVTG,337.58,T,,M,7.35,N,13.6,K,A*32
+$GPGGA,152422.000,5350.0364,N,00146.6295,W,1,09,0.9,87.9,M,47.9,M,,0000*79
+$GPRMC,152422.000,A,5350.0364,N,00146.6295,W,6.44,328.91,140808,,,A*75
+$GPVTG,328.91,T,,M,6.44,N,11.9,K,A*33
+$GPGGA,152423.000,5350.0377,N,00146.6309,W,1,09,0.9,88.1,M,47.9,M,,0000*79
+$GPRMC,152423.000,A,5350.0377,N,00146.6309,W,5.32,314.62,140808,,,A*73
+$GPVTG,314.62,T,,M,5.32,N,9.9,K,A*0B
+$GPGGA,152424.000,5350.0387,N,00146.6322,W,1,09,0.9,88.5,M,47.9,M,,0000*7C
+$GPRMC,152424.000,A,5350.0387,N,00146.6322,W,3.82,308.42,140808,,,A*70
+$GPVTG,308.42,T,,M,3.82,N,7.1,K,A*0F
+$GPGGA,152425.000,5350.0391,N,00146.6334,W,1,09,0.9,88.1,M,47.9,M,,0000*79
+$GPRMC,152425.000,A,5350.0391,N,00146.6334,W,3.12,298.83,140808,,,A*7D
+$GPVTG,298.83,T,,M,3.12,N,5.8,K,A*08
+$GPGGA,152426.000,5350.0396,N,00146.6349,W,1,09,0.9,88.6,M,47.9,M,,0000*70
+$GPGSA,A,3,02,04,30,12,09,14,31,29,32,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,87,279,30,29,48,188,35,12,46,081,36,14,37,236,41*76
+$GPGSV,3,2,11,31,32,302,35,02,28,078,31,04,17,040,30,09,12,138,32*7D
+$GPGSV,3,3,11,32,06,310,21,20,04,331,17,24,02,150,*4E
+$GPRMC,152426.000,A,5350.0396,N,00146.6349,W,3.33,278.60,140808,,,A*73
+$GPVTG,278.60,T,,M,3.33,N,6.2,K,A*01
+$GPGGA,152427.000,5350.0398,N,00146.6373,W,1,09,0.9,88.5,M,47.9,M,,0000*75
+$GPRMC,152427.000,A,5350.0398,N,00146.6373,W,4.85,273.29,140808,,,A*79
+$GPVTG,273.29,T,,M,4.85,N,9.0,K,A*00
+$GPGGA,152428.000,5350.0397,N,00146.6406,W,1,08,1.0,88.2,M,47.9,M,,0000*7E
+$GPRMC,152428.000,A,5350.0397,N,00146.6406,W,6.83,268.60,140808,,,A*7F
+$GPVTG,268.60,T,,M,6.83,N,12.6,K,A*3F
+$GPGGA,152429.000,5350.0394,N,00146.6452,W,1,08,1.0,88.1,M,47.9,M,,0000*7E
+$GPRMC,152429.000,A,5350.0394,N,00146.6452,W,9.27,261.15,140808,,,A*76
+$GPVTG,261.15,T,,M,9.27,N,17.2,K,A*34
+$GPGGA,152430.000,5350.0388,N,00146.6505,W,1,08,1.0,88.3,M,47.9,M,,0000*7A
+$GPRMC,152430.000,A,5350.0388,N,00146.6505,W,11.18,259.31,140808,,,A*48
+$GPVTG,259.31,T,,M,11.18,N,20.7,K,A*0D
+$GPGGA,152431.000,5350.0382,N,00146.6563,W,1,08,1.0,88.6,M,47.9,M,,0000*74
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,279,31,29,48,188,43,12,46,081,35,14,37,236,40*74
+$GPGSV,3,2,11,31,32,302,43,02,28,078,38,04,17,040,25,09,12,138,33*70
+$GPGSV,3,3,11,32,06,310,,20,04,331,17,24,02,150,*4D
+$GPRMC,152431.000,A,5350.0382,N,00146.6563,W,12.13,259.22,140808,,,A*49
+$GPVTG,259.22,T,,M,12.13,N,22.5,K,A*07
+$GPGGA,152432.000,5350.0375,N,00146.6627,W,1,08,1.0,88.9,M,47.9,M,,0000*73
+$GPRMC,152432.000,A,5350.0375,N,00146.6627,W,13.48,260.72,140808,,,A*41
+$GPVTG,260.72,T,,M,13.48,N,25.0,K,A*05
+$GPGGA,152433.000,5350.0370,N,00146.6695,W,1,08,1.0,89.1,M,47.9,M,,0000*77
+$GPRMC,152433.000,A,5350.0370,N,00146.6695,W,14.42,263.20,140808,,,A*45
+$GPVTG,263.20,T,,M,14.42,N,26.7,K,A*08
+$GPGGA,152434.000,5350.0366,N,00146.6765,W,1,09,0.9,89.4,M,47.9,M,,0000*75
+$GPRMC,152434.000,A,5350.0366,N,00146.6765,W,14.64,265.25,140808,,,A*4C
+$GPVTG,265.25,T,,M,14.64,N,27.1,K,A*08
+$GPGGA,152435.000,5350.0363,N,00146.6836,W,1,09,0.9,89.8,M,47.9,M,,0000*74
+$GPRMC,152435.000,A,5350.0363,N,00146.6836,W,14.88,264.33,140808,,,A*45
+$GPVTG,264.33,T,,M,14.88,N,27.5,K,A*08
+$GPGGA,152436.000,5350.0358,N,00146.6911,W,1,08,1.0,90.3,M,47.9,M,,0000*71
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,279,32,29,48,188,35,12,46,081,36,14,37,236,40*75
+$GPGSV,3,2,11,31,32,302,43,02,28,078,39,04,17,040,26,09,12,138,26*76
+$GPGSV,3,3,11,32,06,310,23,20,04,331,18,24,02,150,*43
+$GPRMC,152436.000,A,5350.0358,N,00146.6911,W,15.74,262.13,140808,,,A*4C
+$GPVTG,262.13,T,,M,15.74,N,29.1,K,A*04
+$GPGGA,152437.000,5350.0351,N,00146.6991,W,1,07,1.3,90.7,M,47.9,M,,0000*79
+$GPRMC,152437.000,A,5350.0351,N,00146.6991,W,16.91,260.34,140808,,,A*43
+$GPVTG,260.34,T,,M,16.91,N,31.3,K,A*00
+$GPGGA,152438.000,5350.0343,N,00146.7071,W,1,08,1.2,91.4,M,47.9,M,,0000*7F
+$GPRMC,152438.000,A,5350.0343,N,00146.7071,W,17.14,259.33,140808,,,A*48
+$GPVTG,259.33,T,,M,17.14,N,31.7,K,A*05
+$GPGGA,152439.000,5350.0334,N,00146.7145,W,1,08,1.2,91.0,M,47.9,M,,0000*7C
+$GPRMC,152439.000,A,5350.0334,N,00146.7145,W,16.14,259.00,140808,,,A*4E
+$GPVTG,259.00,T,,M,16.14,N,29.9,K,A*03
+$GPGGA,152440.000,5350.0326,N,00146.7215,W,1,07,1.3,91.5,M,47.9,M,,0000*7C
+$GPRMC,152440.000,A,5350.0326,N,00146.7215,W,14.93,257.83,140808,,,A*4D
+$GPVTG,257.83,T,,M,14.93,N,27.6,K,A*0A
+$GPGGA,152441.000,5350.0318,N,00146.7278,W,1,07,1.3,92.0,M,47.9,M,,0000*7D
+$GPGSA,A,3,02,04,30,12,14,31,29,,,,,,2.5,1.3,2.2*3D
+$GPGSV,3,1,11,30,87,279,33,29,48,188,37,12,46,081,36,14,37,236,40*76
+$GPGSV,3,2,11,31,32,302,38,02,28,078,34,04,17,040,33,09,12,138,*77
+$GPGSV,3,3,11,32,06,310,,20,04,331,29,24,02,150,*40
+$GPRMC,152441.000,A,5350.0318,N,00146.7278,W,13.75,255.50,140808,,,A*49
+$GPVTG,255.50,T,,M,13.75,N,25.5,K,A*08
+$GPGGA,152442.000,5350.0309,N,00146.7340,W,1,07,1.3,92.6,M,47.9,M,,0000*72
+$GPRMC,152442.000,A,5350.0309,N,00146.7340,W,13.47,254.16,140808,,,A*42
+$GPVTG,254.16,T,,M,13.47,N,25.0,K,A*0F
+$GPGGA,152443.000,5350.0297,N,00146.7404,W,1,08,1.2,93.2,M,47.9,M,,0000*79
+$GPRMC,152443.000,A,5350.0297,N,00146.7404,W,14.28,251.90,140808,,,A*47
+$GPVTG,251.90,T,,M,14.28,N,26.4,K,A*0D
+$GPGGA,152444.000,5350.0285,N,00146.7473,W,1,08,1.2,93.7,M,47.9,M,,0000*78
+$GPRMC,152444.000,A,5350.0285,N,00146.7473,W,15.16,252.31,140808,,,A*47
+$GPVTG,252.31,T,,M,15.16,N,28.1,K,A*02
+$GPGGA,152445.000,5350.0271,N,00146.7545,W,1,07,1.3,94.4,M,47.9,M,,0000*7C
+$GPRMC,152445.000,A,5350.0271,N,00146.7545,W,15.95,250.69,140808,,,A*4D
+$GPVTG,250.69,T,,M,15.95,N,29.5,K,A*03
+$GPGGA,152446.000,5350.0256,N,00146.7619,W,1,07,1.3,95.1,M,47.9,M,,0000*74
+$GPGSA,A,3,02,04,30,12,14,31,29,,,,,,2.5,1.3,2.2*3D
+$GPGSV,3,1,11,30,87,280,34,29,49,188,35,12,46,081,36,14,37,236,40*74
+$GPGSV,3,2,11,31,32,302,38,02,28,078,36,04,17,040,34,09,12,138,*72
+$GPGSV,3,3,11,32,06,310,,20,04,331,26,24,02,150,*4F
+$GPRMC,152446.000,A,5350.0256,N,00146.7619,W,16.58,249.92,140808,,,A*4F
+$GPVTG,249.92,T,,M,16.58,N,30.7,K,A*07
+$GPGGA,152447.000,5350.0240,N,00146.7695,W,1,07,1.3,95.8,M,47.9,M,,0000*7F
+$GPRMC,152447.000,A,5350.0240,N,00146.7695,W,16.97,250.02,140808,,,A*4F
+$GPVTG,250.02,T,,M,16.97,N,31.4,K,A*07
+$GPGGA,152448.000,5350.0223,N,00146.7772,W,1,07,1.3,96.0,M,47.9,M,,0000*76
+$GPRMC,152448.000,A,5350.0223,N,00146.7772,W,17.30,250.70,140808,,,A*44
+$GPVTG,250.70,T,,M,17.30,N,32.0,K,A*09
+$GPGGA,152449.000,5350.0208,N,00146.7850,W,1,07,1.3,96.2,M,47.9,M,,0000*73
+$GPRMC,152449.000,A,5350.0208,N,00146.7850,W,17.43,252.18,140808,,,A*4B
+$GPVTG,252.18,T,,M,17.43,N,32.3,K,A*02
+$GPGGA,152450.000,5350.0194,N,00146.7928,W,1,08,1.0,96.6,M,47.9,M,,0000*7B
+$GPRMC,152450.000,A,5350.0194,N,00146.7928,W,17.17,252.70,140808,,,A*44
+$GPVTG,252.70,T,,M,17.17,N,31.8,K,A*05
+$GPGGA,152451.000,5350.0181,N,00146.8002,W,1,08,1.0,97.0,M,47.9,M,,0000*77
+$GPGSA,A,3,02,04,30,12,14,31,29,09,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,280,36,29,49,188,33,12,46,081,35,14,37,236,40*73
+$GPGSV,3,2,11,31,32,302,36,02,28,078,36,04,17,040,25,09,12,138,23*7D
+$GPGSV,3,3,11,32,06,310,,20,04,331,16,24,02,150,*4C
+$GPRMC,152451.000,A,5350.0181,N,00146.8002,W,16.38,254.16,140808,,,A*45
+$GPVTG,254.16,T,,M,16.38,N,30.3,K,A*05
+$GPGGA,152452.000,5350.0170,N,00146.8076,W,1,09,0.9,97.4,M,47.9,M,,0000*74
+$GPRMC,152452.000,A,5350.0170,N,00146.8076,W,16.07,256.30,140808,,,A*41
+$GPVTG,256.30,T,,M,16.07,N,29.8,K,A*0C
+$GPGGA,152453.000,5350.0160,N,00146.8156,W,1,08,1.0,98.0,M,47.9,M,,0000*75
+$GPRMC,152453.000,A,5350.0160,N,00146.8156,W,17.10,259.20,140808,,,A*4B
+$GPVTG,259.20,T,,M,17.10,N,31.7,K,A*03
+$GPGGA,152454.000,5350.0154,N,00146.8244,W,1,08,1.0,98.5,M,47.9,M,,0000*70
+$GPRMC,152454.000,A,5350.0154,N,00146.8244,W,18.57,264.34,140808,,,A*4C
+$GPVTG,264.34,T,,M,18.57,N,34.4,K,A*02
+$GPGGA,152455.000,5350.0150,N,00146.8335,W,1,07,1.3,99.0,M,47.9,M,,0000*7A
+$GPRMC,152455.000,A,5350.0150,N,00146.8335,W,19.21,265.70,140808,,,A*4F
+$GPVTG,265.70,T,,M,19.21,N,35.6,K,A*00
+$GPGGA,152456.000,5350.0146,N,00146.8427,W,1,07,1.3,99.7,M,47.9,M,,0000*7D
+$GPGSA,A,3,02,04,30,12,14,31,29,,,,,,2.5,1.3,2.2*3D
+$GPGSV,3,1,11,30,87,280,36,29,49,188,41,12,46,081,36,14,37,236,39*7B
+$GPGSV,3,2,11,31,32,302,36,02,28,078,37,04,17,040,28,09,12,138,*70
+$GPGSV,3,3,11,32,06,310,,20,04,331,18,24,02,150,*42
+$GPRMC,152456.000,A,5350.0146,N,00146.8427,W,19.34,266.83,140808,,,A*44
+$GPVTG,266.83,T,,M,19.34,N,35.8,K,A*05
+$GPGGA,152457.000,5350.0143,N,00146.8519,W,1,07,1.3,100.4,M,47.9,M,,0000*47
+$GPRMC,152457.000,A,5350.0143,N,00146.8519,W,19.56,266.59,140808,,,A*4F
+$GPVTG,266.59,T,,M,19.56,N,36.2,K,A*0F
+$GPGGA,152458.000,5350.0140,N,00146.8612,W,1,07,1.3,101.1,M,47.9,M,,0000*47
+$GPRMC,152458.000,A,5350.0140,N,00146.8612,W,19.60,266.83,140808,,,A*49
+$GPVTG,266.83,T,,M,19.60,N,36.3,K,A*0C
+$GPGGA,152459.000,5350.0136,N,00146.8704,W,1,07,1.3,101.8,M,47.9,M,,0000*48
+$GPRMC,152459.000,A,5350.0136,N,00146.8704,W,19.54,267.20,140808,,,A*40
+$GPVTG,267.20,T,,M,19.54,N,36.2,K,A*02
+$GPGGA,152500.000,5350.0132,N,00146.8793,W,1,07,1.3,102.6,M,47.9,M,,0000*42
+$GPRMC,152500.000,A,5350.0132,N,00146.8793,W,19.32,266.94,140808,,,A*49
+$GPVTG,266.94,T,,M,19.32,N,35.8,K,A*05
+$GPGGA,152501.000,5350.0131,N,00146.8882,W,1,07,1.3,103.4,M,47.9,M,,0000*4C
+$GPGSA,A,3,02,04,30,12,14,31,29,,,,,,2.5,1.3,2.2*3D
+$GPGSV,3,1,11,30,87,280,36,29,49,188,40,12,46,081,36,14,37,236,32*71
+$GPGSV,3,2,11,31,32,302,29,02,28,078,39,04,17,040,27,09,12,138,*7F
+$GPGSV,3,3,11,32,06,310,,20,04,331,17,24,02,150,*4D
+$GPRMC,152501.000,A,5350.0131,N,00146.8882,W,18.77,270.54,140808,,,A*4F
+$GPVTG,270.54,T,,M,18.77,N,34.8,K,A*0F
+$GPGGA,152502.000,5350.0131,N,00146.8969,W,1,07,1.3,103.9,M,47.9,M,,0000*46
+$GPRMC,152502.000,A,5350.0131,N,00146.8969,W,18.51,269.46,140808,,,A*47
+$GPVTG,269.46,T,,M,18.51,N,34.3,K,A*0B
+$GPGGA,152503.000,5350.0130,N,00146.9056,W,1,07,1.3,104.5,M,47.9,M,,0000*49
+$GPRMC,152503.000,A,5350.0130,N,00146.9056,W,18.45,269.11,140808,,,A*44
+$GPVTG,269.11,T,,M,18.45,N,34.2,K,A*0D
+$GPGGA,152504.000,5350.0128,N,00146.9142,W,1,07,1.3,104.9,M,47.9,M,,0000*4F
+$GPRMC,152504.000,A,5350.0128,N,00146.9142,W,18.04,266.40,140808,,,A*40
+$GPVTG,266.40,T,,M,18.04,N,33.4,K,A*02
+$GPGGA,152505.000,5350.0126,N,00146.9226,W,1,07,1.3,105.2,M,47.9,M,,0000*4B
+$GPRMC,152505.000,A,5350.0126,N,00146.9226,W,17.58,267.38,140808,,,A*46
+$GPVTG,267.38,T,,M,17.58,N,32.6,K,A*09
+$GPGGA,152506.000,5350.0125,N,00146.9306,W,1,07,1.3,105.6,M,47.9,M,,0000*4C
+$GPGSA,A,3,02,04,30,12,14,31,29,,,,,,2.5,1.3,2.2*3D
+$GPGSV,3,1,11,30,87,280,37,29,49,188,43,12,46,081,36,14,37,236,37*76
+$GPGSV,3,2,11,31,32,302,33,02,28,078,39,04,17,040,22,09,12,138,*71
+$GPGSV,3,3,11,32,06,310,,20,04,331,23,24,02,150,*4A
+$GPRMC,152506.000,A,5350.0125,N,00146.9306,W,16.79,267.19,140808,,,A*44
+$GPVTG,267.19,T,,M,16.79,N,31.1,K,A*0C
+$GPGGA,152507.000,5350.0123,N,00146.9379,W,1,07,1.3,106.0,M,47.9,M,,0000*46
+$GPRMC,152507.000,A,5350.0123,N,00146.9379,W,15.65,267.50,140808,,,A*48
+$GPVTG,267.50,T,,M,15.65,N,29.0,K,A*07
+$GPGGA,152508.000,5350.0121,N,00146.9447,W,1,07,1.3,106.5,M,47.9,M,,0000*44
+$GPRMC,152508.000,A,5350.0121,N,00146.9447,W,14.73,269.32,140808,,,A*43
+$GPVTG,269.32,T,,M,14.73,N,27.3,K,A*06
+$GPGGA,152509.000,5350.0121,N,00146.9515,W,1,07,1.3,106.7,M,47.9,M,,0000*41
+$GPRMC,152509.000,A,5350.0121,N,00146.9515,W,14.22,270.81,140808,,,A*40
+$GPVTG,270.81,T,,M,14.22,N,26.3,K,A*03
+$GPGGA,152510.000,5350.0122,N,00146.9579,W,1,07,1.3,107.1,M,47.9,M,,0000*47
+$GPRMC,152510.000,A,5350.0122,N,00146.9579,W,13.59,271.03,140808,,,A*41
+$GPVTG,271.03,T,,M,13.59,N,25.2,K,A*01
+$GPGGA,152511.000,5350.0122,N,00146.9636,W,1,07,1.3,107.5,M,47.9,M,,0000*4A
+$GPGSA,A,3,02,04,30,12,14,31,29,,,,,,2.5,1.3,2.2*3D
+$GPGSV,3,1,11,30,87,280,36,29,49,188,43,12,46,081,29,14,37,236,33*7D
+$GPGSV,3,2,11,31,32,302,29,02,28,078,39,04,17,040,27,09,12,138,*7F
+$GPGSV,3,3,11,32,06,310,12,20,04,331,,24,02,150,*48
+$GPRMC,152511.000,A,5350.0122,N,00146.9636,W,12.47,271.09,140808,,,A*4C
+$GPVTG,271.09,T,,M,12.47,N,23.1,K,A*00
+$GPGGA,152512.000,5350.0120,N,00146.9683,W,1,07,1.3,107.9,M,47.9,M,,0000*49
+$GPRMC,152512.000,A,5350.0120,N,00146.9683,W,10.64,264.28,140808,,,A*47
+$GPVTG,264.28,T,,M,10.64,N,19.7,K,A*0B
+$GPGGA,152513.000,5350.0111,N,00146.9718,W,1,08,1.2,108.3,M,47.9,M,,0000*42
+$GPRMC,152513.000,A,5350.0111,N,00146.9718,W,8.70,236.82,140808,,,A*7C
+$GPVTG,236.82,T,,M,8.70,N,16.1,K,A*39
+$GPGGA,152514.000,5350.0094,N,00146.9738,W,1,08,1.0,108.6,M,47.9,M,,0000*4C
+$GPRMC,152514.000,A,5350.0094,N,00146.9738,W,7.69,201.87,140808,,,A*73
+$GPVTG,201.87,T,,M,7.69,N,14.2,K,A*3E
+$GPGGA,152515.000,5350.0072,N,00146.9745,W,1,08,1.0,109.0,M,47.9,M,,0000*48
+$GPRMC,152515.000,A,5350.0072,N,00146.9745,W,7.83,185.35,140808,,,A*72
+$GPVTG,185.35,T,,M,7.83,N,14.5,K,A*3B
+$GPGGA,152516.000,5350.0044,N,00146.9747,W,1,08,1.0,109.5,M,47.9,M,,0000*49
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,280,33,29,49,188,40,12,46,081,35,14,37,236,37*72
+$GPGSV,3,2,11,31,32,302,38,02,28,078,42,04,17,040,25,09,12,138,22*71
+$GPGSV,3,3,11,32,06,310,,20,04,331,22,24,02,150,*4B
+$GPRMC,152516.000,A,5350.0044,N,00146.9747,W,9.60,179.70,140808,,,A*77
+$GPVTG,179.70,T,,M,9.60,N,17.8,K,A*34
+$GPGGA,152517.000,5350.0009,N,00146.9747,W,1,08,1.0,109.4,M,47.9,M,,0000*40
+$GPRMC,152517.000,A,5350.0009,N,00146.9747,W,12.26,179.76,140808,,,A*41
+$GPVTG,179.76,T,,M,12.26,N,22.7,K,A*03
+$GPGGA,152518.000,5349.9967,N,00146.9748,W,1,08,1.0,109.7,M,47.9,M,,0000*43
+$GPRMC,152518.000,A,5349.9967,N,00146.9748,W,14.75,181.63,140808,,,A*42
+$GPVTG,181.63,T,,M,14.75,N,27.3,K,A*01
+$GPGGA,152519.000,5349.9921,N,00146.9750,W,1,08,1.0,109.9,M,47.9,M,,0000*47
+$GPRMC,152519.000,A,5349.9921,N,00146.9750,W,16.40,180.31,140808,,,A*4A
+$GPVTG,180.31,T,,M,16.40,N,30.4,K,A*02
+$GPGGA,152520.000,5349.9873,N,00146.9752,W,1,08,1.0,110.0,M,47.9,M,,0000*48
+$GPRMC,152520.000,A,5349.9873,N,00146.9752,W,16.88,181.91,140808,,,A*4B
+$GPVTG,181.91,T,,M,16.88,N,31.3,K,A*0B
+$GPGGA,152521.000,5349.9824,N,00146.9754,W,1,07,1.1,109.6,M,47.9,M,,0000*4D
+$GPGSA,A,3,02,30,12,09,14,31,29,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,11,30,87,280,33,29,49,188,39,12,46,081,35,14,37,236,40*7C
+$GPGSV,3,2,11,31,32,302,37,02,28,078,29,04,17,040,31,09,12,138,33*76
+$GPGSV,3,3,11,32,06,310,,20,04,331,16,24,02,150,*4C
+$GPRMC,152521.000,A,5349.9824,N,00146.9754,W,17.29,181.03,140808,,,A*4F
+$GPVTG,181.03,T,,M,17.29,N,32.0,K,A*0A
+$GPGGA,152522.000,5349.9777,N,00146.9758,W,1,08,1.0,109.8,M,47.9,M,,0000*4B
+$GPRMC,152522.000,A,5349.9777,N,00146.9758,W,17.35,180.79,140808,,,A*48
+$GPVTG,180.79,T,,M,17.35,N,32.1,K,A*0A
+$GPGGA,152523.000,5349.9730,N,00146.9761,W,1,08,1.0,109.8,M,47.9,M,,0000*43
+$GPRMC,152523.000,A,5349.9730,N,00146.9761,W,16.92,181.05,140808,,,A*46
+$GPVTG,181.05,T,,M,16.92,N,31.3,K,A*0D
+$GPGGA,152524.000,5349.9683,N,00146.9763,W,1,08,1.0,109.7,M,47.9,M,,0000*40
+$GPRMC,152524.000,A,5349.9683,N,00146.9763,W,16.66,181.67,140808,,,A*45
+$GPVTG,181.67,T,,M,16.66,N,30.9,K,A*09
+$GPGGA,152525.000,5349.9638,N,00146.9767,W,1,08,1.0,109.6,M,47.9,M,,0000*44
+$GPRMC,152525.000,A,5349.9638,N,00146.9767,W,16.27,183.55,140808,,,A*46
+$GPVTG,183.55,T,,M,16.27,N,30.1,K,A*07
+$GPGGA,152526.000,5349.9593,N,00146.9769,W,1,08,1.0,109.9,M,47.9,M,,0000*44
+$GPGSA,A,3,02,04,30,12,09,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,280,33,29,49,188,36,12,46,081,31,14,37,236,40*77
+$GPGSV,3,2,11,31,32,302,35,02,28,078,28,04,17,040,30,09,12,138,21*77
+$GPGSV,3,3,11,32,06,310,,20,04,331,22,24,02,150,*4B
+$GPRMC,152526.000,A,5349.9593,N,00146.9769,W,15.64,180.65,140808,,,A*4D
+$GPVTG,180.65,T,,M,15.64,N,29.0,K,A*0A
+$GPGGA,152527.000,5349.9550,N,00146.9770,W,1,08,1.0,110.7,M,47.9,M,,0000*44
+$GPRMC,152527.000,A,5349.9550,N,00146.9770,W,14.99,179.94,140808,,,A*40
+$GPVTG,179.94,T,,M,14.99,N,27.8,K,A*07
+$GPGGA,152528.000,5349.9510,N,00146.9767,W,1,08,1.0,110.7,M,47.9,M,,0000*49
+$GPRMC,152528.000,A,5349.9510,N,00146.9767,W,14.42,179.30,140808,,,A*45
+$GPVTG,179.30,T,,M,14.42,N,26.7,K,A*01
+$GPGGA,152529.000,5349.9472,N,00146.9765,W,1,08,1.0,110.8,M,47.9,M,,0000*40
+$GPRMC,152529.000,A,5349.9472,N,00146.9765,W,13.31,178.82,140808,,,A*48
+$GPVTG,178.82,T,,M,13.31,N,24.6,K,A*09
+$GPGGA,152530.000,5349.9444,N,00146.9751,W,1,07,1.1,110.5,M,47.9,M,,0000*49
+$GPRMC,152530.000,A,5349.9444,N,00146.9751,W,10.57,157.38,140808,,,A*4D
+$GPVTG,157.38,T,,M,10.57,N,19.6,K,A*08
+$GPGGA,152531.000,5349.9424,N,00146.9730,W,1,07,1.1,110.9,M,47.9,M,,0000*45
+$GPGSA,A,3,02,30,12,09,14,31,29,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,11,30,87,280,34,29,49,188,45,12,46,081,41,14,37,236,40*73
+$GPGSV,3,2,11,31,32,302,36,02,28,078,42,04,17,040,,09,12,138,35*7E
+$GPGSV,3,3,11,32,06,310,,20,04,331,22,24,02,150,*4B
+$GPRMC,152531.000,A,5349.9424,N,00146.9730,W,8.24,142.96,140808,,,A*70
+$GPVTG,142.96,T,,M,8.24,N,15.3,K,A*3C
+$GPGGA,152532.000,5349.9412,N,00146.9697,W,1,07,1.1,110.8,M,47.9,M,,0000*4E
+$GPRMC,152532.000,A,5349.9412,N,00146.9697,W,7.79,115.30,140808,,,A*73
+$GPVTG,115.30,T,,M,7.79,N,14.4,K,A*33
+$GPGGA,152533.000,5349.9407,N,00146.9654,W,1,07,1.1,110.9,M,47.9,M,,0000*45
+$GPRMC,152533.000,A,5349.9407,N,00146.9654,W,8.62,94.06,140808,,,A*41
+$GPVTG,94.06,T,,M,8.62,N,16.0,K,A*0D
+$GPGGA,152534.000,5349.9411,N,00146.9598,W,1,07,1.1,111.7,M,47.9,M,,0000*49
+$GPRMC,152534.000,A,5349.9411,N,00146.9598,W,11.17,86.75,140808,,,A*7F
+$GPVTG,86.75,T,,M,11.17,N,20.7,K,A*32
+$GPGGA,152535.000,5349.9416,N,00146.9535,W,1,07,1.1,111.4,M,47.9,M,,0000*4B
+$GPRMC,152535.000,A,5349.9416,N,00146.9535,W,13.45,81.67,140808,,,A*7F
+$GPVTG,81.67,T,,M,13.45,N,24.9,K,A*39
+$GPGGA,152536.000,5349.9420,N,00146.9464,W,1,07,1.1,111.5,M,47.9,M,,0000*49
+$GPGSA,A,3,02,30,12,09,14,31,29,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,11,30,87,280,26,29,49,188,39,12,46,081,41,14,37,236,34*78
+$GPGSV,3,2,11,31,32,302,27,02,28,078,41,04,17,040,,09,12,138,42*7D
+$GPGSV,3,3,11,32,06,310,,20,04,331,,24,02,150,23*4A
+$GPRMC,152536.000,A,5349.9420,N,00146.9464,W,14.78,88.80,140808,,,A*75
+$GPVTG,88.80,T,,M,14.78,N,27.4,K,A*3E
+$GPGGA,152537.000,5349.9421,N,00146.9387,W,1,07,1.1,111.8,M,47.9,M,,0000*4E
+$GPRMC,152537.000,A,5349.9421,N,00146.9387,W,15.80,89.67,140808,,,A*71
+$GPVTG,89.67,T,,M,15.80,N,29.3,K,A*39
+$GPGGA,152538.000,5349.9428,N,00146.9318,W,1,07,1.1,110.8,M,47.9,M,,0000*4F
+$GPRMC,152538.000,A,5349.9428,N,00146.9318,W,16.26,88.70,140808,,,A*79
+$GPVTG,88.70,T,,M,16.26,N,30.1,K,A*3B
+$GPGGA,152539.000,5349.9430,N,00146.9237,W,1,07,1.1,110.8,M,47.9,M,,0000*4B
+$GPRMC,152539.000,A,5349.9430,N,00146.9237,W,16.69,88.46,140808,,,A*73
+$GPVTG,88.46,T,,M,16.69,N,30.9,K,A*3D
+$GPGGA,152540.000,5349.9432,N,00146.9154,W,1,07,1.1,111.0,M,47.9,M,,0000*48
+$GPRMC,152540.000,A,5349.9432,N,00146.9154,W,17.06,88.56,140808,,,A*70
+$GPVTG,88.56,T,,M,17.06,N,31.6,K,A*3A
+$GPGGA,152541.000,5349.9433,N,00146.9070,W,1,07,1.1,111.2,M,47.9,M,,0000*4D
+$GPGSA,A,3,02,30,12,09,14,31,29,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,11,30,87,280,27,29,49,188,40,12,46,081,40,14,37,236,36*74
+$GPGSV,3,2,11,31,32,302,25,02,28,078,42,04,17,040,,09,12,138,31*78
+$GPGSV,3,3,11,32,06,310,,20,04,331,,24,02,150,24*4D
+$GPRMC,152541.000,A,5349.9433,N,00146.9070,W,17.19,89.98,140808,,,A*7A
+$GPVTG,89.98,T,,M,17.19,N,31.8,K,A*39
+$GPGGA,152542.000,5349.9434,N,00146.8989,W,1,07,1.1,111.4,M,47.9,M,,0000*41
+$GPRMC,152542.000,A,5349.9434,N,00146.8989,W,17.24,90.61,140808,,,A*70
+$GPVTG,90.61,T,,M,17.24,N,31.9,K,A*38
+$GPGGA,152543.000,5349.9436,N,00146.8911,W,1,07,1.1,111.5,M,47.9,M,,0000*42
+$GPRMC,152543.000,A,5349.9436,N,00146.8911,W,16.63,88.04,140808,,,A*7A
+$GPVTG,88.04,T,,M,16.63,N,30.8,K,A*30
+$GPGGA,152544.000,5349.9434,N,00146.8836,W,1,07,1.1,112.4,M,47.9,M,,0000*41
+$GPRMC,152544.000,A,5349.9434,N,00146.8836,W,15.04,90.83,140808,,,A*7F
+$GPVTG,90.83,T,,M,15.04,N,27.9,K,A*33
+$GPGGA,152545.000,5349.9429,N,00146.8772,W,1,07,1.1,112.4,M,47.9,M,,0000*43
+$GPRMC,152545.000,A,5349.9429,N,00146.8772,W,13.15,100.01,140808,,,A*49
+$GPVTG,100.01,T,,M,13.15,N,24.4,K,A*09
+$GPGGA,152546.000,5349.9417,N,00146.8718,W,1,07,1.1,112.6,M,47.9,M,,0000*43
+$GPGSA,A,3,02,30,12,09,14,31,29,,,,,,2.1,1.1,1.8*3F
+$GPGSV,3,1,11,30,87,280,27,29,49,188,38,12,46,081,40,14,37,236,35*78
+$GPGSV,3,2,11,31,32,302,35,02,28,078,42,04,17,040,,09,12,138,41*7E
+$GPGSV,3,3,11,32,06,310,,20,04,331,,24,02,150,34*4C
+$GPRMC,152546.000,A,5349.9417,N,00146.8718,W,11.71,117.20,140808,,,A*4E
+$GPVTG,117.20,T,,M,11.71,N,21.7,K,A*0A
+$GPGGA,152547.000,5349.9399,N,00146.8676,W,1,07,1.1,111.5,M,47.9,M,,0000*4A
+$GPRMC,152547.000,A,5349.9399,N,00146.8676,W,10.99,133.21,140808,,,A*47
+$GPVTG,133.21,T,,M,10.99,N,20.4,K,A*08
+$GPGGA,152548.000,5349.9375,N,00146.8645,W,1,07,1.1,110.7,M,47.9,M,,0000*44
+$GPRMC,152548.000,A,5349.9375,N,00146.8645,W,10.61,147.85,140808,,,A*40
+$GPVTG,147.85,T,,M,10.61,N,19.6,K,A*0A
+$GPGGA,152549.000,5349.9349,N,00146.8625,W,1,07,1.1,110.0,M,47.9,M,,0000*4B
+$GPRMC,152549.000,A,5349.9349,N,00146.8625,W,10.09,161.14,140808,,,A*4A
+$GPVTG,161.14,T,,M,10.09,N,18.7,K,A*08
+$GPGGA,152550.000,5349.9323,N,00146.8615,W,1,07,1.1,109.3,M,47.9,M,,0000*47
+$GPRMC,152550.000,A,5349.9323,N,00146.8615,W,9.69,170.17,140808,,,A*70
+$GPVTG,170.17,T,,M,9.69,N,17.9,K,A*34
+$GPGGA,152551.000,5349.9299,N,00146.8609,W,1,08,1.0,108.7,M,47.9,M,,0000*40
+$GPGSA,A,3,02,12,30,09,04,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,280,35,29,49,188,34,12,46,081,34,14,37,236,34*75
+$GPGSV,3,2,11,31,32,302,28,02,28,078,40,04,17,040,30,09,12,138,28*7C
+$GPGSV,3,3,11,32,06,310,,20,04,331,,24,02,150,32*4A
+$GPRMC,152551.000,A,5349.9299,N,00146.8609,W,8.72,171.14,140808,,,A*75
+$GPVTG,171.14,T,,M,8.72,N,16.2,K,A*37
+$GPGGA,152552.000,5349.9277,N,00146.8607,W,1,08,1.0,108.7,M,47.9,M,,0000*4D
+$GPRMC,152552.000,A,5349.9277,N,00146.8607,W,7.72,184.17,140808,,,A*7E
+$GPVTG,184.17,T,,M,7.72,N,14.3,K,A*32
+$GPGGA,152553.000,5349.9256,N,00146.8608,W,1,08,1.0,108.3,M,47.9,M,,0000*44
+$GPRMC,152553.000,A,5349.9256,N,00146.8608,W,7.18,179.47,140808,,,A*78
+$GPVTG,179.47,T,,M,7.18,N,13.3,K,A*3E
+$GPGGA,152554.000,5349.9236,N,00146.8607,W,1,08,1.0,108.2,M,47.9,M,,0000*4B
+$GPRMC,152554.000,A,5349.9236,N,00146.8607,W,6.80,172.82,140808,,,A*74
+$GPVTG,172.82,T,,M,6.80,N,12.6,K,A*38
+$GPGGA,152555.000,5349.9218,N,00146.8596,W,1,08,1.0,108.1,M,47.9,M,,0000*4E
+$GPRMC,152555.000,A,5349.9218,N,00146.8596,W,6.44,143.44,140808,,,A*72
+$GPVTG,143.44,T,,M,6.44,N,11.9,K,A*34
+$GPGGA,152556.000,5349.9207,N,00146.8573,W,1,08,1.0,108.1,M,47.9,M,,0000*48
+$GPGSA,A,3,02,12,30,09,04,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,280,34,29,49,188,41,12,46,081,40,14,37,236,35*74
+$GPGSV,3,2,11,31,32,302,40,02,28,078,39,04,17,040,42,09,12,138,36*76
+$GPGSV,3,3,11,32,06,310,,20,04,331,,24,02,150,34*4C
+$GPRMC,152556.000,A,5349.9207,N,00146.8573,W,5.96,114.39,140808,,,A*70
+$GPVTG,114.39,T,,M,5.96,N,11.0,K,A*39
+$GPGGA,152557.000,5349.9201,N,00146.8546,W,1,08,1.0,108.2,M,47.9,M,,0000*4A
+$GPRMC,152557.000,A,5349.9201,N,00146.8546,W,5.51,94.09,140808,,,A*40
+$GPVTG,94.09,T,,M,5.51,N,10.2,K,A*0B
+$GPGGA,152558.000,5349.9200,N,00146.8522,W,1,08,1.0,108.2,M,47.9,M,,0000*46
+$GPRMC,152558.000,A,5349.9200,N,00146.8522,W,4.96,88.89,140808,,,A*43
+$GPVTG,88.89,T,,M,4.96,N,9.2,K,A*3C
+$GPGGA,152559.000,5349.9200,N,00146.8500,W,1,08,1.0,107.5,M,47.9,M,,0000*4F
+$GPRMC,152559.000,A,5349.9200,N,00146.8500,W,4.75,82.25,140808,,,A*43
+$GPVTG,82.25,T,,M,4.75,N,8.8,K,A*36
+$GPGGA,152600.000,5349.9202,N,00146.8478,W,1,08,1.0,107.0,M,47.9,M,,0000*49
+$GPRMC,152600.000,A,5349.9202,N,00146.8478,W,4.77,84.27,140808,,,A*46
+$GPVTG,84.27,T,,M,4.77,N,8.8,K,A*30
+$GPGGA,152601.000,5349.9203,N,00146.8455,W,1,08,1.0,106.5,M,47.9,M,,0000*42
+$GPGSA,A,3,02,12,30,09,04,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,280,34,29,49,188,36,12,46,081,41,14,37,236,30*70
+$GPGSV,3,2,11,31,32,302,34,02,28,078,41,04,17,040,43,09,12,138,35*78
+$GPGSV,3,3,11,32,06,310,,20,04,331,,24,02,150,26*4F
+$GPRMC,152601.000,A,5349.9203,N,00146.8455,W,5.04,85.68,140808,,,A*46
+$GPVTG,85.68,T,,M,5.04,N,9.3,K,A*35
+$GPGGA,152602.000,5349.9204,N,00146.8431,W,1,08,1.0,106.0,M,47.9,M,,0000*41
+$GPRMC,152602.000,A,5349.9204,N,00146.8431,W,5.25,86.60,140808,,,A*48
+$GPVTG,86.60,T,,M,5.25,N,9.7,K,A*39
+$GPGGA,152603.000,5349.9204,N,00146.8406,W,1,08,1.0,105.5,M,47.9,M,,0000*42
+$GPRMC,152603.000,A,5349.9204,N,00146.8406,W,5.36,88.39,140808,,,A*4D
+$GPVTG,88.39,T,,M,5.36,N,9.9,K,A*37
+$GPGGA,152604.000,5349.9204,N,00146.8384,W,1,08,1.0,105.1,M,47.9,M,,0000*4C
+$GPRMC,152604.000,A,5349.9204,N,00146.8384,W,4.81,98.11,140808,,,A*41
+$GPVTG,98.11,T,,M,4.81,N,8.9,K,A*30
+$GPGGA,152605.000,5349.9200,N,00146.8370,W,1,08,1.0,104.9,M,47.9,M,,0000*4B
+$GPRMC,152605.000,A,5349.9200,N,00146.8370,W,3.70,123.93,140808,,,A*7D
+$GPVTG,123.93,T,,M,3.70,N,6.9,K,A*0C
+$GPGGA,152606.000,5349.9194,N,00146.8362,W,1,08,1.0,104.9,M,47.9,M,,0000*45
+$GPGSA,A,3,02,12,30,09,04,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,285,34,29,49,188,36,12,46,082,41,14,36,235,40*73
+$GPGSV,3,2,11,31,33,302,36,02,28,078,41,04,17,039,37,09,11,138,37*77
+$GPGSV,3,3,11,32,06,310,,20,04,331,15,24,03,150,31*4C
+$GPRMC,152606.000,A,5349.9194,N,00146.8362,W,2.82,154.87,140808,,,A*7A
+$GPVTG,154.87,T,,M,2.82,N,5.2,K,A*0D
+$GPGGA,152607.000,5349.9187,N,00146.8359,W,1,08,1.0,104.8,M,47.9,M,,0000*4F
+$GPRMC,152607.000,A,5349.9187,N,00146.8359,W,2.95,166.43,140808,,,A*7E
+$GPVTG,166.43,T,,M,2.95,N,5.5,K,A*05
+$GPGGA,152608.000,5349.9176,N,00146.8356,W,1,08,1.0,104.8,M,47.9,M,,0000*41
+$GPRMC,152608.000,A,5349.9176,N,00146.8356,W,3.83,166.36,140808,,,A*74
+$GPVTG,166.36,T,,M,3.83,N,7.1,K,A*07
+$GPGGA,152609.000,5349.9166,N,00146.8349,W,1,08,1.0,104.8,M,47.9,M,,0000*4F
+$GPRMC,152609.000,A,5349.9166,N,00146.8349,W,3.86,143.19,140808,,,A*75
+$GPVTG,143.19,T,,M,3.86,N,7.1,K,A*08
+$GPGGA,152610.000,5349.9161,N,00146.8339,W,1,08,1.0,104.8,M,47.9,M,,0000*47
+$GPRMC,152610.000,A,5349.9161,N,00146.8339,W,3.17,118.14,140808,,,A*76
+$GPVTG,118.14,T,,M,3.17,N,5.9,K,A*09
+$GPGGA,152611.000,5349.9158,N,00146.8330,W,1,08,1.0,104.5,M,47.9,M,,0000*48
+$GPGSA,A,3,02,12,30,09,04,14,31,29,,,,,1.9,1.0,1.6*3F
+$GPGSV,3,1,11,30,87,285,35,29,49,188,38,12,46,082,38,14,36,235,39*7C
+$GPGSV,3,2,11,31,33,302,41,02,28,078,41,04,17,039,34,09,11,138,37*74
+$GPGSV,3,3,11,32,06,310,,20,04,331,,24,03,150,26*4E
+$GPRMC,152611.000,A,5349.9158,N,00146.8330,W,0.00,118.14,140808,,,A*71
+$GPVTG,118.14,T,,M,0.00,N,0.0,K,A*00
+$GPGGA,152612.000,5349.9157,N,00146.8322,W,1,08,1.0,104.4,M,47.9,M,,0000*46
+$GPRMC,152612.000,A,5349.9157,N,00146.8322,W,0.00,118.14,140808,,,A*7E
+$GPVTG,118.14,T,,M,0.00,N,0.0,K,A*00
+$GPGGA,152613.000,5349.9157,N,00146.8311,W,1,07,1.1,104.2,M,47.9,M,,0000*4F
+$GPRMC,152613.000,A,5349.9157,N,00146.8311,W,2.25,90.59,140808,,,A*42
+$GPVTG,90.59,T,,M,2.25,N,4.2,K,A*3B
+$GPGGA,152614.000,5349.9157,N,00146.8299,W,1,08,1.0,104.0,M,47.9,M,,0000*45
+$GPRMC,152614.000,A,5349.9157,N,00146.8299,W,2.46,82.75,140808,,,A*4C
+$GPVTG,82.75,T,,M,2.46,N,4.5,K,A*34
+$GPGGA,152615.000,5349.9156,N,00146.8291,W,1,08,1.0,103.9,M,47.9,M,,0000*43
+$GPRMC,152615.000,A,5349.9156,N,00146.8291,W,0.00,82.75,140808,,,A*44
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152616.000,5349.9156,N,00146.8288,W,1,09,0.9,103.8,M,47.9,M,,0000*40
+$GPGSA,A,3,02,12,30,04,09,32,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,87,285,36,29,49,188,37,12,46,082,41,14,36,235,32*75
+$GPGSV,3,2,11,31,33,302,38,02,28,078,41,04,17,039,34,09,11,138,29*75
+$GPGSV,3,3,11,32,06,310,25,20,04,331,,24,03,150,15*49
+$GPRMC,152616.000,A,5349.9156,N,00146.8288,W,0.00,82.75,140808,,,A*4F
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152617.000,5349.9155,N,00146.8288,W,1,09,0.9,103.9,M,47.9,M,,0000*43
+$GPRMC,152617.000,A,5349.9155,N,00146.8288,W,0.00,82.75,140808,,,A*4D
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152618.000,5349.9155,N,00146.8289,W,1,09,0.9,103.9,M,47.9,M,,0000*4D
+$GPRMC,152618.000,A,5349.9155,N,00146.8289,W,0.00,82.75,140808,,,A*43
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152619.000,5349.9154,N,00146.8289,W,1,09,0.9,103.9,M,47.9,M,,0000*4D
+$GPRMC,152619.000,A,5349.9154,N,00146.8289,W,0.00,82.75,140808,,,A*43
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152620.000,5349.9154,N,00146.8290,W,1,09,0.9,104.0,M,47.9,M,,0000*41
+$GPRMC,152620.000,A,5349.9154,N,00146.8290,W,0.00,82.75,140808,,,A*41
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152621.000,5349.9154,N,00146.8290,W,1,09,0.9,104.1,M,47.9,M,,0000*41
+$GPGSA,A,3,02,12,30,04,09,32,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,87,285,32,29,49,188,37,12,46,082,41,14,36,235,34*77
+$GPGSV,3,2,11,31,33,302,37,02,28,078,40,04,17,039,33,09,11,138,29*7C
+$GPGSV,3,3,11,32,06,310,25,20,04,331,,24,03,150,*4D
+$GPRMC,152621.000,A,5349.9154,N,00146.8290,W,0.00,82.75,140808,,,A*40
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152622.000,5349.9153,N,00146.8291,W,1,09,0.9,104.2,M,47.9,M,,0000*47
+$GPRMC,152622.000,A,5349.9153,N,00146.8291,W,0.00,82.75,140808,,,A*45
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152623.000,5349.9153,N,00146.8291,W,1,09,0.9,104.3,M,47.9,M,,0000*47
+$GPRMC,152623.000,A,5349.9153,N,00146.8291,W,0.00,82.75,140808,,,A*44
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152624.000,5349.9153,N,00146.8292,W,1,09,0.9,104.3,M,47.9,M,,0000*43
+$GPRMC,152624.000,A,5349.9153,N,00146.8292,W,0.00,82.75,140808,,,A*40
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152625.000,5349.9153,N,00146.8293,W,1,09,0.9,104.3,M,47.9,M,,0000*43
+$GPRMC,152625.000,A,5349.9153,N,00146.8293,W,0.00,82.75,140808,,,A*40
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152626.000,5349.9152,N,00146.8293,W,1,09,0.9,104.0,M,47.9,M,,0000*42
+$GPGSA,A,3,02,12,30,04,09,32,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,87,285,30,29,49,188,37,12,46,082,40,14,36,235,34*74
+$GPGSV,3,2,11,31,33,302,29,02,28,078,39,04,17,039,33,09,11,138,29*7D
+$GPGSV,3,3,11,32,06,310,25,20,04,331,,24,03,150,*4D
+$GPRMC,152626.000,A,5349.9152,N,00146.8293,W,0.00,82.75,140808,,,A*42
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152627.000,5349.9152,N,00146.8294,W,1,09,0.9,103.8,M,47.9,M,,0000*4B
+$GPRMC,152627.000,A,5349.9152,N,00146.8294,W,0.00,82.75,140808,,,A*44
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152628.000,5349.9151,N,00146.8294,W,1,09,0.9,103.9,M,47.9,M,,0000*46
+$GPRMC,152628.000,A,5349.9151,N,00146.8294,W,0.00,82.75,140808,,,A*48
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152629.000,5349.9151,N,00146.8295,W,1,09,0.9,103.8,M,47.9,M,,0000*47
+$GPRMC,152629.000,A,5349.9151,N,00146.8295,W,0.00,82.75,140808,,,A*48
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152630.000,5349.9150,N,00146.8296,W,1,09,0.9,103.7,M,47.9,M,,0000*42
+$GPRMC,152630.000,A,5349.9150,N,00146.8296,W,0.00,82.75,140808,,,A*42
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152631.000,5349.9150,N,00146.8296,W,1,09,0.9,103.5,M,47.9,M,,0000*41
+$GPGSA,A,3,02,12,30,04,09,32,14,31,29,,,,1.6,0.9,1.3*3C
+$GPGSV,3,1,11,30,87,285,36,29,49,188,37,12,46,082,40,14,36,235,36*70
+$GPGSV,3,2,11,31,33,302,36,02,28,078,36,04,17,039,32,09,11,138,28*7C
+$GPGSV,3,3,11,32,06,310,26,20,04,331,,24,03,150,*4E
+$GPRMC,152631.000,A,5349.9150,N,00146.8296,W,0.00,82.75,140808,,,A*43
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152632.000,5349.9149,N,00146.8297,W,1,09,0.9,103.6,M,47.9,M,,0000*48
+$GPRMC,152632.000,A,5349.9149,N,00146.8297,W,0.00,82.75,140808,,,A*49
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
+$GPGGA,152633.000,5349.9149,N,00146.8298,W,1,09,0.9,103.7,M,47.9,M,,0000*47
+$GPRMC,152633.000,A,5349.9149,N,00146.8298,W,0.00,82.75,140808,,,A*47
+$GPVTG,82.75,T,,M,0.00,N,0.0,K,A*35
diff --git a/test/data/regress/1853/PosData-20081216-115434.gpx b/test/data/regress/1853/PosData-20081216-115434.gpx
new file mode 100644
index 0000000..b9b09d3
--- /dev/null
+++ b/test/data/regress/1853/PosData-20081216-115434.gpx
@@ -0,0 +1,12859 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx version="1.0" creator="GPSBabel - http://www.gpsbabel.org" xmlns="http://www.topografix.com/GPX/1/0">
+  <time>2016-08-27T14:55:29.820Z</time>
+  <bounds minlat="-30.113660000" minlon="-51.833450000" maxlat="-30.053190000" maxlon="-51.437880000"/>
+  <trk>
+    <trkseg>
+      <trkpt lat="-30.053190000" lon="-51.437880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:34Z</time>
+        <course>261.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053190000" lon="-51.437880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:34.139Z</time>
+        <course>261.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053190000" lon="-51.437890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:34.279Z</time>
+        <course>261.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053200000" lon="-51.437910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:34.419Z</time>
+        <course>261.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053200000" lon="-51.437940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:39.086Z</time>
+        <course>261.000000</course>
+        <speed>1.954889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053200000" lon="-51.437980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:42.197Z</time>
+        <course>261.000000</course>
+        <speed>1.954889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053210000" lon="-51.438030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:46.163Z</time>
+        <course>265.000000</course>
+        <speed>2.778000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053210000" lon="-51.438090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:49.274Z</time>
+        <course>265.000000</course>
+        <speed>3.909778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053220000" lon="-51.438170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:52.410Z</time>
+        <course>261.000000</course>
+        <speed>3.909778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053230000" lon="-51.438250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:55.545Z</time>
+        <course>262.000000</course>
+        <speed>4.990111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053240000" lon="-51.438340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:54:58.362Z</time>
+        <course>263.000000</course>
+        <speed>5.813222</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053250000" lon="-51.438440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:00.968Z</time>
+        <course>264.000000</course>
+        <speed>6.945000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053260000" lon="-51.438560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:03.644Z</time>
+        <course>264.000000</course>
+        <speed>6.945000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053270000" lon="-51.438680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:06.320Z</time>
+        <course>265.000000</course>
+        <speed>7.768111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053280000" lon="-51.438820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:09.049Z</time>
+        <course>263.000000</course>
+        <speed>8.899889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053300000" lon="-51.438960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:11.493Z</time>
+        <course>263.000000</course>
+        <speed>8.899889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053310000" lon="-51.439120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:14.264Z</time>
+        <course>264.000000</course>
+        <speed>9.980222</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053330000" lon="-51.439280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:16.772Z</time>
+        <course>262.000000</course>
+        <speed>10.854777</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053350000" lon="-51.439460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:19.333Z</time>
+        <course>265.000000</course>
+        <speed>10.854777</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053360000" lon="-51.439640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:21.883Z</time>
+        <course>265.000000</course>
+        <speed>11.935111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053380000" lon="-51.439840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:24.488Z</time>
+        <course>263.000000</course>
+        <speed>12.758223</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053400000" lon="-51.440040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:26.893Z</time>
+        <course>264.000000</course>
+        <speed>13.890000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053420000" lon="-51.440260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:29.348Z</time>
+        <course>264.000000</course>
+        <speed>13.890000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053440000" lon="-51.440490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:31.913Z</time>
+        <course>263.000000</course>
+        <speed>15.021778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053470000" lon="-51.440720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:34.318Z</time>
+        <course>263.000000</course>
+        <speed>15.844889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053490000" lon="-51.440970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:36.757Z</time>
+        <course>265.000000</course>
+        <speed>15.844889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053510000" lon="-51.441230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:39.292Z</time>
+        <course>264.000000</course>
+        <speed>16.925222</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053540000" lon="-51.441500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:41.778Z</time>
+        <course>263.000000</course>
+        <speed>17.799778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053570000" lon="-51.441780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:44.211Z</time>
+        <course>264.000000</course>
+        <speed>17.799778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053590000" lon="-51.442070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:46.723Z</time>
+        <course>264.000000</course>
+        <speed>18.880112</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053620000" lon="-51.442360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:49.110Z</time>
+        <course>263.000000</course>
+        <speed>20.011889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053650000" lon="-51.442670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:51.533Z</time>
+        <course>264.000000</course>
+        <speed>20.834999</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053680000" lon="-51.442990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:53.913Z</time>
+        <course>263.000000</course>
+        <speed>20.834999</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053720000" lon="-51.443320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:56.376Z</time>
+        <course>263.000000</course>
+        <speed>21.966778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053750000" lon="-51.443660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:55:58.789Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053780000" lon="-51.444000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:01.098Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053820000" lon="-51.444350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:03.480Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053850000" lon="-51.444690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:05.789Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053880000" lon="-51.445030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:08.097Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053910000" lon="-51.445370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:10.406Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053950000" lon="-51.445710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:12.721Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.053980000" lon="-51.446050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:15.029Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054010000" lon="-51.446390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:17.338Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054050000" lon="-51.446730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:19.653Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054080000" lon="-51.447070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:21.962Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054110000" lon="-51.447410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:24.270Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054150000" lon="-51.447750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:26.585Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054180000" lon="-51.448090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:28.894Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054210000" lon="-51.448430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:31.202Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054250000" lon="-51.448770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:33.518Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054280000" lon="-51.449110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:35.826Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054310000" lon="-51.449450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:38.135Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054330000" lon="-51.449790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:40.438Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054360000" lon="-51.450130000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:42.747Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054380000" lon="-51.450480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:45.118Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054410000" lon="-51.450820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:47.426Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054430000" lon="-51.451160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:49.730Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054460000" lon="-51.451500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:52.038Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054480000" lon="-51.451840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:54.342Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054510000" lon="-51.452180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:56.650Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054530000" lon="-51.452520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:56:58.953Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054560000" lon="-51.452860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:01.262Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054580000" lon="-51.453210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:03.633Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054610000" lon="-51.453550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:05.941Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054630000" lon="-51.453890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:08.245Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054650000" lon="-51.454230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:10.548Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054680000" lon="-51.454570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:12.857Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054700000" lon="-51.454910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:15.160Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054730000" lon="-51.455250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:17.469Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054750000" lon="-51.455600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:19.840Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054780000" lon="-51.455940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:22.148Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054800000" lon="-51.456280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:24.452Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054830000" lon="-51.456620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:26.760Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054850000" lon="-51.456960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:29.064Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054880000" lon="-51.457300000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:31.372Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054900000" lon="-51.457640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:33.676Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054920000" lon="-51.457990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:36.047Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054950000" lon="-51.458330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:38.355Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054970000" lon="-51.458670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:40.659Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.054990000" lon="-51.459010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:42.962Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055010000" lon="-51.459350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:45.266Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055030000" lon="-51.459700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:47.637Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055050000" lon="-51.460040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:49.940Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055070000" lon="-51.460380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:52.244Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055090000" lon="-51.460720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:54.547Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055110000" lon="-51.461060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:56.850Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055140000" lon="-51.461410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:57:59.226Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055160000" lon="-51.461750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:01.530Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055180000" lon="-51.462090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:03.833Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055200000" lon="-51.462430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:06.137Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055220000" lon="-51.462770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:08.440Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055240000" lon="-51.463120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:10.811Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055260000" lon="-51.463460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:13.115Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055280000" lon="-51.463800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:15.418Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055300000" lon="-51.464140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:17.722Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055330000" lon="-51.464490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:20.098Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055350000" lon="-51.464830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:22.401Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055370000" lon="-51.465170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:24.705Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055390000" lon="-51.465510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:27.008Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055410000" lon="-51.465850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:29.312Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055430000" lon="-51.466200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:31.683Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055460000" lon="-51.466540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:33.991Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055480000" lon="-51.466880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:36.295Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055500000" lon="-51.467220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:38.598Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055530000" lon="-51.467560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:40.906Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055550000" lon="-51.467900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:43.210Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055570000" lon="-51.468250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:45.581Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055590000" lon="-51.468590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:47.884Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055620000" lon="-51.468930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:50.193Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055640000" lon="-51.469270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:52.496Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055660000" lon="-51.469610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:54.800Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055690000" lon="-51.469960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:57.176Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055710000" lon="-51.470300000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:58:59.479Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055730000" lon="-51.470640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:01.783Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055760000" lon="-51.470980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:04.091Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055780000" lon="-51.471320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:06.395Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055800000" lon="-51.471670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:08.766Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055820000" lon="-51.472010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:11.069Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055850000" lon="-51.472350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:13.378Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055870000" lon="-51.472690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:15.681Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055890000" lon="-51.473030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:17.985Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055920000" lon="-51.473380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:20.360Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055940000" lon="-51.473720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:22.664Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055960000" lon="-51.474060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:24.967Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.055980000" lon="-51.474400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:27.271Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056010000" lon="-51.474740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:29.579Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056030000" lon="-51.475080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:31.883Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056050000" lon="-51.475430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:34.254Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056080000" lon="-51.475770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:36.562Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056100000" lon="-51.476110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:38.866Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056120000" lon="-51.476450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:41.169Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056150000" lon="-51.476790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:43.478Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056170000" lon="-51.477140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:45.849Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056190000" lon="-51.477480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:48.152Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056210000" lon="-51.477820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:50.456Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056240000" lon="-51.478160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:52.764Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056260000" lon="-51.478500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:55.068Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056280000" lon="-51.478850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:57.439Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056310000" lon="-51.479190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T11:59:59.747Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056330000" lon="-51.479530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:02.051Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056350000" lon="-51.479870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:04.354Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056380000" lon="-51.480210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:06.663Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056400000" lon="-51.480560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:09.034Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056420000" lon="-51.480900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:11.337Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056450000" lon="-51.481240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:13.646Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056470000" lon="-51.481580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:15.949Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056490000" lon="-51.481930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:18.320Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056520000" lon="-51.482270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:20.628Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056540000" lon="-51.482610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:22.932Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056560000" lon="-51.482950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:25.235Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056590000" lon="-51.483290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:27.544Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056610000" lon="-51.483640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:29.915Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056630000" lon="-51.483980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:32.218Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056660000" lon="-51.484320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:34.527Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056680000" lon="-51.484660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:36.830Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056710000" lon="-51.485010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:39.206Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056730000" lon="-51.485350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:41.510Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056750000" lon="-51.485690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:43.813Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056780000" lon="-51.486030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:46.122Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056800000" lon="-51.486370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:48.425Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056820000" lon="-51.486720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:50.796Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056850000" lon="-51.487060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:53.105Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056870000" lon="-51.487400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:55.408Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056890000" lon="-51.487740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:00:57.712Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056920000" lon="-51.488080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:00.020Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056940000" lon="-51.488430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:02.391Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056960000" lon="-51.488770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:04.695Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.056990000" lon="-51.489110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:07.003Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057010000" lon="-51.489450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:09.306Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057040000" lon="-51.489790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:11.615Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057060000" lon="-51.490140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:13.986Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057090000" lon="-51.490480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:16.294Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057120000" lon="-51.490820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:18.603Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057140000" lon="-51.491160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:20.906Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057170000" lon="-51.491500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:23.215Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057190000" lon="-51.491850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:25.586Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057220000" lon="-51.492190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:27.894Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057240000" lon="-51.492530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:30.198Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057270000" lon="-51.492870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:32.506Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057290000" lon="-51.493210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:34.810Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057320000" lon="-51.493550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:37.118Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057350000" lon="-51.493900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:39.494Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057370000" lon="-51.494240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:41.797Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057400000" lon="-51.494580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:44.106Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057420000" lon="-51.494920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:46.409Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057450000" lon="-51.495260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:48.718Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057470000" lon="-51.495610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:51.089Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057500000" lon="-51.495950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:53.397Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057520000" lon="-51.496290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:55.701Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057550000" lon="-51.496630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:01:58.009Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057570000" lon="-51.496970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:00.313Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057590000" lon="-51.497310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:02.616Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057610000" lon="-51.497660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:04.987Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057640000" lon="-51.498000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:07.296Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057660000" lon="-51.498340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:09.599Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057680000" lon="-51.498680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:11.903Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057700000" lon="-51.499020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:14.206Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057730000" lon="-51.499360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:16.515Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057750000" lon="-51.499710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:18.886Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057770000" lon="-51.500050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:21.189Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057790000" lon="-51.500390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:23.493Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057820000" lon="-51.500730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:25.801Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057840000" lon="-51.501070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:28.105Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057860000" lon="-51.501410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:30.408Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057890000" lon="-51.501760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:32.784Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057900000" lon="-51.502100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:35.084Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057920000" lon="-51.502440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:37.388Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057940000" lon="-51.502780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:39.691Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057960000" lon="-51.503120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:41.995Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.057980000" lon="-51.503460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:44.298Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058000000" lon="-51.503800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:46.602Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058020000" lon="-51.504150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:48.973Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058040000" lon="-51.504490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:51.276Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058060000" lon="-51.504830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:53.580Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058080000" lon="-51.505170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:55.883Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058100000" lon="-51.505510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:02:58.187Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058120000" lon="-51.505850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:00.490Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058140000" lon="-51.506200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:02.861Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058150000" lon="-51.506540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:05.162Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058170000" lon="-51.506880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:07.465Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058180000" lon="-51.507220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:09.766Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058200000" lon="-51.507570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:12.137Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058210000" lon="-51.507910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:14.437Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058230000" lon="-51.508250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:16.741Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058250000" lon="-51.508590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:19.044Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058270000" lon="-51.508930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:21.348Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058300000" lon="-51.509270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:23.656Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058330000" lon="-51.509610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:25.965Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058350000" lon="-51.509950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:28.268Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058380000" lon="-51.510300000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:30.644Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058400000" lon="-51.510640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:32.948Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058430000" lon="-51.510980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:35.256Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058460000" lon="-51.511320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:37.564Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058480000" lon="-51.511660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:39.868Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058530000" lon="-51.512000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:42.192Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058590000" lon="-51.512330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:44.461Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058660000" lon="-51.512670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:46.808Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058730000" lon="-51.513000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:49.090Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058790000" lon="-51.513330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:51.358Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058860000" lon="-51.513670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:53.706Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.058930000" lon="-51.514000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:55.988Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059000000" lon="-51.514340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:03:58.335Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059060000" lon="-51.514670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:00.604Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059130000" lon="-51.515000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:02.885Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059200000" lon="-51.515340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:05.233Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059260000" lon="-51.515670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:07.502Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059330000" lon="-51.516010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:09.849Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059380000" lon="-51.516340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:12.107Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059430000" lon="-51.516680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:14.431Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059480000" lon="-51.517020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:16.755Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059530000" lon="-51.517360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:19.080Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059590000" lon="-51.517690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:21.348Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059640000" lon="-51.518030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:23.672Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059690000" lon="-51.518370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:25.997Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059740000" lon="-51.518710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:28.321Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059800000" lon="-51.519050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:30.656Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059850000" lon="-51.519380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:32.913Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059900000" lon="-51.519720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:35.237Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.059950000" lon="-51.520060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:37.562Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060000000" lon="-51.520400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:39.886Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060060000" lon="-51.520730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:42.154Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060110000" lon="-51.521070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:44.479Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060160000" lon="-51.521410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:46.803Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060210000" lon="-51.521750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:49.127Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060260000" lon="-51.522080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:51.385Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060320000" lon="-51.522420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:53.720Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060370000" lon="-51.522760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:56.044Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060420000" lon="-51.523100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:04:58.368Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060470000" lon="-51.523440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:00.692Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060530000" lon="-51.523770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:02.961Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060580000" lon="-51.524110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:05.285Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060630000" lon="-51.524450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:07.609Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060680000" lon="-51.524790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:09.934Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060730000" lon="-51.525120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:12.191Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060790000" lon="-51.525460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:14.526Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060840000" lon="-51.525800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:16.850Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060890000" lon="-51.526140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:19.174Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.060940000" lon="-51.526470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:21.432Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061000000" lon="-51.526810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:23.767Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061050000" lon="-51.527150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:26.091Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061100000" lon="-51.527490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:28.415Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061150000" lon="-51.527820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:30.673Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061200000" lon="-51.528160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:32.997Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061260000" lon="-51.528500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:35.332Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061310000" lon="-51.528840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:37.656Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061360000" lon="-51.529180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:39.980Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061410000" lon="-51.529510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:42.238Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061470000" lon="-51.529850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:44.573Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061520000" lon="-51.530190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:46.897Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061580000" lon="-51.530520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:49.166Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061640000" lon="-51.530860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:51.501Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061690000" lon="-51.531200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:53.825Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061750000" lon="-51.531530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:56.093Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061810000" lon="-51.531870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:05:58.428Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061860000" lon="-51.532210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:00.753Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061920000" lon="-51.532540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:03.021Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.061980000" lon="-51.532880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:05.356Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062030000" lon="-51.533220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:07.680Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062090000" lon="-51.533550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:09.949Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062150000" lon="-51.533890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:12.284Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062210000" lon="-51.534230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:14.619Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062260000" lon="-51.534560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:16.876Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062320000" lon="-51.534900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:19.211Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062380000" lon="-51.535240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:21.546Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062430000" lon="-51.535570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:23.804Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062490000" lon="-51.535910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:26.139Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062550000" lon="-51.536250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:28.474Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062600000" lon="-51.536580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:30.731Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062660000" lon="-51.536920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:33.066Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062720000" lon="-51.537260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:35.401Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062770000" lon="-51.537590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:37.659Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062830000" lon="-51.537930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:39.994Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062890000" lon="-51.538270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:42.329Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.062940000" lon="-51.538600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:44.586Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063000000" lon="-51.538940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:46.921Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063060000" lon="-51.539280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:49.256Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063110000" lon="-51.539610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:51.514Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063170000" lon="-51.539950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:53.849Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063230000" lon="-51.540290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:56.184Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063280000" lon="-51.540620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:06:58.441Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063340000" lon="-51.540960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:00.776Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063390000" lon="-51.541300000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:03.100Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063440000" lon="-51.541640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:05.425Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063500000" lon="-51.541970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:07.693Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063550000" lon="-51.542310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:10.017Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063600000" lon="-51.542650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:12.342Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063650000" lon="-51.542990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:14.666Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063700000" lon="-51.543320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:16.923Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063750000" lon="-51.543660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:19.247Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063800000" lon="-51.544000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:21.572Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063850000" lon="-51.544340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:23.896Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063900000" lon="-51.544680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:26.220Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.063950000" lon="-51.545010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:28.478Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064000000" lon="-51.545350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:30.802Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064050000" lon="-51.545690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:33.126Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064100000" lon="-51.546030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:35.450Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064160000" lon="-51.546360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:37.719Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064210000" lon="-51.546700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:40.043Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064260000" lon="-51.547040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:42.367Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064310000" lon="-51.547380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:44.692Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064360000" lon="-51.547710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:46.949Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064410000" lon="-51.548050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:49.273Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064460000" lon="-51.548390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:51.597Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064510000" lon="-51.548730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:53.922Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064560000" lon="-51.549070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:56.246Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064610000" lon="-51.549400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:07:58.503Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064660000" lon="-51.549740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:00.828Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064710000" lon="-51.550080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:03.152Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064760000" lon="-51.550420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:05.476Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064820000" lon="-51.550750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:07.744Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064870000" lon="-51.551090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:10.069Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064920000" lon="-51.551430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:12.393Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.064970000" lon="-51.551770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:14.717Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065030000" lon="-51.552110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:17.052Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065080000" lon="-51.552440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:19.310Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065130000" lon="-51.552780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:21.634Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065190000" lon="-51.553120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:23.969Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065240000" lon="-51.553460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:26.293Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065290000" lon="-51.553790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:28.551Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065350000" lon="-51.554130000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:30.886Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065400000" lon="-51.554470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:33.210Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065450000" lon="-51.554810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:35.534Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065510000" lon="-51.555140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:37.803Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065560000" lon="-51.555480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:40.127Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065610000" lon="-51.555820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:42.451Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065670000" lon="-51.556160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:44.786Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065720000" lon="-51.556490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:47.043Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065770000" lon="-51.556830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:49.368Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065830000" lon="-51.557170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:51.703Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065880000" lon="-51.557510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:54.027Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065930000" lon="-51.557840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:56.284Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.065990000" lon="-51.558180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:08:58.619Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066040000" lon="-51.558520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:00.944Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066090000" lon="-51.558860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:03.268Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066150000" lon="-51.559190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:05.536Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066200000" lon="-51.559530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:07.861Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066250000" lon="-51.559870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:10.185Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066310000" lon="-51.560210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:12.520Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066360000" lon="-51.560550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:14.844Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066420000" lon="-51.560880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:17.113Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066470000" lon="-51.561220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:19.437Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066520000" lon="-51.561560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:21.761Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066580000" lon="-51.561900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:24.096Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066630000" lon="-51.562230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:26.354Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066680000" lon="-51.562570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:28.678Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066740000" lon="-51.562910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:31.013Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066790000" lon="-51.563250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:33.337Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066840000" lon="-51.563580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:35.594Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066900000" lon="-51.563920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:37.930Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.066950000" lon="-51.564260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:40.254Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067000000" lon="-51.564600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:42.578Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067060000" lon="-51.564930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:44.846Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067110000" lon="-51.565270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:47.171Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067160000" lon="-51.565610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:49.495Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067220000" lon="-51.565950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:51.830Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067270000" lon="-51.566280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:54.087Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067320000" lon="-51.566620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:56.412Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067380000" lon="-51.566960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:09:58.747Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067430000" lon="-51.567300000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:01.071Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067480000" lon="-51.567630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:03.328Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067540000" lon="-51.567970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:05.663Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067590000" lon="-51.568310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:07.988Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067650000" lon="-51.568650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:10.323Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067710000" lon="-51.568980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:12.591Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067760000" lon="-51.569320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:14.915Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067820000" lon="-51.569660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:17.250Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067880000" lon="-51.569990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:19.519Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067940000" lon="-51.570330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:21.854Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.067990000" lon="-51.570670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:24.178Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068050000" lon="-51.571000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:26.447Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068110000" lon="-51.571340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:28.782Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068160000" lon="-51.571680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:31.106Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068220000" lon="-51.572010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:33.374Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068280000" lon="-51.572350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:35.709Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068330000" lon="-51.572690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:38.034Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068380000" lon="-51.573030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:40.358Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068430000" lon="-51.573360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:42.615Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068490000" lon="-51.573700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:44.950Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068540000" lon="-51.574040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:47.275Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068590000" lon="-51.574370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:49.532Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068640000" lon="-51.574710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:51.856Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068690000" lon="-51.575050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:54.180Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068740000" lon="-51.575390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:56.505Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068790000" lon="-51.575720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:10:58.762Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068840000" lon="-51.576060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:01.086Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068900000" lon="-51.576400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:03.421Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.068950000" lon="-51.576730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:05.679Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069000000" lon="-51.577070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:08.003Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069050000" lon="-51.577410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:10.327Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069100000" lon="-51.577750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:12.651Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069150000" lon="-51.578080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:14.909Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069210000" lon="-51.578420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:17.244Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069270000" lon="-51.578750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:19.512Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069330000" lon="-51.579090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:21.847Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069400000" lon="-51.579420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:24.129Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069460000" lon="-51.579760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:26.464Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069520000" lon="-51.580090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:28.732Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069620000" lon="-51.580420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:31.065Z</time>
+        <course>249.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069730000" lon="-51.580730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:33.289Z</time>
+        <course>248.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069840000" lon="-51.581050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:35.578Z</time>
+        <course>248.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.069950000" lon="-51.581370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:37.866Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.070070000" lon="-51.581680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:40.115Z</time>
+        <course>241.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.070230000" lon="-51.581970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:42.355Z</time>
+        <course>238.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.070390000" lon="-51.582260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:44.595Z</time>
+        <course>237.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.070550000" lon="-51.582540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:46.776Z</time>
+        <course>237.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.070710000" lon="-51.582830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:49.016Z</time>
+        <course>238.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.070870000" lon="-51.583120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:51.256Z</time>
+        <course>236.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.071040000" lon="-51.583400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:53.471Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.071210000" lon="-51.583680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:55.687Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.071380000" lon="-51.583960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:11:57.902Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.071550000" lon="-51.584240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:00.118Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.071720000" lon="-51.584520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:02.333Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.071890000" lon="-51.584800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:04.549Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.072060000" lon="-51.585080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:06.764Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.072230000" lon="-51.585360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:08.979Z</time>
+        <course>234.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.072410000" lon="-51.585640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:11.231Z</time>
+        <course>234.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.072580000" lon="-51.585920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:13.446Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.072750000" lon="-51.586200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:15.662Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.072920000" lon="-51.586480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:17.877Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.073090000" lon="-51.586760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:20.092Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.073260000" lon="-51.587040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:22.308Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.073430000" lon="-51.587320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:24.523Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.073600000" lon="-51.587600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:26.739Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.073770000" lon="-51.587880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:28.954Z</time>
+        <course>234.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.073950000" lon="-51.588160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:31.205Z</time>
+        <course>234.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.074120000" lon="-51.588440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:33.421Z</time>
+        <course>235.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.074290000" lon="-51.588720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:35.636Z</time>
+        <course>238.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.074440000" lon="-51.589020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:37.905Z</time>
+        <course>241.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.074570000" lon="-51.589320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:40.116Z</time>
+        <course>242.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.074710000" lon="-51.589620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:42.355Z</time>
+        <course>241.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.074850000" lon="-51.589920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:44.594Z</time>
+        <course>241.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.074990000" lon="-51.590220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:46.833Z</time>
+        <course>243.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.075120000" lon="-51.590530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:49.107Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.075240000" lon="-51.590840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:51.355Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.075370000" lon="-51.591150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:53.628Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.075490000" lon="-51.591460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:55.877Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.075620000" lon="-51.591770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:12:58.150Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.075740000" lon="-51.592080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:00.398Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.075870000" lon="-51.592390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:02.672Z</time>
+        <course>244.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076000000" lon="-51.592700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:04.945Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076120000" lon="-51.593010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:07.194Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076250000" lon="-51.593320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:09.467Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076370000" lon="-51.593630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:11.715Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076490000" lon="-51.593940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:13.963Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076610000" lon="-51.594260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:16.275Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076730000" lon="-51.594570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:18.523Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076850000" lon="-51.594890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:20.835Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.076970000" lon="-51.595200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:23.083Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077080000" lon="-51.595510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:25.307Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077200000" lon="-51.595830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:27.619Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077320000" lon="-51.596140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:29.867Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077440000" lon="-51.596460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:32.179Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077560000" lon="-51.596770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:34.427Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077680000" lon="-51.597090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:36.738Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077800000" lon="-51.597400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:38.986Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.077920000" lon="-51.597710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:41.235Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078030000" lon="-51.598030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:43.523Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078150000" lon="-51.598340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:45.771Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078270000" lon="-51.598660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:48.083Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078390000" lon="-51.598970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:50.331Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078510000" lon="-51.599290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:52.642Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078630000" lon="-51.599600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:54.891Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078750000" lon="-51.599910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:57.139Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078870000" lon="-51.600230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:13:59.450Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.078980000" lon="-51.600540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:01.675Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079100000" lon="-51.600860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:03.986Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079220000" lon="-51.601170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:06.235Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079340000" lon="-51.601490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:08.546Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079460000" lon="-51.601800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:10.794Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079580000" lon="-51.602110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:13.043Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079700000" lon="-51.602430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:15.354Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079820000" lon="-51.602740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:17.602Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.079930000" lon="-51.603060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:19.891Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080050000" lon="-51.603370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:22.139Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080170000" lon="-51.603690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:24.450Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080290000" lon="-51.604000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:26.699Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080410000" lon="-51.604310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:28.947Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080530000" lon="-51.604630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:31.258Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080650000" lon="-51.604940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:33.506Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080770000" lon="-51.605250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:35.755Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.080890000" lon="-51.605570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:38.066Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081010000" lon="-51.605880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:40.314Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081140000" lon="-51.606190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:42.588Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081260000" lon="-51.606510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:44.899Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081380000" lon="-51.606820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:47.147Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081500000" lon="-51.607130000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:49.396Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081620000" lon="-51.607450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:51.707Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081740000" lon="-51.607760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:53.955Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081860000" lon="-51.608070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:56.204Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.081980000" lon="-51.608390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:14:58.515Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082100000" lon="-51.608700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:00.763Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082220000" lon="-51.609020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:03.075Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082340000" lon="-51.609330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:05.323Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082460000" lon="-51.609640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:07.571Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082580000" lon="-51.609960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:09.882Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082700000" lon="-51.610270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:12.131Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082820000" lon="-51.610580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:14.379Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.082940000" lon="-51.610900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:16.690Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083060000" lon="-51.611210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:18.939Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083180000" lon="-51.611520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:21.187Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083300000" lon="-51.611840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:23.498Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083420000" lon="-51.612150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:25.746Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083540000" lon="-51.612460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:27.995Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083670000" lon="-51.612780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:30.331Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083790000" lon="-51.613090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:32.579Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.083910000" lon="-51.613400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:34.827Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084030000" lon="-51.613720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:37.139Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084150000" lon="-51.614030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:39.387Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084270000" lon="-51.614340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:41.635Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084390000" lon="-51.614660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:43.946Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084510000" lon="-51.614970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:46.195Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084630000" lon="-51.615290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:48.506Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084750000" lon="-51.615600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:50.754Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084870000" lon="-51.615910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:53.002Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.084990000" lon="-51.616230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:55.314Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085110000" lon="-51.616540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:57.562Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085230000" lon="-51.616850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:15:59.810Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085350000" lon="-51.617170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:02.122Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085470000" lon="-51.617480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:04.370Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085590000" lon="-51.617790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:06.618Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085710000" lon="-51.618110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:08.930Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085830000" lon="-51.618420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:11.178Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.085950000" lon="-51.618740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:13.489Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086070000" lon="-51.619050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:15.737Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086190000" lon="-51.619360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:17.986Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086300000" lon="-51.619680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:20.274Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086420000" lon="-51.619990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:22.522Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086540000" lon="-51.620310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:24.834Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086660000" lon="-51.620620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:27.082Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086780000" lon="-51.620930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:29.330Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.086900000" lon="-51.621250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:31.642Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087020000" lon="-51.621560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:33.890Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087140000" lon="-51.621870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:36.138Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087260000" lon="-51.622190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:38.450Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087380000" lon="-51.622500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:40.698Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087500000" lon="-51.622810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:42.946Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087620000" lon="-51.623130000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:45.257Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087740000" lon="-51.623440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:47.506Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087860000" lon="-51.623750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:49.754Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.087980000" lon="-51.624060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:52.002Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088100000" lon="-51.624380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:54.314Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088220000" lon="-51.624690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:56.562Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088340000" lon="-51.625000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:16:58.810Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088460000" lon="-51.625320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:01.121Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088580000" lon="-51.625630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:03.370Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088700000" lon="-51.625940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:05.618Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088820000" lon="-51.626260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:07.929Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.088940000" lon="-51.626570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:10.177Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089060000" lon="-51.626880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:12.426Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089180000" lon="-51.627200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:14.737Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089300000" lon="-51.627510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:16.985Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089420000" lon="-51.627820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:19.234Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089540000" lon="-51.628140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:21.545Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089660000" lon="-51.628450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:23.793Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089780000" lon="-51.628760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:26.041Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.089900000" lon="-51.629080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:28.353Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090020000" lon="-51.629390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:30.601Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090140000" lon="-51.629700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:32.849Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090260000" lon="-51.630020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:35.161Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090380000" lon="-51.630330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:37.409Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090500000" lon="-51.630650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:39.720Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090620000" lon="-51.630960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:41.969Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090740000" lon="-51.631270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:44.217Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090860000" lon="-51.631580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:46.465Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.090980000" lon="-51.631900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:48.776Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091100000" lon="-51.632210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:51.025Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091220000" lon="-51.632530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:53.336Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091340000" lon="-51.632840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:55.584Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091460000" lon="-51.633150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:17:57.833Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091580000" lon="-51.633470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:00.144Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091700000" lon="-51.633780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:02.392Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091820000" lon="-51.634100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:04.704Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.091940000" lon="-51.634410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:06.952Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092060000" lon="-51.634720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:09.200Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092180000" lon="-51.635040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:11.511Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092300000" lon="-51.635350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:13.760Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092420000" lon="-51.635670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:16.071Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092540000" lon="-51.635980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:18.319Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092660000" lon="-51.636290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:20.568Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092780000" lon="-51.636610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:22.879Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.092900000" lon="-51.636920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:25.127Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093020000" lon="-51.637230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:27.375Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093140000" lon="-51.637550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:29.687Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093260000" lon="-51.637860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:31.935Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093380000" lon="-51.638170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:34.183Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093500000" lon="-51.638490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:36.495Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093620000" lon="-51.638800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:38.743Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093740000" lon="-51.639120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:41.054Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093850000" lon="-51.639430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:43.279Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.093970000" lon="-51.639740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:45.527Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094090000" lon="-51.640050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:47.775Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094210000" lon="-51.640370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:50.087Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094330000" lon="-51.640680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:52.335Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094450000" lon="-51.640990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:54.583Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094570000" lon="-51.641310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:56.895Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094690000" lon="-51.641620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:18:59.143Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094810000" lon="-51.641930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:01.391Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.094930000" lon="-51.642240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:03.639Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095050000" lon="-51.642560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:05.951Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095170000" lon="-51.642870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:08.199Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095290000" lon="-51.643180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:10.447Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095400000" lon="-51.643490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:12.672Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095520000" lon="-51.643810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:14.983Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095640000" lon="-51.644120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:17.232Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095760000" lon="-51.644430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:19.480Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.095880000" lon="-51.644750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:21.791Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096000000" lon="-51.645060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:24.039Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096120000" lon="-51.645380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:26.351Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096240000" lon="-51.645690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:28.599Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096360000" lon="-51.646000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:30.847Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096480000" lon="-51.646320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:33.159Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096600000" lon="-51.646630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:35.407Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096720000" lon="-51.646940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:37.655Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096840000" lon="-51.647260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:39.967Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.096960000" lon="-51.647570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:42.215Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097080000" lon="-51.647880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:44.463Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097200000" lon="-51.648200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:46.774Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097320000" lon="-51.648510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:49.023Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097440000" lon="-51.648830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:51.334Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097560000" lon="-51.649140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:53.582Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097680000" lon="-51.649450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:55.831Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097800000" lon="-51.649770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:19:58.142Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.097920000" lon="-51.650080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:00.390Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098040000" lon="-51.650400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:02.702Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098160000" lon="-51.650710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:04.950Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098280000" lon="-51.651020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:07.198Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098400000" lon="-51.651330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:09.446Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098520000" lon="-51.651640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:11.694Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098640000" lon="-51.651960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:14.006Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098760000" lon="-51.652280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:16.317Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.098880000" lon="-51.652590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:18.566Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099000000" lon="-51.652910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:20.877Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099130000" lon="-51.653220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:23.150Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099250000" lon="-51.653530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:25.399Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099370000" lon="-51.653850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:27.710Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099490000" lon="-51.654160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:29.958Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099610000" lon="-51.654480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:32.270Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099730000" lon="-51.654790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:34.518Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099850000" lon="-51.655100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:36.766Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.099970000" lon="-51.655420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:39.078Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100090000" lon="-51.655730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:41.326Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100210000" lon="-51.656040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:43.574Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100340000" lon="-51.656360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:45.910Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100450000" lon="-51.656660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:48.071Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100570000" lon="-51.656970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:50.319Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100690000" lon="-51.657290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:52.631Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100810000" lon="-51.657590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:54.816Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.100930000" lon="-51.657900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:57.064Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101040000" lon="-51.658200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:20:59.225Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101170000" lon="-51.658520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:01.561Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101280000" lon="-51.658830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:03.786Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101400000" lon="-51.659140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:06.034Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101520000" lon="-51.659450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:08.283Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101640000" lon="-51.659770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:10.594Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101760000" lon="-51.660080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:12.842Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.101880000" lon="-51.660390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:15.090Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102000000" lon="-51.660710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:17.402Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102120000" lon="-51.661020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:19.650Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102250000" lon="-51.661340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:21.986Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102370000" lon="-51.661650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:24.234Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102490000" lon="-51.661970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:26.546Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102610000" lon="-51.662280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:28.794Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102730000" lon="-51.662590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:31.042Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102850000" lon="-51.662910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:33.354Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.102970000" lon="-51.663220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:35.602Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103090000" lon="-51.663530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:37.850Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103210000" lon="-51.663850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:40.161Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103330000" lon="-51.664160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:42.410Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103450000" lon="-51.664470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:44.658Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103570000" lon="-51.664780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:46.906Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103690000" lon="-51.665100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:49.218Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103800000" lon="-51.665410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:51.442Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.103920000" lon="-51.665720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:53.690Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104040000" lon="-51.666040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:56.002Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104160000" lon="-51.666350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:21:58.250Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104280000" lon="-51.666660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:00.498Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104390000" lon="-51.666970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:02.723Z</time>
+        <course>247.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104510000" lon="-51.667280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:04.971Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104630000" lon="-51.667600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:07.283Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104750000" lon="-51.667910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:09.531Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.104880000" lon="-51.668230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:11.867Z</time>
+        <course>245.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105000000" lon="-51.668540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:14.115Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105120000" lon="-51.668850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:16.363Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105240000" lon="-51.669170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:18.675Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105360000" lon="-51.669480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:20.923Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105480000" lon="-51.669800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:23.234Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105600000" lon="-51.670110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:25.483Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105720000" lon="-51.670420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:27.731Z</time>
+        <course>246.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105840000" lon="-51.670740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:30.042Z</time>
+        <course>252.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105900000" lon="-51.671070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:32.311Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105950000" lon="-51.671410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:34.635Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106000000" lon="-51.671750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:36.959Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106050000" lon="-51.672090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:39.283Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106100000" lon="-51.672420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:41.541Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106150000" lon="-51.672760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:43.865Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106200000" lon="-51.673100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:46.189Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106250000" lon="-51.673440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:48.514Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106300000" lon="-51.673780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:50.838Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106350000" lon="-51.674120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:53.162Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106400000" lon="-51.674450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:55.419Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106450000" lon="-51.674790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:22:57.744Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106500000" lon="-51.675130000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:00.068Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106550000" lon="-51.675470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:02.392Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106600000" lon="-51.675810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:04.716Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106650000" lon="-51.676150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:07.041Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106700000" lon="-51.676480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:09.298Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106750000" lon="-51.676820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:11.622Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106800000" lon="-51.677160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:13.947Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106860000" lon="-51.677500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:16.282Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106910000" lon="-51.677840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:18.606Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106960000" lon="-51.678170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:20.863Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107010000" lon="-51.678510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:23.187Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107060000" lon="-51.678850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:25.512Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107110000" lon="-51.679190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:27.836Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107160000" lon="-51.679530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:30.160Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107210000" lon="-51.679870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:32.484Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107260000" lon="-51.680200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:34.742Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107310000" lon="-51.680540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:37.066Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107360000" lon="-51.680880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:39.390Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.681220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:41.715Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107460000" lon="-51.681560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:44.039Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107510000" lon="-51.681890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:46.296Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107560000" lon="-51.682230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:48.620Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107610000" lon="-51.682570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:50.945Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107660000" lon="-51.682910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:53.269Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107710000" lon="-51.683250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:55.593Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107760000" lon="-51.683590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:23:57.917Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107810000" lon="-51.683920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:00.175Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107860000" lon="-51.684260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:02.499Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107910000" lon="-51.684600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:04.823Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107960000" lon="-51.684940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:07.147Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108010000" lon="-51.685280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:09.472Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108070000" lon="-51.685620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:11.807Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108060000" lon="-51.685960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:14.107Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108040000" lon="-51.686300000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:16.411Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108020000" lon="-51.686640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:18.714Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108000000" lon="-51.686980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:21.018Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107980000" lon="-51.687330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:23.389Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107960000" lon="-51.687670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:25.692Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107940000" lon="-51.688010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:27.996Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107920000" lon="-51.688350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:30.299Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107900000" lon="-51.688700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:32.670Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107880000" lon="-51.689040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:34.974Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107860000" lon="-51.689380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:37.277Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107840000" lon="-51.689720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:39.581Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107810000" lon="-51.690070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:41.957Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107790000" lon="-51.690410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:44.260Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107770000" lon="-51.690750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:46.564Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107750000" lon="-51.691090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:48.867Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107730000" lon="-51.691430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:51.171Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107710000" lon="-51.691780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:53.542Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107690000" lon="-51.692120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:55.845Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107670000" lon="-51.692460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:24:58.149Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107650000" lon="-51.692800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:00.452Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107620000" lon="-51.693140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:02.760Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107600000" lon="-51.693480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:05.064Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107580000" lon="-51.693830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:07.435Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107560000" lon="-51.694170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:09.738Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107540000" lon="-51.694510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:12.042Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107520000" lon="-51.694850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:14.345Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107500000" lon="-51.695190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:16.649Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107480000" lon="-51.695530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:18.952Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107460000" lon="-51.695880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:21.323Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107450000" lon="-51.696220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:23.624Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107430000" lon="-51.696560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:25.927Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.696900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:28.231Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107390000" lon="-51.697250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:30.602Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107370000" lon="-51.697590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:32.905Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107350000" lon="-51.697930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:35.209Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107340000" lon="-51.698270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:37.509Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107320000" lon="-51.698620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:39.880Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107300000" lon="-51.698960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:42.184Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107280000" lon="-51.699300000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:44.487Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107260000" lon="-51.699640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:46.791Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107240000" lon="-51.699990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:49.162Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107230000" lon="-51.700330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:51.462Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107210000" lon="-51.700670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:53.766Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107190000" lon="-51.701020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:56.137Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107170000" lon="-51.701360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:25:58.440Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107150000" lon="-51.701700000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:00.744Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107130000" lon="-51.702040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:03.047Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107120000" lon="-51.702390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:05.416Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107100000" lon="-51.702730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:07.719Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107080000" lon="-51.703070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:10.023Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107060000" lon="-51.703410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:12.326Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107040000" lon="-51.703760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:14.697Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107020000" lon="-51.704100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:17.001Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107010000" lon="-51.704440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:19.301Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106990000" lon="-51.704780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:21.605Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106970000" lon="-51.705130000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:23.976Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106950000" lon="-51.705470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:26.279Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106930000" lon="-51.705810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:28.583Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106910000" lon="-51.706150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:30.886Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106900000" lon="-51.706500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:33.254Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106880000" lon="-51.706840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:35.558Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106860000" lon="-51.707180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:37.861Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106840000" lon="-51.707520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:40.165Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106820000" lon="-51.707870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:42.536Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106800000" lon="-51.708210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:44.839Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106790000" lon="-51.708550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:47.140Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106770000" lon="-51.708890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:49.443Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106750000" lon="-51.709240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:51.814Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106730000" lon="-51.709580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:54.118Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106710000" lon="-51.709920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:56.421Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106690000" lon="-51.710260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:26:58.725Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106680000" lon="-51.710610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:01.093Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106660000" lon="-51.710950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:03.396Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106640000" lon="-51.711290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:05.700Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106620000" lon="-51.711630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:08.003Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106610000" lon="-51.711970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:10.304Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106590000" lon="-51.712320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:12.675Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106570000" lon="-51.712660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:14.978Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106550000" lon="-51.713000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:17.282Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106530000" lon="-51.713340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:19.585Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106510000" lon="-51.713690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:21.956Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106490000" lon="-51.714030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:24.260Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106470000" lon="-51.714370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:26.563Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106450000" lon="-51.714710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:28.867Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106430000" lon="-51.715060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:31.238Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106410000" lon="-51.715400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:33.541Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106400000" lon="-51.715740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:35.842Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106380000" lon="-51.716080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:38.145Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106360000" lon="-51.716430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:40.516Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106340000" lon="-51.716770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:42.820Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106320000" lon="-51.717110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:45.123Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106300000" lon="-51.717460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:47.494Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106280000" lon="-51.717800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:49.798Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106260000" lon="-51.718140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:52.101Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106240000" lon="-51.718480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:54.405Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106220000" lon="-51.718830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:56.776Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106200000" lon="-51.719170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:27:59.079Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106180000" lon="-51.719510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:01.383Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106160000" lon="-51.719850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:03.686Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106140000" lon="-51.720200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:06.057Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106120000" lon="-51.720540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:08.361Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106100000" lon="-51.720880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:10.664Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106090000" lon="-51.721220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:12.965Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106070000" lon="-51.721570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:15.336Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106050000" lon="-51.721910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:17.639Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106030000" lon="-51.722250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:19.943Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106010000" lon="-51.722590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:22.246Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105990000" lon="-51.722940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:24.617Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105970000" lon="-51.723280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:26.921Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105950000" lon="-51.723620000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:29.224Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105930000" lon="-51.723960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:31.528Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105910000" lon="-51.724310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:33.899Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105890000" lon="-51.724650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:36.202Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105870000" lon="-51.724990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:38.506Z</time>
+        <course>276.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105830000" lon="-51.725330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:40.821Z</time>
+        <course>279.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105780000" lon="-51.725660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:43.078Z</time>
+        <course>280.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105730000" lon="-51.726000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:45.403Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105670000" lon="-51.726330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:47.671Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105620000" lon="-51.726670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:49.995Z</time>
+        <course>280.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105570000" lon="-51.727000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:52.253Z</time>
+        <course>280.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105520000" lon="-51.727340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:54.577Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105460000" lon="-51.727680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:56.912Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105410000" lon="-51.728010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:28:59.169Z</time>
+        <course>280.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105360000" lon="-51.728350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:01.494Z</time>
+        <course>280.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105310000" lon="-51.728680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:03.751Z</time>
+        <course>280.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105260000" lon="-51.729020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:06.075Z</time>
+        <course>278.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105230000" lon="-51.729360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:08.384Z</time>
+        <course>276.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105200000" lon="-51.729710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:10.760Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105180000" lon="-51.730050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:13.063Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105150000" lon="-51.730390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:15.371Z</time>
+        <course>276.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105120000" lon="-51.730730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:17.680Z</time>
+        <course>276.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105090000" lon="-51.731070000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:19.988Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105080000" lon="-51.731420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:22.356Z</time>
+        <course>271.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105080000" lon="-51.731760000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:24.656Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105080000" lon="-51.732100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:26.955Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105080000" lon="-51.732450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:29.323Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105080000" lon="-51.732790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:31.622Z</time>
+        <course>267.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105110000" lon="-51.733120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:33.863Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105140000" lon="-51.733460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:36.172Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105180000" lon="-51.733810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:38.554Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105210000" lon="-51.734150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:40.863Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105250000" lon="-51.734490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:43.178Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105280000" lon="-51.734830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:45.487Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105320000" lon="-51.735160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:47.735Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105380000" lon="-51.735490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:50.003Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105440000" lon="-51.735820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:52.272Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105510000" lon="-51.736150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:54.553Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105570000" lon="-51.736480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:56.822Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105640000" lon="-51.736810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:29:59.103Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105710000" lon="-51.737150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:01.451Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105770000" lon="-51.737480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:03.719Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105830000" lon="-51.737820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:06.055Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105900000" lon="-51.738160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:08.402Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105960000" lon="-51.738490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:10.671Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106030000" lon="-51.738830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:13.019Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106090000" lon="-51.739160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:15.287Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106150000" lon="-51.739500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:17.622Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106220000" lon="-51.739830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:19.904Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106280000" lon="-51.740170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:22.239Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106350000" lon="-51.740510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:24.586Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106410000" lon="-51.740840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:26.855Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106470000" lon="-51.741180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:29.190Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106540000" lon="-51.741510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:31.471Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106610000" lon="-51.741850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:33.819Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106680000" lon="-51.742180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:36.101Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106750000" lon="-51.742510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:38.382Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106820000" lon="-51.742840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:40.664Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106890000" lon="-51.743180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:43.012Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106960000" lon="-51.743510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:45.293Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107030000" lon="-51.743840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:47.575Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107110000" lon="-51.744170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:49.871Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107180000" lon="-51.744510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:52.219Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107250000" lon="-51.744840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:54.500Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107320000" lon="-51.745170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:56.782Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107390000" lon="-51.745500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:30:59.064Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107460000" lon="-51.745830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:01.345Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107540000" lon="-51.746160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:03.642Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107610000" lon="-51.746490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:05.923Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107680000" lon="-51.746820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:08.205Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107750000" lon="-51.747150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:10.486Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107820000" lon="-51.747480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:12.768Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107890000" lon="-51.747820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:15.116Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107960000" lon="-51.748150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:17.397Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108020000" lon="-51.748490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:19.732Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108090000" lon="-51.748820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:22.014Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108160000" lon="-51.749150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:24.295Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108230000" lon="-51.749490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:26.643Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108300000" lon="-51.749820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:28.925Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108370000" lon="-51.750150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:31.206Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108440000" lon="-51.750490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:33.554Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108510000" lon="-51.750820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:35.835Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108570000" lon="-51.751160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:38.170Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108620000" lon="-51.751490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:40.428Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108670000" lon="-51.751830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:42.752Z</time>
+        <course>268.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108640000" lon="-51.752160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:44.993Z</time>
+        <course>284.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108530000" lon="-51.752470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:47.218Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108410000" lon="-51.752790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:49.529Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108300000" lon="-51.753110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:51.818Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108180000" lon="-51.753420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:54.066Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108070000" lon="-51.753740000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:56.355Z</time>
+        <course>292.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107960000" lon="-51.754060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:31:58.643Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107840000" lon="-51.754370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:00.891Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107730000" lon="-51.754690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:03.180Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107610000" lon="-51.755010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:05.491Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107500000" lon="-51.755320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:07.716Z</time>
+        <course>292.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107390000" lon="-51.755640000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:10.005Z</time>
+        <course>293.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107270000" lon="-51.755960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:12.316Z</time>
+        <course>291.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107180000" lon="-51.756280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:14.564Z</time>
+        <course>288.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107090000" lon="-51.756610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:16.878Z</time>
+        <course>289.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106990000" lon="-51.756930000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:19.145Z</time>
+        <course>289.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106900000" lon="-51.757260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:21.458Z</time>
+        <course>287.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106810000" lon="-51.757590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:23.772Z</time>
+        <course>288.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106720000" lon="-51.757910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:26.020Z</time>
+        <course>289.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106620000" lon="-51.758240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:28.352Z</time>
+        <course>288.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106530000" lon="-51.758570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:30.666Z</time>
+        <course>287.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106440000" lon="-51.758900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:32.979Z</time>
+        <course>286.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106370000" lon="-51.759230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:35.261Z</time>
+        <course>285.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106290000" lon="-51.759560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:37.557Z</time>
+        <course>286.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106210000" lon="-51.759890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:39.854Z</time>
+        <course>286.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106130000" lon="-51.760220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:42.150Z</time>
+        <course>286.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106050000" lon="-51.760550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:44.447Z</time>
+        <course>286.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105970000" lon="-51.760880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:46.743Z</time>
+        <course>286.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105890000" lon="-51.761200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:48.974Z</time>
+        <course>289.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105780000" lon="-51.761520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:51.263Z</time>
+        <course>291.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105680000" lon="-51.761830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:53.466Z</time>
+        <course>285.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105630000" lon="-51.762160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:55.723Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105630000" lon="-51.762500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:32:58.022Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105630000" lon="-51.762850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:00.390Z</time>
+        <course>269.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105640000" lon="-51.763190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:02.690Z</time>
+        <course>269.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105640000" lon="-51.763530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:04.990Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105640000" lon="-51.763870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:07.289Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105640000" lon="-51.764210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:09.589Z</time>
+        <course>269.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105650000" lon="-51.764540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:11.822Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105700000" lon="-51.764870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:14.079Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105750000" lon="-51.765210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:16.403Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105790000" lon="-51.765550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:18.719Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105860000" lon="-51.765880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:21Z</time>
+        <course>252.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.105970000" lon="-51.766200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:23.289Z</time>
+        <course>248.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106080000" lon="-51.766510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:25.513Z</time>
+        <course>248.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106190000" lon="-51.766830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:27.802Z</time>
+        <course>248.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106300000" lon="-51.767150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:30.090Z</time>
+        <course>248.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106410000" lon="-51.767460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:32.315Z</time>
+        <course>248.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106520000" lon="-51.767780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:34.604Z</time>
+        <course>250.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106610000" lon="-51.768110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:36.917Z</time>
+        <course>253.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106700000" lon="-51.768440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:39.230Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106760000" lon="-51.768770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:41.499Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106810000" lon="-51.769110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:43.823Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106850000" lon="-51.769450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:46.139Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106890000" lon="-51.769790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:48.454Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106930000" lon="-51.770130000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:50.769Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106970000" lon="-51.770470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:53.085Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107020000" lon="-51.770810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:55.409Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107060000" lon="-51.771150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:33:57.724Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107100000" lon="-51.771490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:00.040Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107140000" lon="-51.771830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:02.355Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107180000" lon="-51.772170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:04.670Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107230000" lon="-51.772510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:06.995Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107270000" lon="-51.772840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:09.243Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107310000" lon="-51.773180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:11.558Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107350000" lon="-51.773520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:13.874Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107390000" lon="-51.773860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:16.189Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.774200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:18.493Z</time>
+        <course>268.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.774550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:20.860Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.774890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:23.159Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.775230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:25.459Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.775580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:27.826Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.775920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:30.125Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.776260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:32.425Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.776610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:34.792Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.776950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:37.092Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.777290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:39.391Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.777630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:41.691Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.777980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:44.058Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.778320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:46.357Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.778660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:48.657Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.779010000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:51.024Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.779350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:53.323Z</time>
+        <course>270.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107410000" lon="-51.779690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:55.623Z</time>
+        <course>271.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107400000" lon="-51.780030000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:34:57.924Z</time>
+        <course>273.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107380000" lon="-51.780380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:00.295Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107360000" lon="-51.780720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:02.598Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107340000" lon="-51.781060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:04.902Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107310000" lon="-51.781400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:07.210Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107290000" lon="-51.781750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:09.581Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107270000" lon="-51.782090000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:11.884Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107250000" lon="-51.782430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:14.188Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107230000" lon="-51.782770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:16.491Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107210000" lon="-51.783120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:18.862Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107190000" lon="-51.783460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:21.166Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107170000" lon="-51.783800000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:23.469Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107150000" lon="-51.784140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:25.773Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107120000" lon="-51.784490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:28.149Z</time>
+        <course>275.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107100000" lon="-51.784830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:30.452Z</time>
+        <course>274.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107080000" lon="-51.785170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:32.756Z</time>
+        <course>276.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107040000" lon="-51.785510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:35.071Z</time>
+        <course>280.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106980000" lon="-51.785850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:37.406Z</time>
+        <course>282.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106920000" lon="-51.786180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:39.675Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106870000" lon="-51.786520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:41.999Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106810000" lon="-51.786860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:44.334Z</time>
+        <course>282.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106750000" lon="-51.787190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:46.602Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106700000" lon="-51.787530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:48.927Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106640000" lon="-51.787870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:51.262Z</time>
+        <course>282.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106580000" lon="-51.788200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:53.530Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106530000" lon="-51.788540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:55.854Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106470000" lon="-51.788870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:35:58.123Z</time>
+        <course>281.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106420000" lon="-51.789210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:00.447Z</time>
+        <course>276.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106410000" lon="-51.789550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:02.748Z</time>
+        <course>263.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106490000" lon="-51.789880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:05.044Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106560000" lon="-51.790210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:07.326Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106640000" lon="-51.790540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:09.622Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106720000" lon="-51.790870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:11.919Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106790000" lon="-51.791200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:14.200Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106870000" lon="-51.791530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:16.497Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.106940000" lon="-51.791860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:18.778Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107020000" lon="-51.792190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:21.075Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107100000" lon="-51.792520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:23.371Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107170000" lon="-51.792850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:25.653Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107250000" lon="-51.793180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:27.950Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107330000" lon="-51.793510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:30.246Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107400000" lon="-51.793840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:32.528Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107480000" lon="-51.794180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:34.890Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107550000" lon="-51.794510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:37.171Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107630000" lon="-51.794840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:39.468Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107700000" lon="-51.795170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:41.750Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107780000" lon="-51.795500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:44.046Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107860000" lon="-51.795830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:46.343Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.107930000" lon="-51.796160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:48.624Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108010000" lon="-51.796490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:50.921Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108090000" lon="-51.796820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:53.217Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108160000" lon="-51.797150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:55.499Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108240000" lon="-51.797480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:36:57.795Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108320000" lon="-51.797810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:00.092Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108390000" lon="-51.798140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:02.373Z</time>
+        <course>257.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108450000" lon="-51.798480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:04.708Z</time>
+        <course>260.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108490000" lon="-51.798820000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:07.024Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108530000" lon="-51.799160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:09.339Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108570000" lon="-51.799500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:11.655Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108610000" lon="-51.799840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:13.970Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108650000" lon="-51.800180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:16.285Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108690000" lon="-51.800520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:18.601Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108730000" lon="-51.800860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:20.916Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108780000" lon="-51.801200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:23.240Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108820000" lon="-51.801540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:25.556Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108860000" lon="-51.801880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:27.871Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108900000" lon="-51.802220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:30.186Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108940000" lon="-51.802560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:32.502Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.108980000" lon="-51.802900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:34.817Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109020000" lon="-51.803240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:37.133Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109060000" lon="-51.803580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:39.448Z</time>
+        <course>262.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109100000" lon="-51.803920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:41.763Z</time>
+        <course>261.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109150000" lon="-51.804260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:44.088Z</time>
+        <course>258.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109220000" lon="-51.804590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:46.369Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109290000" lon="-51.804920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:48.651Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109360000" lon="-51.805250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:50.932Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109430000" lon="-51.805590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:53.280Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109500000" lon="-51.805920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:55.561Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109570000" lon="-51.806250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:37:57.843Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109650000" lon="-51.806590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:00.205Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109720000" lon="-51.806920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:02.487Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109790000" lon="-51.807250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:04.768Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109860000" lon="-51.807580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:07.050Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.109930000" lon="-51.807920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:09.398Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110000000" lon="-51.808250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:11.679Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110070000" lon="-51.808580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:13.961Z</time>
+        <course>256.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110140000" lon="-51.808910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:16.242Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110220000" lon="-51.809250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:18.605Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110300000" lon="-51.809580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:20.901Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110380000" lon="-51.809910000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:23.198Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110460000" lon="-51.810240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:25.494Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110540000" lon="-51.810570000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:27.791Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110620000" lon="-51.810900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:30.087Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110700000" lon="-51.811230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:32.384Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110780000" lon="-51.811560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:34.680Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110860000" lon="-51.811890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:36.977Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.110940000" lon="-51.812220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:39.273Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111020000" lon="-51.812550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:41.570Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111100000" lon="-51.812880000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:43.867Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111180000" lon="-51.813210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:46.163Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111260000" lon="-51.813540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:48.460Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111340000" lon="-51.813870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:50.756Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111420000" lon="-51.814200000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:53.053Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111500000" lon="-51.814530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:55.349Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111580000" lon="-51.814860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:57.646Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111660000" lon="-51.815190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:38:59.942Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111740000" lon="-51.815520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:02.239Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111820000" lon="-51.815850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:04.535Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111900000" lon="-51.816180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:06.832Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.111970000" lon="-51.816510000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:09.113Z</time>
+        <course>255.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112050000" lon="-51.816840000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:11.410Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112130000" lon="-51.817170000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:13.706Z</time>
+        <course>254.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112210000" lon="-51.817500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:16.003Z</time>
+        <course>259.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112240000" lon="-51.817850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:18.379Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112260000" lon="-51.818190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:20.682Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112290000" lon="-51.818530000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:22.991Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112320000" lon="-51.818870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:25.299Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112340000" lon="-51.819210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:27.603Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112370000" lon="-51.819550000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:29.911Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112390000" lon="-51.819890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:32.215Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112420000" lon="-51.820240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:34.590Z</time>
+        <course>264.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112450000" lon="-51.820580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:36.899Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112470000" lon="-51.820920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:39.202Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112500000" lon="-51.821260000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:41.511Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112520000" lon="-51.821600000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:43.814Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112550000" lon="-51.821940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:46.123Z</time>
+        <course>265.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112570000" lon="-51.822280000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:48.426Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112590000" lon="-51.822630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:50.797Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112610000" lon="-51.822970000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:53.101Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112630000" lon="-51.823310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:55.404Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112650000" lon="-51.823650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:39:57.708Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112670000" lon="-51.824000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:00.079Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112690000" lon="-51.824340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:02.382Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112710000" lon="-51.824680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:04.686Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112730000" lon="-51.825020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:06.989Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112750000" lon="-51.825370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:09.360Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112770000" lon="-51.825710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:11.664Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112790000" lon="-51.826050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:13.967Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112810000" lon="-51.826390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:16.271Z</time>
+        <course>266.000000</course>
+        <speed>22.789888</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112830000" lon="-51.826720000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:18.507Z</time>
+        <course>266.000000</course>
+        <speed>21.966778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112850000" lon="-51.827050000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:20.844Z</time>
+        <course>266.000000</course>
+        <speed>20.834999</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112870000" lon="-51.827360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:23.145Z</time>
+        <course>267.000000</course>
+        <speed>20.834999</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112880000" lon="-51.827660000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:25.369Z</time>
+        <course>266.000000</course>
+        <speed>20.011889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112910000" lon="-51.827950000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:27.636Z</time>
+        <course>262.000000</course>
+        <speed>18.880112</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112950000" lon="-51.828220000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:29.871Z</time>
+        <course>260.000000</course>
+        <speed>17.799778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.112990000" lon="-51.828490000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:32.230Z</time>
+        <course>260.000000</course>
+        <speed>17.799778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113030000" lon="-51.828750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:34.503Z</time>
+        <course>260.000000</course>
+        <speed>16.925222</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113070000" lon="-51.828990000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:36.730Z</time>
+        <course>259.000000</course>
+        <speed>15.844889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113110000" lon="-51.829230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:39.095Z</time>
+        <course>260.000000</course>
+        <speed>15.844889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113140000" lon="-51.829450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:41.254Z</time>
+        <course>260.000000</course>
+        <speed>15.021778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113180000" lon="-51.829680000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:43.675Z</time>
+        <course>260.000000</course>
+        <speed>15.021778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113210000" lon="-51.829890000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:45.875Z</time>
+        <course>261.000000</course>
+        <speed>13.890000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113240000" lon="-51.830100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:48.232Z</time>
+        <course>260.000000</course>
+        <speed>13.890000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113270000" lon="-51.830290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:50.369Z</time>
+        <course>259.000000</course>
+        <speed>12.758223</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113300000" lon="-51.830470000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:52.553Z</time>
+        <course>259.000000</course>
+        <speed>11.935111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113330000" lon="-51.830650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:54.918Z</time>
+        <course>260.000000</course>
+        <speed>10.854777</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113350000" lon="-51.830810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:57.198Z</time>
+        <course>259.000000</course>
+        <speed>10.854777</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113380000" lon="-51.830960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:40:59.362Z</time>
+        <course>259.000000</course>
+        <speed>9.980222</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113400000" lon="-51.831110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:01.716Z</time>
+        <course>261.000000</course>
+        <speed>8.899889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113420000" lon="-51.831240000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:03.989Z</time>
+        <course>259.000000</course>
+        <speed>8.899889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113440000" lon="-51.831360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:06.092Z</time>
+        <course>259.000000</course>
+        <speed>7.768111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113460000" lon="-51.831480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:08.457Z</time>
+        <course>261.000000</course>
+        <speed>6.945000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113470000" lon="-51.831590000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:10.912Z</time>
+        <course>261.000000</course>
+        <speed>6.945000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113490000" lon="-51.831690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:13.178Z</time>
+        <course>259.000000</course>
+        <speed>6.945000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113500000" lon="-51.831780000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:15.190Z</time>
+        <course>258.000000</course>
+        <speed>5.813222</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113520000" lon="-51.831860000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:17.328Z</time>
+        <course>257.000000</course>
+        <speed>4.990111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113530000" lon="-51.831940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:19.836Z</time>
+        <course>261.000000</course>
+        <speed>3.909778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113540000" lon="-51.832000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:22.202Z</time>
+        <course>260.000000</course>
+        <speed>3.909778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113550000" lon="-51.832060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:24.567Z</time>
+        <course>262.000000</course>
+        <speed>3.909778</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113550000" lon="-51.832110000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:26.512Z</time>
+        <course>261.000000</course>
+        <speed>2.778000</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113560000" lon="-51.832150000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:28.650Z</time>
+        <course>262.000000</course>
+        <speed>1.954889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113560000" lon="-51.832180000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:30.983Z</time>
+        <course>261.000000</course>
+        <speed>1.954889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113570000" lon="-51.832210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:33.443Z</time>
+        <course>262.000000</course>
+        <speed>1.954889</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113570000" lon="-51.832230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:34.998Z</time>
+        <course>256.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113580000" lon="-51.832250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:38.476Z</time>
+        <course>257.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113580000" lon="-51.832270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:41.588Z</time>
+        <course>261.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113580000" lon="-51.832290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:44.699Z</time>
+        <course>256.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113590000" lon="-51.832320000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:49.618Z</time>
+        <course>260.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113590000" lon="-51.832340000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:52.729Z</time>
+        <course>260.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113590000" lon="-51.832360000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:55.840Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113590000" lon="-51.832380000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:41:58.951Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113590000" lon="-51.832400000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:02.062Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113590000" lon="-51.832420000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:05.173Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113590000" lon="-51.832440000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:08.284Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113600000" lon="-51.832460000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:11.763Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113600000" lon="-51.832480000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:14.874Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113600000" lon="-51.832500000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:17.985Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113600000" lon="-51.832520000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:21.096Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113600000" lon="-51.832540000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:24.207Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113600000" lon="-51.832560000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:27.318Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113600000" lon="-51.832580000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:30.429Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113610000" lon="-51.832610000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:35.349Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113610000" lon="-51.832630000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:38.460Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113610000" lon="-51.832650000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:41.571Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113610000" lon="-51.832670000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:44.682Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113610000" lon="-51.832690000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:47.793Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113610000" lon="-51.832710000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:50.904Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113610000" lon="-51.832730000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:54.015Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113620000" lon="-51.832750000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:42:57.494Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113620000" lon="-51.832770000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:00.605Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113620000" lon="-51.832790000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:03.716Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113620000" lon="-51.832810000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:06.827Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113620000" lon="-51.832830000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:09.938Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113620000" lon="-51.832850000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:13.049Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113620000" lon="-51.832870000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:16.160Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113630000" lon="-51.832900000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:21.079Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113630000" lon="-51.832920000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:24.190Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113630000" lon="-51.832940000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:27.302Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113630000" lon="-51.832960000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:30.413Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113630000" lon="-51.832980000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:33.524Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113630000" lon="-51.833000000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:36.635Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113630000" lon="-51.833020000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:39.746Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113640000" lon="-51.833040000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:43.224Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113640000" lon="-51.833060000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:46.335Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113640000" lon="-51.833080000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:49.446Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113640000" lon="-51.833100000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:52.558Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113640000" lon="-51.833120000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:55.669Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113640000" lon="-51.833140000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:43:58.780Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113640000" lon="-51.833160000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:01.891Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113650000" lon="-51.833190000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:06.810Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113650000" lon="-51.833210000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:09.921Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113650000" lon="-51.833230000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:13.032Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113650000" lon="-51.833250000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:16.143Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113650000" lon="-51.833270000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:19.254Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113650000" lon="-51.833290000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:22.366Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113650000" lon="-51.833310000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:25.477Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113660000" lon="-51.833330000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:28.955Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113660000" lon="-51.833350000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:32.066Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113660000" lon="-51.833370000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:35.177Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113660000" lon="-51.833390000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:38.288Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113660000" lon="-51.833410000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:41.399Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113660000" lon="-51.833430000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:44.511Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+      <trkpt lat="-30.113660000" lon="-51.833450000">
+        <ele>46.100000</ele>
+        <time>2069-11-30T12:44:47.622Z</time>
+        <course>265.000000</course>
+        <speed>0.823111</speed>
+        <geoidheight>0.0</geoidheight>
+        <fix>3d</fix>
+        <sat>8</sat>
+        <hdop>0.800000</hdop>
+      </trkpt>
+    </trkseg>
+  </trk>
+</gpx>
diff --git a/test/data/regress/1853/PosData-20081216-115434.nmea b/test/data/regress/1853/PosData-20081216-115434.nmea
new file mode 100644
index 0000000..8cd3098
--- /dev/null
+++ b/test/data/regress/1853/PosData-20081216-115434.nmea
@@ -0,0 +1,2572 @@
+$GPGGA,115434.000,-3003.1914,N,-5126.2728,E,1,08,0.8,46.1,M,,,
+$GPRMC,115434.000,A,-3003.1914,N,-5126.2728,E,0.0,261.0,000070,,,A
+$GPGGA,115434.139,-3003.1914,N,-5126.2728,E,1,08,0.8,46.1,M,,,
+$GPRMC,115434.139,A,-3003.1914,N,-5126.2728,E,0.0,261.0,000070,,,A
+$GPGGA,115434.279,-3003.1914,N,-5126.2734,E,1,08,0.8,46.1,M,,,
+$GPRMC,115434.279,A,-3003.1914,N,-5126.2734,E,0.0,261.0,000070,,,A
+$GPGGA,115434.419,-3003.1920,N,-5126.2746,E,1,08,0.8,46.1,M,,,
+$GPRMC,115434.419,A,-3003.1920,N,-5126.2746,E,1.6,261.0,000070,,,A
+$GPGGA,115439.086,-3003.1920,N,-5126.2764,E,1,08,0.8,46.1,M,,,
+$GPRMC,115439.086,A,-3003.1920,N,-5126.2764,E,3.8,261.0,000070,,,A
+$GPGGA,115442.197,-3003.1920,N,-5126.2788,E,1,08,0.8,46.1,M,,,
+$GPRMC,115442.197,A,-3003.1920,N,-5126.2788,E,3.8,261.0,000070,,,A
+$GPGGA,115446.163,-3003.1926,N,-5126.2818,E,1,08,0.8,46.1,M,,,
+$GPRMC,115446.163,A,-3003.1926,N,-5126.2818,E,5.4,265.0,000070,,,A
+$GPGGA,115449.274,-3003.1926,N,-5126.2854,E,1,08,0.8,46.1,M,,,
+$GPRMC,115449.274,A,-3003.1926,N,-5126.2854,E,7.6,265.0,000070,,,A
+$GPGGA,115452.410,-3003.1932,N,-5126.2902,E,1,08,0.8,46.1,M,,,
+$GPRMC,115452.410,A,-3003.1932,N,-5126.2902,E,7.6,261.0,000070,,,A
+$GPGGA,115455.545,-3003.1938,N,-5126.2950,E,1,08,0.8,46.1,M,,,
+$GPRMC,115455.545,A,-3003.1938,N,-5126.2950,E,9.7,262.0,000070,,,A
+$GPGGA,115458.362,-3003.1944,N,-5126.3004,E,1,08,0.8,46.1,M,,,
+$GPRMC,115458.362,A,-3003.1944,N,-5126.3004,E,11.3,263.0,000070,,,A
+$GPGGA,115500.968,-3003.1950,N,-5126.3064,E,1,08,0.8,46.1,M,,,
+$GPRMC,115500.968,A,-3003.1950,N,-5126.3064,E,13.5,264.0,000070,,,A
+$GPGGA,115503.644,-3003.1956,N,-5126.3136,E,1,08,0.8,46.1,M,,,
+$GPRMC,115503.644,A,-3003.1956,N,-5126.3136,E,13.5,264.0,000070,,,A
+$GPGGA,115506.320,-3003.1962,N,-5126.3208,E,1,08,0.8,46.1,M,,,
+$GPRMC,115506.320,A,-3003.1962,N,-5126.3208,E,15.1,265.0,000070,,,A
+$GPGGA,115509.049,-3003.1968,N,-5126.3292,E,1,08,0.8,46.1,M,,,
+$GPRMC,115509.049,A,-3003.1968,N,-5126.3292,E,17.3,263.0,000070,,,A
+$GPGGA,115511.493,-3003.1980,N,-5126.3376,E,1,08,0.8,46.1,M,,,
+$GPRMC,115511.493,A,-3003.1980,N,-5126.3376,E,17.3,263.0,000070,,,A
+$GPGGA,115514.264,-3003.1986,N,-5126.3472,E,1,08,0.8,46.1,M,,,
+$GPRMC,115514.264,A,-3003.1986,N,-5126.3472,E,19.4,264.0,000070,,,A
+$GPGGA,115516.772,-3003.1998,N,-5126.3568,E,1,08,0.8,46.1,M,,,
+$GPRMC,115516.772,A,-3003.1998,N,-5126.3568,E,21.1,262.0,000070,,,A
+$GPGGA,115519.333,-3003.2010,N,-5126.3676,E,1,08,0.8,46.1,M,,,
+$GPRMC,115519.333,A,-3003.2010,N,-5126.3676,E,21.1,265.0,000070,,,A
+$GPGGA,115521.883,-3003.2016,N,-5126.3784,E,1,08,0.8,46.1,M,,,
+$GPRMC,115521.883,A,-3003.2016,N,-5126.3784,E,23.2,265.0,000070,,,A
+$GPGGA,115524.488,-3003.2028,N,-5126.3904,E,1,08,0.8,46.1,M,,,
+$GPRMC,115524.488,A,-3003.2028,N,-5126.3904,E,24.8,263.0,000070,,,A
+$GPGGA,115526.893,-3003.2040,N,-5126.4024,E,1,08,0.8,46.1,M,,,
+$GPRMC,115526.893,A,-3003.2040,N,-5126.4024,E,27.0,264.0,000070,,,A
+$GPGGA,115529.348,-3003.2052,N,-5126.4156,E,1,08,0.8,46.1,M,,,
+$GPRMC,115529.348,A,-3003.2052,N,-5126.4156,E,27.0,264.0,000070,,,A
+$GPGGA,115531.913,-3003.2064,N,-5126.4294,E,1,08,0.8,46.1,M,,,
+$GPRMC,115531.913,A,-3003.2064,N,-5126.4294,E,29.2,263.0,000070,,,A
+$GPGGA,115534.318,-3003.2082,N,-5126.4432,E,1,08,0.8,46.1,M,,,
+$GPRMC,115534.318,A,-3003.2082,N,-5126.4432,E,30.8,263.0,000070,,,A
+$GPGGA,115536.757,-3003.2094,N,-5126.4582,E,1,08,0.8,46.1,M,,,
+$GPRMC,115536.757,A,-3003.2094,N,-5126.4582,E,30.8,265.0,000070,,,A
+$GPGGA,115539.292,-3003.2106,N,-5126.4738,E,1,08,0.8,46.1,M,,,
+$GPRMC,115539.292,A,-3003.2106,N,-5126.4738,E,32.9,264.0,000070,,,A
+$GPGGA,115541.778,-3003.2124,N,-5126.4900,E,1,08,0.8,46.1,M,,,
+$GPRMC,115541.778,A,-3003.2124,N,-5126.4900,E,34.6,263.0,000070,,,A
+$GPGGA,115544.211,-3003.2142,N,-5126.5068,E,1,08,0.8,46.1,M,,,
+$GPRMC,115544.211,A,-3003.2142,N,-5126.5068,E,34.6,264.0,000070,,,A
+$GPGGA,115546.723,-3003.2154,N,-5126.5242,E,1,08,0.8,46.1,M,,,
+$GPRMC,115546.723,A,-3003.2154,N,-5126.5242,E,36.7,264.0,000070,,,A
+$GPGGA,115549.110,-3003.2172,N,-5126.5416,E,1,08,0.8,46.1,M,,,
+$GPRMC,115549.110,A,-3003.2172,N,-5126.5416,E,38.9,263.0,000070,,,A
+$GPGGA,115551.533,-3003.2190,N,-5126.5602,E,1,08,0.8,46.1,M,,,
+$GPRMC,115551.533,A,-3003.2190,N,-5126.5602,E,40.5,264.0,000070,,,A
+$GPGGA,115553.913,-3003.2208,N,-5126.5794,E,1,08,0.8,46.1,M,,,
+$GPRMC,115553.913,A,-3003.2208,N,-5126.5794,E,40.5,263.0,000070,,,A
+$GPGGA,115556.376,-3003.2232,N,-5126.5992,E,1,08,0.8,46.1,M,,,
+$GPRMC,115556.376,A,-3003.2232,N,-5126.5992,E,42.7,263.0,000070,,,A
+$GPGGA,115558.789,-3003.2250,N,-5126.6196,E,1,08,0.8,46.1,M,,,
+$GPRMC,115558.789,A,-3003.2250,N,-5126.6196,E,44.3,264.0,000070,,,A
+$GPGGA,115601.098,-3003.2268,N,-5126.6400,E,1,08,0.8,46.1,M,,,
+$GPRMC,115601.098,A,-3003.2268,N,-5126.6400,E,44.3,263.0,000070,,,A
+$GPGGA,115603.480,-3003.2292,N,-5126.6610,E,1,08,0.8,46.1,M,,,
+$GPRMC,115603.480,A,-3003.2292,N,-5126.6610,E,44.3,263.0,000070,,,A
+$GPGGA,115605.789,-3003.2310,N,-5126.6814,E,1,08,0.8,46.1,M,,,
+$GPRMC,115605.789,A,-3003.2310,N,-5126.6814,E,44.3,264.0,000070,,,A
+$GPGGA,115608.097,-3003.2328,N,-5126.7018,E,1,08,0.8,46.1,M,,,
+$GPRMC,115608.097,A,-3003.2328,N,-5126.7018,E,44.3,264.0,000070,,,A
+$GPGGA,115610.406,-3003.2346,N,-5126.7222,E,1,08,0.8,46.1,M,,,
+$GPRMC,115610.406,A,-3003.2346,N,-5126.7222,E,44.3,263.0,000070,,,A
+$GPGGA,115612.721,-3003.2370,N,-5126.7426,E,1,08,0.8,46.1,M,,,
+$GPRMC,115612.721,A,-3003.2370,N,-5126.7426,E,44.3,263.0,000070,,,A
+$GPGGA,115615.029,-3003.2388,N,-5126.7630,E,1,08,0.8,46.1,M,,,
+$GPRMC,115615.029,A,-3003.2388,N,-5126.7630,E,44.3,264.0,000070,,,A
+$GPGGA,115617.338,-3003.2406,N,-5126.7834,E,1,08,0.8,46.1,M,,,
+$GPRMC,115617.338,A,-3003.2406,N,-5126.7834,E,44.3,263.0,000070,,,A
+$GPGGA,115619.653,-3003.2430,N,-5126.8038,E,1,08,0.8,46.1,M,,,
+$GPRMC,115619.653,A,-3003.2430,N,-5126.8038,E,44.3,263.0,000070,,,A
+$GPGGA,115621.962,-3003.2448,N,-5126.8242,E,1,08,0.8,46.1,M,,,
+$GPRMC,115621.962,A,-3003.2448,N,-5126.8242,E,44.3,264.0,000070,,,A
+$GPGGA,115624.270,-3003.2466,N,-5126.8446,E,1,08,0.8,46.1,M,,,
+$GPRMC,115624.270,A,-3003.2466,N,-5126.8446,E,44.3,263.0,000070,,,A
+$GPGGA,115626.585,-3003.2490,N,-5126.8650,E,1,08,0.8,46.1,M,,,
+$GPRMC,115626.585,A,-3003.2490,N,-5126.8650,E,44.3,263.0,000070,,,A
+$GPGGA,115628.894,-3003.2508,N,-5126.8854,E,1,08,0.8,46.1,M,,,
+$GPRMC,115628.894,A,-3003.2508,N,-5126.8854,E,44.3,264.0,000070,,,A
+$GPGGA,115631.202,-3003.2526,N,-5126.9058,E,1,08,0.8,46.1,M,,,
+$GPRMC,115631.202,A,-3003.2526,N,-5126.9058,E,44.3,263.0,000070,,,A
+$GPGGA,115633.518,-3003.2550,N,-5126.9262,E,1,08,0.8,46.1,M,,,
+$GPRMC,115633.518,A,-3003.2550,N,-5126.9262,E,44.3,263.0,000070,,,A
+$GPGGA,115635.826,-3003.2568,N,-5126.9466,E,1,08,0.8,46.1,M,,,
+$GPRMC,115635.826,A,-3003.2568,N,-5126.9466,E,44.3,264.0,000070,,,A
+$GPGGA,115638.135,-3003.2586,N,-5126.9670,E,1,08,0.8,46.1,M,,,
+$GPRMC,115638.135,A,-3003.2586,N,-5126.9670,E,44.3,265.0,000070,,,A
+$GPGGA,115640.438,-3003.2598,N,-5126.9874,E,1,08,0.8,46.1,M,,,
+$GPRMC,115640.438,A,-3003.2598,N,-5126.9874,E,44.3,265.0,000070,,,A
+$GPGGA,115642.747,-3003.2616,N,-5127.0078,E,1,08,0.8,46.1,M,,,
+$GPRMC,115642.747,A,-3003.2616,N,-5127.0078,E,44.3,265.0,000070,,,A
+$GPGGA,115645.118,-3003.2628,N,-5127.0288,E,1,08,0.8,46.1,M,,,
+$GPRMC,115645.118,A,-3003.2628,N,-5127.0288,E,44.3,265.0,000070,,,A
+$GPGGA,115647.426,-3003.2646,N,-5127.0492,E,1,08,0.8,46.1,M,,,
+$GPRMC,115647.426,A,-3003.2646,N,-5127.0492,E,44.3,265.0,000070,,,A
+$GPGGA,115649.730,-3003.2658,N,-5127.0696,E,1,08,0.8,46.1,M,,,
+$GPRMC,115649.730,A,-3003.2658,N,-5127.0696,E,44.3,265.0,000070,,,A
+$GPGGA,115652.038,-3003.2676,N,-5127.0900,E,1,08,0.8,46.1,M,,,
+$GPRMC,115652.038,A,-3003.2676,N,-5127.0900,E,44.3,265.0,000070,,,A
+$GPGGA,115654.342,-3003.2688,N,-5127.1104,E,1,08,0.8,46.1,M,,,
+$GPRMC,115654.342,A,-3003.2688,N,-5127.1104,E,44.3,265.0,000070,,,A
+$GPGGA,115656.650,-3003.2706,N,-5127.1308,E,1,08,0.8,46.1,M,,,
+$GPRMC,115656.650,A,-3003.2706,N,-5127.1308,E,44.3,265.0,000070,,,A
+$GPGGA,115658.953,-3003.2718,N,-5127.1512,E,1,08,0.8,46.1,M,,,
+$GPRMC,115658.953,A,-3003.2718,N,-5127.1512,E,44.3,265.0,000070,,,A
+$GPGGA,115701.262,-3003.2736,N,-5127.1716,E,1,08,0.8,46.1,M,,,
+$GPRMC,115701.262,A,-3003.2736,N,-5127.1716,E,44.3,265.0,000070,,,A
+$GPGGA,115703.633,-3003.2748,N,-5127.1926,E,1,08,0.8,46.1,M,,,
+$GPRMC,115703.633,A,-3003.2748,N,-5127.1926,E,44.3,265.0,000070,,,A
+$GPGGA,115705.941,-3003.2766,N,-5127.2130,E,1,08,0.8,46.1,M,,,
+$GPRMC,115705.941,A,-3003.2766,N,-5127.2130,E,44.3,265.0,000070,,,A
+$GPGGA,115708.245,-3003.2778,N,-5127.2334,E,1,08,0.8,46.1,M,,,
+$GPRMC,115708.245,A,-3003.2778,N,-5127.2334,E,44.3,266.0,000070,,,A
+$GPGGA,115710.548,-3003.2790,N,-5127.2538,E,1,08,0.8,46.1,M,,,
+$GPRMC,115710.548,A,-3003.2790,N,-5127.2538,E,44.3,265.0,000070,,,A
+$GPGGA,115712.857,-3003.2808,N,-5127.2742,E,1,08,0.8,46.1,M,,,
+$GPRMC,115712.857,A,-3003.2808,N,-5127.2742,E,44.3,265.0,000070,,,A
+$GPGGA,115715.160,-3003.2820,N,-5127.2946,E,1,08,0.8,46.1,M,,,
+$GPRMC,115715.160,A,-3003.2820,N,-5127.2946,E,44.3,265.0,000070,,,A
+$GPGGA,115717.469,-3003.2838,N,-5127.3150,E,1,08,0.8,46.1,M,,,
+$GPRMC,115717.469,A,-3003.2838,N,-5127.3150,E,44.3,265.0,000070,,,A
+$GPGGA,115719.840,-3003.2850,N,-5127.3360,E,1,08,0.8,46.1,M,,,
+$GPRMC,115719.840,A,-3003.2850,N,-5127.3360,E,44.3,265.0,000070,,,A
+$GPGGA,115722.148,-3003.2868,N,-5127.3564,E,1,08,0.8,46.1,M,,,
+$GPRMC,115722.148,A,-3003.2868,N,-5127.3564,E,44.3,265.0,000070,,,A
+$GPGGA,115724.452,-3003.2880,N,-5127.3768,E,1,08,0.8,46.1,M,,,
+$GPRMC,115724.452,A,-3003.2880,N,-5127.3768,E,44.3,265.0,000070,,,A
+$GPGGA,115726.760,-3003.2898,N,-5127.3972,E,1,08,0.8,46.1,M,,,
+$GPRMC,115726.760,A,-3003.2898,N,-5127.3972,E,44.3,265.0,000070,,,A
+$GPGGA,115729.064,-3003.2910,N,-5127.4176,E,1,08,0.8,46.1,M,,,
+$GPRMC,115729.064,A,-3003.2910,N,-5127.4176,E,44.3,265.0,000070,,,A
+$GPGGA,115731.372,-3003.2928,N,-5127.4380,E,1,08,0.8,46.1,M,,,
+$GPRMC,115731.372,A,-3003.2928,N,-5127.4380,E,44.3,265.0,000070,,,A
+$GPGGA,115733.676,-3003.2940,N,-5127.4584,E,1,08,0.8,46.1,M,,,
+$GPRMC,115733.676,A,-3003.2940,N,-5127.4584,E,44.3,266.0,000070,,,A
+$GPGGA,115736.047,-3003.2952,N,-5127.4794,E,1,08,0.8,46.1,M,,,
+$GPRMC,115736.047,A,-3003.2952,N,-5127.4794,E,44.3,265.0,000070,,,A
+$GPGGA,115738.355,-3003.2970,N,-5127.4998,E,1,08,0.8,46.1,M,,,
+$GPRMC,115738.355,A,-3003.2970,N,-5127.4998,E,44.3,265.0,000070,,,A
+$GPGGA,115740.659,-3003.2982,N,-5127.5202,E,1,08,0.8,46.1,M,,,
+$GPRMC,115740.659,A,-3003.2982,N,-5127.5202,E,44.3,266.0,000070,,,A
+$GPGGA,115742.962,-3003.2994,N,-5127.5406,E,1,08,0.8,46.1,M,,,
+$GPRMC,115742.962,A,-3003.2994,N,-5127.5406,E,44.3,266.0,000070,,,A
+$GPGGA,115745.266,-3003.3006,N,-5127.5610,E,1,08,0.8,46.1,M,,,
+$GPRMC,115745.266,A,-3003.3006,N,-5127.5610,E,44.3,266.0,000070,,,A
+$GPGGA,115747.637,-3003.3018,N,-5127.5820,E,1,08,0.8,46.1,M,,,
+$GPRMC,115747.637,A,-3003.3018,N,-5127.5820,E,44.3,266.0,000070,,,A
+$GPGGA,115749.940,-3003.3030,N,-5127.6024,E,1,08,0.8,46.1,M,,,
+$GPRMC,115749.940,A,-3003.3030,N,-5127.6024,E,44.3,266.0,000070,,,A
+$GPGGA,115752.244,-3003.3042,N,-5127.6228,E,1,08,0.8,46.1,M,,,
+$GPRMC,115752.244,A,-3003.3042,N,-5127.6228,E,44.3,266.0,000070,,,A
+$GPGGA,115754.547,-3003.3054,N,-5127.6432,E,1,08,0.8,46.1,M,,,
+$GPRMC,115754.547,A,-3003.3054,N,-5127.6432,E,44.3,266.0,000070,,,A
+$GPGGA,115756.850,-3003.3066,N,-5127.6636,E,1,08,0.8,46.1,M,,,
+$GPRMC,115756.850,A,-3003.3066,N,-5127.6636,E,44.3,265.0,000070,,,A
+$GPGGA,115759.226,-3003.3084,N,-5127.6846,E,1,08,0.8,46.1,M,,,
+$GPRMC,115759.226,A,-3003.3084,N,-5127.6846,E,44.3,265.0,000070,,,A
+$GPGGA,115801.530,-3003.3096,N,-5127.7050,E,1,08,0.8,46.1,M,,,
+$GPRMC,115801.530,A,-3003.3096,N,-5127.7050,E,44.3,266.0,000070,,,A
+$GPGGA,115803.833,-3003.3108,N,-5127.7254,E,1,08,0.8,46.1,M,,,
+$GPRMC,115803.833,A,-3003.3108,N,-5127.7254,E,44.3,266.0,000070,,,A
+$GPGGA,115806.137,-3003.3120,N,-5127.7458,E,1,08,0.8,46.1,M,,,
+$GPRMC,115806.137,A,-3003.3120,N,-5127.7458,E,44.3,266.0,000070,,,A
+$GPGGA,115808.440,-3003.3132,N,-5127.7662,E,1,08,0.8,46.1,M,,,
+$GPRMC,115808.440,A,-3003.3132,N,-5127.7662,E,44.3,266.0,000070,,,A
+$GPGGA,115810.811,-3003.3144,N,-5127.7872,E,1,08,0.8,46.1,M,,,
+$GPRMC,115810.811,A,-3003.3144,N,-5127.7872,E,44.3,266.0,000070,,,A
+$GPGGA,115813.115,-3003.3156,N,-5127.8076,E,1,08,0.8,46.1,M,,,
+$GPRMC,115813.115,A,-3003.3156,N,-5127.8076,E,44.3,266.0,000070,,,A
+$GPGGA,115815.418,-3003.3168,N,-5127.8280,E,1,08,0.8,46.1,M,,,
+$GPRMC,115815.418,A,-3003.3168,N,-5127.8280,E,44.3,266.0,000070,,,A
+$GPGGA,115817.722,-3003.3180,N,-5127.8484,E,1,08,0.8,46.1,M,,,
+$GPRMC,115817.722,A,-3003.3180,N,-5127.8484,E,44.3,265.0,000070,,,A
+$GPGGA,115820.098,-3003.3198,N,-5127.8694,E,1,08,0.8,46.1,M,,,
+$GPRMC,115820.098,A,-3003.3198,N,-5127.8694,E,44.3,265.0,000070,,,A
+$GPGGA,115822.401,-3003.3210,N,-5127.8898,E,1,08,0.8,46.1,M,,,
+$GPRMC,115822.401,A,-3003.3210,N,-5127.8898,E,44.3,266.0,000070,,,A
+$GPGGA,115824.705,-3003.3222,N,-5127.9102,E,1,08,0.8,46.1,M,,,
+$GPRMC,115824.705,A,-3003.3222,N,-5127.9102,E,44.3,266.0,000070,,,A
+$GPGGA,115827.008,-3003.3234,N,-5127.9306,E,1,08,0.8,46.1,M,,,
+$GPRMC,115827.008,A,-3003.3234,N,-5127.9306,E,44.3,266.0,000070,,,A
+$GPGGA,115829.312,-3003.3246,N,-5127.9510,E,1,08,0.8,46.1,M,,,
+$GPRMC,115829.312,A,-3003.3246,N,-5127.9510,E,44.3,266.0,000070,,,A
+$GPGGA,115831.683,-3003.3258,N,-5127.9720,E,1,08,0.8,46.1,M,,,
+$GPRMC,115831.683,A,-3003.3258,N,-5127.9720,E,44.3,265.0,000070,,,A
+$GPGGA,115833.991,-3003.3276,N,-5127.9924,E,1,08,0.8,46.1,M,,,
+$GPRMC,115833.991,A,-3003.3276,N,-5127.9924,E,44.3,265.0,000070,,,A
+$GPGGA,115836.295,-3003.3288,N,-5128.0128,E,1,08,0.8,46.1,M,,,
+$GPRMC,115836.295,A,-3003.3288,N,-5128.0128,E,44.3,266.0,000070,,,A
+$GPGGA,115838.598,-3003.3300,N,-5128.0332,E,1,08,0.8,46.1,M,,,
+$GPRMC,115838.598,A,-3003.3300,N,-5128.0332,E,44.3,265.0,000070,,,A
+$GPGGA,115840.906,-3003.3318,N,-5128.0536,E,1,08,0.8,46.1,M,,,
+$GPRMC,115840.906,A,-3003.3318,N,-5128.0536,E,44.3,265.0,000070,,,A
+$GPGGA,115843.210,-3003.3330,N,-5128.0740,E,1,08,0.8,46.1,M,,,
+$GPRMC,115843.210,A,-3003.3330,N,-5128.0740,E,44.3,266.0,000070,,,A
+$GPGGA,115845.581,-3003.3342,N,-5128.0950,E,1,08,0.8,46.1,M,,,
+$GPRMC,115845.581,A,-3003.3342,N,-5128.0950,E,44.3,266.0,000070,,,A
+$GPGGA,115847.884,-3003.3354,N,-5128.1154,E,1,08,0.8,46.1,M,,,
+$GPRMC,115847.884,A,-3003.3354,N,-5128.1154,E,44.3,265.0,000070,,,A
+$GPGGA,115850.193,-3003.3372,N,-5128.1358,E,1,08,0.8,46.1,M,,,
+$GPRMC,115850.193,A,-3003.3372,N,-5128.1358,E,44.3,265.0,000070,,,A
+$GPGGA,115852.496,-3003.3384,N,-5128.1562,E,1,08,0.8,46.1,M,,,
+$GPRMC,115852.496,A,-3003.3384,N,-5128.1562,E,44.3,266.0,000070,,,A
+$GPGGA,115854.800,-3003.3396,N,-5128.1766,E,1,08,0.8,46.1,M,,,
+$GPRMC,115854.800,A,-3003.3396,N,-5128.1766,E,44.3,265.0,000070,,,A
+$GPGGA,115857.176,-3003.3414,N,-5128.1976,E,1,08,0.8,46.1,M,,,
+$GPRMC,115857.176,A,-3003.3414,N,-5128.1976,E,44.3,265.0,000070,,,A
+$GPGGA,115859.479,-3003.3426,N,-5128.2180,E,1,08,0.8,46.1,M,,,
+$GPRMC,115859.479,A,-3003.3426,N,-5128.2180,E,44.3,266.0,000070,,,A
+$GPGGA,115901.783,-3003.3438,N,-5128.2384,E,1,08,0.8,46.1,M,,,
+$GPRMC,115901.783,A,-3003.3438,N,-5128.2384,E,44.3,265.0,000070,,,A
+$GPGGA,115904.091,-3003.3456,N,-5128.2588,E,1,08,0.8,46.1,M,,,
+$GPRMC,115904.091,A,-3003.3456,N,-5128.2588,E,44.3,265.0,000070,,,A
+$GPGGA,115906.395,-3003.3468,N,-5128.2792,E,1,08,0.8,46.1,M,,,
+$GPRMC,115906.395,A,-3003.3468,N,-5128.2792,E,44.3,266.0,000070,,,A
+$GPGGA,115908.766,-3003.3480,N,-5128.3002,E,1,08,0.8,46.1,M,,,
+$GPRMC,115908.766,A,-3003.3480,N,-5128.3002,E,44.3,266.0,000070,,,A
+$GPGGA,115911.069,-3003.3492,N,-5128.3206,E,1,08,0.8,46.1,M,,,
+$GPRMC,115911.069,A,-3003.3492,N,-5128.3206,E,44.3,265.0,000070,,,A
+$GPGGA,115913.378,-3003.3510,N,-5128.3410,E,1,08,0.8,46.1,M,,,
+$GPRMC,115913.378,A,-3003.3510,N,-5128.3410,E,44.3,265.0,000070,,,A
+$GPGGA,115915.681,-3003.3522,N,-5128.3614,E,1,08,0.8,46.1,M,,,
+$GPRMC,115915.681,A,-3003.3522,N,-5128.3614,E,44.3,266.0,000070,,,A
+$GPGGA,115917.985,-3003.3534,N,-5128.3818,E,1,08,0.8,46.1,M,,,
+$GPRMC,115917.985,A,-3003.3534,N,-5128.3818,E,44.3,265.0,000070,,,A
+$GPGGA,115920.360,-3003.3552,N,-5128.4028,E,1,08,0.8,46.1,M,,,
+$GPRMC,115920.360,A,-3003.3552,N,-5128.4028,E,44.3,265.0,000070,,,A
+$GPGGA,115922.664,-3003.3564,N,-5128.4232,E,1,08,0.8,46.1,M,,,
+$GPRMC,115922.664,A,-3003.3564,N,-5128.4232,E,44.3,266.0,000070,,,A
+$GPGGA,115924.967,-3003.3576,N,-5128.4436,E,1,08,0.8,46.1,M,,,
+$GPRMC,115924.967,A,-3003.3576,N,-5128.4436,E,44.3,266.0,000070,,,A
+$GPGGA,115927.271,-3003.3588,N,-5128.4640,E,1,08,0.8,46.1,M,,,
+$GPRMC,115927.271,A,-3003.3588,N,-5128.4640,E,44.3,265.0,000070,,,A
+$GPGGA,115929.579,-3003.3606,N,-5128.4844,E,1,08,0.8,46.1,M,,,
+$GPRMC,115929.579,A,-3003.3606,N,-5128.4844,E,44.3,265.0,000070,,,A
+$GPGGA,115931.883,-3003.3618,N,-5128.5048,E,1,08,0.8,46.1,M,,,
+$GPRMC,115931.883,A,-3003.3618,N,-5128.5048,E,44.3,266.0,000070,,,A
+$GPGGA,115934.254,-3003.3630,N,-5128.5258,E,1,08,0.8,46.1,M,,,
+$GPRMC,115934.254,A,-3003.3630,N,-5128.5258,E,44.3,265.0,000070,,,A
+$GPGGA,115936.562,-3003.3648,N,-5128.5462,E,1,08,0.8,46.1,M,,,
+$GPRMC,115936.562,A,-3003.3648,N,-5128.5462,E,44.3,265.0,000070,,,A
+$GPGGA,115938.866,-3003.3660,N,-5128.5666,E,1,08,0.8,46.1,M,,,
+$GPRMC,115938.866,A,-3003.3660,N,-5128.5666,E,44.3,266.0,000070,,,A
+$GPGGA,115941.169,-3003.3672,N,-5128.5870,E,1,08,0.8,46.1,M,,,
+$GPRMC,115941.169,A,-3003.3672,N,-5128.5870,E,44.3,265.0,000070,,,A
+$GPGGA,115943.478,-3003.3690,N,-5128.6074,E,1,08,0.8,46.1,M,,,
+$GPRMC,115943.478,A,-3003.3690,N,-5128.6074,E,44.3,265.0,000070,,,A
+$GPGGA,115945.849,-3003.3702,N,-5128.6284,E,1,08,0.8,46.1,M,,,
+$GPRMC,115945.849,A,-3003.3702,N,-5128.6284,E,44.3,266.0,000070,,,A
+$GPGGA,115948.152,-3003.3714,N,-5128.6488,E,1,08,0.8,46.1,M,,,
+$GPRMC,115948.152,A,-3003.3714,N,-5128.6488,E,44.3,266.0,000070,,,A
+$GPGGA,115950.456,-3003.3726,N,-5128.6692,E,1,08,0.8,46.1,M,,,
+$GPRMC,115950.456,A,-3003.3726,N,-5128.6692,E,44.3,265.0,000070,,,A
+$GPGGA,115952.764,-3003.3744,N,-5128.6896,E,1,08,0.8,46.1,M,,,
+$GPRMC,115952.764,A,-3003.3744,N,-5128.6896,E,44.3,265.0,000070,,,A
+$GPGGA,115955.068,-3003.3756,N,-5128.7100,E,1,08,0.8,46.1,M,,,
+$GPRMC,115955.068,A,-3003.3756,N,-5128.7100,E,44.3,266.0,000070,,,A
+$GPGGA,115957.439,-3003.3768,N,-5128.7310,E,1,08,0.8,46.1,M,,,
+$GPRMC,115957.439,A,-3003.3768,N,-5128.7310,E,44.3,265.0,000070,,,A
+$GPGGA,115959.747,-3003.3786,N,-5128.7514,E,1,08,0.8,46.1,M,,,
+$GPRMC,115959.747,A,-3003.3786,N,-5128.7514,E,44.3,265.0,000070,,,A
+$GPGGA,120002.051,-3003.3798,N,-5128.7718,E,1,08,0.8,46.1,M,,,
+$GPRMC,120002.051,A,-3003.3798,N,-5128.7718,E,44.3,266.0,000070,,,A
+$GPGGA,120004.354,-3003.3810,N,-5128.7922,E,1,08,0.8,46.1,M,,,
+$GPRMC,120004.354,A,-3003.3810,N,-5128.7922,E,44.3,265.0,000070,,,A
+$GPGGA,120006.663,-3003.3828,N,-5128.8126,E,1,08,0.8,46.1,M,,,
+$GPRMC,120006.663,A,-3003.3828,N,-5128.8126,E,44.3,265.0,000070,,,A
+$GPGGA,120009.034,-3003.3840,N,-5128.8336,E,1,08,0.8,46.1,M,,,
+$GPRMC,120009.034,A,-3003.3840,N,-5128.8336,E,44.3,266.0,000070,,,A
+$GPGGA,120011.337,-3003.3852,N,-5128.8540,E,1,08,0.8,46.1,M,,,
+$GPRMC,120011.337,A,-3003.3852,N,-5128.8540,E,44.3,265.0,000070,,,A
+$GPGGA,120013.646,-3003.3870,N,-5128.8744,E,1,08,0.8,46.1,M,,,
+$GPRMC,120013.646,A,-3003.3870,N,-5128.8744,E,44.3,265.0,000070,,,A
+$GPGGA,120015.949,-3003.3882,N,-5128.8948,E,1,08,0.8,46.1,M,,,
+$GPRMC,120015.949,A,-3003.3882,N,-5128.8948,E,44.3,266.0,000070,,,A
+$GPGGA,120018.320,-3003.3894,N,-5128.9158,E,1,08,0.8,46.1,M,,,
+$GPRMC,120018.320,A,-3003.3894,N,-5128.9158,E,44.3,265.0,000070,,,A
+$GPGGA,120020.628,-3003.3912,N,-5128.9362,E,1,08,0.8,46.1,M,,,
+$GPRMC,120020.628,A,-3003.3912,N,-5128.9362,E,44.3,265.0,000070,,,A
+$GPGGA,120022.932,-3003.3924,N,-5128.9566,E,1,08,0.8,46.1,M,,,
+$GPRMC,120022.932,A,-3003.3924,N,-5128.9566,E,44.3,266.0,000070,,,A
+$GPGGA,120025.235,-3003.3936,N,-5128.9770,E,1,08,0.8,46.1,M,,,
+$GPRMC,120025.235,A,-3003.3936,N,-5128.9770,E,44.3,265.0,000070,,,A
+$GPGGA,120027.544,-3003.3954,N,-5128.9974,E,1,08,0.8,46.1,M,,,
+$GPRMC,120027.544,A,-3003.3954,N,-5128.9974,E,44.3,265.0,000070,,,A
+$GPGGA,120029.915,-3003.3966,N,-5129.0184,E,1,08,0.8,46.1,M,,,
+$GPRMC,120029.915,A,-3003.3966,N,-5129.0184,E,44.3,266.0,000070,,,A
+$GPGGA,120032.218,-3003.3978,N,-5129.0388,E,1,08,0.8,46.1,M,,,
+$GPRMC,120032.218,A,-3003.3978,N,-5129.0388,E,44.3,265.0,000070,,,A
+$GPGGA,120034.527,-3003.3996,N,-5129.0592,E,1,08,0.8,46.1,M,,,
+$GPRMC,120034.527,A,-3003.3996,N,-5129.0592,E,44.3,265.0,000070,,,A
+$GPGGA,120036.830,-3003.4008,N,-5129.0796,E,1,08,0.8,46.1,M,,,
+$GPRMC,120036.830,A,-3003.4008,N,-5129.0796,E,44.3,265.0,000070,,,A
+$GPGGA,120039.206,-3003.4026,N,-5129.1006,E,1,08,0.8,46.1,M,,,
+$GPRMC,120039.206,A,-3003.4026,N,-5129.1006,E,44.3,265.0,000070,,,A
+$GPGGA,120041.510,-3003.4038,N,-5129.1210,E,1,08,0.8,46.1,M,,,
+$GPRMC,120041.510,A,-3003.4038,N,-5129.1210,E,44.3,266.0,000070,,,A
+$GPGGA,120043.813,-3003.4050,N,-5129.1414,E,1,08,0.8,46.1,M,,,
+$GPRMC,120043.813,A,-3003.4050,N,-5129.1414,E,44.3,265.0,000070,,,A
+$GPGGA,120046.122,-3003.4068,N,-5129.1618,E,1,08,0.8,46.1,M,,,
+$GPRMC,120046.122,A,-3003.4068,N,-5129.1618,E,44.3,265.0,000070,,,A
+$GPGGA,120048.425,-3003.4080,N,-5129.1822,E,1,08,0.8,46.1,M,,,
+$GPRMC,120048.425,A,-3003.4080,N,-5129.1822,E,44.3,266.0,000070,,,A
+$GPGGA,120050.796,-3003.4092,N,-5129.2032,E,1,08,0.8,46.1,M,,,
+$GPRMC,120050.796,A,-3003.4092,N,-5129.2032,E,44.3,265.0,000070,,,A
+$GPGGA,120053.105,-3003.4110,N,-5129.2236,E,1,08,0.8,46.1,M,,,
+$GPRMC,120053.105,A,-3003.4110,N,-5129.2236,E,44.3,265.0,000070,,,A
+$GPGGA,120055.408,-3003.4122,N,-5129.2440,E,1,08,0.8,46.1,M,,,
+$GPRMC,120055.408,A,-3003.4122,N,-5129.2440,E,44.3,266.0,000070,,,A
+$GPGGA,120057.712,-3003.4134,N,-5129.2644,E,1,08,0.8,46.1,M,,,
+$GPRMC,120057.712,A,-3003.4134,N,-5129.2644,E,44.3,265.0,000070,,,A
+$GPGGA,120100.020,-3003.4152,N,-5129.2848,E,1,08,0.8,46.1,M,,,
+$GPRMC,120100.020,A,-3003.4152,N,-5129.2848,E,44.3,265.0,000070,,,A
+$GPGGA,120102.391,-3003.4164,N,-5129.3058,E,1,08,0.8,46.1,M,,,
+$GPRMC,120102.391,A,-3003.4164,N,-5129.3058,E,44.3,266.0,000070,,,A
+$GPGGA,120104.695,-3003.4176,N,-5129.3262,E,1,08,0.8,46.1,M,,,
+$GPRMC,120104.695,A,-3003.4176,N,-5129.3262,E,44.3,265.0,000070,,,A
+$GPGGA,120107.003,-3003.4194,N,-5129.3466,E,1,08,0.8,46.1,M,,,
+$GPRMC,120107.003,A,-3003.4194,N,-5129.3466,E,44.3,265.0,000070,,,A
+$GPGGA,120109.306,-3003.4206,N,-5129.3670,E,1,08,0.8,46.1,M,,,
+$GPRMC,120109.306,A,-3003.4206,N,-5129.3670,E,44.3,265.0,000070,,,A
+$GPGGA,120111.615,-3003.4224,N,-5129.3874,E,1,08,0.8,46.1,M,,,
+$GPRMC,120111.615,A,-3003.4224,N,-5129.3874,E,44.3,265.0,000070,,,A
+$GPGGA,120113.986,-3003.4236,N,-5129.4084,E,1,08,0.8,46.1,M,,,
+$GPRMC,120113.986,A,-3003.4236,N,-5129.4084,E,44.3,265.0,000070,,,A
+$GPGGA,120116.294,-3003.4254,N,-5129.4288,E,1,08,0.8,46.1,M,,,
+$GPRMC,120116.294,A,-3003.4254,N,-5129.4288,E,44.3,264.0,000070,,,A
+$GPGGA,120118.603,-3003.4272,N,-5129.4492,E,1,08,0.8,46.1,M,,,
+$GPRMC,120118.603,A,-3003.4272,N,-5129.4492,E,44.3,265.0,000070,,,A
+$GPGGA,120120.906,-3003.4284,N,-5129.4696,E,1,08,0.8,46.1,M,,,
+$GPRMC,120120.906,A,-3003.4284,N,-5129.4696,E,44.3,265.0,000070,,,A
+$GPGGA,120123.215,-3003.4302,N,-5129.4900,E,1,08,0.8,46.1,M,,,
+$GPRMC,120123.215,A,-3003.4302,N,-5129.4900,E,44.3,265.0,000070,,,A
+$GPGGA,120125.586,-3003.4314,N,-5129.5110,E,1,08,0.8,46.1,M,,,
+$GPRMC,120125.586,A,-3003.4314,N,-5129.5110,E,44.3,265.0,000070,,,A
+$GPGGA,120127.894,-3003.4332,N,-5129.5314,E,1,08,0.8,46.1,M,,,
+$GPRMC,120127.894,A,-3003.4332,N,-5129.5314,E,44.3,265.0,000070,,,A
+$GPGGA,120130.198,-3003.4344,N,-5129.5518,E,1,08,0.8,46.1,M,,,
+$GPRMC,120130.198,A,-3003.4344,N,-5129.5518,E,44.3,265.0,000070,,,A
+$GPGGA,120132.506,-3003.4362,N,-5129.5722,E,1,08,0.8,46.1,M,,,
+$GPRMC,120132.506,A,-3003.4362,N,-5129.5722,E,44.3,265.0,000070,,,A
+$GPGGA,120134.810,-3003.4374,N,-5129.5926,E,1,08,0.8,46.1,M,,,
+$GPRMC,120134.810,A,-3003.4374,N,-5129.5926,E,44.3,265.0,000070,,,A
+$GPGGA,120137.118,-3003.4392,N,-5129.6130,E,1,08,0.8,46.1,M,,,
+$GPRMC,120137.118,A,-3003.4392,N,-5129.6130,E,44.3,264.0,000070,,,A
+$GPGGA,120139.494,-3003.4410,N,-5129.6340,E,1,08,0.8,46.1,M,,,
+$GPRMC,120139.494,A,-3003.4410,N,-5129.6340,E,44.3,265.0,000070,,,A
+$GPGGA,120141.797,-3003.4422,N,-5129.6544,E,1,08,0.8,46.1,M,,,
+$GPRMC,120141.797,A,-3003.4422,N,-5129.6544,E,44.3,265.0,000070,,,A
+$GPGGA,120144.106,-3003.4440,N,-5129.6748,E,1,08,0.8,46.1,M,,,
+$GPRMC,120144.106,A,-3003.4440,N,-5129.6748,E,44.3,265.0,000070,,,A
+$GPGGA,120146.409,-3003.4452,N,-5129.6952,E,1,08,0.8,46.1,M,,,
+$GPRMC,120146.409,A,-3003.4452,N,-5129.6952,E,44.3,265.0,000070,,,A
+$GPGGA,120148.718,-3003.4470,N,-5129.7156,E,1,08,0.8,46.1,M,,,
+$GPRMC,120148.718,A,-3003.4470,N,-5129.7156,E,44.3,265.0,000070,,,A
+$GPGGA,120151.089,-3003.4482,N,-5129.7366,E,1,08,0.8,46.1,M,,,
+$GPRMC,120151.089,A,-3003.4482,N,-5129.7366,E,44.3,265.0,000070,,,A
+$GPGGA,120153.397,-3003.4500,N,-5129.7570,E,1,08,0.8,46.1,M,,,
+$GPRMC,120153.397,A,-3003.4500,N,-5129.7570,E,44.3,265.0,000070,,,A
+$GPGGA,120155.701,-3003.4512,N,-5129.7774,E,1,08,0.8,46.1,M,,,
+$GPRMC,120155.701,A,-3003.4512,N,-5129.7774,E,44.3,265.0,000070,,,A
+$GPGGA,120158.009,-3003.4530,N,-5129.7978,E,1,08,0.8,46.1,M,,,
+$GPRMC,120158.009,A,-3003.4530,N,-5129.7978,E,44.3,265.0,000070,,,A
+$GPGGA,120200.313,-3003.4542,N,-5129.8182,E,1,08,0.8,46.1,M,,,
+$GPRMC,120200.313,A,-3003.4542,N,-5129.8182,E,44.3,266.0,000070,,,A
+$GPGGA,120202.616,-3003.4554,N,-5129.8386,E,1,08,0.8,46.1,M,,,
+$GPRMC,120202.616,A,-3003.4554,N,-5129.8386,E,44.3,266.0,000070,,,A
+$GPGGA,120204.987,-3003.4566,N,-5129.8596,E,1,08,0.8,46.1,M,,,
+$GPRMC,120204.987,A,-3003.4566,N,-5129.8596,E,44.3,265.0,000070,,,A
+$GPGGA,120207.296,-3003.4584,N,-5129.8800,E,1,08,0.8,46.1,M,,,
+$GPRMC,120207.296,A,-3003.4584,N,-5129.8800,E,44.3,265.0,000070,,,A
+$GPGGA,120209.599,-3003.4596,N,-5129.9004,E,1,08,0.8,46.1,M,,,
+$GPRMC,120209.599,A,-3003.4596,N,-5129.9004,E,44.3,266.0,000070,,,A
+$GPGGA,120211.903,-3003.4608,N,-5129.9208,E,1,08,0.8,46.1,M,,,
+$GPRMC,120211.903,A,-3003.4608,N,-5129.9208,E,44.3,266.0,000070,,,A
+$GPGGA,120214.206,-3003.4620,N,-5129.9412,E,1,08,0.8,46.1,M,,,
+$GPRMC,120214.206,A,-3003.4620,N,-5129.9412,E,44.3,265.0,000070,,,A
+$GPGGA,120216.515,-3003.4638,N,-5129.9616,E,1,08,0.8,46.1,M,,,
+$GPRMC,120216.515,A,-3003.4638,N,-5129.9616,E,44.3,265.0,000070,,,A
+$GPGGA,120218.886,-3003.4650,N,-5129.9826,E,1,08,0.8,46.1,M,,,
+$GPRMC,120218.886,A,-3003.4650,N,-5129.9826,E,44.3,266.0,000070,,,A
+$GPGGA,120221.189,-3003.4662,N,-5130.0030,E,1,08,0.8,46.1,M,,,
+$GPRMC,120221.189,A,-3003.4662,N,-5130.0030,E,44.3,266.0,000070,,,A
+$GPGGA,120223.493,-3003.4674,N,-5130.0234,E,1,08,0.8,46.1,M,,,
+$GPRMC,120223.493,A,-3003.4674,N,-5130.0234,E,44.3,265.0,000070,,,A
+$GPGGA,120225.801,-3003.4692,N,-5130.0438,E,1,08,0.8,46.1,M,,,
+$GPRMC,120225.801,A,-3003.4692,N,-5130.0438,E,44.3,265.0,000070,,,A
+$GPGGA,120228.105,-3003.4704,N,-5130.0642,E,1,08,0.8,46.1,M,,,
+$GPRMC,120228.105,A,-3003.4704,N,-5130.0642,E,44.3,266.0,000070,,,A
+$GPGGA,120230.408,-3003.4716,N,-5130.0846,E,1,08,0.8,46.1,M,,,
+$GPRMC,120230.408,A,-3003.4716,N,-5130.0846,E,44.3,265.0,000070,,,A
+$GPGGA,120232.784,-3003.4734,N,-5130.1056,E,1,08,0.8,46.1,M,,,
+$GPRMC,120232.784,A,-3003.4734,N,-5130.1056,E,44.3,266.0,000070,,,A
+$GPGGA,120235.084,-3003.4740,N,-5130.1260,E,1,08,0.8,46.1,M,,,
+$GPRMC,120235.084,A,-3003.4740,N,-5130.1260,E,44.3,267.0,000070,,,A
+$GPGGA,120237.388,-3003.4752,N,-5130.1464,E,1,08,0.8,46.1,M,,,
+$GPRMC,120237.388,A,-3003.4752,N,-5130.1464,E,44.3,266.0,000070,,,A
+$GPGGA,120239.691,-3003.4764,N,-5130.1668,E,1,08,0.8,46.1,M,,,
+$GPRMC,120239.691,A,-3003.4764,N,-5130.1668,E,44.3,266.0,000070,,,A
+$GPGGA,120241.995,-3003.4776,N,-5130.1872,E,1,08,0.8,46.1,M,,,
+$GPRMC,120241.995,A,-3003.4776,N,-5130.1872,E,44.3,266.0,000070,,,A
+$GPGGA,120244.298,-3003.4788,N,-5130.2076,E,1,08,0.8,46.1,M,,,
+$GPRMC,120244.298,A,-3003.4788,N,-5130.2076,E,44.3,266.0,000070,,,A
+$GPGGA,120246.602,-3003.4800,N,-5130.2280,E,1,08,0.8,46.1,M,,,
+$GPRMC,120246.602,A,-3003.4800,N,-5130.2280,E,44.3,266.0,000070,,,A
+$GPGGA,120248.973,-3003.4812,N,-5130.2490,E,1,08,0.8,46.1,M,,,
+$GPRMC,120248.973,A,-3003.4812,N,-5130.2490,E,44.3,266.0,000070,,,A
+$GPGGA,120251.276,-3003.4824,N,-5130.2694,E,1,08,0.8,46.1,M,,,
+$GPRMC,120251.276,A,-3003.4824,N,-5130.2694,E,44.3,266.0,000070,,,A
+$GPGGA,120253.580,-3003.4836,N,-5130.2898,E,1,08,0.8,46.1,M,,,
+$GPRMC,120253.580,A,-3003.4836,N,-5130.2898,E,44.3,266.0,000070,,,A
+$GPGGA,120255.883,-3003.4848,N,-5130.3102,E,1,08,0.8,46.1,M,,,
+$GPRMC,120255.883,A,-3003.4848,N,-5130.3102,E,44.3,266.0,000070,,,A
+$GPGGA,120258.187,-3003.4860,N,-5130.3306,E,1,08,0.8,46.1,M,,,
+$GPRMC,120258.187,A,-3003.4860,N,-5130.3306,E,44.3,266.0,000070,,,A
+$GPGGA,120300.490,-3003.4872,N,-5130.3510,E,1,08,0.8,46.1,M,,,
+$GPRMC,120300.490,A,-3003.4872,N,-5130.3510,E,44.3,266.0,000070,,,A
+$GPGGA,120302.861,-3003.4884,N,-5130.3720,E,1,08,0.8,46.1,M,,,
+$GPRMC,120302.861,A,-3003.4884,N,-5130.3720,E,44.3,267.0,000070,,,A
+$GPGGA,120305.162,-3003.4890,N,-5130.3924,E,1,08,0.8,46.1,M,,,
+$GPRMC,120305.162,A,-3003.4890,N,-5130.3924,E,44.3,267.0,000070,,,A
+$GPGGA,120307.465,-3003.4902,N,-5130.4128,E,1,08,0.8,46.1,M,,,
+$GPRMC,120307.465,A,-3003.4902,N,-5130.4128,E,44.3,267.0,000070,,,A
+$GPGGA,120309.766,-3003.4908,N,-5130.4332,E,1,08,0.8,46.1,M,,,
+$GPRMC,120309.766,A,-3003.4908,N,-5130.4332,E,44.3,267.0,000070,,,A
+$GPGGA,120312.137,-3003.4920,N,-5130.4542,E,1,08,0.8,46.1,M,,,
+$GPRMC,120312.137,A,-3003.4920,N,-5130.4542,E,44.3,267.0,000070,,,A
+$GPGGA,120314.437,-3003.4926,N,-5130.4746,E,1,08,0.8,46.1,M,,,
+$GPRMC,120314.437,A,-3003.4926,N,-5130.4746,E,44.3,267.0,000070,,,A
+$GPGGA,120316.741,-3003.4938,N,-5130.4950,E,1,08,0.8,46.1,M,,,
+$GPRMC,120316.741,A,-3003.4938,N,-5130.4950,E,44.3,266.0,000070,,,A
+$GPGGA,120319.044,-3003.4950,N,-5130.5154,E,1,08,0.8,46.1,M,,,
+$GPRMC,120319.044,A,-3003.4950,N,-5130.5154,E,44.3,266.0,000070,,,A
+$GPGGA,120321.348,-3003.4962,N,-5130.5358,E,1,08,0.8,46.1,M,,,
+$GPRMC,120321.348,A,-3003.4962,N,-5130.5358,E,44.3,265.0,000070,,,A
+$GPGGA,120323.656,-3003.4980,N,-5130.5562,E,1,08,0.8,46.1,M,,,
+$GPRMC,120323.656,A,-3003.4980,N,-5130.5562,E,44.3,264.0,000070,,,A
+$GPGGA,120325.965,-3003.4998,N,-5130.5766,E,1,08,0.8,46.1,M,,,
+$GPRMC,120325.965,A,-3003.4998,N,-5130.5766,E,44.3,265.0,000070,,,A
+$GPGGA,120328.268,-3003.5010,N,-5130.5970,E,1,08,0.8,46.1,M,,,
+$GPRMC,120328.268,A,-3003.5010,N,-5130.5970,E,44.3,265.0,000070,,,A
+$GPGGA,120330.644,-3003.5028,N,-5130.6180,E,1,08,0.8,46.1,M,,,
+$GPRMC,120330.644,A,-3003.5028,N,-5130.6180,E,44.3,265.0,000070,,,A
+$GPGGA,120332.948,-3003.5040,N,-5130.6384,E,1,08,0.8,46.1,M,,,
+$GPRMC,120332.948,A,-3003.5040,N,-5130.6384,E,44.3,265.0,000070,,,A
+$GPGGA,120335.256,-3003.5058,N,-5130.6588,E,1,08,0.8,46.1,M,,,
+$GPRMC,120335.256,A,-3003.5058,N,-5130.6588,E,44.3,264.0,000070,,,A
+$GPGGA,120337.564,-3003.5076,N,-5130.6792,E,1,08,0.8,46.1,M,,,
+$GPRMC,120337.564,A,-3003.5076,N,-5130.6792,E,44.3,265.0,000070,,,A
+$GPGGA,120339.868,-3003.5088,N,-5130.6996,E,1,08,0.8,46.1,M,,,
+$GPRMC,120339.868,A,-3003.5088,N,-5130.6996,E,44.3,263.0,000070,,,A
+$GPGGA,120342.192,-3003.5118,N,-5130.7200,E,1,08,0.8,46.1,M,,,
+$GPRMC,120342.192,A,-3003.5118,N,-5130.7200,E,44.3,259.0,000070,,,A
+$GPGGA,120344.461,-3003.5154,N,-5130.7398,E,1,08,0.8,46.1,M,,,
+$GPRMC,120344.461,A,-3003.5154,N,-5130.7398,E,44.3,257.0,000070,,,A
+$GPGGA,120346.808,-3003.5196,N,-5130.7602,E,1,08,0.8,46.1,M,,,
+$GPRMC,120346.808,A,-3003.5196,N,-5130.7602,E,44.3,256.0,000070,,,A
+$GPGGA,120349.090,-3003.5238,N,-5130.7800,E,1,08,0.8,46.1,M,,,
+$GPRMC,120349.090,A,-3003.5238,N,-5130.7800,E,44.3,257.0,000070,,,A
+$GPGGA,120351.358,-3003.5274,N,-5130.7998,E,1,08,0.8,46.1,M,,,
+$GPRMC,120351.358,A,-3003.5274,N,-5130.7998,E,44.3,257.0,000070,,,A
+$GPGGA,120353.706,-3003.5316,N,-5130.8202,E,1,08,0.8,46.1,M,,,
+$GPRMC,120353.706,A,-3003.5316,N,-5130.8202,E,44.3,256.0,000070,,,A
+$GPGGA,120355.988,-3003.5358,N,-5130.8400,E,1,08,0.8,46.1,M,,,
+$GPRMC,120355.988,A,-3003.5358,N,-5130.8400,E,44.3,256.0,000070,,,A
+$GPGGA,120358.335,-3003.5400,N,-5130.8604,E,1,08,0.8,46.1,M,,,
+$GPRMC,120358.335,A,-3003.5400,N,-5130.8604,E,44.3,257.0,000070,,,A
+$GPGGA,120400.604,-3003.5436,N,-5130.8802,E,1,08,0.8,46.1,M,,,
+$GPRMC,120400.604,A,-3003.5436,N,-5130.8802,E,44.3,257.0,000070,,,A
+$GPGGA,120402.885,-3003.5478,N,-5130.9000,E,1,08,0.8,46.1,M,,,
+$GPRMC,120402.885,A,-3003.5478,N,-5130.9000,E,44.3,256.0,000070,,,A
+$GPGGA,120405.233,-3003.5520,N,-5130.9204,E,1,08,0.8,46.1,M,,,
+$GPRMC,120405.233,A,-3003.5520,N,-5130.9204,E,44.3,257.0,000070,,,A
+$GPGGA,120407.502,-3003.5556,N,-5130.9402,E,1,08,0.8,46.1,M,,,
+$GPRMC,120407.502,A,-3003.5556,N,-5130.9402,E,44.3,257.0,000070,,,A
+$GPGGA,120409.849,-3003.5598,N,-5130.9606,E,1,08,0.8,46.1,M,,,
+$GPRMC,120409.849,A,-3003.5598,N,-5130.9606,E,44.3,258.0,000070,,,A
+$GPGGA,120412.107,-3003.5628,N,-5130.9804,E,1,08,0.8,46.1,M,,,
+$GPRMC,120412.107,A,-3003.5628,N,-5130.9804,E,44.3,260.0,000070,,,A
+$GPGGA,120414.431,-3003.5658,N,-5131.0008,E,1,08,0.8,46.1,M,,,
+$GPRMC,120414.431,A,-3003.5658,N,-5131.0008,E,44.3,260.0,000070,,,A
+$GPGGA,120416.755,-3003.5688,N,-5131.0212,E,1,08,0.8,46.1,M,,,
+$GPRMC,120416.755,A,-3003.5688,N,-5131.0212,E,44.3,260.0,000070,,,A
+$GPGGA,120419.080,-3003.5718,N,-5131.0416,E,1,08,0.8,46.1,M,,,
+$GPRMC,120419.080,A,-3003.5718,N,-5131.0416,E,44.3,259.0,000070,,,A
+$GPGGA,120421.348,-3003.5754,N,-5131.0614,E,1,08,0.8,46.1,M,,,
+$GPRMC,120421.348,A,-3003.5754,N,-5131.0614,E,44.3,259.0,000070,,,A
+$GPGGA,120423.672,-3003.5784,N,-5131.0818,E,1,08,0.8,46.1,M,,,
+$GPRMC,120423.672,A,-3003.5784,N,-5131.0818,E,44.3,260.0,000070,,,A
+$GPGGA,120425.997,-3003.5814,N,-5131.1022,E,1,08,0.8,46.1,M,,,
+$GPRMC,120425.997,A,-3003.5814,N,-5131.1022,E,44.3,260.0,000070,,,A
+$GPGGA,120428.321,-3003.5844,N,-5131.1226,E,1,08,0.8,46.1,M,,,
+$GPRMC,120428.321,A,-3003.5844,N,-5131.1226,E,44.3,259.0,000070,,,A
+$GPGGA,120430.656,-3003.5880,N,-5131.1430,E,1,08,0.8,46.1,M,,,
+$GPRMC,120430.656,A,-3003.5880,N,-5131.1430,E,44.3,259.0,000070,,,A
+$GPGGA,120432.913,-3003.5910,N,-5131.1628,E,1,08,0.8,46.1,M,,,
+$GPRMC,120432.913,A,-3003.5910,N,-5131.1628,E,44.3,260.0,000070,,,A
+$GPGGA,120435.237,-3003.5940,N,-5131.1832,E,1,08,0.8,46.1,M,,,
+$GPRMC,120435.237,A,-3003.5940,N,-5131.1832,E,44.3,260.0,000070,,,A
+$GPGGA,120437.562,-3003.5970,N,-5131.2036,E,1,08,0.8,46.1,M,,,
+$GPRMC,120437.562,A,-3003.5970,N,-5131.2036,E,44.3,260.0,000070,,,A
+$GPGGA,120439.886,-3003.6000,N,-5131.2240,E,1,08,0.8,46.1,M,,,
+$GPRMC,120439.886,A,-3003.6000,N,-5131.2240,E,44.3,259.0,000070,,,A
+$GPGGA,120442.154,-3003.6036,N,-5131.2438,E,1,08,0.8,46.1,M,,,
+$GPRMC,120442.154,A,-3003.6036,N,-5131.2438,E,44.3,259.0,000070,,,A
+$GPGGA,120444.479,-3003.6066,N,-5131.2642,E,1,08,0.8,46.1,M,,,
+$GPRMC,120444.479,A,-3003.6066,N,-5131.2642,E,44.3,260.0,000070,,,A
+$GPGGA,120446.803,-3003.6096,N,-5131.2846,E,1,08,0.8,46.1,M,,,
+$GPRMC,120446.803,A,-3003.6096,N,-5131.2846,E,44.3,260.0,000070,,,A
+$GPGGA,120449.127,-3003.6126,N,-5131.3050,E,1,08,0.8,46.1,M,,,
+$GPRMC,120449.127,A,-3003.6126,N,-5131.3050,E,44.3,260.0,000070,,,A
+$GPGGA,120451.385,-3003.6156,N,-5131.3248,E,1,08,0.8,46.1,M,,,
+$GPRMC,120451.385,A,-3003.6156,N,-5131.3248,E,44.3,259.0,000070,,,A
+$GPGGA,120453.720,-3003.6192,N,-5131.3452,E,1,08,0.8,46.1,M,,,
+$GPRMC,120453.720,A,-3003.6192,N,-5131.3452,E,44.3,259.0,000070,,,A
+$GPGGA,120456.044,-3003.6222,N,-5131.3656,E,1,08,0.8,46.1,M,,,
+$GPRMC,120456.044,A,-3003.6222,N,-5131.3656,E,44.3,260.0,000070,,,A
+$GPGGA,120458.368,-3003.6252,N,-5131.3860,E,1,08,0.8,46.1,M,,,
+$GPRMC,120458.368,A,-3003.6252,N,-5131.3860,E,44.3,260.0,000070,,,A
+$GPGGA,120500.692,-3003.6282,N,-5131.4064,E,1,08,0.8,46.1,M,,,
+$GPRMC,120500.692,A,-3003.6282,N,-5131.4064,E,44.3,259.0,000070,,,A
+$GPGGA,120502.961,-3003.6318,N,-5131.4262,E,1,08,0.8,46.1,M,,,
+$GPRMC,120502.961,A,-3003.6318,N,-5131.4262,E,44.3,259.0,000070,,,A
+$GPGGA,120505.285,-3003.6348,N,-5131.4466,E,1,08,0.8,46.1,M,,,
+$GPRMC,120505.285,A,-3003.6348,N,-5131.4466,E,44.3,260.0,000070,,,A
+$GPGGA,120507.609,-3003.6378,N,-5131.4670,E,1,08,0.8,46.1,M,,,
+$GPRMC,120507.609,A,-3003.6378,N,-5131.4670,E,44.3,260.0,000070,,,A
+$GPGGA,120509.934,-3003.6408,N,-5131.4874,E,1,08,0.8,46.1,M,,,
+$GPRMC,120509.934,A,-3003.6408,N,-5131.4874,E,44.3,260.0,000070,,,A
+$GPGGA,120512.191,-3003.6438,N,-5131.5072,E,1,08,0.8,46.1,M,,,
+$GPRMC,120512.191,A,-3003.6438,N,-5131.5072,E,44.3,259.0,000070,,,A
+$GPGGA,120514.526,-3003.6474,N,-5131.5276,E,1,08,0.8,46.1,M,,,
+$GPRMC,120514.526,A,-3003.6474,N,-5131.5276,E,44.3,259.0,000070,,,A
+$GPGGA,120516.850,-3003.6504,N,-5131.5480,E,1,08,0.8,46.1,M,,,
+$GPRMC,120516.850,A,-3003.6504,N,-5131.5480,E,44.3,260.0,000070,,,A
+$GPGGA,120519.174,-3003.6534,N,-5131.5684,E,1,08,0.8,46.1,M,,,
+$GPRMC,120519.174,A,-3003.6534,N,-5131.5684,E,44.3,260.0,000070,,,A
+$GPGGA,120521.432,-3003.6564,N,-5131.5882,E,1,08,0.8,46.1,M,,,
+$GPRMC,120521.432,A,-3003.6564,N,-5131.5882,E,44.3,259.0,000070,,,A
+$GPGGA,120523.767,-3003.6600,N,-5131.6086,E,1,08,0.8,46.1,M,,,
+$GPRMC,120523.767,A,-3003.6600,N,-5131.6086,E,44.3,259.0,000070,,,A
+$GPGGA,120526.091,-3003.6630,N,-5131.6290,E,1,08,0.8,46.1,M,,,
+$GPRMC,120526.091,A,-3003.6630,N,-5131.6290,E,44.3,260.0,000070,,,A
+$GPGGA,120528.415,-3003.6660,N,-5131.6494,E,1,08,0.8,46.1,M,,,
+$GPRMC,120528.415,A,-3003.6660,N,-5131.6494,E,44.3,260.0,000070,,,A
+$GPGGA,120530.673,-3003.6690,N,-5131.6692,E,1,08,0.8,46.1,M,,,
+$GPRMC,120530.673,A,-3003.6690,N,-5131.6692,E,44.3,260.0,000070,,,A
+$GPGGA,120532.997,-3003.6720,N,-5131.6896,E,1,08,0.8,46.1,M,,,
+$GPRMC,120532.997,A,-3003.6720,N,-5131.6896,E,44.3,259.0,000070,,,A
+$GPGGA,120535.332,-3003.6756,N,-5131.7100,E,1,08,0.8,46.1,M,,,
+$GPRMC,120535.332,A,-3003.6756,N,-5131.7100,E,44.3,259.0,000070,,,A
+$GPGGA,120537.656,-3003.6786,N,-5131.7304,E,1,08,0.8,46.1,M,,,
+$GPRMC,120537.656,A,-3003.6786,N,-5131.7304,E,44.3,260.0,000070,,,A
+$GPGGA,120539.980,-3003.6816,N,-5131.7508,E,1,08,0.8,46.1,M,,,
+$GPRMC,120539.980,A,-3003.6816,N,-5131.7508,E,44.3,260.0,000070,,,A
+$GPGGA,120542.238,-3003.6846,N,-5131.7706,E,1,08,0.8,46.1,M,,,
+$GPRMC,120542.238,A,-3003.6846,N,-5131.7706,E,44.3,259.0,000070,,,A
+$GPGGA,120544.573,-3003.6882,N,-5131.7910,E,1,08,0.8,46.1,M,,,
+$GPRMC,120544.573,A,-3003.6882,N,-5131.7910,E,44.3,259.0,000070,,,A
+$GPGGA,120546.897,-3003.6912,N,-5131.8114,E,1,08,0.8,46.1,M,,,
+$GPRMC,120546.897,A,-3003.6912,N,-5131.8114,E,44.3,259.0,000070,,,A
+$GPGGA,120549.166,-3003.6948,N,-5131.8312,E,1,08,0.8,46.1,M,,,
+$GPRMC,120549.166,A,-3003.6948,N,-5131.8312,E,44.3,258.0,000070,,,A
+$GPGGA,120551.501,-3003.6984,N,-5131.8516,E,1,08,0.8,46.1,M,,,
+$GPRMC,120551.501,A,-3003.6984,N,-5131.8516,E,44.3,259.0,000070,,,A
+$GPGGA,120553.825,-3003.7014,N,-5131.8720,E,1,08,0.8,46.1,M,,,
+$GPRMC,120553.825,A,-3003.7014,N,-5131.8720,E,44.3,259.0,000070,,,A
+$GPGGA,120556.093,-3003.7050,N,-5131.8918,E,1,08,0.8,46.1,M,,,
+$GPRMC,120556.093,A,-3003.7050,N,-5131.8918,E,44.3,258.0,000070,,,A
+$GPGGA,120558.428,-3003.7086,N,-5131.9122,E,1,08,0.8,46.1,M,,,
+$GPRMC,120558.428,A,-3003.7086,N,-5131.9122,E,44.3,259.0,000070,,,A
+$GPGGA,120600.753,-3003.7116,N,-5131.9326,E,1,08,0.8,46.1,M,,,
+$GPRMC,120600.753,A,-3003.7116,N,-5131.9326,E,44.3,259.0,000070,,,A
+$GPGGA,120603.021,-3003.7152,N,-5131.9524,E,1,08,0.8,46.1,M,,,
+$GPRMC,120603.021,A,-3003.7152,N,-5131.9524,E,44.3,258.0,000070,,,A
+$GPGGA,120605.356,-3003.7188,N,-5131.9728,E,1,08,0.8,46.1,M,,,
+$GPRMC,120605.356,A,-3003.7188,N,-5131.9728,E,44.3,259.0,000070,,,A
+$GPGGA,120607.680,-3003.7218,N,-5131.9932,E,1,08,0.8,46.1,M,,,
+$GPRMC,120607.680,A,-3003.7218,N,-5131.9932,E,44.3,259.0,000070,,,A
+$GPGGA,120609.949,-3003.7254,N,-5132.0130,E,1,08,0.8,46.1,M,,,
+$GPRMC,120609.949,A,-3003.7254,N,-5132.0130,E,44.3,258.0,000070,,,A
+$GPGGA,120612.284,-3003.7290,N,-5132.0334,E,1,08,0.8,46.1,M,,,
+$GPRMC,120612.284,A,-3003.7290,N,-5132.0334,E,44.3,259.0,000070,,,A
+$GPGGA,120614.619,-3003.7326,N,-5132.0538,E,1,08,0.8,46.1,M,,,
+$GPRMC,120614.619,A,-3003.7326,N,-5132.0538,E,44.3,259.0,000070,,,A
+$GPGGA,120616.876,-3003.7356,N,-5132.0736,E,1,08,0.8,46.1,M,,,
+$GPRMC,120616.876,A,-3003.7356,N,-5132.0736,E,44.3,259.0,000070,,,A
+$GPGGA,120619.211,-3003.7392,N,-5132.0940,E,1,08,0.8,46.1,M,,,
+$GPRMC,120619.211,A,-3003.7392,N,-5132.0940,E,44.3,259.0,000070,,,A
+$GPGGA,120621.546,-3003.7428,N,-5132.1144,E,1,08,0.8,46.1,M,,,
+$GPRMC,120621.546,A,-3003.7428,N,-5132.1144,E,44.3,259.0,000070,,,A
+$GPGGA,120623.804,-3003.7458,N,-5132.1342,E,1,08,0.8,46.1,M,,,
+$GPRMC,120623.804,A,-3003.7458,N,-5132.1342,E,44.3,259.0,000070,,,A
+$GPGGA,120626.139,-3003.7494,N,-5132.1546,E,1,08,0.8,46.1,M,,,
+$GPRMC,120626.139,A,-3003.7494,N,-5132.1546,E,44.3,259.0,000070,,,A
+$GPGGA,120628.474,-3003.7530,N,-5132.1750,E,1,08,0.8,46.1,M,,,
+$GPRMC,120628.474,A,-3003.7530,N,-5132.1750,E,44.3,259.0,000070,,,A
+$GPGGA,120630.731,-3003.7560,N,-5132.1948,E,1,08,0.8,46.1,M,,,
+$GPRMC,120630.731,A,-3003.7560,N,-5132.1948,E,44.3,259.0,000070,,,A
+$GPGGA,120633.066,-3003.7596,N,-5132.2152,E,1,08,0.8,46.1,M,,,
+$GPRMC,120633.066,A,-3003.7596,N,-5132.2152,E,44.3,259.0,000070,,,A
+$GPGGA,120635.401,-3003.7632,N,-5132.2356,E,1,08,0.8,46.1,M,,,
+$GPRMC,120635.401,A,-3003.7632,N,-5132.2356,E,44.3,259.0,000070,,,A
+$GPGGA,120637.659,-3003.7662,N,-5132.2554,E,1,08,0.8,46.1,M,,,
+$GPRMC,120637.659,A,-3003.7662,N,-5132.2554,E,44.3,259.0,000070,,,A
+$GPGGA,120639.994,-3003.7698,N,-5132.2758,E,1,08,0.8,46.1,M,,,
+$GPRMC,120639.994,A,-3003.7698,N,-5132.2758,E,44.3,259.0,000070,,,A
+$GPGGA,120642.329,-3003.7734,N,-5132.2962,E,1,08,0.8,46.1,M,,,
+$GPRMC,120642.329,A,-3003.7734,N,-5132.2962,E,44.3,259.0,000070,,,A
+$GPGGA,120644.586,-3003.7764,N,-5132.3160,E,1,08,0.8,46.1,M,,,
+$GPRMC,120644.586,A,-3003.7764,N,-5132.3160,E,44.3,259.0,000070,,,A
+$GPGGA,120646.921,-3003.7800,N,-5132.3364,E,1,08,0.8,46.1,M,,,
+$GPRMC,120646.921,A,-3003.7800,N,-5132.3364,E,44.3,259.0,000070,,,A
+$GPGGA,120649.256,-3003.7836,N,-5132.3568,E,1,08,0.8,46.1,M,,,
+$GPRMC,120649.256,A,-3003.7836,N,-5132.3568,E,44.3,259.0,000070,,,A
+$GPGGA,120651.514,-3003.7866,N,-5132.3766,E,1,08,0.8,46.1,M,,,
+$GPRMC,120651.514,A,-3003.7866,N,-5132.3766,E,44.3,259.0,000070,,,A
+$GPGGA,120653.849,-3003.7902,N,-5132.3970,E,1,08,0.8,46.1,M,,,
+$GPRMC,120653.849,A,-3003.7902,N,-5132.3970,E,44.3,259.0,000070,,,A
+$GPGGA,120656.184,-3003.7938,N,-5132.4174,E,1,08,0.8,46.1,M,,,
+$GPRMC,120656.184,A,-3003.7938,N,-5132.4174,E,44.3,259.0,000070,,,A
+$GPGGA,120658.441,-3003.7968,N,-5132.4372,E,1,08,0.8,46.1,M,,,
+$GPRMC,120658.441,A,-3003.7968,N,-5132.4372,E,44.3,259.0,000070,,,A
+$GPGGA,120700.776,-3003.8004,N,-5132.4576,E,1,08,0.8,46.1,M,,,
+$GPRMC,120700.776,A,-3003.8004,N,-5132.4576,E,44.3,259.0,000070,,,A
+$GPGGA,120703.100,-3003.8034,N,-5132.4780,E,1,08,0.8,46.1,M,,,
+$GPRMC,120703.100,A,-3003.8034,N,-5132.4780,E,44.3,260.0,000070,,,A
+$GPGGA,120705.425,-3003.8064,N,-5132.4984,E,1,08,0.8,46.1,M,,,
+$GPRMC,120705.425,A,-3003.8064,N,-5132.4984,E,44.3,259.0,000070,,,A
+$GPGGA,120707.693,-3003.8100,N,-5132.5182,E,1,08,0.8,46.1,M,,,
+$GPRMC,120707.693,A,-3003.8100,N,-5132.5182,E,44.3,259.0,000070,,,A
+$GPGGA,120710.017,-3003.8130,N,-5132.5386,E,1,08,0.8,46.1,M,,,
+$GPRMC,120710.017,A,-3003.8130,N,-5132.5386,E,44.3,260.0,000070,,,A
+$GPGGA,120712.342,-3003.8160,N,-5132.5590,E,1,08,0.8,46.1,M,,,
+$GPRMC,120712.342,A,-3003.8160,N,-5132.5590,E,44.3,260.0,000070,,,A
+$GPGGA,120714.666,-3003.8190,N,-5132.5794,E,1,08,0.8,46.1,M,,,
+$GPRMC,120714.666,A,-3003.8190,N,-5132.5794,E,44.3,260.0,000070,,,A
+$GPGGA,120716.923,-3003.8220,N,-5132.5992,E,1,08,0.8,46.1,M,,,
+$GPRMC,120716.923,A,-3003.8220,N,-5132.5992,E,44.3,260.0,000070,,,A
+$GPGGA,120719.247,-3003.8250,N,-5132.6196,E,1,08,0.8,46.1,M,,,
+$GPRMC,120719.247,A,-3003.8250,N,-5132.6196,E,44.3,260.0,000070,,,A
+$GPGGA,120721.572,-3003.8280,N,-5132.6400,E,1,08,0.8,46.1,M,,,
+$GPRMC,120721.572,A,-3003.8280,N,-5132.6400,E,44.3,260.0,000070,,,A
+$GPGGA,120723.896,-3003.8310,N,-5132.6604,E,1,08,0.8,46.1,M,,,
+$GPRMC,120723.896,A,-3003.8310,N,-5132.6604,E,44.3,260.0,000070,,,A
+$GPGGA,120726.220,-3003.8340,N,-5132.6808,E,1,08,0.8,46.1,M,,,
+$GPRMC,120726.220,A,-3003.8340,N,-5132.6808,E,44.3,260.0,000070,,,A
+$GPGGA,120728.478,-3003.8370,N,-5132.7006,E,1,08,0.8,46.1,M,,,
+$GPRMC,120728.478,A,-3003.8370,N,-5132.7006,E,44.3,260.0,000070,,,A
+$GPGGA,120730.802,-3003.8400,N,-5132.7210,E,1,08,0.8,46.1,M,,,
+$GPRMC,120730.802,A,-3003.8400,N,-5132.7210,E,44.3,260.0,000070,,,A
+$GPGGA,120733.126,-3003.8430,N,-5132.7414,E,1,08,0.8,46.1,M,,,
+$GPRMC,120733.126,A,-3003.8430,N,-5132.7414,E,44.3,260.0,000070,,,A
+$GPGGA,120735.450,-3003.8460,N,-5132.7618,E,1,08,0.8,46.1,M,,,
+$GPRMC,120735.450,A,-3003.8460,N,-5132.7618,E,44.3,259.0,000070,,,A
+$GPGGA,120737.719,-3003.8496,N,-5132.7816,E,1,08,0.8,46.1,M,,,
+$GPRMC,120737.719,A,-3003.8496,N,-5132.7816,E,44.3,259.0,000070,,,A
+$GPGGA,120740.043,-3003.8526,N,-5132.8020,E,1,08,0.8,46.1,M,,,
+$GPRMC,120740.043,A,-3003.8526,N,-5132.8020,E,44.3,260.0,000070,,,A
+$GPGGA,120742.367,-3003.8556,N,-5132.8224,E,1,08,0.8,46.1,M,,,
+$GPRMC,120742.367,A,-3003.8556,N,-5132.8224,E,44.3,260.0,000070,,,A
+$GPGGA,120744.692,-3003.8586,N,-5132.8428,E,1,08,0.8,46.1,M,,,
+$GPRMC,120744.692,A,-3003.8586,N,-5132.8428,E,44.3,260.0,000070,,,A
+$GPGGA,120746.949,-3003.8616,N,-5132.8626,E,1,08,0.8,46.1,M,,,
+$GPRMC,120746.949,A,-3003.8616,N,-5132.8626,E,44.3,260.0,000070,,,A
+$GPGGA,120749.273,-3003.8646,N,-5132.8830,E,1,08,0.8,46.1,M,,,
+$GPRMC,120749.273,A,-3003.8646,N,-5132.8830,E,44.3,260.0,000070,,,A
+$GPGGA,120751.597,-3003.8676,N,-5132.9034,E,1,08,0.8,46.1,M,,,
+$GPRMC,120751.597,A,-3003.8676,N,-5132.9034,E,44.3,260.0,000070,,,A
+$GPGGA,120753.922,-3003.8706,N,-5132.9238,E,1,08,0.8,46.1,M,,,
+$GPRMC,120753.922,A,-3003.8706,N,-5132.9238,E,44.3,260.0,000070,,,A
+$GPGGA,120756.246,-3003.8736,N,-5132.9442,E,1,08,0.8,46.1,M,,,
+$GPRMC,120756.246,A,-3003.8736,N,-5132.9442,E,44.3,260.0,000070,,,A
+$GPGGA,120758.503,-3003.8766,N,-5132.9640,E,1,08,0.8,46.1,M,,,
+$GPRMC,120758.503,A,-3003.8766,N,-5132.9640,E,44.3,260.0,000070,,,A
+$GPGGA,120800.828,-3003.8796,N,-5132.9844,E,1,08,0.8,46.1,M,,,
+$GPRMC,120800.828,A,-3003.8796,N,-5132.9844,E,44.3,260.0,000070,,,A
+$GPGGA,120803.152,-3003.8826,N,-5133.0048,E,1,08,0.8,46.1,M,,,
+$GPRMC,120803.152,A,-3003.8826,N,-5133.0048,E,44.3,260.0,000070,,,A
+$GPGGA,120805.476,-3003.8856,N,-5133.0252,E,1,08,0.8,46.1,M,,,
+$GPRMC,120805.476,A,-3003.8856,N,-5133.0252,E,44.3,259.0,000070,,,A
+$GPGGA,120807.744,-3003.8892,N,-5133.0450,E,1,08,0.8,46.1,M,,,
+$GPRMC,120807.744,A,-3003.8892,N,-5133.0450,E,44.3,259.0,000070,,,A
+$GPGGA,120810.069,-3003.8922,N,-5133.0654,E,1,08,0.8,46.1,M,,,
+$GPRMC,120810.069,A,-3003.8922,N,-5133.0654,E,44.3,260.0,000070,,,A
+$GPGGA,120812.393,-3003.8952,N,-5133.0858,E,1,08,0.8,46.1,M,,,
+$GPRMC,120812.393,A,-3003.8952,N,-5133.0858,E,44.3,260.0,000070,,,A
+$GPGGA,120814.717,-3003.8982,N,-5133.1062,E,1,08,0.8,46.1,M,,,
+$GPRMC,120814.717,A,-3003.8982,N,-5133.1062,E,44.3,259.0,000070,,,A
+$GPGGA,120817.052,-3003.9018,N,-5133.1266,E,1,08,0.8,46.1,M,,,
+$GPRMC,120817.052,A,-3003.9018,N,-5133.1266,E,44.3,259.0,000070,,,A
+$GPGGA,120819.310,-3003.9048,N,-5133.1464,E,1,08,0.8,46.1,M,,,
+$GPRMC,120819.310,A,-3003.9048,N,-5133.1464,E,44.3,260.0,000070,,,A
+$GPGGA,120821.634,-3003.9078,N,-5133.1668,E,1,08,0.8,46.1,M,,,
+$GPRMC,120821.634,A,-3003.9078,N,-5133.1668,E,44.3,259.0,000070,,,A
+$GPGGA,120823.969,-3003.9114,N,-5133.1872,E,1,08,0.8,46.1,M,,,
+$GPRMC,120823.969,A,-3003.9114,N,-5133.1872,E,44.3,259.0,000070,,,A
+$GPGGA,120826.293,-3003.9144,N,-5133.2076,E,1,08,0.8,46.1,M,,,
+$GPRMC,120826.293,A,-3003.9144,N,-5133.2076,E,44.3,260.0,000070,,,A
+$GPGGA,120828.551,-3003.9174,N,-5133.2274,E,1,08,0.8,46.1,M,,,
+$GPRMC,120828.551,A,-3003.9174,N,-5133.2274,E,44.3,259.0,000070,,,A
+$GPGGA,120830.886,-3003.9210,N,-5133.2478,E,1,08,0.8,46.1,M,,,
+$GPRMC,120830.886,A,-3003.9210,N,-5133.2478,E,44.3,259.0,000070,,,A
+$GPGGA,120833.210,-3003.9240,N,-5133.2682,E,1,08,0.8,46.1,M,,,
+$GPRMC,120833.210,A,-3003.9240,N,-5133.2682,E,44.3,260.0,000070,,,A
+$GPGGA,120835.534,-3003.9270,N,-5133.2886,E,1,08,0.8,46.1,M,,,
+$GPRMC,120835.534,A,-3003.9270,N,-5133.2886,E,44.3,259.0,000070,,,A
+$GPGGA,120837.803,-3003.9306,N,-5133.3084,E,1,08,0.8,46.1,M,,,
+$GPRMC,120837.803,A,-3003.9306,N,-5133.3084,E,44.3,259.0,000070,,,A
+$GPGGA,120840.127,-3003.9336,N,-5133.3288,E,1,08,0.8,46.1,M,,,
+$GPRMC,120840.127,A,-3003.9336,N,-5133.3288,E,44.3,260.0,000070,,,A
+$GPGGA,120842.451,-3003.9366,N,-5133.3492,E,1,08,0.8,46.1,M,,,
+$GPRMC,120842.451,A,-3003.9366,N,-5133.3492,E,44.3,259.0,000070,,,A
+$GPGGA,120844.786,-3003.9402,N,-5133.3696,E,1,08,0.8,46.1,M,,,
+$GPRMC,120844.786,A,-3003.9402,N,-5133.3696,E,44.3,259.0,000070,,,A
+$GPGGA,120847.043,-3003.9432,N,-5133.3894,E,1,08,0.8,46.1,M,,,
+$GPRMC,120847.043,A,-3003.9432,N,-5133.3894,E,44.3,260.0,000070,,,A
+$GPGGA,120849.368,-3003.9462,N,-5133.4098,E,1,08,0.8,46.1,M,,,
+$GPRMC,120849.368,A,-3003.9462,N,-5133.4098,E,44.3,259.0,000070,,,A
+$GPGGA,120851.703,-3003.9498,N,-5133.4302,E,1,08,0.8,46.1,M,,,
+$GPRMC,120851.703,A,-3003.9498,N,-5133.4302,E,44.3,259.0,000070,,,A
+$GPGGA,120854.027,-3003.9528,N,-5133.4506,E,1,08,0.8,46.1,M,,,
+$GPRMC,120854.027,A,-3003.9528,N,-5133.4506,E,44.3,260.0,000070,,,A
+$GPGGA,120856.284,-3003.9558,N,-5133.4704,E,1,08,0.8,46.1,M,,,
+$GPRMC,120856.284,A,-3003.9558,N,-5133.4704,E,44.3,259.0,000070,,,A
+$GPGGA,120858.619,-3003.9594,N,-5133.4908,E,1,08,0.8,46.1,M,,,
+$GPRMC,120858.619,A,-3003.9594,N,-5133.4908,E,44.3,259.0,000070,,,A
+$GPGGA,120900.944,-3003.9624,N,-5133.5112,E,1,08,0.8,46.1,M,,,
+$GPRMC,120900.944,A,-3003.9624,N,-5133.5112,E,44.3,260.0,000070,,,A
+$GPGGA,120903.268,-3003.9654,N,-5133.5316,E,1,08,0.8,46.1,M,,,
+$GPRMC,120903.268,A,-3003.9654,N,-5133.5316,E,44.3,259.0,000070,,,A
+$GPGGA,120905.536,-3003.9690,N,-5133.5514,E,1,08,0.8,46.1,M,,,
+$GPRMC,120905.536,A,-3003.9690,N,-5133.5514,E,44.3,259.0,000070,,,A
+$GPGGA,120907.861,-3003.9720,N,-5133.5718,E,1,08,0.8,46.1,M,,,
+$GPRMC,120907.861,A,-3003.9720,N,-5133.5718,E,44.3,260.0,000070,,,A
+$GPGGA,120910.185,-3003.9750,N,-5133.5922,E,1,08,0.8,46.1,M,,,
+$GPRMC,120910.185,A,-3003.9750,N,-5133.5922,E,44.3,259.0,000070,,,A
+$GPGGA,120912.520,-3003.9786,N,-5133.6126,E,1,08,0.8,46.1,M,,,
+$GPRMC,120912.520,A,-3003.9786,N,-5133.6126,E,44.3,259.0,000070,,,A
+$GPGGA,120914.844,-3003.9816,N,-5133.6330,E,1,08,0.8,46.1,M,,,
+$GPRMC,120914.844,A,-3003.9816,N,-5133.6330,E,44.3,259.0,000070,,,A
+$GPGGA,120917.113,-3003.9852,N,-5133.6528,E,1,08,0.8,46.1,M,,,
+$GPRMC,120917.113,A,-3003.9852,N,-5133.6528,E,44.3,259.0,000070,,,A
+$GPGGA,120919.437,-3003.9882,N,-5133.6732,E,1,08,0.8,46.1,M,,,
+$GPRMC,120919.437,A,-3003.9882,N,-5133.6732,E,44.3,260.0,000070,,,A
+$GPGGA,120921.761,-3003.9912,N,-5133.6936,E,1,08,0.8,46.1,M,,,
+$GPRMC,120921.761,A,-3003.9912,N,-5133.6936,E,44.3,259.0,000070,,,A
+$GPGGA,120924.096,-3003.9948,N,-5133.7140,E,1,08,0.8,46.1,M,,,
+$GPRMC,120924.096,A,-3003.9948,N,-5133.7140,E,44.3,259.0,000070,,,A
+$GPGGA,120926.354,-3003.9978,N,-5133.7338,E,1,08,0.8,46.1,M,,,
+$GPRMC,120926.354,A,-3003.9978,N,-5133.7338,E,44.3,260.0,000070,,,A
+$GPGGA,120928.678,-3004.0008,N,-5133.7542,E,1,08,0.8,46.1,M,,,
+$GPRMC,120928.678,A,-3004.0008,N,-5133.7542,E,44.3,259.0,000070,,,A
+$GPGGA,120931.013,-3004.0044,N,-5133.7746,E,1,08,0.8,46.1,M,,,
+$GPRMC,120931.013,A,-3004.0044,N,-5133.7746,E,44.3,259.0,000070,,,A
+$GPGGA,120933.337,-3004.0074,N,-5133.7950,E,1,08,0.8,46.1,M,,,
+$GPRMC,120933.337,A,-3004.0074,N,-5133.7950,E,44.3,260.0,000070,,,A
+$GPGGA,120935.594,-3004.0104,N,-5133.8148,E,1,08,0.8,46.1,M,,,
+$GPRMC,120935.594,A,-3004.0104,N,-5133.8148,E,44.3,259.0,000070,,,A
+$GPGGA,120937.930,-3004.0140,N,-5133.8352,E,1,08,0.8,46.1,M,,,
+$GPRMC,120937.930,A,-3004.0140,N,-5133.8352,E,44.3,259.0,000070,,,A
+$GPGGA,120940.254,-3004.0170,N,-5133.8556,E,1,08,0.8,46.1,M,,,
+$GPRMC,120940.254,A,-3004.0170,N,-5133.8556,E,44.3,260.0,000070,,,A
+$GPGGA,120942.578,-3004.0200,N,-5133.8760,E,1,08,0.8,46.1,M,,,
+$GPRMC,120942.578,A,-3004.0200,N,-5133.8760,E,44.3,259.0,000070,,,A
+$GPGGA,120944.846,-3004.0236,N,-5133.8958,E,1,08,0.8,46.1,M,,,
+$GPRMC,120944.846,A,-3004.0236,N,-5133.8958,E,44.3,259.0,000070,,,A
+$GPGGA,120947.171,-3004.0266,N,-5133.9162,E,1,08,0.8,46.1,M,,,
+$GPRMC,120947.171,A,-3004.0266,N,-5133.9162,E,44.3,260.0,000070,,,A
+$GPGGA,120949.495,-3004.0296,N,-5133.9366,E,1,08,0.8,46.1,M,,,
+$GPRMC,120949.495,A,-3004.0296,N,-5133.9366,E,44.3,259.0,000070,,,A
+$GPGGA,120951.830,-3004.0332,N,-5133.9570,E,1,08,0.8,46.1,M,,,
+$GPRMC,120951.830,A,-3004.0332,N,-5133.9570,E,44.3,259.0,000070,,,A
+$GPGGA,120954.087,-3004.0362,N,-5133.9768,E,1,08,0.8,46.1,M,,,
+$GPRMC,120954.087,A,-3004.0362,N,-5133.9768,E,44.3,260.0,000070,,,A
+$GPGGA,120956.412,-3004.0392,N,-5133.9972,E,1,08,0.8,46.1,M,,,
+$GPRMC,120956.412,A,-3004.0392,N,-5133.9972,E,44.3,259.0,000070,,,A
+$GPGGA,120958.747,-3004.0428,N,-5134.0176,E,1,08,0.8,46.1,M,,,
+$GPRMC,120958.747,A,-3004.0428,N,-5134.0176,E,44.3,259.0,000070,,,A
+$GPGGA,121001.071,-3004.0458,N,-5134.0380,E,1,08,0.8,46.1,M,,,
+$GPRMC,121001.071,A,-3004.0458,N,-5134.0380,E,44.3,260.0,000070,,,A
+$GPGGA,121003.328,-3004.0488,N,-5134.0578,E,1,08,0.8,46.1,M,,,
+$GPRMC,121003.328,A,-3004.0488,N,-5134.0578,E,44.3,259.0,000070,,,A
+$GPGGA,121005.663,-3004.0524,N,-5134.0782,E,1,08,0.8,46.1,M,,,
+$GPRMC,121005.663,A,-3004.0524,N,-5134.0782,E,44.3,259.0,000070,,,A
+$GPGGA,121007.988,-3004.0554,N,-5134.0986,E,1,08,0.8,46.1,M,,,
+$GPRMC,121007.988,A,-3004.0554,N,-5134.0986,E,44.3,259.0,000070,,,A
+$GPGGA,121010.323,-3004.0590,N,-5134.1190,E,1,08,0.8,46.1,M,,,
+$GPRMC,121010.323,A,-3004.0590,N,-5134.1190,E,44.3,258.0,000070,,,A
+$GPGGA,121012.591,-3004.0626,N,-5134.1388,E,1,08,0.8,46.1,M,,,
+$GPRMC,121012.591,A,-3004.0626,N,-5134.1388,E,44.3,259.0,000070,,,A
+$GPGGA,121014.915,-3004.0656,N,-5134.1592,E,1,08,0.8,46.1,M,,,
+$GPRMC,121014.915,A,-3004.0656,N,-5134.1592,E,44.3,259.0,000070,,,A
+$GPGGA,121017.250,-3004.0692,N,-5134.1796,E,1,08,0.8,46.1,M,,,
+$GPRMC,121017.250,A,-3004.0692,N,-5134.1796,E,44.3,258.0,000070,,,A
+$GPGGA,121019.519,-3004.0728,N,-5134.1994,E,1,08,0.8,46.1,M,,,
+$GPRMC,121019.519,A,-3004.0728,N,-5134.1994,E,44.3,258.0,000070,,,A
+$GPGGA,121021.854,-3004.0764,N,-5134.2198,E,1,08,0.8,46.1,M,,,
+$GPRMC,121021.854,A,-3004.0764,N,-5134.2198,E,44.3,259.0,000070,,,A
+$GPGGA,121024.178,-3004.0794,N,-5134.2402,E,1,08,0.8,46.1,M,,,
+$GPRMC,121024.178,A,-3004.0794,N,-5134.2402,E,44.3,259.0,000070,,,A
+$GPGGA,121026.447,-3004.0830,N,-5134.2600,E,1,08,0.8,46.1,M,,,
+$GPRMC,121026.447,A,-3004.0830,N,-5134.2600,E,44.3,258.0,000070,,,A
+$GPGGA,121028.782,-3004.0866,N,-5134.2804,E,1,08,0.8,46.1,M,,,
+$GPRMC,121028.782,A,-3004.0866,N,-5134.2804,E,44.3,259.0,000070,,,A
+$GPGGA,121031.106,-3004.0896,N,-5134.3008,E,1,08,0.8,46.1,M,,,
+$GPRMC,121031.106,A,-3004.0896,N,-5134.3008,E,44.3,259.0,000070,,,A
+$GPGGA,121033.374,-3004.0932,N,-5134.3206,E,1,08,0.8,46.1,M,,,
+$GPRMC,121033.374,A,-3004.0932,N,-5134.3206,E,44.3,258.0,000070,,,A
+$GPGGA,121035.709,-3004.0968,N,-5134.3410,E,1,08,0.8,46.1,M,,,
+$GPRMC,121035.709,A,-3004.0968,N,-5134.3410,E,44.3,259.0,000070,,,A
+$GPGGA,121038.034,-3004.0998,N,-5134.3614,E,1,08,0.8,46.1,M,,,
+$GPRMC,121038.034,A,-3004.0998,N,-5134.3614,E,44.3,260.0,000070,,,A
+$GPGGA,121040.358,-3004.1028,N,-5134.3818,E,1,08,0.8,46.1,M,,,
+$GPRMC,121040.358,A,-3004.1028,N,-5134.3818,E,44.3,260.0,000070,,,A
+$GPGGA,121042.615,-3004.1058,N,-5134.4016,E,1,08,0.8,46.1,M,,,
+$GPRMC,121042.615,A,-3004.1058,N,-5134.4016,E,44.3,259.0,000070,,,A
+$GPGGA,121044.950,-3004.1094,N,-5134.4220,E,1,08,0.8,46.1,M,,,
+$GPRMC,121044.950,A,-3004.1094,N,-5134.4220,E,44.3,259.0,000070,,,A
+$GPGGA,121047.275,-3004.1124,N,-5134.4424,E,1,08,0.8,46.1,M,,,
+$GPRMC,121047.275,A,-3004.1124,N,-5134.4424,E,44.3,260.0,000070,,,A
+$GPGGA,121049.532,-3004.1154,N,-5134.4622,E,1,08,0.8,46.1,M,,,
+$GPRMC,121049.532,A,-3004.1154,N,-5134.4622,E,44.3,260.0,000070,,,A
+$GPGGA,121051.856,-3004.1184,N,-5134.4826,E,1,08,0.8,46.1,M,,,
+$GPRMC,121051.856,A,-3004.1184,N,-5134.4826,E,44.3,260.0,000070,,,A
+$GPGGA,121054.180,-3004.1214,N,-5134.5030,E,1,08,0.8,46.1,M,,,
+$GPRMC,121054.180,A,-3004.1214,N,-5134.5030,E,44.3,260.0,000070,,,A
+$GPGGA,121056.505,-3004.1244,N,-5134.5234,E,1,08,0.8,46.1,M,,,
+$GPRMC,121056.505,A,-3004.1244,N,-5134.5234,E,44.3,260.0,000070,,,A
+$GPGGA,121058.762,-3004.1274,N,-5134.5432,E,1,08,0.8,46.1,M,,,
+$GPRMC,121058.762,A,-3004.1274,N,-5134.5432,E,44.3,260.0,000070,,,A
+$GPGGA,121101.086,-3004.1304,N,-5134.5636,E,1,08,0.8,46.1,M,,,
+$GPRMC,121101.086,A,-3004.1304,N,-5134.5636,E,44.3,259.0,000070,,,A
+$GPGGA,121103.421,-3004.1340,N,-5134.5840,E,1,08,0.8,46.1,M,,,
+$GPRMC,121103.421,A,-3004.1340,N,-5134.5840,E,44.3,259.0,000070,,,A
+$GPGGA,121105.679,-3004.1370,N,-5134.6038,E,1,08,0.8,46.1,M,,,
+$GPRMC,121105.679,A,-3004.1370,N,-5134.6038,E,44.3,260.0,000070,,,A
+$GPGGA,121108.003,-3004.1400,N,-5134.6242,E,1,08,0.8,46.1,M,,,
+$GPRMC,121108.003,A,-3004.1400,N,-5134.6242,E,44.3,260.0,000070,,,A
+$GPGGA,121110.327,-3004.1430,N,-5134.6446,E,1,08,0.8,46.1,M,,,
+$GPRMC,121110.327,A,-3004.1430,N,-5134.6446,E,44.3,260.0,000070,,,A
+$GPGGA,121112.651,-3004.1460,N,-5134.6650,E,1,08,0.8,46.1,M,,,
+$GPRMC,121112.651,A,-3004.1460,N,-5134.6650,E,44.3,260.0,000070,,,A
+$GPGGA,121114.909,-3004.1490,N,-5134.6848,E,1,08,0.8,46.1,M,,,
+$GPRMC,121114.909,A,-3004.1490,N,-5134.6848,E,44.3,259.0,000070,,,A
+$GPGGA,121117.244,-3004.1526,N,-5134.7052,E,1,08,0.8,46.1,M,,,
+$GPRMC,121117.244,A,-3004.1526,N,-5134.7052,E,44.3,258.0,000070,,,A
+$GPGGA,121119.512,-3004.1562,N,-5134.7250,E,1,08,0.8,46.1,M,,,
+$GPRMC,121119.512,A,-3004.1562,N,-5134.7250,E,44.3,258.0,000070,,,A
+$GPGGA,121121.847,-3004.1598,N,-5134.7454,E,1,08,0.8,46.1,M,,,
+$GPRMC,121121.847,A,-3004.1598,N,-5134.7454,E,44.3,257.0,000070,,,A
+$GPGGA,121124.129,-3004.1640,N,-5134.7652,E,1,08,0.8,46.1,M,,,
+$GPRMC,121124.129,A,-3004.1640,N,-5134.7652,E,44.3,257.0,000070,,,A
+$GPGGA,121126.464,-3004.1676,N,-5134.7856,E,1,08,0.8,46.1,M,,,
+$GPRMC,121126.464,A,-3004.1676,N,-5134.7856,E,44.3,258.0,000070,,,A
+$GPGGA,121128.732,-3004.1712,N,-5134.8054,E,1,08,0.8,46.1,M,,,
+$GPRMC,121128.732,A,-3004.1712,N,-5134.8054,E,44.3,254.0,000070,,,A
+$GPGGA,121131.065,-3004.1772,N,-5134.8252,E,1,08,0.8,46.1,M,,,
+$GPRMC,121131.065,A,-3004.1772,N,-5134.8252,E,44.3,249.0,000070,,,A
+$GPGGA,121133.289,-3004.1838,N,-5134.8438,E,1,08,0.8,46.1,M,,,
+$GPRMC,121133.289,A,-3004.1838,N,-5134.8438,E,44.3,248.0,000070,,,A
+$GPGGA,121135.578,-3004.1904,N,-5134.8630,E,1,08,0.8,46.1,M,,,
+$GPRMC,121135.578,A,-3004.1904,N,-5134.8630,E,44.3,248.0,000070,,,A
+$GPGGA,121137.866,-3004.1970,N,-5134.8822,E,1,08,0.8,46.1,M,,,
+$GPRMC,121137.866,A,-3004.1970,N,-5134.8822,E,44.3,247.0,000070,,,A
+$GPGGA,121140.115,-3004.2042,N,-5134.9008,E,1,08,0.8,46.1,M,,,
+$GPRMC,121140.115,A,-3004.2042,N,-5134.9008,E,44.3,241.0,000070,,,A
+$GPGGA,121142.355,-3004.2138,N,-5134.9182,E,1,08,0.8,46.1,M,,,
+$GPRMC,121142.355,A,-3004.2138,N,-5134.9182,E,44.3,238.0,000070,,,A
+$GPGGA,121144.595,-3004.2234,N,-5134.9356,E,1,08,0.8,46.1,M,,,
+$GPRMC,121144.595,A,-3004.2234,N,-5134.9356,E,44.3,237.0,000070,,,A
+$GPGGA,121146.776,-3004.2330,N,-5134.9524,E,1,08,0.8,46.1,M,,,
+$GPRMC,121146.776,A,-3004.2330,N,-5134.9524,E,44.3,237.0,000070,,,A
+$GPGGA,121149.016,-3004.2426,N,-5134.9698,E,1,08,0.8,46.1,M,,,
+$GPRMC,121149.016,A,-3004.2426,N,-5134.9698,E,44.3,238.0,000070,,,A
+$GPGGA,121151.256,-3004.2522,N,-5134.9872,E,1,08,0.8,46.1,M,,,
+$GPRMC,121151.256,A,-3004.2522,N,-5134.9872,E,44.3,236.0,000070,,,A
+$GPGGA,121153.471,-3004.2624,N,-5135.0040,E,1,08,0.8,46.1,M,,,
+$GPRMC,121153.471,A,-3004.2624,N,-5135.0040,E,44.3,235.0,000070,,,A
+$GPGGA,121155.687,-3004.2726,N,-5135.0208,E,1,08,0.8,46.1,M,,,
+$GPRMC,121155.687,A,-3004.2726,N,-5135.0208,E,44.3,235.0,000070,,,A
+$GPGGA,121157.902,-3004.2828,N,-5135.0376,E,1,08,0.8,46.1,M,,,
+$GPRMC,121157.902,A,-3004.2828,N,-5135.0376,E,44.3,235.0,000070,,,A
+$GPGGA,121200.118,-3004.2930,N,-5135.0544,E,1,08,0.8,46.1,M,,,
+$GPRMC,121200.118,A,-3004.2930,N,-5135.0544,E,44.3,235.0,000070,,,A
+$GPGGA,121202.333,-3004.3032,N,-5135.0712,E,1,08,0.8,46.1,M,,,
+$GPRMC,121202.333,A,-3004.3032,N,-5135.0712,E,44.3,235.0,000070,,,A
+$GPGGA,121204.549,-3004.3134,N,-5135.0880,E,1,08,0.8,46.1,M,,,
+$GPRMC,121204.549,A,-3004.3134,N,-5135.0880,E,44.3,235.0,000070,,,A
+$GPGGA,121206.764,-3004.3236,N,-5135.1048,E,1,08,0.8,46.1,M,,,
+$GPRMC,121206.764,A,-3004.3236,N,-5135.1048,E,44.3,235.0,000070,,,A
+$GPGGA,121208.979,-3004.3338,N,-5135.1216,E,1,08,0.8,46.1,M,,,
+$GPRMC,121208.979,A,-3004.3338,N,-5135.1216,E,44.3,234.0,000070,,,A
+$GPGGA,121211.231,-3004.3446,N,-5135.1384,E,1,08,0.8,46.1,M,,,
+$GPRMC,121211.231,A,-3004.3446,N,-5135.1384,E,44.3,234.0,000070,,,A
+$GPGGA,121213.446,-3004.3548,N,-5135.1552,E,1,08,0.8,46.1,M,,,
+$GPRMC,121213.446,A,-3004.3548,N,-5135.1552,E,44.3,235.0,000070,,,A
+$GPGGA,121215.662,-3004.3650,N,-5135.1720,E,1,08,0.8,46.1,M,,,
+$GPRMC,121215.662,A,-3004.3650,N,-5135.1720,E,44.3,235.0,000070,,,A
+$GPGGA,121217.877,-3004.3752,N,-5135.1888,E,1,08,0.8,46.1,M,,,
+$GPRMC,121217.877,A,-3004.3752,N,-5135.1888,E,44.3,235.0,000070,,,A
+$GPGGA,121220.092,-3004.3854,N,-5135.2056,E,1,08,0.8,46.1,M,,,
+$GPRMC,121220.092,A,-3004.3854,N,-5135.2056,E,44.3,235.0,000070,,,A
+$GPGGA,121222.308,-3004.3956,N,-5135.2224,E,1,08,0.8,46.1,M,,,
+$GPRMC,121222.308,A,-3004.3956,N,-5135.2224,E,44.3,235.0,000070,,,A
+$GPGGA,121224.523,-3004.4058,N,-5135.2392,E,1,08,0.8,46.1,M,,,
+$GPRMC,121224.523,A,-3004.4058,N,-5135.2392,E,44.3,235.0,000070,,,A
+$GPGGA,121226.739,-3004.4160,N,-5135.2560,E,1,08,0.8,46.1,M,,,
+$GPRMC,121226.739,A,-3004.4160,N,-5135.2560,E,44.3,235.0,000070,,,A
+$GPGGA,121228.954,-3004.4262,N,-5135.2728,E,1,08,0.8,46.1,M,,,
+$GPRMC,121228.954,A,-3004.4262,N,-5135.2728,E,44.3,234.0,000070,,,A
+$GPGGA,121231.205,-3004.4370,N,-5135.2896,E,1,08,0.8,46.1,M,,,
+$GPRMC,121231.205,A,-3004.4370,N,-5135.2896,E,44.3,234.0,000070,,,A
+$GPGGA,121233.421,-3004.4472,N,-5135.3064,E,1,08,0.8,46.1,M,,,
+$GPRMC,121233.421,A,-3004.4472,N,-5135.3064,E,44.3,235.0,000070,,,A
+$GPGGA,121235.636,-3004.4574,N,-5135.3232,E,1,08,0.8,46.1,M,,,
+$GPRMC,121235.636,A,-3004.4574,N,-5135.3232,E,44.3,238.0,000070,,,A
+$GPGGA,121237.905,-3004.4664,N,-5135.3412,E,1,08,0.8,46.1,M,,,
+$GPRMC,121237.905,A,-3004.4664,N,-5135.3412,E,44.3,241.0,000070,,,A
+$GPGGA,121240.116,-3004.4742,N,-5135.3592,E,1,08,0.8,46.1,M,,,
+$GPRMC,121240.116,A,-3004.4742,N,-5135.3592,E,44.3,242.0,000070,,,A
+$GPGGA,121242.355,-3004.4826,N,-5135.3772,E,1,08,0.8,46.1,M,,,
+$GPRMC,121242.355,A,-3004.4826,N,-5135.3772,E,44.3,241.0,000070,,,A
+$GPGGA,121244.594,-3004.4910,N,-5135.3952,E,1,08,0.8,46.1,M,,,
+$GPRMC,121244.594,A,-3004.4910,N,-5135.3952,E,44.3,241.0,000070,,,A
+$GPGGA,121246.833,-3004.4994,N,-5135.4132,E,1,08,0.8,46.1,M,,,
+$GPRMC,121246.833,A,-3004.4994,N,-5135.4132,E,44.3,243.0,000070,,,A
+$GPGGA,121249.107,-3004.5072,N,-5135.4318,E,1,08,0.8,46.1,M,,,
+$GPRMC,121249.107,A,-3004.5072,N,-5135.4318,E,44.3,245.0,000070,,,A
+$GPGGA,121251.355,-3004.5144,N,-5135.4504,E,1,08,0.8,46.1,M,,,
+$GPRMC,121251.355,A,-3004.5144,N,-5135.4504,E,44.3,245.0,000070,,,A
+$GPGGA,121253.628,-3004.5222,N,-5135.4690,E,1,08,0.8,46.1,M,,,
+$GPRMC,121253.628,A,-3004.5222,N,-5135.4690,E,44.3,245.0,000070,,,A
+$GPGGA,121255.877,-3004.5294,N,-5135.4876,E,1,08,0.8,46.1,M,,,
+$GPRMC,121255.877,A,-3004.5294,N,-5135.4876,E,44.3,245.0,000070,,,A
+$GPGGA,121258.150,-3004.5372,N,-5135.5062,E,1,08,0.8,46.1,M,,,
+$GPRMC,121258.150,A,-3004.5372,N,-5135.5062,E,44.3,245.0,000070,,,A
+$GPGGA,121300.398,-3004.5444,N,-5135.5248,E,1,08,0.8,46.1,M,,,
+$GPRMC,121300.398,A,-3004.5444,N,-5135.5248,E,44.3,245.0,000070,,,A
+$GPGGA,121302.672,-3004.5522,N,-5135.5434,E,1,08,0.8,46.1,M,,,
+$GPRMC,121302.672,A,-3004.5522,N,-5135.5434,E,44.3,244.0,000070,,,A
+$GPGGA,121304.945,-3004.5600,N,-5135.5620,E,1,08,0.8,46.1,M,,,
+$GPRMC,121304.945,A,-3004.5600,N,-5135.5620,E,44.3,245.0,000070,,,A
+$GPGGA,121307.194,-3004.5672,N,-5135.5806,E,1,08,0.8,46.1,M,,,
+$GPRMC,121307.194,A,-3004.5672,N,-5135.5806,E,44.3,245.0,000070,,,A
+$GPGGA,121309.467,-3004.5750,N,-5135.5992,E,1,08,0.8,46.1,M,,,
+$GPRMC,121309.467,A,-3004.5750,N,-5135.5992,E,44.3,245.0,000070,,,A
+$GPGGA,121311.715,-3004.5822,N,-5135.6178,E,1,08,0.8,46.1,M,,,
+$GPRMC,121311.715,A,-3004.5822,N,-5135.6178,E,44.3,246.0,000070,,,A
+$GPGGA,121313.963,-3004.5894,N,-5135.6364,E,1,08,0.8,46.1,M,,,
+$GPRMC,121313.963,A,-3004.5894,N,-5135.6364,E,44.3,246.0,000070,,,A
+$GPGGA,121316.275,-3004.5966,N,-5135.6556,E,1,08,0.8,46.1,M,,,
+$GPRMC,121316.275,A,-3004.5966,N,-5135.6556,E,44.3,246.0,000070,,,A
+$GPGGA,121318.523,-3004.6038,N,-5135.6742,E,1,08,0.8,46.1,M,,,
+$GPRMC,121318.523,A,-3004.6038,N,-5135.6742,E,44.3,246.0,000070,,,A
+$GPGGA,121320.835,-3004.6110,N,-5135.6934,E,1,08,0.8,46.1,M,,,
+$GPRMC,121320.835,A,-3004.6110,N,-5135.6934,E,44.3,246.0,000070,,,A
+$GPGGA,121323.083,-3004.6182,N,-5135.7120,E,1,08,0.8,46.1,M,,,
+$GPRMC,121323.083,A,-3004.6182,N,-5135.7120,E,44.3,247.0,000070,,,A
+$GPGGA,121325.307,-3004.6248,N,-5135.7306,E,1,08,0.8,46.1,M,,,
+$GPRMC,121325.307,A,-3004.6248,N,-5135.7306,E,44.3,247.0,000070,,,A
+$GPGGA,121327.619,-3004.6320,N,-5135.7498,E,1,08,0.8,46.1,M,,,
+$GPRMC,121327.619,A,-3004.6320,N,-5135.7498,E,44.3,246.0,000070,,,A
+$GPGGA,121329.867,-3004.6392,N,-5135.7684,E,1,08,0.8,46.1,M,,,
+$GPRMC,121329.867,A,-3004.6392,N,-5135.7684,E,44.3,246.0,000070,,,A
+$GPGGA,121332.179,-3004.6464,N,-5135.7876,E,1,08,0.8,46.1,M,,,
+$GPRMC,121332.179,A,-3004.6464,N,-5135.7876,E,44.3,246.0,000070,,,A
+$GPGGA,121334.427,-3004.6536,N,-5135.8062,E,1,08,0.8,46.1,M,,,
+$GPRMC,121334.427,A,-3004.6536,N,-5135.8062,E,44.3,246.0,000070,,,A
+$GPGGA,121336.738,-3004.6608,N,-5135.8254,E,1,08,0.8,46.1,M,,,
+$GPRMC,121336.738,A,-3004.6608,N,-5135.8254,E,44.3,246.0,000070,,,A
+$GPGGA,121338.986,-3004.6680,N,-5135.8440,E,1,08,0.8,46.1,M,,,
+$GPRMC,121338.986,A,-3004.6680,N,-5135.8440,E,44.3,246.0,000070,,,A
+$GPGGA,121341.235,-3004.6752,N,-5135.8626,E,1,08,0.8,46.1,M,,,
+$GPRMC,121341.235,A,-3004.6752,N,-5135.8626,E,44.3,247.0,000070,,,A
+$GPGGA,121343.523,-3004.6818,N,-5135.8818,E,1,08,0.8,46.1,M,,,
+$GPRMC,121343.523,A,-3004.6818,N,-5135.8818,E,44.3,247.0,000070,,,A
+$GPGGA,121345.771,-3004.6890,N,-5135.9004,E,1,08,0.8,46.1,M,,,
+$GPRMC,121345.771,A,-3004.6890,N,-5135.9004,E,44.3,246.0,000070,,,A
+$GPGGA,121348.083,-3004.6962,N,-5135.9196,E,1,08,0.8,46.1,M,,,
+$GPRMC,121348.083,A,-3004.6962,N,-5135.9196,E,44.3,246.0,000070,,,A
+$GPGGA,121350.331,-3004.7034,N,-5135.9382,E,1,08,0.8,46.1,M,,,
+$GPRMC,121350.331,A,-3004.7034,N,-5135.9382,E,44.3,246.0,000070,,,A
+$GPGGA,121352.642,-3004.7106,N,-5135.9574,E,1,08,0.8,46.1,M,,,
+$GPRMC,121352.642,A,-3004.7106,N,-5135.9574,E,44.3,246.0,000070,,,A
+$GPGGA,121354.891,-3004.7178,N,-5135.9760,E,1,08,0.8,46.1,M,,,
+$GPRMC,121354.891,A,-3004.7178,N,-5135.9760,E,44.3,246.0,000070,,,A
+$GPGGA,121357.139,-3004.7250,N,-5135.9946,E,1,08,0.8,46.1,M,,,
+$GPRMC,121357.139,A,-3004.7250,N,-5135.9946,E,44.3,246.0,000070,,,A
+$GPGGA,121359.450,-3004.7322,N,-5136.0138,E,1,08,0.8,46.1,M,,,
+$GPRMC,121359.450,A,-3004.7322,N,-5136.0138,E,44.3,247.0,000070,,,A
+$GPGGA,121401.675,-3004.7388,N,-5136.0324,E,1,08,0.8,46.1,M,,,
+$GPRMC,121401.675,A,-3004.7388,N,-5136.0324,E,44.3,247.0,000070,,,A
+$GPGGA,121403.986,-3004.7460,N,-5136.0516,E,1,08,0.8,46.1,M,,,
+$GPRMC,121403.986,A,-3004.7460,N,-5136.0516,E,44.3,246.0,000070,,,A
+$GPGGA,121406.235,-3004.7532,N,-5136.0702,E,1,08,0.8,46.1,M,,,
+$GPRMC,121406.235,A,-3004.7532,N,-5136.0702,E,44.3,246.0,000070,,,A
+$GPGGA,121408.546,-3004.7604,N,-5136.0894,E,1,08,0.8,46.1,M,,,
+$GPRMC,121408.546,A,-3004.7604,N,-5136.0894,E,44.3,246.0,000070,,,A
+$GPGGA,121410.794,-3004.7676,N,-5136.1080,E,1,08,0.8,46.1,M,,,
+$GPRMC,121410.794,A,-3004.7676,N,-5136.1080,E,44.3,246.0,000070,,,A
+$GPGGA,121413.043,-3004.7748,N,-5136.1266,E,1,08,0.8,46.1,M,,,
+$GPRMC,121413.043,A,-3004.7748,N,-5136.1266,E,44.3,246.0,000070,,,A
+$GPGGA,121415.354,-3004.7820,N,-5136.1458,E,1,08,0.8,46.1,M,,,
+$GPRMC,121415.354,A,-3004.7820,N,-5136.1458,E,44.3,246.0,000070,,,A
+$GPGGA,121417.602,-3004.7892,N,-5136.1644,E,1,08,0.8,46.1,M,,,
+$GPRMC,121417.602,A,-3004.7892,N,-5136.1644,E,44.3,247.0,000070,,,A
+$GPGGA,121419.891,-3004.7958,N,-5136.1836,E,1,08,0.8,46.1,M,,,
+$GPRMC,121419.891,A,-3004.7958,N,-5136.1836,E,44.3,247.0,000070,,,A
+$GPGGA,121422.139,-3004.8030,N,-5136.2022,E,1,08,0.8,46.1,M,,,
+$GPRMC,121422.139,A,-3004.8030,N,-5136.2022,E,44.3,246.0,000070,,,A
+$GPGGA,121424.450,-3004.8102,N,-5136.2214,E,1,08,0.8,46.1,M,,,
+$GPRMC,121424.450,A,-3004.8102,N,-5136.2214,E,44.3,246.0,000070,,,A
+$GPGGA,121426.699,-3004.8174,N,-5136.2400,E,1,08,0.8,46.1,M,,,
+$GPRMC,121426.699,A,-3004.8174,N,-5136.2400,E,44.3,246.0,000070,,,A
+$GPGGA,121428.947,-3004.8246,N,-5136.2586,E,1,08,0.8,46.1,M,,,
+$GPRMC,121428.947,A,-3004.8246,N,-5136.2586,E,44.3,246.0,000070,,,A
+$GPGGA,121431.258,-3004.8318,N,-5136.2778,E,1,08,0.8,46.1,M,,,
+$GPRMC,121431.258,A,-3004.8318,N,-5136.2778,E,44.3,246.0,000070,,,A
+$GPGGA,121433.506,-3004.8390,N,-5136.2964,E,1,08,0.8,46.1,M,,,
+$GPRMC,121433.506,A,-3004.8390,N,-5136.2964,E,44.3,246.0,000070,,,A
+$GPGGA,121435.755,-3004.8462,N,-5136.3150,E,1,08,0.8,46.1,M,,,
+$GPRMC,121435.755,A,-3004.8462,N,-5136.3150,E,44.3,246.0,000070,,,A
+$GPGGA,121438.066,-3004.8534,N,-5136.3342,E,1,08,0.8,46.1,M,,,
+$GPRMC,121438.066,A,-3004.8534,N,-5136.3342,E,44.3,246.0,000070,,,A
+$GPGGA,121440.314,-3004.8606,N,-5136.3528,E,1,08,0.8,46.1,M,,,
+$GPRMC,121440.314,A,-3004.8606,N,-5136.3528,E,44.3,245.0,000070,,,A
+$GPGGA,121442.588,-3004.8684,N,-5136.3714,E,1,08,0.8,46.1,M,,,
+$GPRMC,121442.588,A,-3004.8684,N,-5136.3714,E,44.3,245.0,000070,,,A
+$GPGGA,121444.899,-3004.8756,N,-5136.3906,E,1,08,0.8,46.1,M,,,
+$GPRMC,121444.899,A,-3004.8756,N,-5136.3906,E,44.3,246.0,000070,,,A
+$GPGGA,121447.147,-3004.8828,N,-5136.4092,E,1,08,0.8,46.1,M,,,
+$GPRMC,121447.147,A,-3004.8828,N,-5136.4092,E,44.3,246.0,000070,,,A
+$GPGGA,121449.396,-3004.8900,N,-5136.4278,E,1,08,0.8,46.1,M,,,
+$GPRMC,121449.396,A,-3004.8900,N,-5136.4278,E,44.3,246.0,000070,,,A
+$GPGGA,121451.707,-3004.8972,N,-5136.4470,E,1,08,0.8,46.1,M,,,
+$GPRMC,121451.707,A,-3004.8972,N,-5136.4470,E,44.3,246.0,000070,,,A
+$GPGGA,121453.955,-3004.9044,N,-5136.4656,E,1,08,0.8,46.1,M,,,
+$GPRMC,121453.955,A,-3004.9044,N,-5136.4656,E,44.3,246.0,000070,,,A
+$GPGGA,121456.204,-3004.9116,N,-5136.4842,E,1,08,0.8,46.1,M,,,
+$GPRMC,121456.204,A,-3004.9116,N,-5136.4842,E,44.3,246.0,000070,,,A
+$GPGGA,121458.515,-3004.9188,N,-5136.5034,E,1,08,0.8,46.1,M,,,
+$GPRMC,121458.515,A,-3004.9188,N,-5136.5034,E,44.3,246.0,000070,,,A
+$GPGGA,121500.763,-3004.9260,N,-5136.5220,E,1,08,0.8,46.1,M,,,
+$GPRMC,121500.763,A,-3004.9260,N,-5136.5220,E,44.3,246.0,000070,,,A
+$GPGGA,121503.075,-3004.9332,N,-5136.5412,E,1,08,0.8,46.1,M,,,
+$GPRMC,121503.075,A,-3004.9332,N,-5136.5412,E,44.3,246.0,000070,,,A
+$GPGGA,121505.323,-3004.9404,N,-5136.5598,E,1,08,0.8,46.1,M,,,
+$GPRMC,121505.323,A,-3004.9404,N,-5136.5598,E,44.3,246.0,000070,,,A
+$GPGGA,121507.571,-3004.9476,N,-5136.5784,E,1,08,0.8,46.1,M,,,
+$GPRMC,121507.571,A,-3004.9476,N,-5136.5784,E,44.3,246.0,000070,,,A
+$GPGGA,121509.882,-3004.9548,N,-5136.5976,E,1,08,0.8,46.1,M,,,
+$GPRMC,121509.882,A,-3004.9548,N,-5136.5976,E,44.3,246.0,000070,,,A
+$GPGGA,121512.131,-3004.9620,N,-5136.6162,E,1,08,0.8,46.1,M,,,
+$GPRMC,121512.131,A,-3004.9620,N,-5136.6162,E,44.3,246.0,000070,,,A
+$GPGGA,121514.379,-3004.9692,N,-5136.6348,E,1,08,0.8,46.1,M,,,
+$GPRMC,121514.379,A,-3004.9692,N,-5136.6348,E,44.3,246.0,000070,,,A
+$GPGGA,121516.690,-3004.9764,N,-5136.6540,E,1,08,0.8,46.1,M,,,
+$GPRMC,121516.690,A,-3004.9764,N,-5136.6540,E,44.3,246.0,000070,,,A
+$GPGGA,121518.939,-3004.9836,N,-5136.6726,E,1,08,0.8,46.1,M,,,
+$GPRMC,121518.939,A,-3004.9836,N,-5136.6726,E,44.3,246.0,000070,,,A
+$GPGGA,121521.187,-3004.9908,N,-5136.6912,E,1,08,0.8,46.1,M,,,
+$GPRMC,121521.187,A,-3004.9908,N,-5136.6912,E,44.3,246.0,000070,,,A
+$GPGGA,121523.498,-3004.9980,N,-5136.7104,E,1,08,0.8,46.1,M,,,
+$GPRMC,121523.498,A,-3004.9980,N,-5136.7104,E,44.3,246.0,000070,,,A
+$GPGGA,121525.746,-3005.0052,N,-5136.7290,E,1,08,0.8,46.1,M,,,
+$GPRMC,121525.746,A,-3005.0052,N,-5136.7290,E,44.3,246.0,000070,,,A
+$GPGGA,121527.995,-3005.0124,N,-5136.7476,E,1,08,0.8,46.1,M,,,
+$GPRMC,121527.995,A,-3005.0124,N,-5136.7476,E,44.3,245.0,000070,,,A
+$GPGGA,121530.331,-3005.0202,N,-5136.7668,E,1,08,0.8,46.1,M,,,
+$GPRMC,121530.331,A,-3005.0202,N,-5136.7668,E,44.3,245.0,000070,,,A
+$GPGGA,121532.579,-3005.0274,N,-5136.7854,E,1,08,0.8,46.1,M,,,
+$GPRMC,121532.579,A,-3005.0274,N,-5136.7854,E,44.3,246.0,000070,,,A
+$GPGGA,121534.827,-3005.0346,N,-5136.8040,E,1,08,0.8,46.1,M,,,
+$GPRMC,121534.827,A,-3005.0346,N,-5136.8040,E,44.3,246.0,000070,,,A
+$GPGGA,121537.139,-3005.0418,N,-5136.8232,E,1,08,0.8,46.1,M,,,
+$GPRMC,121537.139,A,-3005.0418,N,-5136.8232,E,44.3,246.0,000070,,,A
+$GPGGA,121539.387,-3005.0490,N,-5136.8418,E,1,08,0.8,46.1,M,,,
+$GPRMC,121539.387,A,-3005.0490,N,-5136.8418,E,44.3,246.0,000070,,,A
+$GPGGA,121541.635,-3005.0562,N,-5136.8604,E,1,08,0.8,46.1,M,,,
+$GPRMC,121541.635,A,-3005.0562,N,-5136.8604,E,44.3,246.0,000070,,,A
+$GPGGA,121543.946,-3005.0634,N,-5136.8796,E,1,08,0.8,46.1,M,,,
+$GPRMC,121543.946,A,-3005.0634,N,-5136.8796,E,44.3,246.0,000070,,,A
+$GPGGA,121546.195,-3005.0706,N,-5136.8982,E,1,08,0.8,46.1,M,,,
+$GPRMC,121546.195,A,-3005.0706,N,-5136.8982,E,44.3,246.0,000070,,,A
+$GPGGA,121548.506,-3005.0778,N,-5136.9174,E,1,08,0.8,46.1,M,,,
+$GPRMC,121548.506,A,-3005.0778,N,-5136.9174,E,44.3,246.0,000070,,,A
+$GPGGA,121550.754,-3005.0850,N,-5136.9360,E,1,08,0.8,46.1,M,,,
+$GPRMC,121550.754,A,-3005.0850,N,-5136.9360,E,44.3,246.0,000070,,,A
+$GPGGA,121553.002,-3005.0922,N,-5136.9546,E,1,08,0.8,46.1,M,,,
+$GPRMC,121553.002,A,-3005.0922,N,-5136.9546,E,44.3,246.0,000070,,,A
+$GPGGA,121555.314,-3005.0994,N,-5136.9738,E,1,08,0.8,46.1,M,,,
+$GPRMC,121555.314,A,-3005.0994,N,-5136.9738,E,44.3,246.0,000070,,,A
+$GPGGA,121557.562,-3005.1066,N,-5136.9924,E,1,08,0.8,46.1,M,,,
+$GPRMC,121557.562,A,-3005.1066,N,-5136.9924,E,44.3,246.0,000070,,,A
+$GPGGA,121559.810,-3005.1138,N,-5137.0110,E,1,08,0.8,46.1,M,,,
+$GPRMC,121559.810,A,-3005.1138,N,-5137.0110,E,44.3,246.0,000070,,,A
+$GPGGA,121602.122,-3005.1210,N,-5137.0302,E,1,08,0.8,46.1,M,,,
+$GPRMC,121602.122,A,-3005.1210,N,-5137.0302,E,44.3,246.0,000070,,,A
+$GPGGA,121604.370,-3005.1282,N,-5137.0488,E,1,08,0.8,46.1,M,,,
+$GPRMC,121604.370,A,-3005.1282,N,-5137.0488,E,44.3,246.0,000070,,,A
+$GPGGA,121606.618,-3005.1354,N,-5137.0674,E,1,08,0.8,46.1,M,,,
+$GPRMC,121606.618,A,-3005.1354,N,-5137.0674,E,44.3,246.0,000070,,,A
+$GPGGA,121608.930,-3005.1426,N,-5137.0866,E,1,08,0.8,46.1,M,,,
+$GPRMC,121608.930,A,-3005.1426,N,-5137.0866,E,44.3,246.0,000070,,,A
+$GPGGA,121611.178,-3005.1498,N,-5137.1052,E,1,08,0.8,46.1,M,,,
+$GPRMC,121611.178,A,-3005.1498,N,-5137.1052,E,44.3,246.0,000070,,,A
+$GPGGA,121613.489,-3005.1570,N,-5137.1244,E,1,08,0.8,46.1,M,,,
+$GPRMC,121613.489,A,-3005.1570,N,-5137.1244,E,44.3,246.0,000070,,,A
+$GPGGA,121615.737,-3005.1642,N,-5137.1430,E,1,08,0.8,46.1,M,,,
+$GPRMC,121615.737,A,-3005.1642,N,-5137.1430,E,44.3,246.0,000070,,,A
+$GPGGA,121617.986,-3005.1714,N,-5137.1616,E,1,08,0.8,46.1,M,,,
+$GPRMC,121617.986,A,-3005.1714,N,-5137.1616,E,44.3,247.0,000070,,,A
+$GPGGA,121620.274,-3005.1780,N,-5137.1808,E,1,08,0.8,46.1,M,,,
+$GPRMC,121620.274,A,-3005.1780,N,-5137.1808,E,44.3,247.0,000070,,,A
+$GPGGA,121622.522,-3005.1852,N,-5137.1994,E,1,08,0.8,46.1,M,,,
+$GPRMC,121622.522,A,-3005.1852,N,-5137.1994,E,44.3,246.0,000070,,,A
+$GPGGA,121624.834,-3005.1924,N,-5137.2186,E,1,08,0.8,46.1,M,,,
+$GPRMC,121624.834,A,-3005.1924,N,-5137.2186,E,44.3,246.0,000070,,,A
+$GPGGA,121627.082,-3005.1996,N,-5137.2372,E,1,08,0.8,46.1,M,,,
+$GPRMC,121627.082,A,-3005.1996,N,-5137.2372,E,44.3,246.0,000070,,,A
+$GPGGA,121629.330,-3005.2068,N,-5137.2558,E,1,08,0.8,46.1,M,,,
+$GPRMC,121629.330,A,-3005.2068,N,-5137.2558,E,44.3,246.0,000070,,,A
+$GPGGA,121631.642,-3005.2140,N,-5137.2750,E,1,08,0.8,46.1,M,,,
+$GPRMC,121631.642,A,-3005.2140,N,-5137.2750,E,44.3,246.0,000070,,,A
+$GPGGA,121633.890,-3005.2212,N,-5137.2936,E,1,08,0.8,46.1,M,,,
+$GPRMC,121633.890,A,-3005.2212,N,-5137.2936,E,44.3,246.0,000070,,,A
+$GPGGA,121636.138,-3005.2284,N,-5137.3122,E,1,08,0.8,46.1,M,,,
+$GPRMC,121636.138,A,-3005.2284,N,-5137.3122,E,44.3,246.0,000070,,,A
+$GPGGA,121638.450,-3005.2356,N,-5137.3314,E,1,08,0.8,46.1,M,,,
+$GPRMC,121638.450,A,-3005.2356,N,-5137.3314,E,44.3,246.0,000070,,,A
+$GPGGA,121640.698,-3005.2428,N,-5137.3500,E,1,08,0.8,46.1,M,,,
+$GPRMC,121640.698,A,-3005.2428,N,-5137.3500,E,44.3,246.0,000070,,,A
+$GPGGA,121642.946,-3005.2500,N,-5137.3686,E,1,08,0.8,46.1,M,,,
+$GPRMC,121642.946,A,-3005.2500,N,-5137.3686,E,44.3,246.0,000070,,,A
+$GPGGA,121645.257,-3005.2572,N,-5137.3878,E,1,08,0.8,46.1,M,,,
+$GPRMC,121645.257,A,-3005.2572,N,-5137.3878,E,44.3,246.0,000070,,,A
+$GPGGA,121647.506,-3005.2644,N,-5137.4064,E,1,08,0.8,46.1,M,,,
+$GPRMC,121647.506,A,-3005.2644,N,-5137.4064,E,44.3,246.0,000070,,,A
+$GPGGA,121649.754,-3005.2716,N,-5137.4250,E,1,08,0.8,46.1,M,,,
+$GPRMC,121649.754,A,-3005.2716,N,-5137.4250,E,44.3,246.0,000070,,,A
+$GPGGA,121652.002,-3005.2788,N,-5137.4436,E,1,08,0.8,46.1,M,,,
+$GPRMC,121652.002,A,-3005.2788,N,-5137.4436,E,44.3,246.0,000070,,,A
+$GPGGA,121654.314,-3005.2860,N,-5137.4628,E,1,08,0.8,46.1,M,,,
+$GPRMC,121654.314,A,-3005.2860,N,-5137.4628,E,44.3,246.0,000070,,,A
+$GPGGA,121656.562,-3005.2932,N,-5137.4814,E,1,08,0.8,46.1,M,,,
+$GPRMC,121656.562,A,-3005.2932,N,-5137.4814,E,44.3,246.0,000070,,,A
+$GPGGA,121658.810,-3005.3004,N,-5137.5000,E,1,08,0.8,46.1,M,,,
+$GPRMC,121658.810,A,-3005.3004,N,-5137.5000,E,44.3,246.0,000070,,,A
+$GPGGA,121701.121,-3005.3076,N,-5137.5192,E,1,08,0.8,46.1,M,,,
+$GPRMC,121701.121,A,-3005.3076,N,-5137.5192,E,44.3,246.0,000070,,,A
+$GPGGA,121703.370,-3005.3148,N,-5137.5378,E,1,08,0.8,46.1,M,,,
+$GPRMC,121703.370,A,-3005.3148,N,-5137.5378,E,44.3,246.0,000070,,,A
+$GPGGA,121705.618,-3005.3220,N,-5137.5564,E,1,08,0.8,46.1,M,,,
+$GPRMC,121705.618,A,-3005.3220,N,-5137.5564,E,44.3,246.0,000070,,,A
+$GPGGA,121707.929,-3005.3292,N,-5137.5756,E,1,08,0.8,46.1,M,,,
+$GPRMC,121707.929,A,-3005.3292,N,-5137.5756,E,44.3,246.0,000070,,,A
+$GPGGA,121710.177,-3005.3364,N,-5137.5942,E,1,08,0.8,46.1,M,,,
+$GPRMC,121710.177,A,-3005.3364,N,-5137.5942,E,44.3,246.0,000070,,,A
+$GPGGA,121712.426,-3005.3436,N,-5137.6128,E,1,08,0.8,46.1,M,,,
+$GPRMC,121712.426,A,-3005.3436,N,-5137.6128,E,44.3,246.0,000070,,,A
+$GPGGA,121714.737,-3005.3508,N,-5137.6320,E,1,08,0.8,46.1,M,,,
+$GPRMC,121714.737,A,-3005.3508,N,-5137.6320,E,44.3,246.0,000070,,,A
+$GPGGA,121716.985,-3005.3580,N,-5137.6506,E,1,08,0.8,46.1,M,,,
+$GPRMC,121716.985,A,-3005.3580,N,-5137.6506,E,44.3,246.0,000070,,,A
+$GPGGA,121719.234,-3005.3652,N,-5137.6692,E,1,08,0.8,46.1,M,,,
+$GPRMC,121719.234,A,-3005.3652,N,-5137.6692,E,44.3,246.0,000070,,,A
+$GPGGA,121721.545,-3005.3724,N,-5137.6884,E,1,08,0.8,46.1,M,,,
+$GPRMC,121721.545,A,-3005.3724,N,-5137.6884,E,44.3,246.0,000070,,,A
+$GPGGA,121723.793,-3005.3796,N,-5137.7070,E,1,08,0.8,46.1,M,,,
+$GPRMC,121723.793,A,-3005.3796,N,-5137.7070,E,44.3,246.0,000070,,,A
+$GPGGA,121726.041,-3005.3868,N,-5137.7256,E,1,08,0.8,46.1,M,,,
+$GPRMC,121726.041,A,-3005.3868,N,-5137.7256,E,44.3,246.0,000070,,,A
+$GPGGA,121728.353,-3005.3940,N,-5137.7448,E,1,08,0.8,46.1,M,,,
+$GPRMC,121728.353,A,-3005.3940,N,-5137.7448,E,44.3,246.0,000070,,,A
+$GPGGA,121730.601,-3005.4012,N,-5137.7634,E,1,08,0.8,46.1,M,,,
+$GPRMC,121730.601,A,-3005.4012,N,-5137.7634,E,44.3,246.0,000070,,,A
+$GPGGA,121732.849,-3005.4084,N,-5137.7820,E,1,08,0.8,46.1,M,,,
+$GPRMC,121732.849,A,-3005.4084,N,-5137.7820,E,44.3,246.0,000070,,,A
+$GPGGA,121735.161,-3005.4156,N,-5137.8012,E,1,08,0.8,46.1,M,,,
+$GPRMC,121735.161,A,-3005.4156,N,-5137.8012,E,44.3,246.0,000070,,,A
+$GPGGA,121737.409,-3005.4228,N,-5137.8198,E,1,08,0.8,46.1,M,,,
+$GPRMC,121737.409,A,-3005.4228,N,-5137.8198,E,44.3,246.0,000070,,,A
+$GPGGA,121739.720,-3005.4300,N,-5137.8390,E,1,08,0.8,46.1,M,,,
+$GPRMC,121739.720,A,-3005.4300,N,-5137.8390,E,44.3,246.0,000070,,,A
+$GPGGA,121741.969,-3005.4372,N,-5137.8576,E,1,08,0.8,46.1,M,,,
+$GPRMC,121741.969,A,-3005.4372,N,-5137.8576,E,44.3,246.0,000070,,,A
+$GPGGA,121744.217,-3005.4444,N,-5137.8762,E,1,08,0.8,46.1,M,,,
+$GPRMC,121744.217,A,-3005.4444,N,-5137.8762,E,44.3,246.0,000070,,,A
+$GPGGA,121746.465,-3005.4516,N,-5137.8948,E,1,08,0.8,46.1,M,,,
+$GPRMC,121746.465,A,-3005.4516,N,-5137.8948,E,44.3,246.0,000070,,,A
+$GPGGA,121748.776,-3005.4588,N,-5137.9140,E,1,08,0.8,46.1,M,,,
+$GPRMC,121748.776,A,-3005.4588,N,-5137.9140,E,44.3,246.0,000070,,,A
+$GPGGA,121751.025,-3005.4660,N,-5137.9326,E,1,08,0.8,46.1,M,,,
+$GPRMC,121751.025,A,-3005.4660,N,-5137.9326,E,44.3,246.0,000070,,,A
+$GPGGA,121753.336,-3005.4732,N,-5137.9518,E,1,08,0.8,46.1,M,,,
+$GPRMC,121753.336,A,-3005.4732,N,-5137.9518,E,44.3,246.0,000070,,,A
+$GPGGA,121755.584,-3005.4804,N,-5137.9704,E,1,08,0.8,46.1,M,,,
+$GPRMC,121755.584,A,-3005.4804,N,-5137.9704,E,44.3,246.0,000070,,,A
+$GPGGA,121757.833,-3005.4876,N,-5137.9890,E,1,08,0.8,46.1,M,,,
+$GPRMC,121757.833,A,-3005.4876,N,-5137.9890,E,44.3,246.0,000070,,,A
+$GPGGA,121800.144,-3005.4948,N,-5138.0082,E,1,08,0.8,46.1,M,,,
+$GPRMC,121800.144,A,-3005.4948,N,-5138.0082,E,44.3,246.0,000070,,,A
+$GPGGA,121802.392,-3005.5020,N,-5138.0268,E,1,08,0.8,46.1,M,,,
+$GPRMC,121802.392,A,-3005.5020,N,-5138.0268,E,44.3,246.0,000070,,,A
+$GPGGA,121804.704,-3005.5092,N,-5138.0460,E,1,08,0.8,46.1,M,,,
+$GPRMC,121804.704,A,-3005.5092,N,-5138.0460,E,44.3,246.0,000070,,,A
+$GPGGA,121806.952,-3005.5164,N,-5138.0646,E,1,08,0.8,46.1,M,,,
+$GPRMC,121806.952,A,-3005.5164,N,-5138.0646,E,44.3,246.0,000070,,,A
+$GPGGA,121809.200,-3005.5236,N,-5138.0832,E,1,08,0.8,46.1,M,,,
+$GPRMC,121809.200,A,-3005.5236,N,-5138.0832,E,44.3,246.0,000070,,,A
+$GPGGA,121811.511,-3005.5308,N,-5138.1024,E,1,08,0.8,46.1,M,,,
+$GPRMC,121811.511,A,-3005.5308,N,-5138.1024,E,44.3,246.0,000070,,,A
+$GPGGA,121813.760,-3005.5380,N,-5138.1210,E,1,08,0.8,46.1,M,,,
+$GPRMC,121813.760,A,-3005.5380,N,-5138.1210,E,44.3,246.0,000070,,,A
+$GPGGA,121816.071,-3005.5452,N,-5138.1402,E,1,08,0.8,46.1,M,,,
+$GPRMC,121816.071,A,-3005.5452,N,-5138.1402,E,44.3,246.0,000070,,,A
+$GPGGA,121818.319,-3005.5524,N,-5138.1588,E,1,08,0.8,46.1,M,,,
+$GPRMC,121818.319,A,-3005.5524,N,-5138.1588,E,44.3,246.0,000070,,,A
+$GPGGA,121820.568,-3005.5596,N,-5138.1774,E,1,08,0.8,46.1,M,,,
+$GPRMC,121820.568,A,-3005.5596,N,-5138.1774,E,44.3,246.0,000070,,,A
+$GPGGA,121822.879,-3005.5668,N,-5138.1966,E,1,08,0.8,46.1,M,,,
+$GPRMC,121822.879,A,-3005.5668,N,-5138.1966,E,44.3,246.0,000070,,,A
+$GPGGA,121825.127,-3005.5740,N,-5138.2152,E,1,08,0.8,46.1,M,,,
+$GPRMC,121825.127,A,-3005.5740,N,-5138.2152,E,44.3,246.0,000070,,,A
+$GPGGA,121827.375,-3005.5812,N,-5138.2338,E,1,08,0.8,46.1,M,,,
+$GPRMC,121827.375,A,-3005.5812,N,-5138.2338,E,44.3,246.0,000070,,,A
+$GPGGA,121829.687,-3005.5884,N,-5138.2530,E,1,08,0.8,46.1,M,,,
+$GPRMC,121829.687,A,-3005.5884,N,-5138.2530,E,44.3,246.0,000070,,,A
+$GPGGA,121831.935,-3005.5956,N,-5138.2716,E,1,08,0.8,46.1,M,,,
+$GPRMC,121831.935,A,-3005.5956,N,-5138.2716,E,44.3,246.0,000070,,,A
+$GPGGA,121834.183,-3005.6028,N,-5138.2902,E,1,08,0.8,46.1,M,,,
+$GPRMC,121834.183,A,-3005.6028,N,-5138.2902,E,44.3,246.0,000070,,,A
+$GPGGA,121836.495,-3005.6100,N,-5138.3094,E,1,08,0.8,46.1,M,,,
+$GPRMC,121836.495,A,-3005.6100,N,-5138.3094,E,44.3,246.0,000070,,,A
+$GPGGA,121838.743,-3005.6172,N,-5138.3280,E,1,08,0.8,46.1,M,,,
+$GPRMC,121838.743,A,-3005.6172,N,-5138.3280,E,44.3,246.0,000070,,,A
+$GPGGA,121841.054,-3005.6244,N,-5138.3472,E,1,08,0.8,46.1,M,,,
+$GPRMC,121841.054,A,-3005.6244,N,-5138.3472,E,44.3,247.0,000070,,,A
+$GPGGA,121843.279,-3005.6310,N,-5138.3658,E,1,08,0.8,46.1,M,,,
+$GPRMC,121843.279,A,-3005.6310,N,-5138.3658,E,44.3,247.0,000070,,,A
+$GPGGA,121845.527,-3005.6382,N,-5138.3844,E,1,08,0.8,46.1,M,,,
+$GPRMC,121845.527,A,-3005.6382,N,-5138.3844,E,44.3,246.0,000070,,,A
+$GPGGA,121847.775,-3005.6454,N,-5138.4030,E,1,08,0.8,46.1,M,,,
+$GPRMC,121847.775,A,-3005.6454,N,-5138.4030,E,44.3,246.0,000070,,,A
+$GPGGA,121850.087,-3005.6526,N,-5138.4222,E,1,08,0.8,46.1,M,,,
+$GPRMC,121850.087,A,-3005.6526,N,-5138.4222,E,44.3,246.0,000070,,,A
+$GPGGA,121852.335,-3005.6598,N,-5138.4408,E,1,08,0.8,46.1,M,,,
+$GPRMC,121852.335,A,-3005.6598,N,-5138.4408,E,44.3,246.0,000070,,,A
+$GPGGA,121854.583,-3005.6670,N,-5138.4594,E,1,08,0.8,46.1,M,,,
+$GPRMC,121854.583,A,-3005.6670,N,-5138.4594,E,44.3,246.0,000070,,,A
+$GPGGA,121856.895,-3005.6742,N,-5138.4786,E,1,08,0.8,46.1,M,,,
+$GPRMC,121856.895,A,-3005.6742,N,-5138.4786,E,44.3,246.0,000070,,,A
+$GPGGA,121859.143,-3005.6814,N,-5138.4972,E,1,08,0.8,46.1,M,,,
+$GPRMC,121859.143,A,-3005.6814,N,-5138.4972,E,44.3,246.0,000070,,,A
+$GPGGA,121901.391,-3005.6886,N,-5138.5158,E,1,08,0.8,46.1,M,,,
+$GPRMC,121901.391,A,-3005.6886,N,-5138.5158,E,44.3,246.0,000070,,,A
+$GPGGA,121903.639,-3005.6958,N,-5138.5344,E,1,08,0.8,46.1,M,,,
+$GPRMC,121903.639,A,-3005.6958,N,-5138.5344,E,44.3,246.0,000070,,,A
+$GPGGA,121905.951,-3005.7030,N,-5138.5536,E,1,08,0.8,46.1,M,,,
+$GPRMC,121905.951,A,-3005.7030,N,-5138.5536,E,44.3,246.0,000070,,,A
+$GPGGA,121908.199,-3005.7102,N,-5138.5722,E,1,08,0.8,46.1,M,,,
+$GPRMC,121908.199,A,-3005.7102,N,-5138.5722,E,44.3,246.0,000070,,,A
+$GPGGA,121910.447,-3005.7174,N,-5138.5908,E,1,08,0.8,46.1,M,,,
+$GPRMC,121910.447,A,-3005.7174,N,-5138.5908,E,44.3,247.0,000070,,,A
+$GPGGA,121912.672,-3005.7240,N,-5138.6094,E,1,08,0.8,46.1,M,,,
+$GPRMC,121912.672,A,-3005.7240,N,-5138.6094,E,44.3,247.0,000070,,,A
+$GPGGA,121914.983,-3005.7312,N,-5138.6286,E,1,08,0.8,46.1,M,,,
+$GPRMC,121914.983,A,-3005.7312,N,-5138.6286,E,44.3,246.0,000070,,,A
+$GPGGA,121917.232,-3005.7384,N,-5138.6472,E,1,08,0.8,46.1,M,,,
+$GPRMC,121917.232,A,-3005.7384,N,-5138.6472,E,44.3,246.0,000070,,,A
+$GPGGA,121919.480,-3005.7456,N,-5138.6658,E,1,08,0.8,46.1,M,,,
+$GPRMC,121919.480,A,-3005.7456,N,-5138.6658,E,44.3,246.0,000070,,,A
+$GPGGA,121921.791,-3005.7528,N,-5138.6850,E,1,08,0.8,46.1,M,,,
+$GPRMC,121921.791,A,-3005.7528,N,-5138.6850,E,44.3,246.0,000070,,,A
+$GPGGA,121924.039,-3005.7600,N,-5138.7036,E,1,08,0.8,46.1,M,,,
+$GPRMC,121924.039,A,-3005.7600,N,-5138.7036,E,44.3,246.0,000070,,,A
+$GPGGA,121926.351,-3005.7672,N,-5138.7228,E,1,08,0.8,46.1,M,,,
+$GPRMC,121926.351,A,-3005.7672,N,-5138.7228,E,44.3,246.0,000070,,,A
+$GPGGA,121928.599,-3005.7744,N,-5138.7414,E,1,08,0.8,46.1,M,,,
+$GPRMC,121928.599,A,-3005.7744,N,-5138.7414,E,44.3,246.0,000070,,,A
+$GPGGA,121930.847,-3005.7816,N,-5138.7600,E,1,08,0.8,46.1,M,,,
+$GPRMC,121930.847,A,-3005.7816,N,-5138.7600,E,44.3,246.0,000070,,,A
+$GPGGA,121933.159,-3005.7888,N,-5138.7792,E,1,08,0.8,46.1,M,,,
+$GPRMC,121933.159,A,-3005.7888,N,-5138.7792,E,44.3,246.0,000070,,,A
+$GPGGA,121935.407,-3005.7960,N,-5138.7978,E,1,08,0.8,46.1,M,,,
+$GPRMC,121935.407,A,-3005.7960,N,-5138.7978,E,44.3,246.0,000070,,,A
+$GPGGA,121937.655,-3005.8032,N,-5138.8164,E,1,08,0.8,46.1,M,,,
+$GPRMC,121937.655,A,-3005.8032,N,-5138.8164,E,44.3,246.0,000070,,,A
+$GPGGA,121939.967,-3005.8104,N,-5138.8356,E,1,08,0.8,46.1,M,,,
+$GPRMC,121939.967,A,-3005.8104,N,-5138.8356,E,44.3,246.0,000070,,,A
+$GPGGA,121942.215,-3005.8176,N,-5138.8542,E,1,08,0.8,46.1,M,,,
+$GPRMC,121942.215,A,-3005.8176,N,-5138.8542,E,44.3,246.0,000070,,,A
+$GPGGA,121944.463,-3005.8248,N,-5138.8728,E,1,08,0.8,46.1,M,,,
+$GPRMC,121944.463,A,-3005.8248,N,-5138.8728,E,44.3,246.0,000070,,,A
+$GPGGA,121946.774,-3005.8320,N,-5138.8920,E,1,08,0.8,46.1,M,,,
+$GPRMC,121946.774,A,-3005.8320,N,-5138.8920,E,44.3,246.0,000070,,,A
+$GPGGA,121949.023,-3005.8392,N,-5138.9106,E,1,08,0.8,46.1,M,,,
+$GPRMC,121949.023,A,-3005.8392,N,-5138.9106,E,44.3,246.0,000070,,,A
+$GPGGA,121951.334,-3005.8464,N,-5138.9298,E,1,08,0.8,46.1,M,,,
+$GPRMC,121951.334,A,-3005.8464,N,-5138.9298,E,44.3,246.0,000070,,,A
+$GPGGA,121953.582,-3005.8536,N,-5138.9484,E,1,08,0.8,46.1,M,,,
+$GPRMC,121953.582,A,-3005.8536,N,-5138.9484,E,44.3,246.0,000070,,,A
+$GPGGA,121955.831,-3005.8608,N,-5138.9670,E,1,08,0.8,46.1,M,,,
+$GPRMC,121955.831,A,-3005.8608,N,-5138.9670,E,44.3,246.0,000070,,,A
+$GPGGA,121958.142,-3005.8680,N,-5138.9862,E,1,08,0.8,46.1,M,,,
+$GPRMC,121958.142,A,-3005.8680,N,-5138.9862,E,44.3,246.0,000070,,,A
+$GPGGA,122000.390,-3005.8752,N,-5139.0048,E,1,08,0.8,46.1,M,,,
+$GPRMC,122000.390,A,-3005.8752,N,-5139.0048,E,44.3,246.0,000070,,,A
+$GPGGA,122002.702,-3005.8824,N,-5139.0240,E,1,08,0.8,46.1,M,,,
+$GPRMC,122002.702,A,-3005.8824,N,-5139.0240,E,44.3,246.0,000070,,,A
+$GPGGA,122004.950,-3005.8896,N,-5139.0426,E,1,08,0.8,46.1,M,,,
+$GPRMC,122004.950,A,-3005.8896,N,-5139.0426,E,44.3,246.0,000070,,,A
+$GPGGA,122007.198,-3005.8968,N,-5139.0612,E,1,08,0.8,46.1,M,,,
+$GPRMC,122007.198,A,-3005.8968,N,-5139.0612,E,44.3,246.0,000070,,,A
+$GPGGA,122009.446,-3005.9040,N,-5139.0798,E,1,08,0.8,46.1,M,,,
+$GPRMC,122009.446,A,-3005.9040,N,-5139.0798,E,44.3,246.0,000070,,,A
+$GPGGA,122011.694,-3005.9112,N,-5139.0984,E,1,08,0.8,46.1,M,,,
+$GPRMC,122011.694,A,-3005.9112,N,-5139.0984,E,44.3,246.0,000070,,,A
+$GPGGA,122014.006,-3005.9184,N,-5139.1176,E,1,08,0.8,46.1,M,,,
+$GPRMC,122014.006,A,-3005.9184,N,-5139.1176,E,44.3,247.0,000070,,,A
+$GPGGA,122016.317,-3005.9256,N,-5139.1368,E,1,08,0.8,46.1,M,,,
+$GPRMC,122016.317,A,-3005.9256,N,-5139.1368,E,44.3,246.0,000070,,,A
+$GPGGA,122018.566,-3005.9328,N,-5139.1554,E,1,08,0.8,46.1,M,,,
+$GPRMC,122018.566,A,-3005.9328,N,-5139.1554,E,44.3,246.0,000070,,,A
+$GPGGA,122020.877,-3005.9400,N,-5139.1746,E,1,08,0.8,46.1,M,,,
+$GPRMC,122020.877,A,-3005.9400,N,-5139.1746,E,44.3,245.0,000070,,,A
+$GPGGA,122023.150,-3005.9478,N,-5139.1932,E,1,08,0.8,46.1,M,,,
+$GPRMC,122023.150,A,-3005.9478,N,-5139.1932,E,44.3,245.0,000070,,,A
+$GPGGA,122025.399,-3005.9550,N,-5139.2118,E,1,08,0.8,46.1,M,,,
+$GPRMC,122025.399,A,-3005.9550,N,-5139.2118,E,44.3,246.0,000070,,,A
+$GPGGA,122027.710,-3005.9622,N,-5139.2310,E,1,08,0.8,46.1,M,,,
+$GPRMC,122027.710,A,-3005.9622,N,-5139.2310,E,44.3,246.0,000070,,,A
+$GPGGA,122029.958,-3005.9694,N,-5139.2496,E,1,08,0.8,46.1,M,,,
+$GPRMC,122029.958,A,-3005.9694,N,-5139.2496,E,44.3,246.0,000070,,,A
+$GPGGA,122032.270,-3005.9766,N,-5139.2688,E,1,08,0.8,46.1,M,,,
+$GPRMC,122032.270,A,-3005.9766,N,-5139.2688,E,44.3,246.0,000070,,,A
+$GPGGA,122034.518,-3005.9838,N,-5139.2874,E,1,08,0.8,46.1,M,,,
+$GPRMC,122034.518,A,-3005.9838,N,-5139.2874,E,44.3,246.0,000070,,,A
+$GPGGA,122036.766,-3005.9910,N,-5139.3060,E,1,08,0.8,46.1,M,,,
+$GPRMC,122036.766,A,-3005.9910,N,-5139.3060,E,44.3,246.0,000070,,,A
+$GPGGA,122039.078,-3005.9982,N,-5139.3252,E,1,08,0.8,46.1,M,,,
+$GPRMC,122039.078,A,-3005.9982,N,-5139.3252,E,44.3,246.0,000070,,,A
+$GPGGA,122041.326,-3006.0054,N,-5139.3438,E,1,08,0.8,46.1,M,,,
+$GPRMC,122041.326,A,-3006.0054,N,-5139.3438,E,44.3,246.0,000070,,,A
+$GPGGA,122043.574,-3006.0126,N,-5139.3624,E,1,08,0.8,46.1,M,,,
+$GPRMC,122043.574,A,-3006.0126,N,-5139.3624,E,44.3,245.0,000070,,,A
+$GPGGA,122045.910,-3006.0204,N,-5139.3816,E,1,08,0.8,46.1,M,,,
+$GPRMC,122045.910,A,-3006.0204,N,-5139.3816,E,44.3,246.0,000070,,,A
+$GPGGA,122048.071,-3006.0270,N,-5139.3996,E,1,08,0.8,46.1,M,,,
+$GPRMC,122048.071,A,-3006.0270,N,-5139.3996,E,44.3,246.0,000070,,,A
+$GPGGA,122050.319,-3006.0342,N,-5139.4182,E,1,08,0.8,46.1,M,,,
+$GPRMC,122050.319,A,-3006.0342,N,-5139.4182,E,44.3,246.0,000070,,,A
+$GPGGA,122052.631,-3006.0414,N,-5139.4374,E,1,08,0.8,46.1,M,,,
+$GPRMC,122052.631,A,-3006.0414,N,-5139.4374,E,44.3,246.0,000070,,,A
+$GPGGA,122054.816,-3006.0486,N,-5139.4554,E,1,08,0.8,46.1,M,,,
+$GPRMC,122054.816,A,-3006.0486,N,-5139.4554,E,44.3,245.0,000070,,,A
+$GPGGA,122057.064,-3006.0558,N,-5139.4740,E,1,08,0.8,46.1,M,,,
+$GPRMC,122057.064,A,-3006.0558,N,-5139.4740,E,44.3,246.0,000070,,,A
+$GPGGA,122059.225,-3006.0624,N,-5139.4920,E,1,08,0.8,46.1,M,,,
+$GPRMC,122059.225,A,-3006.0624,N,-5139.4920,E,44.3,246.0,000070,,,A
+$GPGGA,122101.561,-3006.0702,N,-5139.5112,E,1,08,0.8,46.1,M,,,
+$GPRMC,122101.561,A,-3006.0702,N,-5139.5112,E,44.3,246.0,000070,,,A
+$GPGGA,122103.786,-3006.0768,N,-5139.5298,E,1,08,0.8,46.1,M,,,
+$GPRMC,122103.786,A,-3006.0768,N,-5139.5298,E,44.3,247.0,000070,,,A
+$GPGGA,122106.034,-3006.0840,N,-5139.5484,E,1,08,0.8,46.1,M,,,
+$GPRMC,122106.034,A,-3006.0840,N,-5139.5484,E,44.3,246.0,000070,,,A
+$GPGGA,122108.283,-3006.0912,N,-5139.5670,E,1,08,0.8,46.1,M,,,
+$GPRMC,122108.283,A,-3006.0912,N,-5139.5670,E,44.3,246.0,000070,,,A
+$GPGGA,122110.594,-3006.0984,N,-5139.5862,E,1,08,0.8,46.1,M,,,
+$GPRMC,122110.594,A,-3006.0984,N,-5139.5862,E,44.3,246.0,000070,,,A
+$GPGGA,122112.842,-3006.1056,N,-5139.6048,E,1,08,0.8,46.1,M,,,
+$GPRMC,122112.842,A,-3006.1056,N,-5139.6048,E,44.3,246.0,000070,,,A
+$GPGGA,122115.090,-3006.1128,N,-5139.6234,E,1,08,0.8,46.1,M,,,
+$GPRMC,122115.090,A,-3006.1128,N,-5139.6234,E,44.3,246.0,000070,,,A
+$GPGGA,122117.402,-3006.1200,N,-5139.6426,E,1,08,0.8,46.1,M,,,
+$GPRMC,122117.402,A,-3006.1200,N,-5139.6426,E,44.3,246.0,000070,,,A
+$GPGGA,122119.650,-3006.1272,N,-5139.6612,E,1,08,0.8,46.1,M,,,
+$GPRMC,122119.650,A,-3006.1272,N,-5139.6612,E,44.3,245.0,000070,,,A
+$GPGGA,122121.986,-3006.1350,N,-5139.6804,E,1,08,0.8,46.1,M,,,
+$GPRMC,122121.986,A,-3006.1350,N,-5139.6804,E,44.3,245.0,000070,,,A
+$GPGGA,122124.234,-3006.1422,N,-5139.6990,E,1,08,0.8,46.1,M,,,
+$GPRMC,122124.234,A,-3006.1422,N,-5139.6990,E,44.3,246.0,000070,,,A
+$GPGGA,122126.546,-3006.1494,N,-5139.7182,E,1,08,0.8,46.1,M,,,
+$GPRMC,122126.546,A,-3006.1494,N,-5139.7182,E,44.3,246.0,000070,,,A
+$GPGGA,122128.794,-3006.1566,N,-5139.7368,E,1,08,0.8,46.1,M,,,
+$GPRMC,122128.794,A,-3006.1566,N,-5139.7368,E,44.3,246.0,000070,,,A
+$GPGGA,122131.042,-3006.1638,N,-5139.7554,E,1,08,0.8,46.1,M,,,
+$GPRMC,122131.042,A,-3006.1638,N,-5139.7554,E,44.3,246.0,000070,,,A
+$GPGGA,122133.354,-3006.1710,N,-5139.7746,E,1,08,0.8,46.1,M,,,
+$GPRMC,122133.354,A,-3006.1710,N,-5139.7746,E,44.3,246.0,000070,,,A
+$GPGGA,122135.602,-3006.1782,N,-5139.7932,E,1,08,0.8,46.1,M,,,
+$GPRMC,122135.602,A,-3006.1782,N,-5139.7932,E,44.3,246.0,000070,,,A
+$GPGGA,122137.850,-3006.1854,N,-5139.8118,E,1,08,0.8,46.1,M,,,
+$GPRMC,122137.850,A,-3006.1854,N,-5139.8118,E,44.3,246.0,000070,,,A
+$GPGGA,122140.161,-3006.1926,N,-5139.8310,E,1,08,0.8,46.1,M,,,
+$GPRMC,122140.161,A,-3006.1926,N,-5139.8310,E,44.3,246.0,000070,,,A
+$GPGGA,122142.410,-3006.1998,N,-5139.8496,E,1,08,0.8,46.1,M,,,
+$GPRMC,122142.410,A,-3006.1998,N,-5139.8496,E,44.3,246.0,000070,,,A
+$GPGGA,122144.658,-3006.2070,N,-5139.8682,E,1,08,0.8,46.1,M,,,
+$GPRMC,122144.658,A,-3006.2070,N,-5139.8682,E,44.3,246.0,000070,,,A
+$GPGGA,122146.906,-3006.2142,N,-5139.8868,E,1,08,0.8,46.1,M,,,
+$GPRMC,122146.906,A,-3006.2142,N,-5139.8868,E,44.3,246.0,000070,,,A
+$GPGGA,122149.218,-3006.2214,N,-5139.9060,E,1,08,0.8,46.1,M,,,
+$GPRMC,122149.218,A,-3006.2214,N,-5139.9060,E,44.3,247.0,000070,,,A
+$GPGGA,122151.442,-3006.2280,N,-5139.9246,E,1,08,0.8,46.1,M,,,
+$GPRMC,122151.442,A,-3006.2280,N,-5139.9246,E,44.3,247.0,000070,,,A
+$GPGGA,122153.690,-3006.2352,N,-5139.9432,E,1,08,0.8,46.1,M,,,
+$GPRMC,122153.690,A,-3006.2352,N,-5139.9432,E,44.3,246.0,000070,,,A
+$GPGGA,122156.002,-3006.2424,N,-5139.9624,E,1,08,0.8,46.1,M,,,
+$GPRMC,122156.002,A,-3006.2424,N,-5139.9624,E,44.3,246.0,000070,,,A
+$GPGGA,122158.250,-3006.2496,N,-5139.9810,E,1,08,0.8,46.1,M,,,
+$GPRMC,122158.250,A,-3006.2496,N,-5139.9810,E,44.3,246.0,000070,,,A
+$GPGGA,122200.498,-3006.2568,N,-5139.9996,E,1,08,0.8,46.1,M,,,
+$GPRMC,122200.498,A,-3006.2568,N,-5139.9996,E,44.3,247.0,000070,,,A
+$GPGGA,122202.723,-3006.2634,N,-5140.0182,E,1,08,0.8,46.1,M,,,
+$GPRMC,122202.723,A,-3006.2634,N,-5140.0182,E,44.3,247.0,000070,,,A
+$GPGGA,122204.971,-3006.2706,N,-5140.0368,E,1,08,0.8,46.1,M,,,
+$GPRMC,122204.971,A,-3006.2706,N,-5140.0368,E,44.3,246.0,000070,,,A
+$GPGGA,122207.283,-3006.2778,N,-5140.0560,E,1,08,0.8,46.1,M,,,
+$GPRMC,122207.283,A,-3006.2778,N,-5140.0560,E,44.3,246.0,000070,,,A
+$GPGGA,122209.531,-3006.2850,N,-5140.0746,E,1,08,0.8,46.1,M,,,
+$GPRMC,122209.531,A,-3006.2850,N,-5140.0746,E,44.3,245.0,000070,,,A
+$GPGGA,122211.867,-3006.2928,N,-5140.0938,E,1,08,0.8,46.1,M,,,
+$GPRMC,122211.867,A,-3006.2928,N,-5140.0938,E,44.3,245.0,000070,,,A
+$GPGGA,122214.115,-3006.3000,N,-5140.1124,E,1,08,0.8,46.1,M,,,
+$GPRMC,122214.115,A,-3006.3000,N,-5140.1124,E,44.3,246.0,000070,,,A
+$GPGGA,122216.363,-3006.3072,N,-5140.1310,E,1,08,0.8,46.1,M,,,
+$GPRMC,122216.363,A,-3006.3072,N,-5140.1310,E,44.3,246.0,000070,,,A
+$GPGGA,122218.675,-3006.3144,N,-5140.1502,E,1,08,0.8,46.1,M,,,
+$GPRMC,122218.675,A,-3006.3144,N,-5140.1502,E,44.3,246.0,000070,,,A
+$GPGGA,122220.923,-3006.3216,N,-5140.1688,E,1,08,0.8,46.1,M,,,
+$GPRMC,122220.923,A,-3006.3216,N,-5140.1688,E,44.3,246.0,000070,,,A
+$GPGGA,122223.234,-3006.3288,N,-5140.1880,E,1,08,0.8,46.1,M,,,
+$GPRMC,122223.234,A,-3006.3288,N,-5140.1880,E,44.3,246.0,000070,,,A
+$GPGGA,122225.483,-3006.3360,N,-5140.2066,E,1,08,0.8,46.1,M,,,
+$GPRMC,122225.483,A,-3006.3360,N,-5140.2066,E,44.3,246.0,000070,,,A
+$GPGGA,122227.731,-3006.3432,N,-5140.2252,E,1,08,0.8,46.1,M,,,
+$GPRMC,122227.731,A,-3006.3432,N,-5140.2252,E,44.3,246.0,000070,,,A
+$GPGGA,122230.042,-3006.3504,N,-5140.2444,E,1,08,0.8,46.1,M,,,
+$GPRMC,122230.042,A,-3006.3504,N,-5140.2444,E,44.3,252.0,000070,,,A
+$GPGGA,122232.311,-3006.3540,N,-5140.2642,E,1,08,0.8,46.1,M,,,
+$GPRMC,122232.311,A,-3006.3540,N,-5140.2642,E,44.3,259.0,000070,,,A
+$GPGGA,122234.635,-3006.3570,N,-5140.2846,E,1,08,0.8,46.1,M,,,
+$GPRMC,122234.635,A,-3006.3570,N,-5140.2846,E,44.3,260.0,000070,,,A
+$GPGGA,122236.959,-3006.3600,N,-5140.3050,E,1,08,0.8,46.1,M,,,
+$GPRMC,122236.959,A,-3006.3600,N,-5140.3050,E,44.3,260.0,000070,,,A
+$GPGGA,122239.283,-3006.3630,N,-5140.3254,E,1,08,0.8,46.1,M,,,
+$GPRMC,122239.283,A,-3006.3630,N,-5140.3254,E,44.3,260.0,000070,,,A
+$GPGGA,122241.541,-3006.3660,N,-5140.3452,E,1,08,0.8,46.1,M,,,
+$GPRMC,122241.541,A,-3006.3660,N,-5140.3452,E,44.3,260.0,000070,,,A
+$GPGGA,122243.865,-3006.3690,N,-5140.3656,E,1,08,0.8,46.1,M,,,
+$GPRMC,122243.865,A,-3006.3690,N,-5140.3656,E,44.3,260.0,000070,,,A
+$GPGGA,122246.189,-3006.3720,N,-5140.3860,E,1,08,0.8,46.1,M,,,
+$GPRMC,122246.189,A,-3006.3720,N,-5140.3860,E,44.3,260.0,000070,,,A
+$GPGGA,122248.514,-3006.3750,N,-5140.4064,E,1,08,0.8,46.1,M,,,
+$GPRMC,122248.514,A,-3006.3750,N,-5140.4064,E,44.3,260.0,000070,,,A
+$GPGGA,122250.838,-3006.3780,N,-5140.4268,E,1,08,0.8,46.1,M,,,
+$GPRMC,122250.838,A,-3006.3780,N,-5140.4268,E,44.3,260.0,000070,,,A
+$GPGGA,122253.162,-3006.3810,N,-5140.4472,E,1,08,0.8,46.1,M,,,
+$GPRMC,122253.162,A,-3006.3810,N,-5140.4472,E,44.3,260.0,000070,,,A
+$GPGGA,122255.419,-3006.3840,N,-5140.4670,E,1,08,0.8,46.1,M,,,
+$GPRMC,122255.419,A,-3006.3840,N,-5140.4670,E,44.3,260.0,000070,,,A
+$GPGGA,122257.744,-3006.3870,N,-5140.4874,E,1,08,0.8,46.1,M,,,
+$GPRMC,122257.744,A,-3006.3870,N,-5140.4874,E,44.3,260.0,000070,,,A
+$GPGGA,122300.068,-3006.3900,N,-5140.5078,E,1,08,0.8,46.1,M,,,
+$GPRMC,122300.068,A,-3006.3900,N,-5140.5078,E,44.3,260.0,000070,,,A
+$GPGGA,122302.392,-3006.3930,N,-5140.5282,E,1,08,0.8,46.1,M,,,
+$GPRMC,122302.392,A,-3006.3930,N,-5140.5282,E,44.3,260.0,000070,,,A
+$GPGGA,122304.716,-3006.3960,N,-5140.5486,E,1,08,0.8,46.1,M,,,
+$GPRMC,122304.716,A,-3006.3960,N,-5140.5486,E,44.3,260.0,000070,,,A
+$GPGGA,122307.041,-3006.3990,N,-5140.5690,E,1,08,0.8,46.1,M,,,
+$GPRMC,122307.041,A,-3006.3990,N,-5140.5690,E,44.3,260.0,000070,,,A
+$GPGGA,122309.298,-3006.4020,N,-5140.5888,E,1,08,0.8,46.1,M,,,
+$GPRMC,122309.298,A,-3006.4020,N,-5140.5888,E,44.3,260.0,000070,,,A
+$GPGGA,122311.622,-3006.4050,N,-5140.6092,E,1,08,0.8,46.1,M,,,
+$GPRMC,122311.622,A,-3006.4050,N,-5140.6092,E,44.3,260.0,000070,,,A
+$GPGGA,122313.947,-3006.4080,N,-5140.6296,E,1,08,0.8,46.1,M,,,
+$GPRMC,122313.947,A,-3006.4080,N,-5140.6296,E,44.3,259.0,000070,,,A
+$GPGGA,122316.282,-3006.4116,N,-5140.6500,E,1,08,0.8,46.1,M,,,
+$GPRMC,122316.282,A,-3006.4116,N,-5140.6500,E,44.3,259.0,000070,,,A
+$GPGGA,122318.606,-3006.4146,N,-5140.6704,E,1,08,0.8,46.1,M,,,
+$GPRMC,122318.606,A,-3006.4146,N,-5140.6704,E,44.3,260.0,000070,,,A
+$GPGGA,122320.863,-3006.4176,N,-5140.6902,E,1,08,0.8,46.1,M,,,
+$GPRMC,122320.863,A,-3006.4176,N,-5140.6902,E,44.3,260.0,000070,,,A
+$GPGGA,122323.187,-3006.4206,N,-5140.7106,E,1,08,0.8,46.1,M,,,
+$GPRMC,122323.187,A,-3006.4206,N,-5140.7106,E,44.3,260.0,000070,,,A
+$GPGGA,122325.512,-3006.4236,N,-5140.7310,E,1,08,0.8,46.1,M,,,
+$GPRMC,122325.512,A,-3006.4236,N,-5140.7310,E,44.3,260.0,000070,,,A
+$GPGGA,122327.836,-3006.4266,N,-5140.7514,E,1,08,0.8,46.1,M,,,
+$GPRMC,122327.836,A,-3006.4266,N,-5140.7514,E,44.3,260.0,000070,,,A
+$GPGGA,122330.160,-3006.4296,N,-5140.7718,E,1,08,0.8,46.1,M,,,
+$GPRMC,122330.160,A,-3006.4296,N,-5140.7718,E,44.3,260.0,000070,,,A
+$GPGGA,122332.484,-3006.4326,N,-5140.7922,E,1,08,0.8,46.1,M,,,
+$GPRMC,122332.484,A,-3006.4326,N,-5140.7922,E,44.3,260.0,000070,,,A
+$GPGGA,122334.742,-3006.4356,N,-5140.8120,E,1,08,0.8,46.1,M,,,
+$GPRMC,122334.742,A,-3006.4356,N,-5140.8120,E,44.3,260.0,000070,,,A
+$GPGGA,122337.066,-3006.4386,N,-5140.8324,E,1,08,0.8,46.1,M,,,
+$GPRMC,122337.066,A,-3006.4386,N,-5140.8324,E,44.3,260.0,000070,,,A
+$GPGGA,122339.390,-3006.4416,N,-5140.8528,E,1,08,0.8,46.1,M,,,
+$GPRMC,122339.390,A,-3006.4416,N,-5140.8528,E,44.3,260.0,000070,,,A
+$GPGGA,122341.715,-3006.4446,N,-5140.8732,E,1,08,0.8,46.1,M,,,
+$GPRMC,122341.715,A,-3006.4446,N,-5140.8732,E,44.3,260.0,000070,,,A
+$GPGGA,122344.039,-3006.4476,N,-5140.8936,E,1,08,0.8,46.1,M,,,
+$GPRMC,122344.039,A,-3006.4476,N,-5140.8936,E,44.3,260.0,000070,,,A
+$GPGGA,122346.296,-3006.4506,N,-5140.9134,E,1,08,0.8,46.1,M,,,
+$GPRMC,122346.296,A,-3006.4506,N,-5140.9134,E,44.3,260.0,000070,,,A
+$GPGGA,122348.620,-3006.4536,N,-5140.9338,E,1,08,0.8,46.1,M,,,
+$GPRMC,122348.620,A,-3006.4536,N,-5140.9338,E,44.3,260.0,000070,,,A
+$GPGGA,122350.945,-3006.4566,N,-5140.9542,E,1,08,0.8,46.1,M,,,
+$GPRMC,122350.945,A,-3006.4566,N,-5140.9542,E,44.3,260.0,000070,,,A
+$GPGGA,122353.269,-3006.4596,N,-5140.9746,E,1,08,0.8,46.1,M,,,
+$GPRMC,122353.269,A,-3006.4596,N,-5140.9746,E,44.3,260.0,000070,,,A
+$GPGGA,122355.593,-3006.4626,N,-5140.9950,E,1,08,0.8,46.1,M,,,
+$GPRMC,122355.593,A,-3006.4626,N,-5140.9950,E,44.3,260.0,000070,,,A
+$GPGGA,122357.917,-3006.4656,N,-5141.0154,E,1,08,0.8,46.1,M,,,
+$GPRMC,122357.917,A,-3006.4656,N,-5141.0154,E,44.3,260.0,000070,,,A
+$GPGGA,122400.175,-3006.4686,N,-5141.0352,E,1,08,0.8,46.1,M,,,
+$GPRMC,122400.175,A,-3006.4686,N,-5141.0352,E,44.3,260.0,000070,,,A
+$GPGGA,122402.499,-3006.4716,N,-5141.0556,E,1,08,0.8,46.1,M,,,
+$GPRMC,122402.499,A,-3006.4716,N,-5141.0556,E,44.3,260.0,000070,,,A
+$GPGGA,122404.823,-3006.4746,N,-5141.0760,E,1,08,0.8,46.1,M,,,
+$GPRMC,122404.823,A,-3006.4746,N,-5141.0760,E,44.3,260.0,000070,,,A
+$GPGGA,122407.147,-3006.4776,N,-5141.0964,E,1,08,0.8,46.1,M,,,
+$GPRMC,122407.147,A,-3006.4776,N,-5141.0964,E,44.3,260.0,000070,,,A
+$GPGGA,122409.472,-3006.4806,N,-5141.1168,E,1,08,0.8,46.1,M,,,
+$GPRMC,122409.472,A,-3006.4806,N,-5141.1168,E,44.3,259.0,000070,,,A
+$GPGGA,122411.807,-3006.4842,N,-5141.1372,E,1,08,0.8,46.1,M,,,
+$GPRMC,122411.807,A,-3006.4842,N,-5141.1372,E,44.3,265.0,000070,,,A
+$GPGGA,122414.107,-3006.4836,N,-5141.1576,E,1,08,0.8,46.1,M,,,
+$GPRMC,122414.107,A,-3006.4836,N,-5141.1576,E,44.3,273.0,000070,,,A
+$GPGGA,122416.411,-3006.4824,N,-5141.1780,E,1,08,0.8,46.1,M,,,
+$GPRMC,122416.411,A,-3006.4824,N,-5141.1780,E,44.3,274.0,000070,,,A
+$GPGGA,122418.714,-3006.4812,N,-5141.1984,E,1,08,0.8,46.1,M,,,
+$GPRMC,122418.714,A,-3006.4812,N,-5141.1984,E,44.3,274.0,000070,,,A
+$GPGGA,122421.018,-3006.4800,N,-5141.2188,E,1,08,0.8,46.1,M,,,
+$GPRMC,122421.018,A,-3006.4800,N,-5141.2188,E,44.3,274.0,000070,,,A
+$GPGGA,122423.389,-3006.4788,N,-5141.2398,E,1,08,0.8,46.1,M,,,
+$GPRMC,122423.389,A,-3006.4788,N,-5141.2398,E,44.3,274.0,000070,,,A
+$GPGGA,122425.692,-3006.4776,N,-5141.2602,E,1,08,0.8,46.1,M,,,
+$GPRMC,122425.692,A,-3006.4776,N,-5141.2602,E,44.3,274.0,000070,,,A
+$GPGGA,122427.996,-3006.4764,N,-5141.2806,E,1,08,0.8,46.1,M,,,
+$GPRMC,122427.996,A,-3006.4764,N,-5141.2806,E,44.3,274.0,000070,,,A
+$GPGGA,122430.299,-3006.4752,N,-5141.3010,E,1,08,0.8,46.1,M,,,
+$GPRMC,122430.299,A,-3006.4752,N,-5141.3010,E,44.3,274.0,000070,,,A
+$GPGGA,122432.670,-3006.4740,N,-5141.3220,E,1,08,0.8,46.1,M,,,
+$GPRMC,122432.670,A,-3006.4740,N,-5141.3220,E,44.3,274.0,000070,,,A
+$GPGGA,122434.974,-3006.4728,N,-5141.3424,E,1,08,0.8,46.1,M,,,
+$GPRMC,122434.974,A,-3006.4728,N,-5141.3424,E,44.3,274.0,000070,,,A
+$GPGGA,122437.277,-3006.4716,N,-5141.3628,E,1,08,0.8,46.1,M,,,
+$GPRMC,122437.277,A,-3006.4716,N,-5141.3628,E,44.3,274.0,000070,,,A
+$GPGGA,122439.581,-3006.4704,N,-5141.3832,E,1,08,0.8,46.1,M,,,
+$GPRMC,122439.581,A,-3006.4704,N,-5141.3832,E,44.3,275.0,000070,,,A
+$GPGGA,122441.957,-3006.4686,N,-5141.4042,E,1,08,0.8,46.1,M,,,
+$GPRMC,122441.957,A,-3006.4686,N,-5141.4042,E,44.3,275.0,000070,,,A
+$GPGGA,122444.260,-3006.4674,N,-5141.4246,E,1,08,0.8,46.1,M,,,
+$GPRMC,122444.260,A,-3006.4674,N,-5141.4246,E,44.3,274.0,000070,,,A
+$GPGGA,122446.564,-3006.4662,N,-5141.4450,E,1,08,0.8,46.1,M,,,
+$GPRMC,122446.564,A,-3006.4662,N,-5141.4450,E,44.3,274.0,000070,,,A
+$GPGGA,122448.867,-3006.4650,N,-5141.4654,E,1,08,0.8,46.1,M,,,
+$GPRMC,122448.867,A,-3006.4650,N,-5141.4654,E,44.3,274.0,000070,,,A
+$GPGGA,122451.171,-3006.4638,N,-5141.4858,E,1,08,0.8,46.1,M,,,
+$GPRMC,122451.171,A,-3006.4638,N,-5141.4858,E,44.3,274.0,000070,,,A
+$GPGGA,122453.542,-3006.4626,N,-5141.5068,E,1,08,0.8,46.1,M,,,
+$GPRMC,122453.542,A,-3006.4626,N,-5141.5068,E,44.3,274.0,000070,,,A
+$GPGGA,122455.845,-3006.4614,N,-5141.5272,E,1,08,0.8,46.1,M,,,
+$GPRMC,122455.845,A,-3006.4614,N,-5141.5272,E,44.3,274.0,000070,,,A
+$GPGGA,122458.149,-3006.4602,N,-5141.5476,E,1,08,0.8,46.1,M,,,
+$GPRMC,122458.149,A,-3006.4602,N,-5141.5476,E,44.3,274.0,000070,,,A
+$GPGGA,122500.452,-3006.4590,N,-5141.5680,E,1,08,0.8,46.1,M,,,
+$GPRMC,122500.452,A,-3006.4590,N,-5141.5680,E,44.3,275.0,000070,,,A
+$GPGGA,122502.760,-3006.4572,N,-5141.5884,E,1,08,0.8,46.1,M,,,
+$GPRMC,122502.760,A,-3006.4572,N,-5141.5884,E,44.3,275.0,000070,,,A
+$GPGGA,122505.064,-3006.4560,N,-5141.6088,E,1,08,0.8,46.1,M,,,
+$GPRMC,122505.064,A,-3006.4560,N,-5141.6088,E,44.3,274.0,000070,,,A
+$GPGGA,122507.435,-3006.4548,N,-5141.6298,E,1,08,0.8,46.1,M,,,
+$GPRMC,122507.435,A,-3006.4548,N,-5141.6298,E,44.3,274.0,000070,,,A
+$GPGGA,122509.738,-3006.4536,N,-5141.6502,E,1,08,0.8,46.1,M,,,
+$GPRMC,122509.738,A,-3006.4536,N,-5141.6502,E,44.3,274.0,000070,,,A
+$GPGGA,122512.042,-3006.4524,N,-5141.6706,E,1,08,0.8,46.1,M,,,
+$GPRMC,122512.042,A,-3006.4524,N,-5141.6706,E,44.3,274.0,000070,,,A
+$GPGGA,122514.345,-3006.4512,N,-5141.6910,E,1,08,0.8,46.1,M,,,
+$GPRMC,122514.345,A,-3006.4512,N,-5141.6910,E,44.3,274.0,000070,,,A
+$GPGGA,122516.649,-3006.4500,N,-5141.7114,E,1,08,0.8,46.1,M,,,
+$GPRMC,122516.649,A,-3006.4500,N,-5141.7114,E,44.3,274.0,000070,,,A
+$GPGGA,122518.952,-3006.4488,N,-5141.7318,E,1,08,0.8,46.1,M,,,
+$GPRMC,122518.952,A,-3006.4488,N,-5141.7318,E,44.3,274.0,000070,,,A
+$GPGGA,122521.323,-3006.4476,N,-5141.7528,E,1,08,0.8,46.1,M,,,
+$GPRMC,122521.323,A,-3006.4476,N,-5141.7528,E,44.3,273.0,000070,,,A
+$GPGGA,122523.624,-3006.4470,N,-5141.7732,E,1,08,0.8,46.1,M,,,
+$GPRMC,122523.624,A,-3006.4470,N,-5141.7732,E,44.3,273.0,000070,,,A
+$GPGGA,122525.927,-3006.4458,N,-5141.7936,E,1,08,0.8,46.1,M,,,
+$GPRMC,122525.927,A,-3006.4458,N,-5141.7936,E,44.3,274.0,000070,,,A
+$GPGGA,122528.231,-3006.4446,N,-5141.8140,E,1,08,0.8,46.1,M,,,
+$GPRMC,122528.231,A,-3006.4446,N,-5141.8140,E,44.3,274.0,000070,,,A
+$GPGGA,122530.602,-3006.4434,N,-5141.8350,E,1,08,0.8,46.1,M,,,
+$GPRMC,122530.602,A,-3006.4434,N,-5141.8350,E,44.3,274.0,000070,,,A
+$GPGGA,122532.905,-3006.4422,N,-5141.8554,E,1,08,0.8,46.1,M,,,
+$GPRMC,122532.905,A,-3006.4422,N,-5141.8554,E,44.3,274.0,000070,,,A
+$GPGGA,122535.209,-3006.4410,N,-5141.8758,E,1,08,0.8,46.1,M,,,
+$GPRMC,122535.209,A,-3006.4410,N,-5141.8758,E,44.3,273.0,000070,,,A
+$GPGGA,122537.509,-3006.4404,N,-5141.8962,E,1,08,0.8,46.1,M,,,
+$GPRMC,122537.509,A,-3006.4404,N,-5141.8962,E,44.3,273.0,000070,,,A
+$GPGGA,122539.880,-3006.4392,N,-5141.9172,E,1,08,0.8,46.1,M,,,
+$GPRMC,122539.880,A,-3006.4392,N,-5141.9172,E,44.3,274.0,000070,,,A
+$GPGGA,122542.184,-3006.4380,N,-5141.9376,E,1,08,0.8,46.1,M,,,
+$GPRMC,122542.184,A,-3006.4380,N,-5141.9376,E,44.3,274.0,000070,,,A
+$GPGGA,122544.487,-3006.4368,N,-5141.9580,E,1,08,0.8,46.1,M,,,
+$GPRMC,122544.487,A,-3006.4368,N,-5141.9580,E,44.3,274.0,000070,,,A
+$GPGGA,122546.791,-3006.4356,N,-5141.9784,E,1,08,0.8,46.1,M,,,
+$GPRMC,122546.791,A,-3006.4356,N,-5141.9784,E,44.3,274.0,000070,,,A
+$GPGGA,122549.162,-3006.4344,N,-5141.9994,E,1,08,0.8,46.1,M,,,
+$GPRMC,122549.162,A,-3006.4344,N,-5141.9994,E,44.3,273.0,000070,,,A
+$GPGGA,122551.462,-3006.4338,N,-5142.0198,E,1,08,0.8,46.1,M,,,
+$GPRMC,122551.462,A,-3006.4338,N,-5142.0198,E,44.3,273.0,000070,,,A
+$GPGGA,122553.766,-3006.4326,N,-5142.0402,E,1,08,0.8,46.1,M,,,
+$GPRMC,122553.766,A,-3006.4326,N,-5142.0402,E,44.3,274.0,000070,,,A
+$GPGGA,122556.137,-3006.4314,N,-5142.0612,E,1,08,0.8,46.1,M,,,
+$GPRMC,122556.137,A,-3006.4314,N,-5142.0612,E,44.3,274.0,000070,,,A
+$GPGGA,122558.440,-3006.4302,N,-5142.0816,E,1,08,0.8,46.1,M,,,
+$GPRMC,122558.440,A,-3006.4302,N,-5142.0816,E,44.3,274.0,000070,,,A
+$GPGGA,122600.744,-3006.4290,N,-5142.1020,E,1,08,0.8,46.1,M,,,
+$GPRMC,122600.744,A,-3006.4290,N,-5142.1020,E,44.3,274.0,000070,,,A
+$GPGGA,122603.047,-3006.4278,N,-5142.1224,E,1,08,0.8,46.1,M,,,
+$GPRMC,122603.047,A,-3006.4278,N,-5142.1224,E,44.3,273.0,000070,,,A
+$GPGGA,122605.416,-3006.4272,N,-5142.1434,E,1,08,0.8,46.1,M,,,
+$GPRMC,122605.416,A,-3006.4272,N,-5142.1434,E,44.3,273.0,000070,,,A
+$GPGGA,122607.719,-3006.4260,N,-5142.1638,E,1,08,0.8,46.1,M,,,
+$GPRMC,122607.719,A,-3006.4260,N,-5142.1638,E,44.3,274.0,000070,,,A
+$GPGGA,122610.023,-3006.4248,N,-5142.1842,E,1,08,0.8,46.1,M,,,
+$GPRMC,122610.023,A,-3006.4248,N,-5142.1842,E,44.3,274.0,000070,,,A
+$GPGGA,122612.326,-3006.4236,N,-5142.2046,E,1,08,0.8,46.1,M,,,
+$GPRMC,122612.326,A,-3006.4236,N,-5142.2046,E,44.3,274.0,000070,,,A
+$GPGGA,122614.697,-3006.4224,N,-5142.2256,E,1,08,0.8,46.1,M,,,
+$GPRMC,122614.697,A,-3006.4224,N,-5142.2256,E,44.3,274.0,000070,,,A
+$GPGGA,122617.001,-3006.4212,N,-5142.2460,E,1,08,0.8,46.1,M,,,
+$GPRMC,122617.001,A,-3006.4212,N,-5142.2460,E,44.3,273.0,000070,,,A
+$GPGGA,122619.301,-3006.4206,N,-5142.2664,E,1,08,0.8,46.1,M,,,
+$GPRMC,122619.301,A,-3006.4206,N,-5142.2664,E,44.3,273.0,000070,,,A
+$GPGGA,122621.605,-3006.4194,N,-5142.2868,E,1,08,0.8,46.1,M,,,
+$GPRMC,122621.605,A,-3006.4194,N,-5142.2868,E,44.3,274.0,000070,,,A
+$GPGGA,122623.976,-3006.4182,N,-5142.3078,E,1,08,0.8,46.1,M,,,
+$GPRMC,122623.976,A,-3006.4182,N,-5142.3078,E,44.3,274.0,000070,,,A
+$GPGGA,122626.279,-3006.4170,N,-5142.3282,E,1,08,0.8,46.1,M,,,
+$GPRMC,122626.279,A,-3006.4170,N,-5142.3282,E,44.3,274.0,000070,,,A
+$GPGGA,122628.583,-3006.4158,N,-5142.3486,E,1,08,0.8,46.1,M,,,
+$GPRMC,122628.583,A,-3006.4158,N,-5142.3486,E,44.3,274.0,000070,,,A
+$GPGGA,122630.886,-3006.4146,N,-5142.3690,E,1,08,0.8,46.1,M,,,
+$GPRMC,122630.886,A,-3006.4146,N,-5142.3690,E,44.3,273.0,000070,,,A
+$GPGGA,122633.254,-3006.4140,N,-5142.3900,E,1,08,0.8,46.1,M,,,
+$GPRMC,122633.254,A,-3006.4140,N,-5142.3900,E,44.3,273.0,000070,,,A
+$GPGGA,122635.558,-3006.4128,N,-5142.4104,E,1,08,0.8,46.1,M,,,
+$GPRMC,122635.558,A,-3006.4128,N,-5142.4104,E,44.3,274.0,000070,,,A
+$GPGGA,122637.861,-3006.4116,N,-5142.4308,E,1,08,0.8,46.1,M,,,
+$GPRMC,122637.861,A,-3006.4116,N,-5142.4308,E,44.3,274.0,000070,,,A
+$GPGGA,122640.165,-3006.4104,N,-5142.4512,E,1,08,0.8,46.1,M,,,
+$GPRMC,122640.165,A,-3006.4104,N,-5142.4512,E,44.3,274.0,000070,,,A
+$GPGGA,122642.536,-3006.4092,N,-5142.4722,E,1,08,0.8,46.1,M,,,
+$GPRMC,122642.536,A,-3006.4092,N,-5142.4722,E,44.3,274.0,000070,,,A
+$GPGGA,122644.839,-3006.4080,N,-5142.4926,E,1,08,0.8,46.1,M,,,
+$GPRMC,122644.839,A,-3006.4080,N,-5142.4926,E,44.3,273.0,000070,,,A
+$GPGGA,122647.140,-3006.4074,N,-5142.5130,E,1,08,0.8,46.1,M,,,
+$GPRMC,122647.140,A,-3006.4074,N,-5142.5130,E,44.3,273.0,000070,,,A
+$GPGGA,122649.443,-3006.4062,N,-5142.5334,E,1,08,0.8,46.1,M,,,
+$GPRMC,122649.443,A,-3006.4062,N,-5142.5334,E,44.3,274.0,000070,,,A
+$GPGGA,122651.814,-3006.4050,N,-5142.5544,E,1,08,0.8,46.1,M,,,
+$GPRMC,122651.814,A,-3006.4050,N,-5142.5544,E,44.3,274.0,000070,,,A
+$GPGGA,122654.118,-3006.4038,N,-5142.5748,E,1,08,0.8,46.1,M,,,
+$GPRMC,122654.118,A,-3006.4038,N,-5142.5748,E,44.3,274.0,000070,,,A
+$GPGGA,122656.421,-3006.4026,N,-5142.5952,E,1,08,0.8,46.1,M,,,
+$GPRMC,122656.421,A,-3006.4026,N,-5142.5952,E,44.3,274.0,000070,,,A
+$GPGGA,122658.725,-3006.4014,N,-5142.6156,E,1,08,0.8,46.1,M,,,
+$GPRMC,122658.725,A,-3006.4014,N,-5142.6156,E,44.3,273.0,000070,,,A
+$GPGGA,122701.093,-3006.4008,N,-5142.6366,E,1,08,0.8,46.1,M,,,
+$GPRMC,122701.093,A,-3006.4008,N,-5142.6366,E,44.3,273.0,000070,,,A
+$GPGGA,122703.396,-3006.3996,N,-5142.6570,E,1,08,0.8,46.1,M,,,
+$GPRMC,122703.396,A,-3006.3996,N,-5142.6570,E,44.3,274.0,000070,,,A
+$GPGGA,122705.700,-3006.3984,N,-5142.6774,E,1,08,0.8,46.1,M,,,
+$GPRMC,122705.700,A,-3006.3984,N,-5142.6774,E,44.3,274.0,000070,,,A
+$GPGGA,122708.003,-3006.3972,N,-5142.6978,E,1,08,0.8,46.1,M,,,
+$GPRMC,122708.003,A,-3006.3972,N,-5142.6978,E,44.3,273.0,000070,,,A
+$GPGGA,122710.304,-3006.3966,N,-5142.7182,E,1,08,0.8,46.1,M,,,
+$GPRMC,122710.304,A,-3006.3966,N,-5142.7182,E,44.3,273.0,000070,,,A
+$GPGGA,122712.675,-3006.3954,N,-5142.7392,E,1,08,0.8,46.1,M,,,
+$GPRMC,122712.675,A,-3006.3954,N,-5142.7392,E,44.3,274.0,000070,,,A
+$GPGGA,122714.978,-3006.3942,N,-5142.7596,E,1,08,0.8,46.1,M,,,
+$GPRMC,122714.978,A,-3006.3942,N,-5142.7596,E,44.3,274.0,000070,,,A
+$GPGGA,122717.282,-3006.3930,N,-5142.7800,E,1,08,0.8,46.1,M,,,
+$GPRMC,122717.282,A,-3006.3930,N,-5142.7800,E,44.3,274.0,000070,,,A
+$GPGGA,122719.585,-3006.3918,N,-5142.8004,E,1,08,0.8,46.1,M,,,
+$GPRMC,122719.585,A,-3006.3918,N,-5142.8004,E,44.3,274.0,000070,,,A
+$GPGGA,122721.956,-3006.3906,N,-5142.8214,E,1,08,0.8,46.1,M,,,
+$GPRMC,122721.956,A,-3006.3906,N,-5142.8214,E,44.3,274.0,000070,,,A
+$GPGGA,122724.260,-3006.3894,N,-5142.8418,E,1,08,0.8,46.1,M,,,
+$GPRMC,122724.260,A,-3006.3894,N,-5142.8418,E,44.3,274.0,000070,,,A
+$GPGGA,122726.563,-3006.3882,N,-5142.8622,E,1,08,0.8,46.1,M,,,
+$GPRMC,122726.563,A,-3006.3882,N,-5142.8622,E,44.3,274.0,000070,,,A
+$GPGGA,122728.867,-3006.3870,N,-5142.8826,E,1,08,0.8,46.1,M,,,
+$GPRMC,122728.867,A,-3006.3870,N,-5142.8826,E,44.3,274.0,000070,,,A
+$GPGGA,122731.238,-3006.3858,N,-5142.9036,E,1,08,0.8,46.1,M,,,
+$GPRMC,122731.238,A,-3006.3858,N,-5142.9036,E,44.3,274.0,000070,,,A
+$GPGGA,122733.541,-3006.3846,N,-5142.9240,E,1,08,0.8,46.1,M,,,
+$GPRMC,122733.541,A,-3006.3846,N,-5142.9240,E,44.3,273.0,000070,,,A
+$GPGGA,122735.842,-3006.3840,N,-5142.9444,E,1,08,0.8,46.1,M,,,
+$GPRMC,122735.842,A,-3006.3840,N,-5142.9444,E,44.3,273.0,000070,,,A
+$GPGGA,122738.145,-3006.3828,N,-5142.9648,E,1,08,0.8,46.1,M,,,
+$GPRMC,122738.145,A,-3006.3828,N,-5142.9648,E,44.3,274.0,000070,,,A
+$GPGGA,122740.516,-3006.3816,N,-5142.9858,E,1,08,0.8,46.1,M,,,
+$GPRMC,122740.516,A,-3006.3816,N,-5142.9858,E,44.3,274.0,000070,,,A
+$GPGGA,122742.820,-3006.3804,N,-5143.0062,E,1,08,0.8,46.1,M,,,
+$GPRMC,122742.820,A,-3006.3804,N,-5143.0062,E,44.3,274.0,000070,,,A
+$GPGGA,122745.123,-3006.3792,N,-5143.0266,E,1,08,0.8,46.1,M,,,
+$GPRMC,122745.123,A,-3006.3792,N,-5143.0266,E,44.3,274.0,000070,,,A
+$GPGGA,122747.494,-3006.3780,N,-5143.0476,E,1,08,0.8,46.1,M,,,
+$GPRMC,122747.494,A,-3006.3780,N,-5143.0476,E,44.3,274.0,000070,,,A
+$GPGGA,122749.798,-3006.3768,N,-5143.0680,E,1,08,0.8,46.1,M,,,
+$GPRMC,122749.798,A,-3006.3768,N,-5143.0680,E,44.3,274.0,000070,,,A
+$GPGGA,122752.101,-3006.3756,N,-5143.0884,E,1,08,0.8,46.1,M,,,
+$GPRMC,122752.101,A,-3006.3756,N,-5143.0884,E,44.3,274.0,000070,,,A
+$GPGGA,122754.405,-3006.3744,N,-5143.1088,E,1,08,0.8,46.1,M,,,
+$GPRMC,122754.405,A,-3006.3744,N,-5143.1088,E,44.3,274.0,000070,,,A
+$GPGGA,122756.776,-3006.3732,N,-5143.1298,E,1,08,0.8,46.1,M,,,
+$GPRMC,122756.776,A,-3006.3732,N,-5143.1298,E,44.3,274.0,000070,,,A
+$GPGGA,122759.079,-3006.3720,N,-5143.1502,E,1,08,0.8,46.1,M,,,
+$GPRMC,122759.079,A,-3006.3720,N,-5143.1502,E,44.3,274.0,000070,,,A
+$GPGGA,122801.383,-3006.3708,N,-5143.1706,E,1,08,0.8,46.1,M,,,
+$GPRMC,122801.383,A,-3006.3708,N,-5143.1706,E,44.3,274.0,000070,,,A
+$GPGGA,122803.686,-3006.3696,N,-5143.1910,E,1,08,0.8,46.1,M,,,
+$GPRMC,122803.686,A,-3006.3696,N,-5143.1910,E,44.3,274.0,000070,,,A
+$GPGGA,122806.057,-3006.3684,N,-5143.2120,E,1,08,0.8,46.1,M,,,
+$GPRMC,122806.057,A,-3006.3684,N,-5143.2120,E,44.3,274.0,000070,,,A
+$GPGGA,122808.361,-3006.3672,N,-5143.2324,E,1,08,0.8,46.1,M,,,
+$GPRMC,122808.361,A,-3006.3672,N,-5143.2324,E,44.3,274.0,000070,,,A
+$GPGGA,122810.664,-3006.3660,N,-5143.2528,E,1,08,0.8,46.1,M,,,
+$GPRMC,122810.664,A,-3006.3660,N,-5143.2528,E,44.3,273.0,000070,,,A
+$GPGGA,122812.965,-3006.3654,N,-5143.2732,E,1,08,0.8,46.1,M,,,
+$GPRMC,122812.965,A,-3006.3654,N,-5143.2732,E,44.3,273.0,000070,,,A
+$GPGGA,122815.336,-3006.3642,N,-5143.2942,E,1,08,0.8,46.1,M,,,
+$GPRMC,122815.336,A,-3006.3642,N,-5143.2942,E,44.3,274.0,000070,,,A
+$GPGGA,122817.639,-3006.3630,N,-5143.3146,E,1,08,0.8,46.1,M,,,
+$GPRMC,122817.639,A,-3006.3630,N,-5143.3146,E,44.3,274.0,000070,,,A
+$GPGGA,122819.943,-3006.3618,N,-5143.3350,E,1,08,0.8,46.1,M,,,
+$GPRMC,122819.943,A,-3006.3618,N,-5143.3350,E,44.3,274.0,000070,,,A
+$GPGGA,122822.246,-3006.3606,N,-5143.3554,E,1,08,0.8,46.1,M,,,
+$GPRMC,122822.246,A,-3006.3606,N,-5143.3554,E,44.3,274.0,000070,,,A
+$GPGGA,122824.617,-3006.3594,N,-5143.3764,E,1,08,0.8,46.1,M,,,
+$GPRMC,122824.617,A,-3006.3594,N,-5143.3764,E,44.3,274.0,000070,,,A
+$GPGGA,122826.921,-3006.3582,N,-5143.3968,E,1,08,0.8,46.1,M,,,
+$GPRMC,122826.921,A,-3006.3582,N,-5143.3968,E,44.3,274.0,000070,,,A
+$GPGGA,122829.224,-3006.3570,N,-5143.4172,E,1,08,0.8,46.1,M,,,
+$GPRMC,122829.224,A,-3006.3570,N,-5143.4172,E,44.3,274.0,000070,,,A
+$GPGGA,122831.528,-3006.3558,N,-5143.4376,E,1,08,0.8,46.1,M,,,
+$GPRMC,122831.528,A,-3006.3558,N,-5143.4376,E,44.3,274.0,000070,,,A
+$GPGGA,122833.899,-3006.3546,N,-5143.4586,E,1,08,0.8,46.1,M,,,
+$GPRMC,122833.899,A,-3006.3546,N,-5143.4586,E,44.3,274.0,000070,,,A
+$GPGGA,122836.202,-3006.3534,N,-5143.4790,E,1,08,0.8,46.1,M,,,
+$GPRMC,122836.202,A,-3006.3534,N,-5143.4790,E,44.3,274.0,000070,,,A
+$GPGGA,122838.506,-3006.3522,N,-5143.4994,E,1,08,0.8,46.1,M,,,
+$GPRMC,122838.506,A,-3006.3522,N,-5143.4994,E,44.3,276.0,000070,,,A
+$GPGGA,122840.821,-3006.3498,N,-5143.5198,E,1,08,0.8,46.1,M,,,
+$GPRMC,122840.821,A,-3006.3498,N,-5143.5198,E,44.3,279.0,000070,,,A
+$GPGGA,122843.078,-3006.3468,N,-5143.5396,E,1,08,0.8,46.1,M,,,
+$GPRMC,122843.078,A,-3006.3468,N,-5143.5396,E,44.3,280.0,000070,,,A
+$GPGGA,122845.403,-3006.3438,N,-5143.5600,E,1,08,0.8,46.1,M,,,
+$GPRMC,122845.403,A,-3006.3438,N,-5143.5600,E,44.3,281.0,000070,,,A
+$GPGGA,122847.671,-3006.3402,N,-5143.5798,E,1,08,0.8,46.1,M,,,
+$GPRMC,122847.671,A,-3006.3402,N,-5143.5798,E,44.3,281.0,000070,,,A
+$GPGGA,122849.995,-3006.3372,N,-5143.6002,E,1,08,0.8,46.1,M,,,
+$GPRMC,122849.995,A,-3006.3372,N,-5143.6002,E,44.3,280.0,000070,,,A
+$GPGGA,122852.253,-3006.3342,N,-5143.6200,E,1,08,0.8,46.1,M,,,
+$GPRMC,122852.253,A,-3006.3342,N,-5143.6200,E,44.3,280.0,000070,,,A
+$GPGGA,122854.577,-3006.3312,N,-5143.6404,E,1,08,0.8,46.1,M,,,
+$GPRMC,122854.577,A,-3006.3312,N,-5143.6404,E,44.3,281.0,000070,,,A
+$GPGGA,122856.912,-3006.3276,N,-5143.6608,E,1,08,0.8,46.1,M,,,
+$GPRMC,122856.912,A,-3006.3276,N,-5143.6608,E,44.3,281.0,000070,,,A
+$GPGGA,122859.169,-3006.3246,N,-5143.6806,E,1,08,0.8,46.1,M,,,
+$GPRMC,122859.169,A,-3006.3246,N,-5143.6806,E,44.3,280.0,000070,,,A
+$GPGGA,122901.494,-3006.3216,N,-5143.7010,E,1,08,0.8,46.1,M,,,
+$GPRMC,122901.494,A,-3006.3216,N,-5143.7010,E,44.3,280.0,000070,,,A
+$GPGGA,122903.751,-3006.3186,N,-5143.7208,E,1,08,0.8,46.1,M,,,
+$GPRMC,122903.751,A,-3006.3186,N,-5143.7208,E,44.3,280.0,000070,,,A
+$GPGGA,122906.075,-3006.3156,N,-5143.7412,E,1,08,0.8,46.1,M,,,
+$GPRMC,122906.075,A,-3006.3156,N,-5143.7412,E,44.3,278.0,000070,,,A
+$GPGGA,122908.384,-3006.3138,N,-5143.7616,E,1,08,0.8,46.1,M,,,
+$GPRMC,122908.384,A,-3006.3138,N,-5143.7616,E,44.3,276.0,000070,,,A
+$GPGGA,122910.760,-3006.3120,N,-5143.7826,E,1,08,0.8,46.1,M,,,
+$GPRMC,122910.760,A,-3006.3120,N,-5143.7826,E,44.3,275.0,000070,,,A
+$GPGGA,122913.063,-3006.3108,N,-5143.8030,E,1,08,0.8,46.1,M,,,
+$GPRMC,122913.063,A,-3006.3108,N,-5143.8030,E,44.3,275.0,000070,,,A
+$GPGGA,122915.371,-3006.3090,N,-5143.8234,E,1,08,0.8,46.1,M,,,
+$GPRMC,122915.371,A,-3006.3090,N,-5143.8234,E,44.3,276.0,000070,,,A
+$GPGGA,122917.680,-3006.3072,N,-5143.8438,E,1,08,0.8,46.1,M,,,
+$GPRMC,122917.680,A,-3006.3072,N,-5143.8438,E,44.3,276.0,000070,,,A
+$GPGGA,122919.988,-3006.3054,N,-5143.8642,E,1,08,0.8,46.1,M,,,
+$GPRMC,122919.988,A,-3006.3054,N,-5143.8642,E,44.3,274.0,000070,,,A
+$GPGGA,122922.356,-3006.3048,N,-5143.8852,E,1,08,0.8,46.1,M,,,
+$GPRMC,122922.356,A,-3006.3048,N,-5143.8852,E,44.3,271.0,000070,,,A
+$GPGGA,122924.656,-3006.3048,N,-5143.9056,E,1,08,0.8,46.1,M,,,
+$GPRMC,122924.656,A,-3006.3048,N,-5143.9056,E,44.3,270.0,000070,,,A
+$GPGGA,122926.955,-3006.3048,N,-5143.9260,E,1,08,0.8,46.1,M,,,
+$GPRMC,122926.955,A,-3006.3048,N,-5143.9260,E,44.3,270.0,000070,,,A
+$GPGGA,122929.323,-3006.3048,N,-5143.9470,E,1,08,0.8,46.1,M,,,
+$GPRMC,122929.323,A,-3006.3048,N,-5143.9470,E,44.3,270.0,000070,,,A
+$GPGGA,122931.622,-3006.3048,N,-5143.9674,E,1,08,0.8,46.1,M,,,
+$GPRMC,122931.622,A,-3006.3048,N,-5143.9674,E,44.3,267.0,000070,,,A
+$GPGGA,122933.863,-3006.3066,N,-5143.9872,E,1,08,0.8,46.1,M,,,
+$GPRMC,122933.863,A,-3006.3066,N,-5143.9872,E,44.3,264.0,000070,,,A
+$GPGGA,122936.172,-3006.3084,N,-5144.0076,E,1,08,0.8,46.1,M,,,
+$GPRMC,122936.172,A,-3006.3084,N,-5144.0076,E,44.3,263.0,000070,,,A
+$GPGGA,122938.554,-3006.3108,N,-5144.0286,E,1,08,0.8,46.1,M,,,
+$GPRMC,122938.554,A,-3006.3108,N,-5144.0286,E,44.3,263.0,000070,,,A
+$GPGGA,122940.863,-3006.3126,N,-5144.0490,E,1,08,0.8,46.1,M,,,
+$GPRMC,122940.863,A,-3006.3126,N,-5144.0490,E,44.3,263.0,000070,,,A
+$GPGGA,122943.178,-3006.3150,N,-5144.0694,E,1,08,0.8,46.1,M,,,
+$GPRMC,122943.178,A,-3006.3150,N,-5144.0694,E,44.3,263.0,000070,,,A
+$GPGGA,122945.487,-3006.3168,N,-5144.0898,E,1,08,0.8,46.1,M,,,
+$GPRMC,122945.487,A,-3006.3168,N,-5144.0898,E,44.3,263.0,000070,,,A
+$GPGGA,122947.735,-3006.3192,N,-5144.1096,E,1,08,0.8,46.1,M,,,
+$GPRMC,122947.735,A,-3006.3192,N,-5144.1096,E,44.3,260.0,000070,,,A
+$GPGGA,122950.003,-3006.3228,N,-5144.1294,E,1,08,0.8,46.1,M,,,
+$GPRMC,122950.003,A,-3006.3228,N,-5144.1294,E,44.3,258.0,000070,,,A
+$GPGGA,122952.272,-3006.3264,N,-5144.1492,E,1,08,0.8,46.1,M,,,
+$GPRMC,122952.272,A,-3006.3264,N,-5144.1492,E,44.3,257.0,000070,,,A
+$GPGGA,122954.553,-3006.3306,N,-5144.1690,E,1,08,0.8,46.1,M,,,
+$GPRMC,122954.553,A,-3006.3306,N,-5144.1690,E,44.3,257.0,000070,,,A
+$GPGGA,122956.822,-3006.3342,N,-5144.1888,E,1,08,0.8,46.1,M,,,
+$GPRMC,122956.822,A,-3006.3342,N,-5144.1888,E,44.3,257.0,000070,,,A
+$GPGGA,122959.103,-3006.3384,N,-5144.2086,E,1,08,0.8,46.1,M,,,
+$GPRMC,122959.103,A,-3006.3384,N,-5144.2086,E,44.3,256.0,000070,,,A
+$GPGGA,123001.451,-3006.3426,N,-5144.2290,E,1,08,0.8,46.1,M,,,
+$GPRMC,123001.451,A,-3006.3426,N,-5144.2290,E,44.3,257.0,000070,,,A
+$GPGGA,123003.719,-3006.3462,N,-5144.2488,E,1,08,0.8,46.1,M,,,
+$GPRMC,123003.719,A,-3006.3462,N,-5144.2488,E,44.3,258.0,000070,,,A
+$GPGGA,123006.055,-3006.3498,N,-5144.2692,E,1,08,0.8,46.1,M,,,
+$GPRMC,123006.055,A,-3006.3498,N,-5144.2692,E,44.3,257.0,000070,,,A
+$GPGGA,123008.402,-3006.3540,N,-5144.2896,E,1,08,0.8,46.1,M,,,
+$GPRMC,123008.402,A,-3006.3540,N,-5144.2896,E,44.3,257.0,000070,,,A
+$GPGGA,123010.671,-3006.3576,N,-5144.3094,E,1,08,0.8,46.1,M,,,
+$GPRMC,123010.671,A,-3006.3576,N,-5144.3094,E,44.3,257.0,000070,,,A
+$GPGGA,123013.019,-3006.3618,N,-5144.3298,E,1,08,0.8,46.1,M,,,
+$GPRMC,123013.019,A,-3006.3618,N,-5144.3298,E,44.3,257.0,000070,,,A
+$GPGGA,123015.287,-3006.3654,N,-5144.3496,E,1,08,0.8,46.1,M,,,
+$GPRMC,123015.287,A,-3006.3654,N,-5144.3496,E,44.3,258.0,000070,,,A
+$GPGGA,123017.622,-3006.3690,N,-5144.3700,E,1,08,0.8,46.1,M,,,
+$GPRMC,123017.622,A,-3006.3690,N,-5144.3700,E,44.3,257.0,000070,,,A
+$GPGGA,123019.904,-3006.3732,N,-5144.3898,E,1,08,0.8,46.1,M,,,
+$GPRMC,123019.904,A,-3006.3732,N,-5144.3898,E,44.3,257.0,000070,,,A
+$GPGGA,123022.239,-3006.3768,N,-5144.4102,E,1,08,0.8,46.1,M,,,
+$GPRMC,123022.239,A,-3006.3768,N,-5144.4102,E,44.3,257.0,000070,,,A
+$GPGGA,123024.586,-3006.3810,N,-5144.4306,E,1,08,0.8,46.1,M,,,
+$GPRMC,123024.586,A,-3006.3810,N,-5144.4306,E,44.3,257.0,000070,,,A
+$GPGGA,123026.855,-3006.3846,N,-5144.4504,E,1,08,0.8,46.1,M,,,
+$GPRMC,123026.855,A,-3006.3846,N,-5144.4504,E,44.3,258.0,000070,,,A
+$GPGGA,123029.190,-3006.3882,N,-5144.4708,E,1,08,0.8,46.1,M,,,
+$GPRMC,123029.190,A,-3006.3882,N,-5144.4708,E,44.3,257.0,000070,,,A
+$GPGGA,123031.471,-3006.3924,N,-5144.4906,E,1,08,0.8,46.1,M,,,
+$GPRMC,123031.471,A,-3006.3924,N,-5144.4906,E,44.3,256.0,000070,,,A
+$GPGGA,123033.819,-3006.3966,N,-5144.5110,E,1,08,0.8,46.1,M,,,
+$GPRMC,123033.819,A,-3006.3966,N,-5144.5110,E,44.3,256.0,000070,,,A
+$GPGGA,123036.101,-3006.4008,N,-5144.5308,E,1,08,0.8,46.1,M,,,
+$GPRMC,123036.101,A,-3006.4008,N,-5144.5308,E,44.3,256.0,000070,,,A
+$GPGGA,123038.382,-3006.4050,N,-5144.5506,E,1,08,0.8,46.1,M,,,
+$GPRMC,123038.382,A,-3006.4050,N,-5144.5506,E,44.3,256.0,000070,,,A
+$GPGGA,123040.664,-3006.4092,N,-5144.5704,E,1,08,0.8,46.1,M,,,
+$GPRMC,123040.664,A,-3006.4092,N,-5144.5704,E,44.3,256.0,000070,,,A
+$GPGGA,123043.012,-3006.4134,N,-5144.5908,E,1,08,0.8,46.1,M,,,
+$GPRMC,123043.012,A,-3006.4134,N,-5144.5908,E,44.3,256.0,000070,,,A
+$GPGGA,123045.293,-3006.4176,N,-5144.6106,E,1,08,0.8,46.1,M,,,
+$GPRMC,123045.293,A,-3006.4176,N,-5144.6106,E,44.3,256.0,000070,,,A
+$GPGGA,123047.575,-3006.4218,N,-5144.6304,E,1,08,0.8,46.1,M,,,
+$GPRMC,123047.575,A,-3006.4218,N,-5144.6304,E,44.3,255.0,000070,,,A
+$GPGGA,123049.871,-3006.4266,N,-5144.6502,E,1,08,0.8,46.1,M,,,
+$GPRMC,123049.871,A,-3006.4266,N,-5144.6502,E,44.3,255.0,000070,,,A
+$GPGGA,123052.219,-3006.4308,N,-5144.6706,E,1,08,0.8,46.1,M,,,
+$GPRMC,123052.219,A,-3006.4308,N,-5144.6706,E,44.3,256.0,000070,,,A
+$GPGGA,123054.500,-3006.4350,N,-5144.6904,E,1,08,0.8,46.1,M,,,
+$GPRMC,123054.500,A,-3006.4350,N,-5144.6904,E,44.3,256.0,000070,,,A
+$GPGGA,123056.782,-3006.4392,N,-5144.7102,E,1,08,0.8,46.1,M,,,
+$GPRMC,123056.782,A,-3006.4392,N,-5144.7102,E,44.3,256.0,000070,,,A
+$GPGGA,123059.064,-3006.4434,N,-5144.7300,E,1,08,0.8,46.1,M,,,
+$GPRMC,123059.064,A,-3006.4434,N,-5144.7300,E,44.3,256.0,000070,,,A
+$GPGGA,123101.345,-3006.4476,N,-5144.7498,E,1,08,0.8,46.1,M,,,
+$GPRMC,123101.345,A,-3006.4476,N,-5144.7498,E,44.3,255.0,000070,,,A
+$GPGGA,123103.642,-3006.4524,N,-5144.7696,E,1,08,0.8,46.1,M,,,
+$GPRMC,123103.642,A,-3006.4524,N,-5144.7696,E,44.3,255.0,000070,,,A
+$GPGGA,123105.923,-3006.4566,N,-5144.7894,E,1,08,0.8,46.1,M,,,
+$GPRMC,123105.923,A,-3006.4566,N,-5144.7894,E,44.3,256.0,000070,,,A
+$GPGGA,123108.205,-3006.4608,N,-5144.8092,E,1,08,0.8,46.1,M,,,
+$GPRMC,123108.205,A,-3006.4608,N,-5144.8092,E,44.3,256.0,000070,,,A
+$GPGGA,123110.486,-3006.4650,N,-5144.8290,E,1,08,0.8,46.1,M,,,
+$GPRMC,123110.486,A,-3006.4650,N,-5144.8290,E,44.3,256.0,000070,,,A
+$GPGGA,123112.768,-3006.4692,N,-5144.8488,E,1,08,0.8,46.1,M,,,
+$GPRMC,123112.768,A,-3006.4692,N,-5144.8488,E,44.3,256.0,000070,,,A
+$GPGGA,123115.116,-3006.4734,N,-5144.8692,E,1,08,0.8,46.1,M,,,
+$GPRMC,123115.116,A,-3006.4734,N,-5144.8692,E,44.3,256.0,000070,,,A
+$GPGGA,123117.397,-3006.4776,N,-5144.8890,E,1,08,0.8,46.1,M,,,
+$GPRMC,123117.397,A,-3006.4776,N,-5144.8890,E,44.3,257.0,000070,,,A
+$GPGGA,123119.732,-3006.4812,N,-5144.9094,E,1,08,0.8,46.1,M,,,
+$GPRMC,123119.732,A,-3006.4812,N,-5144.9094,E,44.3,257.0,000070,,,A
+$GPGGA,123122.014,-3006.4854,N,-5144.9292,E,1,08,0.8,46.1,M,,,
+$GPRMC,123122.014,A,-3006.4854,N,-5144.9292,E,44.3,256.0,000070,,,A
+$GPGGA,123124.295,-3006.4896,N,-5144.9490,E,1,08,0.8,46.1,M,,,
+$GPRMC,123124.295,A,-3006.4896,N,-5144.9490,E,44.3,256.0,000070,,,A
+$GPGGA,123126.643,-3006.4938,N,-5144.9694,E,1,08,0.8,46.1,M,,,
+$GPRMC,123126.643,A,-3006.4938,N,-5144.9694,E,44.3,256.0,000070,,,A
+$GPGGA,123128.925,-3006.4980,N,-5144.9892,E,1,08,0.8,46.1,M,,,
+$GPRMC,123128.925,A,-3006.4980,N,-5144.9892,E,44.3,256.0,000070,,,A
+$GPGGA,123131.206,-3006.5022,N,-5145.0090,E,1,08,0.8,46.1,M,,,
+$GPRMC,123131.206,A,-3006.5022,N,-5145.0090,E,44.3,256.0,000070,,,A
+$GPGGA,123133.554,-3006.5064,N,-5145.0294,E,1,08,0.8,46.1,M,,,
+$GPRMC,123133.554,A,-3006.5064,N,-5145.0294,E,44.3,256.0,000070,,,A
+$GPGGA,123135.835,-3006.5106,N,-5145.0492,E,1,08,0.8,46.1,M,,,
+$GPRMC,123135.835,A,-3006.5106,N,-5145.0492,E,44.3,257.0,000070,,,A
+$GPGGA,123138.170,-3006.5142,N,-5145.0696,E,1,08,0.8,46.1,M,,,
+$GPRMC,123138.170,A,-3006.5142,N,-5145.0696,E,44.3,259.0,000070,,,A
+$GPGGA,123140.428,-3006.5172,N,-5145.0894,E,1,08,0.8,46.1,M,,,
+$GPRMC,123140.428,A,-3006.5172,N,-5145.0894,E,44.3,260.0,000070,,,A
+$GPGGA,123142.752,-3006.5202,N,-5145.1098,E,1,08,0.8,46.1,M,,,
+$GPRMC,123142.752,A,-3006.5202,N,-5145.1098,E,44.3,268.0,000070,,,A
+$GPGGA,123144.993,-3006.5184,N,-5145.1296,E,1,08,0.8,46.1,M,,,
+$GPRMC,123144.993,A,-3006.5184,N,-5145.1296,E,44.3,284.0,000070,,,A
+$GPGGA,123147.218,-3006.5118,N,-5145.1482,E,1,08,0.8,46.1,M,,,
+$GPRMC,123147.218,A,-3006.5118,N,-5145.1482,E,44.3,293.0,000070,,,A
+$GPGGA,123149.529,-3006.5046,N,-5145.1674,E,1,08,0.8,46.1,M,,,
+$GPRMC,123149.529,A,-3006.5046,N,-5145.1674,E,44.3,293.0,000070,,,A
+$GPGGA,123151.818,-3006.4980,N,-5145.1866,E,1,08,0.8,46.1,M,,,
+$GPRMC,123151.818,A,-3006.4980,N,-5145.1866,E,44.3,293.0,000070,,,A
+$GPGGA,123154.066,-3006.4908,N,-5145.2052,E,1,08,0.8,46.1,M,,,
+$GPRMC,123154.066,A,-3006.4908,N,-5145.2052,E,44.3,293.0,000070,,,A
+$GPGGA,123156.355,-3006.4842,N,-5145.2244,E,1,08,0.8,46.1,M,,,
+$GPRMC,123156.355,A,-3006.4842,N,-5145.2244,E,44.3,292.0,000070,,,A
+$GPGGA,123158.643,-3006.4776,N,-5145.2436,E,1,08,0.8,46.1,M,,,
+$GPRMC,123158.643,A,-3006.4776,N,-5145.2436,E,44.3,293.0,000070,,,A
+$GPGGA,123200.891,-3006.4704,N,-5145.2622,E,1,08,0.8,46.1,M,,,
+$GPRMC,123200.891,A,-3006.4704,N,-5145.2622,E,44.3,293.0,000070,,,A
+$GPGGA,123203.180,-3006.4638,N,-5145.2814,E,1,08,0.8,46.1,M,,,
+$GPRMC,123203.180,A,-3006.4638,N,-5145.2814,E,44.3,293.0,000070,,,A
+$GPGGA,123205.491,-3006.4566,N,-5145.3006,E,1,08,0.8,46.1,M,,,
+$GPRMC,123205.491,A,-3006.4566,N,-5145.3006,E,44.3,293.0,000070,,,A
+$GPGGA,123207.716,-3006.4500,N,-5145.3192,E,1,08,0.8,46.1,M,,,
+$GPRMC,123207.716,A,-3006.4500,N,-5145.3192,E,44.3,292.0,000070,,,A
+$GPGGA,123210.005,-3006.4434,N,-5145.3384,E,1,08,0.8,46.1,M,,,
+$GPRMC,123210.005,A,-3006.4434,N,-5145.3384,E,44.3,293.0,000070,,,A
+$GPGGA,123212.316,-3006.4362,N,-5145.3576,E,1,08,0.8,46.1,M,,,
+$GPRMC,123212.316,A,-3006.4362,N,-5145.3576,E,44.3,291.0,000070,,,A
+$GPGGA,123214.564,-3006.4308,N,-5145.3768,E,1,08,0.8,46.1,M,,,
+$GPRMC,123214.564,A,-3006.4308,N,-5145.3768,E,44.3,288.0,000070,,,A
+$GPGGA,123216.878,-3006.4254,N,-5145.3966,E,1,08,0.8,46.1,M,,,
+$GPRMC,123216.878,A,-3006.4254,N,-5145.3966,E,44.3,289.0,000070,,,A
+$GPGGA,123219.145,-3006.4194,N,-5145.4158,E,1,08,0.8,46.1,M,,,
+$GPRMC,123219.145,A,-3006.4194,N,-5145.4158,E,44.3,289.0,000070,,,A
+$GPGGA,123221.458,-3006.4140,N,-5145.4356,E,1,08,0.8,46.1,M,,,
+$GPRMC,123221.458,A,-3006.4140,N,-5145.4356,E,44.3,287.0,000070,,,A
+$GPGGA,123223.772,-3006.4086,N,-5145.4554,E,1,08,0.8,46.1,M,,,
+$GPRMC,123223.772,A,-3006.4086,N,-5145.4554,E,44.3,288.0,000070,,,A
+$GPGGA,123226.020,-3006.4032,N,-5145.4746,E,1,08,0.8,46.1,M,,,
+$GPRMC,123226.020,A,-3006.4032,N,-5145.4746,E,44.3,289.0,000070,,,A
+$GPGGA,123228.352,-3006.3972,N,-5145.4944,E,1,08,0.8,46.1,M,,,
+$GPRMC,123228.352,A,-3006.3972,N,-5145.4944,E,44.3,288.0,000070,,,A
+$GPGGA,123230.666,-3006.3918,N,-5145.5142,E,1,08,0.8,46.1,M,,,
+$GPRMC,123230.666,A,-3006.3918,N,-5145.5142,E,44.3,287.0,000070,,,A
+$GPGGA,123232.979,-3006.3864,N,-5145.5340,E,1,08,0.8,46.1,M,,,
+$GPRMC,123232.979,A,-3006.3864,N,-5145.5340,E,44.3,286.0,000070,,,A
+$GPGGA,123235.261,-3006.3822,N,-5145.5538,E,1,08,0.8,46.1,M,,,
+$GPRMC,123235.261,A,-3006.3822,N,-5145.5538,E,44.3,285.0,000070,,,A
+$GPGGA,123237.557,-3006.3774,N,-5145.5736,E,1,08,0.8,46.1,M,,,
+$GPRMC,123237.557,A,-3006.3774,N,-5145.5736,E,44.3,286.0,000070,,,A
+$GPGGA,123239.854,-3006.3726,N,-5145.5934,E,1,08,0.8,46.1,M,,,
+$GPRMC,123239.854,A,-3006.3726,N,-5145.5934,E,44.3,286.0,000070,,,A
+$GPGGA,123242.150,-3006.3678,N,-5145.6132,E,1,08,0.8,46.1,M,,,
+$GPRMC,123242.150,A,-3006.3678,N,-5145.6132,E,44.3,286.0,000070,,,A
+$GPGGA,123244.447,-3006.3630,N,-5145.6330,E,1,08,0.8,46.1,M,,,
+$GPRMC,123244.447,A,-3006.3630,N,-5145.6330,E,44.3,286.0,000070,,,A
+$GPGGA,123246.743,-3006.3582,N,-5145.6528,E,1,08,0.8,46.1,M,,,
+$GPRMC,123246.743,A,-3006.3582,N,-5145.6528,E,44.3,286.0,000070,,,A
+$GPGGA,123248.974,-3006.3534,N,-5145.6720,E,1,08,0.8,46.1,M,,,
+$GPRMC,123248.974,A,-3006.3534,N,-5145.6720,E,44.3,289.0,000070,,,A
+$GPGGA,123251.263,-3006.3468,N,-5145.6912,E,1,08,0.8,46.1,M,,,
+$GPRMC,123251.263,A,-3006.3468,N,-5145.6912,E,44.3,291.0,000070,,,A
+$GPGGA,123253.466,-3006.3408,N,-5145.7098,E,1,08,0.8,46.1,M,,,
+$GPRMC,123253.466,A,-3006.3408,N,-5145.7098,E,44.3,285.0,000070,,,A
+$GPGGA,123255.723,-3006.3378,N,-5145.7296,E,1,08,0.8,46.1,M,,,
+$GPRMC,123255.723,A,-3006.3378,N,-5145.7296,E,44.3,275.0,000070,,,A
+$GPGGA,123258.022,-3006.3378,N,-5145.7500,E,1,08,0.8,46.1,M,,,
+$GPRMC,123258.022,A,-3006.3378,N,-5145.7500,E,44.3,270.0,000070,,,A
+$GPGGA,123300.390,-3006.3378,N,-5145.7710,E,1,08,0.8,46.1,M,,,
+$GPRMC,123300.390,A,-3006.3378,N,-5145.7710,E,44.3,269.0,000070,,,A
+$GPGGA,123302.690,-3006.3384,N,-5145.7914,E,1,08,0.8,46.1,M,,,
+$GPRMC,123302.690,A,-3006.3384,N,-5145.7914,E,44.3,269.0,000070,,,A
+$GPGGA,123304.990,-3006.3384,N,-5145.8118,E,1,08,0.8,46.1,M,,,
+$GPRMC,123304.990,A,-3006.3384,N,-5145.8118,E,44.3,270.0,000070,,,A
+$GPGGA,123307.289,-3006.3384,N,-5145.8322,E,1,08,0.8,46.1,M,,,
+$GPRMC,123307.289,A,-3006.3384,N,-5145.8322,E,44.3,270.0,000070,,,A
+$GPGGA,123309.589,-3006.3384,N,-5145.8526,E,1,08,0.8,46.1,M,,,
+$GPRMC,123309.589,A,-3006.3384,N,-5145.8526,E,44.3,269.0,000070,,,A
+$GPGGA,123311.822,-3006.3390,N,-5145.8724,E,1,08,0.8,46.1,M,,,
+$GPRMC,123311.822,A,-3006.3390,N,-5145.8724,E,44.3,264.0,000070,,,A
+$GPGGA,123314.079,-3006.3420,N,-5145.8922,E,1,08,0.8,46.1,M,,,
+$GPRMC,123314.079,A,-3006.3420,N,-5145.8922,E,44.3,260.0,000070,,,A
+$GPGGA,123316.403,-3006.3450,N,-5145.9126,E,1,08,0.8,46.1,M,,,
+$GPRMC,123316.403,A,-3006.3450,N,-5145.9126,E,44.3,261.0,000070,,,A
+$GPGGA,123318.719,-3006.3474,N,-5145.9330,E,1,08,0.8,46.1,M,,,
+$GPRMC,123318.719,A,-3006.3474,N,-5145.9330,E,44.3,259.0,000070,,,A
+$GPGGA,123321.000,-3006.3516,N,-5145.9528,E,1,08,0.8,46.1,M,,,
+$GPRMC,123321.000,A,-3006.3516,N,-5145.9528,E,44.3,252.0,000070,,,A
+$GPGGA,123323.289,-3006.3582,N,-5145.9720,E,1,08,0.8,46.1,M,,,
+$GPRMC,123323.289,A,-3006.3582,N,-5145.9720,E,44.3,248.0,000070,,,A
+$GPGGA,123325.513,-3006.3648,N,-5145.9906,E,1,08,0.8,46.1,M,,,
+$GPRMC,123325.513,A,-3006.3648,N,-5145.9906,E,44.3,248.0,000070,,,A
+$GPGGA,123327.802,-3006.3714,N,-5146.0098,E,1,08,0.8,46.1,M,,,
+$GPRMC,123327.802,A,-3006.3714,N,-5146.0098,E,44.3,248.0,000070,,,A
+$GPGGA,123330.090,-3006.3780,N,-5146.0290,E,1,08,0.8,46.1,M,,,
+$GPRMC,123330.090,A,-3006.3780,N,-5146.0290,E,44.3,248.0,000070,,,A
+$GPGGA,123332.315,-3006.3846,N,-5146.0476,E,1,08,0.8,46.1,M,,,
+$GPRMC,123332.315,A,-3006.3846,N,-5146.0476,E,44.3,248.0,000070,,,A
+$GPGGA,123334.604,-3006.3912,N,-5146.0668,E,1,08,0.8,46.1,M,,,
+$GPRMC,123334.604,A,-3006.3912,N,-5146.0668,E,44.3,250.0,000070,,,A
+$GPGGA,123336.917,-3006.3966,N,-5146.0866,E,1,08,0.8,46.1,M,,,
+$GPRMC,123336.917,A,-3006.3966,N,-5146.0866,E,44.3,253.0,000070,,,A
+$GPGGA,123339.230,-3006.4020,N,-5146.1064,E,1,08,0.8,46.1,M,,,
+$GPRMC,123339.230,A,-3006.4020,N,-5146.1064,E,44.3,255.0,000070,,,A
+$GPGGA,123341.499,-3006.4056,N,-5146.1262,E,1,08,0.8,46.1,M,,,
+$GPRMC,123341.499,A,-3006.4056,N,-5146.1262,E,44.3,259.0,000070,,,A
+$GPGGA,123343.823,-3006.4086,N,-5146.1466,E,1,08,0.8,46.1,M,,,
+$GPRMC,123343.823,A,-3006.4086,N,-5146.1466,E,44.3,261.0,000070,,,A
+$GPGGA,123346.139,-3006.4110,N,-5146.1670,E,1,08,0.8,46.1,M,,,
+$GPRMC,123346.139,A,-3006.4110,N,-5146.1670,E,44.3,262.0,000070,,,A
+$GPGGA,123348.454,-3006.4134,N,-5146.1874,E,1,08,0.8,46.1,M,,,
+$GPRMC,123348.454,A,-3006.4134,N,-5146.1874,E,44.3,262.0,000070,,,A
+$GPGGA,123350.769,-3006.4158,N,-5146.2078,E,1,08,0.8,46.1,M,,,
+$GPRMC,123350.769,A,-3006.4158,N,-5146.2078,E,44.3,262.0,000070,,,A
+$GPGGA,123353.085,-3006.4182,N,-5146.2282,E,1,08,0.8,46.1,M,,,
+$GPRMC,123353.085,A,-3006.4182,N,-5146.2282,E,44.3,261.0,000070,,,A
+$GPGGA,123355.409,-3006.4212,N,-5146.2486,E,1,08,0.8,46.1,M,,,
+$GPRMC,123355.409,A,-3006.4212,N,-5146.2486,E,44.3,261.0,000070,,,A
+$GPGGA,123357.724,-3006.4236,N,-5146.2690,E,1,08,0.8,46.1,M,,,
+$GPRMC,123357.724,A,-3006.4236,N,-5146.2690,E,44.3,262.0,000070,,,A
+$GPGGA,123400.040,-3006.4260,N,-5146.2894,E,1,08,0.8,46.1,M,,,
+$GPRMC,123400.040,A,-3006.4260,N,-5146.2894,E,44.3,262.0,000070,,,A
+$GPGGA,123402.355,-3006.4284,N,-5146.3098,E,1,08,0.8,46.1,M,,,
+$GPRMC,123402.355,A,-3006.4284,N,-5146.3098,E,44.3,262.0,000070,,,A
+$GPGGA,123404.670,-3006.4308,N,-5146.3302,E,1,08,0.8,46.1,M,,,
+$GPRMC,123404.670,A,-3006.4308,N,-5146.3302,E,44.3,261.0,000070,,,A
+$GPGGA,123406.995,-3006.4338,N,-5146.3506,E,1,08,0.8,46.1,M,,,
+$GPRMC,123406.995,A,-3006.4338,N,-5146.3506,E,44.3,261.0,000070,,,A
+$GPGGA,123409.243,-3006.4362,N,-5146.3704,E,1,08,0.8,46.1,M,,,
+$GPRMC,123409.243,A,-3006.4362,N,-5146.3704,E,44.3,262.0,000070,,,A
+$GPGGA,123411.558,-3006.4386,N,-5146.3908,E,1,08,0.8,46.1,M,,,
+$GPRMC,123411.558,A,-3006.4386,N,-5146.3908,E,44.3,262.0,000070,,,A
+$GPGGA,123413.874,-3006.4410,N,-5146.4112,E,1,08,0.8,46.1,M,,,
+$GPRMC,123413.874,A,-3006.4410,N,-5146.4112,E,44.3,262.0,000070,,,A
+$GPGGA,123416.189,-3006.4434,N,-5146.4316,E,1,08,0.8,46.1,M,,,
+$GPRMC,123416.189,A,-3006.4434,N,-5146.4316,E,44.3,264.0,000070,,,A
+$GPGGA,123418.493,-3006.4446,N,-5146.4520,E,1,08,0.8,46.1,M,,,
+$GPRMC,123418.493,A,-3006.4446,N,-5146.4520,E,44.3,268.0,000070,,,A
+$GPGGA,123420.860,-3006.4446,N,-5146.4730,E,1,08,0.8,46.1,M,,,
+$GPRMC,123420.860,A,-3006.4446,N,-5146.4730,E,44.3,270.0,000070,,,A
+$GPGGA,123423.159,-3006.4446,N,-5146.4934,E,1,08,0.8,46.1,M,,,
+$GPRMC,123423.159,A,-3006.4446,N,-5146.4934,E,44.3,270.0,000070,,,A
+$GPGGA,123425.459,-3006.4446,N,-5146.5138,E,1,08,0.8,46.1,M,,,
+$GPRMC,123425.459,A,-3006.4446,N,-5146.5138,E,44.3,270.0,000070,,,A
+$GPGGA,123427.826,-3006.4446,N,-5146.5348,E,1,08,0.8,46.1,M,,,
+$GPRMC,123427.826,A,-3006.4446,N,-5146.5348,E,44.3,270.0,000070,,,A
+$GPGGA,123430.125,-3006.4446,N,-5146.5552,E,1,08,0.8,46.1,M,,,
+$GPRMC,123430.125,A,-3006.4446,N,-5146.5552,E,44.3,270.0,000070,,,A
+$GPGGA,123432.425,-3006.4446,N,-5146.5756,E,1,08,0.8,46.1,M,,,
+$GPRMC,123432.425,A,-3006.4446,N,-5146.5756,E,44.3,270.0,000070,,,A
+$GPGGA,123434.792,-3006.4446,N,-5146.5966,E,1,08,0.8,46.1,M,,,
+$GPRMC,123434.792,A,-3006.4446,N,-5146.5966,E,44.3,270.0,000070,,,A
+$GPGGA,123437.092,-3006.4446,N,-5146.6170,E,1,08,0.8,46.1,M,,,
+$GPRMC,123437.092,A,-3006.4446,N,-5146.6170,E,44.3,270.0,000070,,,A
+$GPGGA,123439.391,-3006.4446,N,-5146.6374,E,1,08,0.8,46.1,M,,,
+$GPRMC,123439.391,A,-3006.4446,N,-5146.6374,E,44.3,270.0,000070,,,A
+$GPGGA,123441.691,-3006.4446,N,-5146.6578,E,1,08,0.8,46.1,M,,,
+$GPRMC,123441.691,A,-3006.4446,N,-5146.6578,E,44.3,270.0,000070,,,A
+$GPGGA,123444.058,-3006.4446,N,-5146.6788,E,1,08,0.8,46.1,M,,,
+$GPRMC,123444.058,A,-3006.4446,N,-5146.6788,E,44.3,270.0,000070,,,A
+$GPGGA,123446.357,-3006.4446,N,-5146.6992,E,1,08,0.8,46.1,M,,,
+$GPRMC,123446.357,A,-3006.4446,N,-5146.6992,E,44.3,270.0,000070,,,A
+$GPGGA,123448.657,-3006.4446,N,-5146.7196,E,1,08,0.8,46.1,M,,,
+$GPRMC,123448.657,A,-3006.4446,N,-5146.7196,E,44.3,270.0,000070,,,A
+$GPGGA,123451.024,-3006.4446,N,-5146.7406,E,1,08,0.8,46.1,M,,,
+$GPRMC,123451.024,A,-3006.4446,N,-5146.7406,E,44.3,270.0,000070,,,A
+$GPGGA,123453.323,-3006.4446,N,-5146.7610,E,1,08,0.8,46.1,M,,,
+$GPRMC,123453.323,A,-3006.4446,N,-5146.7610,E,44.3,270.0,000070,,,A
+$GPGGA,123455.623,-3006.4446,N,-5146.7814,E,1,08,0.8,46.1,M,,,
+$GPRMC,123455.623,A,-3006.4446,N,-5146.7814,E,44.3,271.0,000070,,,A
+$GPGGA,123457.924,-3006.4440,N,-5146.8018,E,1,08,0.8,46.1,M,,,
+$GPRMC,123457.924,A,-3006.4440,N,-5146.8018,E,44.3,273.0,000070,,,A
+$GPGGA,123500.295,-3006.4428,N,-5146.8228,E,1,08,0.8,46.1,M,,,
+$GPRMC,123500.295,A,-3006.4428,N,-5146.8228,E,44.3,274.0,000070,,,A
+$GPGGA,123502.598,-3006.4416,N,-5146.8432,E,1,08,0.8,46.1,M,,,
+$GPRMC,123502.598,A,-3006.4416,N,-5146.8432,E,44.3,274.0,000070,,,A
+$GPGGA,123504.902,-3006.4404,N,-5146.8636,E,1,08,0.8,46.1,M,,,
+$GPRMC,123504.902,A,-3006.4404,N,-5146.8636,E,44.3,275.0,000070,,,A
+$GPGGA,123507.210,-3006.4386,N,-5146.8840,E,1,08,0.8,46.1,M,,,
+$GPRMC,123507.210,A,-3006.4386,N,-5146.8840,E,44.3,275.0,000070,,,A
+$GPGGA,123509.581,-3006.4374,N,-5146.9050,E,1,08,0.8,46.1,M,,,
+$GPRMC,123509.581,A,-3006.4374,N,-5146.9050,E,44.3,274.0,000070,,,A
+$GPGGA,123511.884,-3006.4362,N,-5146.9254,E,1,08,0.8,46.1,M,,,
+$GPRMC,123511.884,A,-3006.4362,N,-5146.9254,E,44.3,274.0,000070,,,A
+$GPGGA,123514.188,-3006.4350,N,-5146.9458,E,1,08,0.8,46.1,M,,,
+$GPRMC,123514.188,A,-3006.4350,N,-5146.9458,E,44.3,274.0,000070,,,A
+$GPGGA,123516.491,-3006.4338,N,-5146.9662,E,1,08,0.8,46.1,M,,,
+$GPRMC,123516.491,A,-3006.4338,N,-5146.9662,E,44.3,274.0,000070,,,A
+$GPGGA,123518.862,-3006.4326,N,-5146.9872,E,1,08,0.8,46.1,M,,,
+$GPRMC,123518.862,A,-3006.4326,N,-5146.9872,E,44.3,274.0,000070,,,A
+$GPGGA,123521.166,-3006.4314,N,-5147.0076,E,1,08,0.8,46.1,M,,,
+$GPRMC,123521.166,A,-3006.4314,N,-5147.0076,E,44.3,274.0,000070,,,A
+$GPGGA,123523.469,-3006.4302,N,-5147.0280,E,1,08,0.8,46.1,M,,,
+$GPRMC,123523.469,A,-3006.4302,N,-5147.0280,E,44.3,274.0,000070,,,A
+$GPGGA,123525.773,-3006.4290,N,-5147.0484,E,1,08,0.8,46.1,M,,,
+$GPRMC,123525.773,A,-3006.4290,N,-5147.0484,E,44.3,275.0,000070,,,A
+$GPGGA,123528.149,-3006.4272,N,-5147.0694,E,1,08,0.8,46.1,M,,,
+$GPRMC,123528.149,A,-3006.4272,N,-5147.0694,E,44.3,275.0,000070,,,A
+$GPGGA,123530.452,-3006.4260,N,-5147.0898,E,1,08,0.8,46.1,M,,,
+$GPRMC,123530.452,A,-3006.4260,N,-5147.0898,E,44.3,274.0,000070,,,A
+$GPGGA,123532.756,-3006.4248,N,-5147.1102,E,1,08,0.8,46.1,M,,,
+$GPRMC,123532.756,A,-3006.4248,N,-5147.1102,E,44.3,276.0,000070,,,A
+$GPGGA,123535.071,-3006.4224,N,-5147.1306,E,1,08,0.8,46.1,M,,,
+$GPRMC,123535.071,A,-3006.4224,N,-5147.1306,E,44.3,280.0,000070,,,A
+$GPGGA,123537.406,-3006.4188,N,-5147.1510,E,1,08,0.8,46.1,M,,,
+$GPRMC,123537.406,A,-3006.4188,N,-5147.1510,E,44.3,282.0,000070,,,A
+$GPGGA,123539.675,-3006.4152,N,-5147.1708,E,1,08,0.8,46.1,M,,,
+$GPRMC,123539.675,A,-3006.4152,N,-5147.1708,E,44.3,281.0,000070,,,A
+$GPGGA,123541.999,-3006.4122,N,-5147.1912,E,1,08,0.8,46.1,M,,,
+$GPRMC,123541.999,A,-3006.4122,N,-5147.1912,E,44.3,281.0,000070,,,A
+$GPGGA,123544.334,-3006.4086,N,-5147.2116,E,1,08,0.8,46.1,M,,,
+$GPRMC,123544.334,A,-3006.4086,N,-5147.2116,E,44.3,282.0,000070,,,A
+$GPGGA,123546.602,-3006.4050,N,-5147.2314,E,1,08,0.8,46.1,M,,,
+$GPRMC,123546.602,A,-3006.4050,N,-5147.2314,E,44.3,281.0,000070,,,A
+$GPGGA,123548.927,-3006.4020,N,-5147.2518,E,1,08,0.8,46.1,M,,,
+$GPRMC,123548.927,A,-3006.4020,N,-5147.2518,E,44.3,281.0,000070,,,A
+$GPGGA,123551.262,-3006.3984,N,-5147.2722,E,1,08,0.8,46.1,M,,,
+$GPRMC,123551.262,A,-3006.3984,N,-5147.2722,E,44.3,282.0,000070,,,A
+$GPGGA,123553.530,-3006.3948,N,-5147.2920,E,1,08,0.8,46.1,M,,,
+$GPRMC,123553.530,A,-3006.3948,N,-5147.2920,E,44.3,281.0,000070,,,A
+$GPGGA,123555.854,-3006.3918,N,-5147.3124,E,1,08,0.8,46.1,M,,,
+$GPRMC,123555.854,A,-3006.3918,N,-5147.3124,E,44.3,281.0,000070,,,A
+$GPGGA,123558.123,-3006.3882,N,-5147.3322,E,1,08,0.8,46.1,M,,,
+$GPRMC,123558.123,A,-3006.3882,N,-5147.3322,E,44.3,281.0,000070,,,A
+$GPGGA,123600.447,-3006.3852,N,-5147.3526,E,1,08,0.8,46.1,M,,,
+$GPRMC,123600.447,A,-3006.3852,N,-5147.3526,E,44.3,276.0,000070,,,A
+$GPGGA,123602.748,-3006.3846,N,-5147.3730,E,1,08,0.8,46.1,M,,,
+$GPRMC,123602.748,A,-3006.3846,N,-5147.3730,E,44.3,263.0,000070,,,A
+$GPGGA,123605.044,-3006.3894,N,-5147.3928,E,1,08,0.8,46.1,M,,,
+$GPRMC,123605.044,A,-3006.3894,N,-5147.3928,E,44.3,255.0,000070,,,A
+$GPGGA,123607.326,-3006.3936,N,-5147.4126,E,1,08,0.8,46.1,M,,,
+$GPRMC,123607.326,A,-3006.3936,N,-5147.4126,E,44.3,255.0,000070,,,A
+$GPGGA,123609.622,-3006.3984,N,-5147.4324,E,1,08,0.8,46.1,M,,,
+$GPRMC,123609.622,A,-3006.3984,N,-5147.4324,E,44.3,254.0,000070,,,A
+$GPGGA,123611.919,-3006.4032,N,-5147.4522,E,1,08,0.8,46.1,M,,,
+$GPRMC,123611.919,A,-3006.4032,N,-5147.4522,E,44.3,255.0,000070,,,A
+$GPGGA,123614.200,-3006.4074,N,-5147.4720,E,1,08,0.8,46.1,M,,,
+$GPRMC,123614.200,A,-3006.4074,N,-5147.4720,E,44.3,255.0,000070,,,A
+$GPGGA,123616.497,-3006.4122,N,-5147.4918,E,1,08,0.8,46.1,M,,,
+$GPRMC,123616.497,A,-3006.4122,N,-5147.4918,E,44.3,255.0,000070,,,A
+$GPGGA,123618.778,-3006.4164,N,-5147.5116,E,1,08,0.8,46.1,M,,,
+$GPRMC,123618.778,A,-3006.4164,N,-5147.5116,E,44.3,255.0,000070,,,A
+$GPGGA,123621.075,-3006.4212,N,-5147.5314,E,1,08,0.8,46.1,M,,,
+$GPRMC,123621.075,A,-3006.4212,N,-5147.5314,E,44.3,254.0,000070,,,A
+$GPGGA,123623.371,-3006.4260,N,-5147.5512,E,1,08,0.8,46.1,M,,,
+$GPRMC,123623.371,A,-3006.4260,N,-5147.5512,E,44.3,255.0,000070,,,A
+$GPGGA,123625.653,-3006.4302,N,-5147.5710,E,1,08,0.8,46.1,M,,,
+$GPRMC,123625.653,A,-3006.4302,N,-5147.5710,E,44.3,255.0,000070,,,A
+$GPGGA,123627.950,-3006.4350,N,-5147.5908,E,1,08,0.8,46.1,M,,,
+$GPRMC,123627.950,A,-3006.4350,N,-5147.5908,E,44.3,254.0,000070,,,A
+$GPGGA,123630.246,-3006.4398,N,-5147.6106,E,1,08,0.8,46.1,M,,,
+$GPRMC,123630.246,A,-3006.4398,N,-5147.6106,E,44.3,255.0,000070,,,A
+$GPGGA,123632.528,-3006.4440,N,-5147.6304,E,1,08,0.8,46.1,M,,,
+$GPRMC,123632.528,A,-3006.4440,N,-5147.6304,E,44.3,255.0,000070,,,A
+$GPGGA,123634.890,-3006.4488,N,-5147.6508,E,1,08,0.8,46.1,M,,,
+$GPRMC,123634.890,A,-3006.4488,N,-5147.6508,E,44.3,255.0,000070,,,A
+$GPGGA,123637.171,-3006.4530,N,-5147.6706,E,1,08,0.8,46.1,M,,,
+$GPRMC,123637.171,A,-3006.4530,N,-5147.6706,E,44.3,255.0,000070,,,A
+$GPGGA,123639.468,-3006.4578,N,-5147.6904,E,1,08,0.8,46.1,M,,,
+$GPRMC,123639.468,A,-3006.4578,N,-5147.6904,E,44.3,255.0,000070,,,A
+$GPGGA,123641.750,-3006.4620,N,-5147.7102,E,1,08,0.8,46.1,M,,,
+$GPRMC,123641.750,A,-3006.4620,N,-5147.7102,E,44.3,255.0,000070,,,A
+$GPGGA,123644.046,-3006.4668,N,-5147.7300,E,1,08,0.8,46.1,M,,,
+$GPRMC,123644.046,A,-3006.4668,N,-5147.7300,E,44.3,254.0,000070,,,A
+$GPGGA,123646.343,-3006.4716,N,-5147.7498,E,1,08,0.8,46.1,M,,,
+$GPRMC,123646.343,A,-3006.4716,N,-5147.7498,E,44.3,255.0,000070,,,A
+$GPGGA,123648.624,-3006.4758,N,-5147.7696,E,1,08,0.8,46.1,M,,,
+$GPRMC,123648.624,A,-3006.4758,N,-5147.7696,E,44.3,255.0,000070,,,A
+$GPGGA,123650.921,-3006.4806,N,-5147.7894,E,1,08,0.8,46.1,M,,,
+$GPRMC,123650.921,A,-3006.4806,N,-5147.7894,E,44.3,254.0,000070,,,A
+$GPGGA,123653.217,-3006.4854,N,-5147.8092,E,1,08,0.8,46.1,M,,,
+$GPRMC,123653.217,A,-3006.4854,N,-5147.8092,E,44.3,255.0,000070,,,A
+$GPGGA,123655.499,-3006.4896,N,-5147.8290,E,1,08,0.8,46.1,M,,,
+$GPRMC,123655.499,A,-3006.4896,N,-5147.8290,E,44.3,255.0,000070,,,A
+$GPGGA,123657.795,-3006.4944,N,-5147.8488,E,1,08,0.8,46.1,M,,,
+$GPRMC,123657.795,A,-3006.4944,N,-5147.8488,E,44.3,254.0,000070,,,A
+$GPGGA,123700.092,-3006.4992,N,-5147.8686,E,1,08,0.8,46.1,M,,,
+$GPRMC,123700.092,A,-3006.4992,N,-5147.8686,E,44.3,255.0,000070,,,A
+$GPGGA,123702.373,-3006.5034,N,-5147.8884,E,1,08,0.8,46.1,M,,,
+$GPRMC,123702.373,A,-3006.5034,N,-5147.8884,E,44.3,257.0,000070,,,A
+$GPGGA,123704.708,-3006.5070,N,-5147.9088,E,1,08,0.8,46.1,M,,,
+$GPRMC,123704.708,A,-3006.5070,N,-5147.9088,E,44.3,260.0,000070,,,A
+$GPGGA,123707.024,-3006.5094,N,-5147.9292,E,1,08,0.8,46.1,M,,,
+$GPRMC,123707.024,A,-3006.5094,N,-5147.9292,E,44.3,262.0,000070,,,A
+$GPGGA,123709.339,-3006.5118,N,-5147.9496,E,1,08,0.8,46.1,M,,,
+$GPRMC,123709.339,A,-3006.5118,N,-5147.9496,E,44.3,262.0,000070,,,A
+$GPGGA,123711.655,-3006.5142,N,-5147.9700,E,1,08,0.8,46.1,M,,,
+$GPRMC,123711.655,A,-3006.5142,N,-5147.9700,E,44.3,262.0,000070,,,A
+$GPGGA,123713.970,-3006.5166,N,-5147.9904,E,1,08,0.8,46.1,M,,,
+$GPRMC,123713.970,A,-3006.5166,N,-5147.9904,E,44.3,262.0,000070,,,A
+$GPGGA,123716.285,-3006.5190,N,-5148.0108,E,1,08,0.8,46.1,M,,,
+$GPRMC,123716.285,A,-3006.5190,N,-5148.0108,E,44.3,262.0,000070,,,A
+$GPGGA,123718.601,-3006.5214,N,-5148.0312,E,1,08,0.8,46.1,M,,,
+$GPRMC,123718.601,A,-3006.5214,N,-5148.0312,E,44.3,262.0,000070,,,A
+$GPGGA,123720.916,-3006.5238,N,-5148.0516,E,1,08,0.8,46.1,M,,,
+$GPRMC,123720.916,A,-3006.5238,N,-5148.0516,E,44.3,261.0,000070,,,A
+$GPGGA,123723.240,-3006.5268,N,-5148.0720,E,1,08,0.8,46.1,M,,,
+$GPRMC,123723.240,A,-3006.5268,N,-5148.0720,E,44.3,261.0,000070,,,A
+$GPGGA,123725.556,-3006.5292,N,-5148.0924,E,1,08,0.8,46.1,M,,,
+$GPRMC,123725.556,A,-3006.5292,N,-5148.0924,E,44.3,262.0,000070,,,A
+$GPGGA,123727.871,-3006.5316,N,-5148.1128,E,1,08,0.8,46.1,M,,,
+$GPRMC,123727.871,A,-3006.5316,N,-5148.1128,E,44.3,262.0,000070,,,A
+$GPGGA,123730.186,-3006.5340,N,-5148.1332,E,1,08,0.8,46.1,M,,,
+$GPRMC,123730.186,A,-3006.5340,N,-5148.1332,E,44.3,262.0,000070,,,A
+$GPGGA,123732.502,-3006.5364,N,-5148.1536,E,1,08,0.8,46.1,M,,,
+$GPRMC,123732.502,A,-3006.5364,N,-5148.1536,E,44.3,262.0,000070,,,A
+$GPGGA,123734.817,-3006.5388,N,-5148.1740,E,1,08,0.8,46.1,M,,,
+$GPRMC,123734.817,A,-3006.5388,N,-5148.1740,E,44.3,262.0,000070,,,A
+$GPGGA,123737.133,-3006.5412,N,-5148.1944,E,1,08,0.8,46.1,M,,,
+$GPRMC,123737.133,A,-3006.5412,N,-5148.1944,E,44.3,262.0,000070,,,A
+$GPGGA,123739.448,-3006.5436,N,-5148.2148,E,1,08,0.8,46.1,M,,,
+$GPRMC,123739.448,A,-3006.5436,N,-5148.2148,E,44.3,262.0,000070,,,A
+$GPGGA,123741.763,-3006.5460,N,-5148.2352,E,1,08,0.8,46.1,M,,,
+$GPRMC,123741.763,A,-3006.5460,N,-5148.2352,E,44.3,261.0,000070,,,A
+$GPGGA,123744.088,-3006.5490,N,-5148.2556,E,1,08,0.8,46.1,M,,,
+$GPRMC,123744.088,A,-3006.5490,N,-5148.2556,E,44.3,258.0,000070,,,A
+$GPGGA,123746.369,-3006.5532,N,-5148.2754,E,1,08,0.8,46.1,M,,,
+$GPRMC,123746.369,A,-3006.5532,N,-5148.2754,E,44.3,256.0,000070,,,A
+$GPGGA,123748.651,-3006.5574,N,-5148.2952,E,1,08,0.8,46.1,M,,,
+$GPRMC,123748.651,A,-3006.5574,N,-5148.2952,E,44.3,256.0,000070,,,A
+$GPGGA,123750.932,-3006.5616,N,-5148.3150,E,1,08,0.8,46.1,M,,,
+$GPRMC,123750.932,A,-3006.5616,N,-5148.3150,E,44.3,256.0,000070,,,A
+$GPGGA,123753.280,-3006.5658,N,-5148.3354,E,1,08,0.8,46.1,M,,,
+$GPRMC,123753.280,A,-3006.5658,N,-5148.3354,E,44.3,256.0,000070,,,A
+$GPGGA,123755.561,-3006.5700,N,-5148.3552,E,1,08,0.8,46.1,M,,,
+$GPRMC,123755.561,A,-3006.5700,N,-5148.3552,E,44.3,256.0,000070,,,A
+$GPGGA,123757.843,-3006.5742,N,-5148.3750,E,1,08,0.8,46.1,M,,,
+$GPRMC,123757.843,A,-3006.5742,N,-5148.3750,E,44.3,255.0,000070,,,A
+$GPGGA,123800.205,-3006.5790,N,-5148.3954,E,1,08,0.8,46.1,M,,,
+$GPRMC,123800.205,A,-3006.5790,N,-5148.3954,E,44.3,255.0,000070,,,A
+$GPGGA,123802.487,-3006.5832,N,-5148.4152,E,1,08,0.8,46.1,M,,,
+$GPRMC,123802.487,A,-3006.5832,N,-5148.4152,E,44.3,256.0,000070,,,A
+$GPGGA,123804.768,-3006.5874,N,-5148.4350,E,1,08,0.8,46.1,M,,,
+$GPRMC,123804.768,A,-3006.5874,N,-5148.4350,E,44.3,256.0,000070,,,A
+$GPGGA,123807.050,-3006.5916,N,-5148.4548,E,1,08,0.8,46.1,M,,,
+$GPRMC,123807.050,A,-3006.5916,N,-5148.4548,E,44.3,256.0,000070,,,A
+$GPGGA,123809.398,-3006.5958,N,-5148.4752,E,1,08,0.8,46.1,M,,,
+$GPRMC,123809.398,A,-3006.5958,N,-5148.4752,E,44.3,256.0,000070,,,A
+$GPGGA,123811.679,-3006.6000,N,-5148.4950,E,1,08,0.8,46.1,M,,,
+$GPRMC,123811.679,A,-3006.6000,N,-5148.4950,E,44.3,256.0,000070,,,A
+$GPGGA,123813.961,-3006.6042,N,-5148.5148,E,1,08,0.8,46.1,M,,,
+$GPRMC,123813.961,A,-3006.6042,N,-5148.5148,E,44.3,256.0,000070,,,A
+$GPGGA,123816.242,-3006.6084,N,-5148.5346,E,1,08,0.8,46.1,M,,,
+$GPRMC,123816.242,A,-3006.6084,N,-5148.5346,E,44.3,255.0,000070,,,A
+$GPGGA,123818.605,-3006.6132,N,-5148.5550,E,1,08,0.8,46.1,M,,,
+$GPRMC,123818.605,A,-3006.6132,N,-5148.5550,E,44.3,254.0,000070,,,A
+$GPGGA,123820.901,-3006.6180,N,-5148.5748,E,1,08,0.8,46.1,M,,,
+$GPRMC,123820.901,A,-3006.6180,N,-5148.5748,E,44.3,254.0,000070,,,A
+$GPGGA,123823.198,-3006.6228,N,-5148.5946,E,1,08,0.8,46.1,M,,,
+$GPRMC,123823.198,A,-3006.6228,N,-5148.5946,E,44.3,254.0,000070,,,A
+$GPGGA,123825.494,-3006.6276,N,-5148.6144,E,1,08,0.8,46.1,M,,,
+$GPRMC,123825.494,A,-3006.6276,N,-5148.6144,E,44.3,254.0,000070,,,A
+$GPGGA,123827.791,-3006.6324,N,-5148.6342,E,1,08,0.8,46.1,M,,,
+$GPRMC,123827.791,A,-3006.6324,N,-5148.6342,E,44.3,254.0,000070,,,A
+$GPGGA,123830.087,-3006.6372,N,-5148.6540,E,1,08,0.8,46.1,M,,,
+$GPRMC,123830.087,A,-3006.6372,N,-5148.6540,E,44.3,254.0,000070,,,A
+$GPGGA,123832.384,-3006.6420,N,-5148.6738,E,1,08,0.8,46.1,M,,,
+$GPRMC,123832.384,A,-3006.6420,N,-5148.6738,E,44.3,254.0,000070,,,A
+$GPGGA,123834.680,-3006.6468,N,-5148.6936,E,1,08,0.8,46.1,M,,,
+$GPRMC,123834.680,A,-3006.6468,N,-5148.6936,E,44.3,254.0,000070,,,A
+$GPGGA,123836.977,-3006.6516,N,-5148.7134,E,1,08,0.8,46.1,M,,,
+$GPRMC,123836.977,A,-3006.6516,N,-5148.7134,E,44.3,254.0,000070,,,A
+$GPGGA,123839.273,-3006.6564,N,-5148.7332,E,1,08,0.8,46.1,M,,,
+$GPRMC,123839.273,A,-3006.6564,N,-5148.7332,E,44.3,254.0,000070,,,A
+$GPGGA,123841.570,-3006.6612,N,-5148.7530,E,1,08,0.8,46.1,M,,,
+$GPRMC,123841.570,A,-3006.6612,N,-5148.7530,E,44.3,254.0,000070,,,A
+$GPGGA,123843.867,-3006.6660,N,-5148.7728,E,1,08,0.8,46.1,M,,,
+$GPRMC,123843.867,A,-3006.6660,N,-5148.7728,E,44.3,254.0,000070,,,A
+$GPGGA,123846.163,-3006.6708,N,-5148.7926,E,1,08,0.8,46.1,M,,,
+$GPRMC,123846.163,A,-3006.6708,N,-5148.7926,E,44.3,254.0,000070,,,A
+$GPGGA,123848.460,-3006.6756,N,-5148.8124,E,1,08,0.8,46.1,M,,,
+$GPRMC,123848.460,A,-3006.6756,N,-5148.8124,E,44.3,254.0,000070,,,A
+$GPGGA,123850.756,-3006.6804,N,-5148.8322,E,1,08,0.8,46.1,M,,,
+$GPRMC,123850.756,A,-3006.6804,N,-5148.8322,E,44.3,254.0,000070,,,A
+$GPGGA,123853.053,-3006.6852,N,-5148.8520,E,1,08,0.8,46.1,M,,,
+$GPRMC,123853.053,A,-3006.6852,N,-5148.8520,E,44.3,254.0,000070,,,A
+$GPGGA,123855.349,-3006.6900,N,-5148.8718,E,1,08,0.8,46.1,M,,,
+$GPRMC,123855.349,A,-3006.6900,N,-5148.8718,E,44.3,254.0,000070,,,A
+$GPGGA,123857.646,-3006.6948,N,-5148.8916,E,1,08,0.8,46.1,M,,,
+$GPRMC,123857.646,A,-3006.6948,N,-5148.8916,E,44.3,254.0,000070,,,A
+$GPGGA,123859.942,-3006.6996,N,-5148.9114,E,1,08,0.8,46.1,M,,,
+$GPRMC,123859.942,A,-3006.6996,N,-5148.9114,E,44.3,254.0,000070,,,A
+$GPGGA,123902.239,-3006.7044,N,-5148.9312,E,1,08,0.8,46.1,M,,,
+$GPRMC,123902.239,A,-3006.7044,N,-5148.9312,E,44.3,254.0,000070,,,A
+$GPGGA,123904.535,-3006.7092,N,-5148.9510,E,1,08,0.8,46.1,M,,,
+$GPRMC,123904.535,A,-3006.7092,N,-5148.9510,E,44.3,254.0,000070,,,A
+$GPGGA,123906.832,-3006.7140,N,-5148.9708,E,1,08,0.8,46.1,M,,,
+$GPRMC,123906.832,A,-3006.7140,N,-5148.9708,E,44.3,255.0,000070,,,A
+$GPGGA,123909.113,-3006.7182,N,-5148.9906,E,1,08,0.8,46.1,M,,,
+$GPRMC,123909.113,A,-3006.7182,N,-5148.9906,E,44.3,255.0,000070,,,A
+$GPGGA,123911.410,-3006.7230,N,-5149.0104,E,1,08,0.8,46.1,M,,,
+$GPRMC,123911.410,A,-3006.7230,N,-5149.0104,E,44.3,254.0,000070,,,A
+$GPGGA,123913.706,-3006.7278,N,-5149.0302,E,1,08,0.8,46.1,M,,,
+$GPRMC,123913.706,A,-3006.7278,N,-5149.0302,E,44.3,254.0,000070,,,A
+$GPGGA,123916.003,-3006.7326,N,-5149.0500,E,1,08,0.8,46.1,M,,,
+$GPRMC,123916.003,A,-3006.7326,N,-5149.0500,E,44.3,259.0,000070,,,A
+$GPGGA,123918.379,-3006.7344,N,-5149.0710,E,1,08,0.8,46.1,M,,,
+$GPRMC,123918.379,A,-3006.7344,N,-5149.0710,E,44.3,265.0,000070,,,A
+$GPGGA,123920.682,-3006.7356,N,-5149.0914,E,1,08,0.8,46.1,M,,,
+$GPRMC,123920.682,A,-3006.7356,N,-5149.0914,E,44.3,265.0,000070,,,A
+$GPGGA,123922.991,-3006.7374,N,-5149.1118,E,1,08,0.8,46.1,M,,,
+$GPRMC,123922.991,A,-3006.7374,N,-5149.1118,E,44.3,264.0,000070,,,A
+$GPGGA,123925.299,-3006.7392,N,-5149.1322,E,1,08,0.8,46.1,M,,,
+$GPRMC,123925.299,A,-3006.7392,N,-5149.1322,E,44.3,265.0,000070,,,A
+$GPGGA,123927.603,-3006.7404,N,-5149.1526,E,1,08,0.8,46.1,M,,,
+$GPRMC,123927.603,A,-3006.7404,N,-5149.1526,E,44.3,265.0,000070,,,A
+$GPGGA,123929.911,-3006.7422,N,-5149.1730,E,1,08,0.8,46.1,M,,,
+$GPRMC,123929.911,A,-3006.7422,N,-5149.1730,E,44.3,265.0,000070,,,A
+$GPGGA,123932.215,-3006.7434,N,-5149.1934,E,1,08,0.8,46.1,M,,,
+$GPRMC,123932.215,A,-3006.7434,N,-5149.1934,E,44.3,265.0,000070,,,A
+$GPGGA,123934.590,-3006.7452,N,-5149.2144,E,1,08,0.8,46.1,M,,,
+$GPRMC,123934.590,A,-3006.7452,N,-5149.2144,E,44.3,264.0,000070,,,A
+$GPGGA,123936.899,-3006.7470,N,-5149.2348,E,1,08,0.8,46.1,M,,,
+$GPRMC,123936.899,A,-3006.7470,N,-5149.2348,E,44.3,265.0,000070,,,A
+$GPGGA,123939.202,-3006.7482,N,-5149.2552,E,1,08,0.8,46.1,M,,,
+$GPRMC,123939.202,A,-3006.7482,N,-5149.2552,E,44.3,265.0,000070,,,A
+$GPGGA,123941.511,-3006.7500,N,-5149.2756,E,1,08,0.8,46.1,M,,,
+$GPRMC,123941.511,A,-3006.7500,N,-5149.2756,E,44.3,265.0,000070,,,A
+$GPGGA,123943.814,-3006.7512,N,-5149.2960,E,1,08,0.8,46.1,M,,,
+$GPRMC,123943.814,A,-3006.7512,N,-5149.2960,E,44.3,265.0,000070,,,A
+$GPGGA,123946.123,-3006.7530,N,-5149.3164,E,1,08,0.8,46.1,M,,,
+$GPRMC,123946.123,A,-3006.7530,N,-5149.3164,E,44.3,265.0,000070,,,A
+$GPGGA,123948.426,-3006.7542,N,-5149.3368,E,1,08,0.8,46.1,M,,,
+$GPRMC,123948.426,A,-3006.7542,N,-5149.3368,E,44.3,266.0,000070,,,A
+$GPGGA,123950.797,-3006.7554,N,-5149.3578,E,1,08,0.8,46.1,M,,,
+$GPRMC,123950.797,A,-3006.7554,N,-5149.3578,E,44.3,266.0,000070,,,A
+$GPGGA,123953.101,-3006.7566,N,-5149.3782,E,1,08,0.8,46.1,M,,,
+$GPRMC,123953.101,A,-3006.7566,N,-5149.3782,E,44.3,266.0,000070,,,A
+$GPGGA,123955.404,-3006.7578,N,-5149.3986,E,1,08,0.8,46.1,M,,,
+$GPRMC,123955.404,A,-3006.7578,N,-5149.3986,E,44.3,266.0,000070,,,A
+$GPGGA,123957.708,-3006.7590,N,-5149.4190,E,1,08,0.8,46.1,M,,,
+$GPRMC,123957.708,A,-3006.7590,N,-5149.4190,E,44.3,266.0,000070,,,A
+$GPGGA,124000.079,-3006.7602,N,-5149.4400,E,1,08,0.8,46.1,M,,,
+$GPRMC,124000.079,A,-3006.7602,N,-5149.4400,E,44.3,266.0,000070,,,A
+$GPGGA,124002.382,-3006.7614,N,-5149.4604,E,1,08,0.8,46.1,M,,,
+$GPRMC,124002.382,A,-3006.7614,N,-5149.4604,E,44.3,266.0,000070,,,A
+$GPGGA,124004.686,-3006.7626,N,-5149.4808,E,1,08,0.8,46.1,M,,,
+$GPRMC,124004.686,A,-3006.7626,N,-5149.4808,E,44.3,266.0,000070,,,A
+$GPGGA,124006.989,-3006.7638,N,-5149.5012,E,1,08,0.8,46.1,M,,,
+$GPRMC,124006.989,A,-3006.7638,N,-5149.5012,E,44.3,266.0,000070,,,A
+$GPGGA,124009.360,-3006.7650,N,-5149.5222,E,1,08,0.8,46.1,M,,,
+$GPRMC,124009.360,A,-3006.7650,N,-5149.5222,E,44.3,266.0,000070,,,A
+$GPGGA,124011.664,-3006.7662,N,-5149.5426,E,1,08,0.8,46.1,M,,,
+$GPRMC,124011.664,A,-3006.7662,N,-5149.5426,E,44.3,266.0,000070,,,A
+$GPGGA,124013.967,-3006.7674,N,-5149.5630,E,1,08,0.8,46.1,M,,,
+$GPRMC,124013.967,A,-3006.7674,N,-5149.5630,E,44.3,266.0,000070,,,A
+$GPGGA,124016.271,-3006.7686,N,-5149.5834,E,1,08,0.8,46.1,M,,,
+$GPRMC,124016.271,A,-3006.7686,N,-5149.5834,E,44.3,266.0,000070,,,A
+$GPGGA,124018.507,-3006.7698,N,-5149.6032,E,1,08,0.8,46.1,M,,,
+$GPRMC,124018.507,A,-3006.7698,N,-5149.6032,E,42.7,266.0,000070,,,A
+$GPGGA,124020.844,-3006.7710,N,-5149.6230,E,1,08,0.8,46.1,M,,,
+$GPRMC,124020.844,A,-3006.7710,N,-5149.6230,E,40.5,266.0,000070,,,A
+$GPGGA,124023.145,-3006.7722,N,-5149.6416,E,1,08,0.8,46.1,M,,,
+$GPRMC,124023.145,A,-3006.7722,N,-5149.6416,E,40.5,267.0,000070,,,A
+$GPGGA,124025.369,-3006.7728,N,-5149.6596,E,1,08,0.8,46.1,M,,,
+$GPRMC,124025.369,A,-3006.7728,N,-5149.6596,E,38.9,266.0,000070,,,A
+$GPGGA,124027.636,-3006.7746,N,-5149.6770,E,1,08,0.8,46.1,M,,,
+$GPRMC,124027.636,A,-3006.7746,N,-5149.6770,E,36.7,262.0,000070,,,A
+$GPGGA,124029.871,-3006.7770,N,-5149.6932,E,1,08,0.8,46.1,M,,,
+$GPRMC,124029.871,A,-3006.7770,N,-5149.6932,E,34.6,260.0,000070,,,A
+$GPGGA,124032.230,-3006.7794,N,-5149.7094,E,1,08,0.8,46.1,M,,,
+$GPRMC,124032.230,A,-3006.7794,N,-5149.7094,E,34.6,260.0,000070,,,A
+$GPGGA,124034.503,-3006.7818,N,-5149.7250,E,1,08,0.8,46.1,M,,,
+$GPRMC,124034.503,A,-3006.7818,N,-5149.7250,E,32.9,260.0,000070,,,A
+$GPGGA,124036.730,-3006.7842,N,-5149.7394,E,1,08,0.8,46.1,M,,,
+$GPRMC,124036.730,A,-3006.7842,N,-5149.7394,E,30.8,259.0,000070,,,A
+$GPGGA,124039.095,-3006.7866,N,-5149.7538,E,1,08,0.8,46.1,M,,,
+$GPRMC,124039.095,A,-3006.7866,N,-5149.7538,E,30.8,260.0,000070,,,A
+$GPGGA,124041.254,-3006.7884,N,-5149.7670,E,1,08,0.8,46.1,M,,,
+$GPRMC,124041.254,A,-3006.7884,N,-5149.7670,E,29.2,260.0,000070,,,A
+$GPGGA,124043.675,-3006.7908,N,-5149.7808,E,1,08,0.8,46.1,M,,,
+$GPRMC,124043.675,A,-3006.7908,N,-5149.7808,E,29.2,260.0,000070,,,A
+$GPGGA,124045.875,-3006.7926,N,-5149.7934,E,1,08,0.8,46.1,M,,,
+$GPRMC,124045.875,A,-3006.7926,N,-5149.7934,E,27.0,261.0,000070,,,A
+$GPGGA,124048.232,-3006.7944,N,-5149.8060,E,1,08,0.8,46.1,M,,,
+$GPRMC,124048.232,A,-3006.7944,N,-5149.8060,E,27.0,260.0,000070,,,A
+$GPGGA,124050.369,-3006.7962,N,-5149.8174,E,1,08,0.8,46.1,M,,,
+$GPRMC,124050.369,A,-3006.7962,N,-5149.8174,E,24.8,259.0,000070,,,A
+$GPGGA,124052.553,-3006.7980,N,-5149.8282,E,1,08,0.8,46.1,M,,,
+$GPRMC,124052.553,A,-3006.7980,N,-5149.8282,E,23.2,259.0,000070,,,A
+$GPGGA,124054.918,-3006.7998,N,-5149.8390,E,1,08,0.8,46.1,M,,,
+$GPRMC,124054.918,A,-3006.7998,N,-5149.8390,E,21.1,260.0,000070,,,A
+$GPGGA,124057.198,-3006.8010,N,-5149.8486,E,1,08,0.8,46.1,M,,,
+$GPRMC,124057.198,A,-3006.8010,N,-5149.8486,E,21.1,259.0,000070,,,A
+$GPGGA,124059.362,-3006.8028,N,-5149.8576,E,1,08,0.8,46.1,M,,,
+$GPRMC,124059.362,A,-3006.8028,N,-5149.8576,E,19.4,259.0,000070,,,A
+$GPGGA,124101.716,-3006.8040,N,-5149.8666,E,1,08,0.8,46.1,M,,,
+$GPRMC,124101.716,A,-3006.8040,N,-5149.8666,E,17.3,261.0,000070,,,A
+$GPGGA,124103.989,-3006.8052,N,-5149.8744,E,1,08,0.8,46.1,M,,,
+$GPRMC,124103.989,A,-3006.8052,N,-5149.8744,E,17.3,259.0,000070,,,A
+$GPGGA,124106.092,-3006.8064,N,-5149.8816,E,1,08,0.8,46.1,M,,,
+$GPRMC,124106.092,A,-3006.8064,N,-5149.8816,E,15.1,259.0,000070,,,A
+$GPGGA,124108.457,-3006.8076,N,-5149.8888,E,1,08,0.8,46.1,M,,,
+$GPRMC,124108.457,A,-3006.8076,N,-5149.8888,E,13.5,261.0,000070,,,A
+$GPGGA,124110.912,-3006.8082,N,-5149.8954,E,1,08,0.8,46.1,M,,,
+$GPRMC,124110.912,A,-3006.8082,N,-5149.8954,E,13.5,261.0,000070,,,A
+$GPGGA,124113.178,-3006.8094,N,-5149.9014,E,1,08,0.8,46.1,M,,,
+$GPRMC,124113.178,A,-3006.8094,N,-5149.9014,E,13.5,259.0,000070,,,A
+$GPGGA,124115.190,-3006.8100,N,-5149.9068,E,1,08,0.8,46.1,M,,,
+$GPRMC,124115.190,A,-3006.8100,N,-5149.9068,E,11.3,258.0,000070,,,A
+$GPGGA,124117.328,-3006.8112,N,-5149.9116,E,1,08,0.8,46.1,M,,,
+$GPRMC,124117.328,A,-3006.8112,N,-5149.9116,E,9.7,257.0,000070,,,A
+$GPGGA,124119.836,-3006.8118,N,-5149.9164,E,1,08,0.8,46.1,M,,,
+$GPRMC,124119.836,A,-3006.8118,N,-5149.9164,E,7.6,261.0,000070,,,A
+$GPGGA,124122.202,-3006.8124,N,-5149.9200,E,1,08,0.8,46.1,M,,,
+$GPRMC,124122.202,A,-3006.8124,N,-5149.9200,E,7.6,260.0,000070,,,A
+$GPGGA,124124.567,-3006.8130,N,-5149.9236,E,1,08,0.8,46.1,M,,,
+$GPRMC,124124.567,A,-3006.8130,N,-5149.9236,E,7.6,262.0,000070,,,A
+$GPGGA,124126.512,-3006.8130,N,-5149.9266,E,1,08,0.8,46.1,M,,,
+$GPRMC,124126.512,A,-3006.8130,N,-5149.9266,E,5.4,261.0,000070,,,A
+$GPGGA,124128.650,-3006.8136,N,-5149.9290,E,1,08,0.8,46.1,M,,,
+$GPRMC,124128.650,A,-3006.8136,N,-5149.9290,E,3.8,262.0,000070,,,A
+$GPGGA,124130.983,-3006.8136,N,-5149.9308,E,1,08,0.8,46.1,M,,,
+$GPRMC,124130.983,A,-3006.8136,N,-5149.9308,E,3.8,261.0,000070,,,A
+$GPGGA,124133.443,-3006.8142,N,-5149.9326,E,1,08,0.8,46.1,M,,,
+$GPRMC,124133.443,A,-3006.8142,N,-5149.9326,E,3.8,262.0,000070,,,A
+$GPGGA,124134.998,-3006.8142,N,-5149.9338,E,1,08,0.8,46.1,M,,,
+$GPRMC,124134.998,A,-3006.8142,N,-5149.9338,E,1.6,256.0,000070,,,A
+$GPGGA,124138.476,-3006.8148,N,-5149.9350,E,1,08,0.8,46.1,M,,,
+$GPRMC,124138.476,A,-3006.8148,N,-5149.9350,E,1.6,257.0,000070,,,A
+$GPGGA,124141.588,-3006.8148,N,-5149.9362,E,1,08,0.8,46.1,M,,,
+$GPRMC,124141.588,A,-3006.8148,N,-5149.9362,E,1.6,261.0,000070,,,A
+$GPGGA,124144.699,-3006.8148,N,-5149.9374,E,1,08,0.8,46.1,M,,,
+$GPRMC,124144.699,A,-3006.8148,N,-5149.9374,E,1.6,256.0,000070,,,A
+$GPGGA,124149.618,-3006.8154,N,-5149.9392,E,1,08,0.8,46.1,M,,,
+$GPRMC,124149.618,A,-3006.8154,N,-5149.9392,E,1.6,260.0,000070,,,A
+$GPGGA,124152.729,-3006.8154,N,-5149.9404,E,1,08,0.8,46.1,M,,,
+$GPRMC,124152.729,A,-3006.8154,N,-5149.9404,E,1.6,260.0,000070,,,A
+$GPGGA,124155.840,-3006.8154,N,-5149.9416,E,1,08,0.8,46.1,M,,,
+$GPRMC,124155.840,A,-3006.8154,N,-5149.9416,E,1.6,265.0,000070,,,A
+$GPGGA,124158.951,-3006.8154,N,-5149.9428,E,1,08,0.8,46.1,M,,,
+$GPRMC,124158.951,A,-3006.8154,N,-5149.9428,E,1.6,265.0,000070,,,A
+$GPGGA,124202.062,-3006.8154,N,-5149.9440,E,1,08,0.8,46.1,M,,,
+$GPRMC,124202.062,A,-3006.8154,N,-5149.9440,E,1.6,265.0,000070,,,A
+$GPGGA,124205.173,-3006.8154,N,-5149.9452,E,1,08,0.8,46.1,M,,,
+$GPRMC,124205.173,A,-3006.8154,N,-5149.9452,E,1.6,265.0,000070,,,A
+$GPGGA,124208.284,-3006.8154,N,-5149.9464,E,1,08,0.8,46.1,M,,,
+$GPRMC,124208.284,A,-3006.8154,N,-5149.9464,E,1.6,265.0,000070,,,A
+$GPGGA,124211.763,-3006.8160,N,-5149.9476,E,1,08,0.8,46.1,M,,,
+$GPRMC,124211.763,A,-3006.8160,N,-5149.9476,E,1.6,265.0,000070,,,A
+$GPGGA,124214.874,-3006.8160,N,-5149.9488,E,1,08,0.8,46.1,M,,,
+$GPRMC,124214.874,A,-3006.8160,N,-5149.9488,E,1.6,265.0,000070,,,A
+$GPGGA,124217.985,-3006.8160,N,-5149.9500,E,1,08,0.8,46.1,M,,,
+$GPRMC,124217.985,A,-3006.8160,N,-5149.9500,E,1.6,265.0,000070,,,A
+$GPGGA,124221.096,-3006.8160,N,-5149.9512,E,1,08,0.8,46.1,M,,,
+$GPRMC,124221.096,A,-3006.8160,N,-5149.9512,E,1.6,265.0,000070,,,A
+$GPGGA,124224.207,-3006.8160,N,-5149.9524,E,1,08,0.8,46.1,M,,,
+$GPRMC,124224.207,A,-3006.8160,N,-5149.9524,E,1.6,265.0,000070,,,A
+$GPGGA,124227.318,-3006.8160,N,-5149.9536,E,1,08,0.8,46.1,M,,,
+$GPRMC,124227.318,A,-3006.8160,N,-5149.9536,E,1.6,265.0,000070,,,A
+$GPGGA,124230.429,-3006.8160,N,-5149.9548,E,1,08,0.8,46.1,M,,,
+$GPRMC,124230.429,A,-3006.8160,N,-5149.9548,E,1.6,265.0,000070,,,A
+$GPGGA,124235.349,-3006.8166,N,-5149.9566,E,1,08,0.8,46.1,M,,,
+$GPRMC,124235.349,A,-3006.8166,N,-5149.9566,E,1.6,265.0,000070,,,A
+$GPGGA,124238.460,-3006.8166,N,-5149.9578,E,1,08,0.8,46.1,M,,,
+$GPRMC,124238.460,A,-3006.8166,N,-5149.9578,E,1.6,265.0,000070,,,A
+$GPGGA,124241.571,-3006.8166,N,-5149.9590,E,1,08,0.8,46.1,M,,,
+$GPRMC,124241.571,A,-3006.8166,N,-5149.9590,E,1.6,265.0,000070,,,A
+$GPGGA,124244.682,-3006.8166,N,-5149.9602,E,1,08,0.8,46.1,M,,,
+$GPRMC,124244.682,A,-3006.8166,N,-5149.9602,E,1.6,265.0,000070,,,A
+$GPGGA,124247.793,-3006.8166,N,-5149.9614,E,1,08,0.8,46.1,M,,,
+$GPRMC,124247.793,A,-3006.8166,N,-5149.9614,E,1.6,265.0,000070,,,A
+$GPGGA,124250.904,-3006.8166,N,-5149.9626,E,1,08,0.8,46.1,M,,,
+$GPRMC,124250.904,A,-3006.8166,N,-5149.9626,E,1.6,265.0,000070,,,A
+$GPGGA,124254.015,-3006.8166,N,-5149.9638,E,1,08,0.8,46.1,M,,,
+$GPRMC,124254.015,A,-3006.8166,N,-5149.9638,E,1.6,265.0,000070,,,A
+$GPGGA,124257.494,-3006.8172,N,-5149.9650,E,1,08,0.8,46.1,M,,,
+$GPRMC,124257.494,A,-3006.8172,N,-5149.9650,E,1.6,265.0,000070,,,A
+$GPGGA,124300.605,-3006.8172,N,-5149.9662,E,1,08,0.8,46.1,M,,,
+$GPRMC,124300.605,A,-3006.8172,N,-5149.9662,E,1.6,265.0,000070,,,A
+$GPGGA,124303.716,-3006.8172,N,-5149.9674,E,1,08,0.8,46.1,M,,,
+$GPRMC,124303.716,A,-3006.8172,N,-5149.9674,E,1.6,265.0,000070,,,A
+$GPGGA,124306.827,-3006.8172,N,-5149.9686,E,1,08,0.8,46.1,M,,,
+$GPRMC,124306.827,A,-3006.8172,N,-5149.9686,E,1.6,265.0,000070,,,A
+$GPGGA,124309.938,-3006.8172,N,-5149.9698,E,1,08,0.8,46.1,M,,,
+$GPRMC,124309.938,A,-3006.8172,N,-5149.9698,E,1.6,265.0,000070,,,A
+$GPGGA,124313.049,-3006.8172,N,-5149.9710,E,1,08,0.8,46.1,M,,,
+$GPRMC,124313.049,A,-3006.8172,N,-5149.9710,E,1.6,265.0,000070,,,A
+$GPGGA,124316.160,-3006.8172,N,-5149.9722,E,1,08,0.8,46.1,M,,,
+$GPRMC,124316.160,A,-3006.8172,N,-5149.9722,E,1.6,265.0,000070,,,A
+$GPGGA,124321.079,-3006.8178,N,-5149.9740,E,1,08,0.8,46.1,M,,,
+$GPRMC,124321.079,A,-3006.8178,N,-5149.9740,E,1.6,265.0,000070,,,A
+$GPGGA,124324.190,-3006.8178,N,-5149.9752,E,1,08,0.8,46.1,M,,,
+$GPRMC,124324.190,A,-3006.8178,N,-5149.9752,E,1.6,265.0,000070,,,A
+$GPGGA,124327.302,-3006.8178,N,-5149.9764,E,1,08,0.8,46.1,M,,,
+$GPRMC,124327.302,A,-3006.8178,N,-5149.9764,E,1.6,265.0,000070,,,A
+$GPGGA,124330.413,-3006.8178,N,-5149.9776,E,1,08,0.8,46.1,M,,,
+$GPRMC,124330.413,A,-3006.8178,N,-5149.9776,E,1.6,265.0,000070,,,A
+$GPGGA,124333.524,-3006.8178,N,-5149.9788,E,1,08,0.8,46.1,M,,,
+$GPRMC,124333.524,A,-3006.8178,N,-5149.9788,E,1.6,265.0,000070,,,A
+$GPGGA,124336.635,-3006.8178,N,-5149.9800,E,1,08,0.8,46.1,M,,,
+$GPRMC,124336.635,A,-3006.8178,N,-5149.9800,E,1.6,265.0,000070,,,A
+$GPGGA,124339.746,-3006.8178,N,-5149.9812,E,1,08,0.8,46.1,M,,,
+$GPRMC,124339.746,A,-3006.8178,N,-5149.9812,E,1.6,265.0,000070,,,A
+$GPGGA,124343.224,-3006.8184,N,-5149.9824,E,1,08,0.8,46.1,M,,,
+$GPRMC,124343.224,A,-3006.8184,N,-5149.9824,E,1.6,265.0,000070,,,A
+$GPGGA,124346.335,-3006.8184,N,-5149.9836,E,1,08,0.8,46.1,M,,,
+$GPRMC,124346.335,A,-3006.8184,N,-5149.9836,E,1.6,265.0,000070,,,A
+$GPGGA,124349.446,-3006.8184,N,-5149.9848,E,1,08,0.8,46.1,M,,,
+$GPRMC,124349.446,A,-3006.8184,N,-5149.9848,E,1.6,265.0,000070,,,A
+$GPGGA,124352.558,-3006.8184,N,-5149.9860,E,1,08,0.8,46.1,M,,,
+$GPRMC,124352.558,A,-3006.8184,N,-5149.9860,E,1.6,265.0,000070,,,A
+$GPGGA,124355.669,-3006.8184,N,-5149.9872,E,1,08,0.8,46.1,M,,,
+$GPRMC,124355.669,A,-3006.8184,N,-5149.9872,E,1.6,265.0,000070,,,A
+$GPGGA,124358.780,-3006.8184,N,-5149.9884,E,1,08,0.8,46.1,M,,,
+$GPRMC,124358.780,A,-3006.8184,N,-5149.9884,E,1.6,265.0,000070,,,A
+$GPGGA,124401.891,-3006.8184,N,-5149.9896,E,1,08,0.8,46.1,M,,,
+$GPRMC,124401.891,A,-3006.8184,N,-5149.9896,E,1.6,265.0,000070,,,A
+$GPGGA,124406.810,-3006.8190,N,-5149.9914,E,1,08,0.8,46.1,M,,,
+$GPRMC,124406.810,A,-3006.8190,N,-5149.9914,E,1.6,265.0,000070,,,A
+$GPGGA,124409.921,-3006.8190,N,-5149.9926,E,1,08,0.8,46.1,M,,,
+$GPRMC,124409.921,A,-3006.8190,N,-5149.9926,E,1.6,265.0,000070,,,A
+$GPGGA,124413.032,-3006.8190,N,-5149.9938,E,1,08,0.8,46.1,M,,,
+$GPRMC,124413.032,A,-3006.8190,N,-5149.9938,E,1.6,265.0,000070,,,A
+$GPGGA,124416.143,-3006.8190,N,-5149.9950,E,1,08,0.8,46.1,M,,,
+$GPRMC,124416.143,A,-3006.8190,N,-5149.9950,E,1.6,265.0,000070,,,A
+$GPGGA,124419.254,-3006.8190,N,-5149.9962,E,1,08,0.8,46.1,M,,,
+$GPRMC,124419.254,A,-3006.8190,N,-5149.9962,E,1.6,265.0,000070,,,A
+$GPGGA,124422.366,-3006.8190,N,-5149.9974,E,1,08,0.8,46.1,M,,,
+$GPRMC,124422.366,A,-3006.8190,N,-5149.9974,E,1.6,265.0,000070,,,A
+$GPGGA,124425.477,-3006.8190,N,-5149.9986,E,1,08,0.8,46.1,M,,,
+$GPRMC,124425.477,A,-3006.8190,N,-5149.9986,E,1.6,265.0,000070,,,A
+$GPGGA,124428.955,-3006.8196,N,-5149.9998,E,1,08,0.8,46.1,M,,,
+$GPRMC,124428.955,A,-3006.8196,N,-5149.9998,E,1.6,265.0,000070,,,A
+$GPGGA,124432.066,-3006.8196,N,-5150.0010,E,1,08,0.8,46.1,M,,,
+$GPRMC,124432.066,A,-3006.8196,N,-5150.0010,E,1.6,265.0,000070,,,A
+$GPGGA,124435.177,-3006.8196,N,-5150.0022,E,1,08,0.8,46.1,M,,,
+$GPRMC,124435.177,A,-3006.8196,N,-5150.0022,E,1.6,265.0,000070,,,A
+$GPGGA,124438.288,-3006.8196,N,-5150.0034,E,1,08,0.8,46.1,M,,,
+$GPRMC,124438.288,A,-3006.8196,N,-5150.0034,E,1.6,265.0,000070,,,A
+$GPGGA,124441.399,-3006.8196,N,-5150.0046,E,1,08,0.8,46.1,M,,,
+$GPRMC,124441.399,A,-3006.8196,N,-5150.0046,E,1.6,265.0,000070,,,A
+$GPGGA,124444.511,-3006.8196,N,-5150.0058,E,1,08,0.8,46.1,M,,,
+$GPRMC,124444.511,A,-3006.8196,N,-5150.0058,E,1.6,265.0,000070,,,A
+$GPGGA,124447.622,-3006.8196,N,-5150.0070,E,1,08,0.8,46.1,M,,,
+$GPRMC,124447.622,A,-3006.8196,N,-5150.0070,E,1.6,265.0,000070,,,A
+
+
diff --git a/test/data/regress/2147/WG20080203171807.log.gpx b/test/data/regress/2147/WG20080203171807.log.gpx
new file mode 100644
index 0000000..7e8cbbe
--- /dev/null
+++ b/test/data/regress/2147/WG20080203171807.log.gpx
@@ -0,0 +1,5853 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx version="1.0" creator="GPSBabel - http://www.gpsbabel.org" xmlns="http://www.topografix.com/GPX/1/0">
+  <time>2016-08-27T14:56:19.676Z</time>
+  <bounds minlat="-6.760321667" minlon="-37.208255000" maxlat="-6.681998333" maxlon="-37.125885000"/>
+  <trk>
+    <trkseg>
+      <trkpt lat="-6.751121667" lon="-37.129723333">
+        <ele>241.000000</ele>
+        <time>2008-02-03T17:18:07Z</time>
+        <course>352.700012</course>
+        <speed>0.000000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.100000</hdop>
+        <vdop>1.800000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.750545000" lon="-37.130013333">
+        <ele>226.900000</ele>
+        <time>2008-02-03T17:18:37Z</time>
+        <course>334.799988</course>
+        <speed>5.361111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.749801667" lon="-37.130250000">
+        <ele>231.200000</ele>
+        <time>2008-02-03T17:18:52Z</time>
+        <course>345.700012</course>
+        <speed>5.833333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.748878333" lon="-37.130548333">
+        <ele>233.300000</ele>
+        <time>2008-02-03T17:19:07Z</time>
+        <course>333.600006</course>
+        <speed>7.111111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.748238333" lon="-37.130931667">
+        <ele>230.100000</ele>
+        <time>2008-02-03T17:19:22Z</time>
+        <course>328.299988</course>
+        <speed>4.000000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.747301667" lon="-37.131495000">
+        <ele>231.700000</ele>
+        <time>2008-02-03T17:19:42Z</time>
+        <course>324.899994</course>
+        <speed>6.111111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.746895000" lon="-37.132223333">
+        <ele>228.100000</ele>
+        <time>2008-02-03T17:19:57Z</time>
+        <course>307.700012</course>
+        <speed>5.611111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.746240000" lon="-37.132748333">
+        <ele>231.600000</ele>
+        <time>2008-02-03T17:20:12Z</time>
+        <course>330.100006</course>
+        <speed>7.861111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.745473333" lon="-37.133180000">
+        <ele>232.000000</ele>
+        <time>2008-02-03T17:20:27Z</time>
+        <course>323.899994</course>
+        <speed>5.194445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.744886667" lon="-37.133653333">
+        <ele>236.900000</ele>
+        <time>2008-02-03T17:20:42Z</time>
+        <course>319.299988</course>
+        <speed>5.083333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.744418333" lon="-37.134146667">
+        <ele>237.200000</ele>
+        <time>2008-02-03T17:20:57Z</time>
+        <course>304.600006</course>
+        <speed>6.583333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.743891667" lon="-37.134691667">
+        <ele>236.700000</ele>
+        <time>2008-02-03T17:21:12Z</time>
+        <course>324.100006</course>
+        <speed>3.777778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.743278333" lon="-37.135150000">
+        <ele>237.100000</ele>
+        <time>2008-02-03T17:21:27Z</time>
+        <course>332.299988</course>
+        <speed>4.611111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742931667" lon="-37.135075000">
+        <ele>236.000000</ele>
+        <time>2008-02-03T17:21:42Z</time>
+        <course>51.000000</course>
+        <speed>1.833333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>3.300000</hdop>
+        <vdop>3.300000</vdop>
+        <pdop>4.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742823333" lon="-37.134643333">
+        <ele>235.800000</ele>
+        <time>2008-02-03T17:21:57Z</time>
+        <course>68.599998</course>
+        <speed>6.583333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>3.300000</hdop>
+        <vdop>3.300000</vdop>
+        <pdop>4.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742530000" lon="-37.133885000">
+        <ele>235.200000</ele>
+        <time>2008-02-03T17:22:12Z</time>
+        <course>57.799999</course>
+        <speed>5.611111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>4.900000</hdop>
+        <vdop>4.800000</vdop>
+        <pdop>6.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742273333" lon="-37.133373333">
+        <ele>235.300000</ele>
+        <time>2008-02-03T17:22:27Z</time>
+        <course>59.000000</course>
+        <speed>4.777778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742195000" lon="-37.133260000">
+        <ele>237.900000</ele>
+        <time>2008-02-03T17:22:42Z</time>
+        <course>218.100006</course>
+        <speed>1.333333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>3.900000</hdop>
+        <vdop>3.800000</vdop>
+        <pdop>5.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742153333" lon="-37.133240000">
+        <ele>238.600000</ele>
+        <time>2008-02-03T17:22:57Z</time>
+        <course>197.899994</course>
+        <speed>0.916667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742096667" lon="-37.133150000">
+        <ele>239.800000</ele>
+        <time>2008-02-03T17:23:12Z</time>
+        <course>66.199997</course>
+        <speed>1.500000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>3.500000</hdop>
+        <vdop>3.500000</vdop>
+        <pdop>4.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.741955000" lon="-37.133051667">
+        <ele>239.200000</ele>
+        <time>2008-02-03T17:23:27Z</time>
+        <course>53.299999</course>
+        <speed>1.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.741805000" lon="-37.132883333">
+        <ele>240.900000</ele>
+        <time>2008-02-03T17:23:42Z</time>
+        <course>55.299999</course>
+        <speed>4.666667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>2.600000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.741518333" lon="-37.132430000">
+        <ele>243.100000</ele>
+        <time>2008-02-03T17:23:57Z</time>
+        <course>48.200001</course>
+        <speed>4.333333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>3.400000</hdop>
+        <vdop>3.500000</vdop>
+        <pdop>4.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.740936667" lon="-37.132295000">
+        <ele>244.500000</ele>
+        <time>2008-02-03T17:24:12Z</time>
+        <course>340.200012</course>
+        <speed>4.638889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>3.400000</hdop>
+        <vdop>3.600000</vdop>
+        <pdop>5.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.740181667" lon="-37.132615000">
+        <ele>244.200000</ele>
+        <time>2008-02-03T17:24:27Z</time>
+        <course>333.399994</course>
+        <speed>7.000000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.739598333" lon="-37.133273333">
+        <ele>241.000000</ele>
+        <time>2008-02-03T17:24:42Z</time>
+        <course>326.100006</course>
+        <speed>4.833333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.738975000" lon="-37.133605000">
+        <ele>242.700000</ele>
+        <time>2008-02-03T17:24:57Z</time>
+        <course>316.600006</course>
+        <speed>4.944445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.738508333" lon="-37.134091667">
+        <ele>245.500000</ele>
+        <time>2008-02-03T17:25:12Z</time>
+        <course>317.299988</course>
+        <speed>5.722222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.737908333" lon="-37.134881667">
+        <ele>248.500000</ele>
+        <time>2008-02-03T17:25:32Z</time>
+        <course>317.799988</course>
+        <speed>6.138889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.737390000" lon="-37.135381667">
+        <ele>250.900000</ele>
+        <time>2008-02-03T17:25:47Z</time>
+        <course>308.799988</course>
+        <speed>4.055555</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.736743333" lon="-37.135995000">
+        <ele>252.700000</ele>
+        <time>2008-02-03T17:26:02Z</time>
+        <course>313.000000</course>
+        <speed>6.916667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.736181667" lon="-37.136715000">
+        <ele>255.400000</ele>
+        <time>2008-02-03T17:26:17Z</time>
+        <course>284.700012</course>
+        <speed>6.972222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.735970000" lon="-37.137393333">
+        <ele>256.200000</ele>
+        <time>2008-02-03T17:26:32Z</time>
+        <course>287.299988</course>
+        <speed>3.611111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.735638333" lon="-37.137993333">
+        <ele>257.100000</ele>
+        <time>2008-02-03T17:26:47Z</time>
+        <course>297.000000</course>
+        <speed>5.833333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.735275000" lon="-37.138450000">
+        <ele>256.900000</ele>
+        <time>2008-02-03T17:27:02Z</time>
+        <course>313.000000</course>
+        <speed>4.194445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.734743333" lon="-37.139006667">
+        <ele>255.400000</ele>
+        <time>2008-02-03T17:27:17Z</time>
+        <course>315.000000</course>
+        <speed>6.472222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.734205000" lon="-37.139526667">
+        <ele>254.500000</ele>
+        <time>2008-02-03T17:27:32Z</time>
+        <course>317.700012</course>
+        <speed>5.333333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.733723333" lon="-37.140341667">
+        <ele>253.400000</ele>
+        <time>2008-02-03T17:27:47Z</time>
+        <course>299.500000</course>
+        <speed>8.444445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.733583333" lon="-37.140651667">
+        <ele>253.200000</ele>
+        <time>2008-02-03T17:28:02Z</time>
+        <course>286.000000</course>
+        <speed>2.194444</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.733191667" lon="-37.141301667">
+        <ele>253.900000</ele>
+        <time>2008-02-03T17:28:17Z</time>
+        <course>294.100006</course>
+        <speed>6.666667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.732920000" lon="-37.141980000">
+        <ele>252.600000</ele>
+        <time>2008-02-03T17:28:32Z</time>
+        <course>295.299988</course>
+        <speed>3.750000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.732618333" lon="-37.142720000">
+        <ele>251.500000</ele>
+        <time>2008-02-03T17:28:47Z</time>
+        <course>290.600006</course>
+        <speed>8.833333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.732201667" lon="-37.143748333">
+        <ele>250.700000</ele>
+        <time>2008-02-03T17:29:02Z</time>
+        <course>290.500000</course>
+        <speed>7.555555</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.731610000" lon="-37.144736667">
+        <ele>250.300000</ele>
+        <time>2008-02-03T17:29:17Z</time>
+        <course>309.899994</course>
+        <speed>8.888889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730986667" lon="-37.145683333">
+        <ele>250.600000</ele>
+        <time>2008-02-03T17:29:32Z</time>
+        <course>292.200012</course>
+        <speed>7.472222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730796667" lon="-37.146758333">
+        <ele>251.300000</ele>
+        <time>2008-02-03T17:29:47Z</time>
+        <course>278.100006</course>
+        <speed>6.666667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730715000" lon="-37.147581667">
+        <ele>249.700000</ele>
+        <time>2008-02-03T17:30:02Z</time>
+        <course>284.299988</course>
+        <speed>5.027778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730660000" lon="-37.148106667">
+        <ele>247.500000</ele>
+        <time>2008-02-03T17:30:17Z</time>
+        <course>292.899994</course>
+        <speed>5.250000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730496667" lon="-37.148778333">
+        <ele>246.300000</ele>
+        <time>2008-02-03T17:30:32Z</time>
+        <course>278.299988</course>
+        <speed>4.555555</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730131667" lon="-37.149568333">
+        <ele>245.200000</ele>
+        <time>2008-02-03T17:30:47Z</time>
+        <course>284.399994</course>
+        <speed>5.638889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729766667" lon="-37.150231667">
+        <ele>244.300000</ele>
+        <time>2008-02-03T17:31:02Z</time>
+        <course>310.100006</course>
+        <speed>5.527778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729161667" lon="-37.150390000">
+        <ele>243.900000</ele>
+        <time>2008-02-03T17:31:17Z</time>
+        <course>0.200000</course>
+        <speed>5.638889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728458333" lon="-37.150971667">
+        <ele>244.200000</ele>
+        <time>2008-02-03T17:31:32Z</time>
+        <course>304.700012</course>
+        <speed>7.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728460000" lon="-37.151708333">
+        <ele>243.800000</ele>
+        <time>2008-02-03T17:31:47Z</time>
+        <course>266.399994</course>
+        <speed>4.944445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728581667" lon="-37.152353333">
+        <ele>242.600000</ele>
+        <time>2008-02-03T17:32:02Z</time>
+        <course>256.399994</course>
+        <speed>6.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728740000" lon="-37.152921667">
+        <ele>240.700000</ele>
+        <time>2008-02-03T17:32:17Z</time>
+        <course>257.100006</course>
+        <speed>4.194445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729016667" lon="-37.153685000">
+        <ele>238.000000</ele>
+        <time>2008-02-03T17:32:32Z</time>
+        <course>253.899994</course>
+        <speed>7.527778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729271667" lon="-37.154651667">
+        <ele>236.300000</ele>
+        <time>2008-02-03T17:32:47Z</time>
+        <course>258.000000</course>
+        <speed>6.944445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729466667" lon="-37.155521667">
+        <ele>235.700000</ele>
+        <time>2008-02-03T17:33:02Z</time>
+        <course>252.199997</course>
+        <speed>6.861111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.200000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729665000" lon="-37.156456667">
+        <ele>234.400000</ele>
+        <time>2008-02-03T17:33:17Z</time>
+        <course>263.200012</course>
+        <speed>7.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729701667" lon="-37.157528333">
+        <ele>232.000000</ele>
+        <time>2008-02-03T17:33:32Z</time>
+        <course>274.200012</course>
+        <speed>7.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729575000" lon="-37.158493333">
+        <ele>231.200000</ele>
+        <time>2008-02-03T17:33:47Z</time>
+        <course>279.000000</course>
+        <speed>6.972222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729525000" lon="-37.159260000">
+        <ele>227.300000</ele>
+        <time>2008-02-03T17:34:02Z</time>
+        <course>274.899994</course>
+        <speed>5.194445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729538333" lon="-37.160101667">
+        <ele>226.600000</ele>
+        <time>2008-02-03T17:34:17Z</time>
+        <course>297.600006</course>
+        <speed>8.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728960000" lon="-37.160953333">
+        <ele>225.700000</ele>
+        <time>2008-02-03T17:34:32Z</time>
+        <course>301.899994</course>
+        <speed>7.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728268333" lon="-37.161673333">
+        <ele>227.100000</ele>
+        <time>2008-02-03T17:34:47Z</time>
+        <course>316.299988</course>
+        <speed>8.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.727738333" lon="-37.162146667">
+        <ele>227.800000</ele>
+        <time>2008-02-03T17:35:02Z</time>
+        <course>310.000000</course>
+        <speed>4.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.727561667" lon="-37.162673333">
+        <ele>229.000000</ele>
+        <time>2008-02-03T17:35:17Z</time>
+        <course>260.600006</course>
+        <speed>5.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>1.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.727460000" lon="-37.163208333">
+        <ele>231.200000</ele>
+        <time>2008-02-03T17:35:32Z</time>
+        <course>299.600006</course>
+        <speed>4.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.726941667" lon="-37.164026667">
+        <ele>232.800000</ele>
+        <time>2008-02-03T17:35:47Z</time>
+        <course>293.200012</course>
+        <speed>9.194445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.726456667" lon="-37.165060000">
+        <ele>245.600000</ele>
+        <time>2008-02-03T17:36:02Z</time>
+        <course>284.799988</course>
+        <speed>9.444445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.726285000" lon="-37.165740000">
+        <ele>248.900000</ele>
+        <time>2008-02-03T17:36:17Z</time>
+        <course>289.600006</course>
+        <speed>5.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725918333" lon="-37.166560000">
+        <ele>248.000000</ele>
+        <time>2008-02-03T17:36:32Z</time>
+        <course>294.100006</course>
+        <speed>6.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725780000" lon="-37.167256667">
+        <ele>242.400000</ele>
+        <time>2008-02-03T17:36:47Z</time>
+        <course>289.299988</course>
+        <speed>4.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725598333" lon="-37.167928333">
+        <ele>242.400000</ele>
+        <time>2008-02-03T17:37:02Z</time>
+        <course>289.600006</course>
+        <speed>6.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725455000" lon="-37.168861667">
+        <ele>241.000000</ele>
+        <time>2008-02-03T17:37:17Z</time>
+        <course>288.399994</course>
+        <speed>7.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725015000" lon="-37.169875000">
+        <ele>241.500000</ele>
+        <time>2008-02-03T17:37:32Z</time>
+        <course>289.700012</course>
+        <speed>8.972222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724800000" lon="-37.170628333">
+        <ele>240.000000</ele>
+        <time>2008-02-03T17:37:47Z</time>
+        <course>284.600006</course>
+        <speed>6.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724835000" lon="-37.171540000">
+        <ele>238.900000</ele>
+        <time>2008-02-03T17:38:02Z</time>
+        <course>260.399994</course>
+        <speed>8.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724891667" lon="-37.172571667">
+        <ele>238.500000</ele>
+        <time>2008-02-03T17:38:17Z</time>
+        <course>280.799988</course>
+        <speed>8.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724563333" lon="-37.173491667">
+        <ele>228.000000</ele>
+        <time>2008-02-03T17:38:32Z</time>
+        <course>294.500000</course>
+        <speed>6.055555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724310000" lon="-37.174401667">
+        <ele>225.800000</ele>
+        <time>2008-02-03T17:38:47Z</time>
+        <course>289.399994</course>
+        <speed>8.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.723931667" lon="-37.175340000">
+        <ele>227.800000</ele>
+        <time>2008-02-03T17:39:02Z</time>
+        <course>287.399994</course>
+        <speed>7.694445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.723746667" lon="-37.176120000">
+        <ele>229.300000</ele>
+        <time>2008-02-03T17:39:17Z</time>
+        <course>289.100006</course>
+        <speed>3.305556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.723376667" lon="-37.176946667">
+        <ele>232.100000</ele>
+        <time>2008-02-03T17:39:32Z</time>
+        <course>288.700012</course>
+        <speed>9.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.723043333" lon="-37.178001667">
+        <ele>234.400000</ele>
+        <time>2008-02-03T17:39:47Z</time>
+        <course>288.700012</course>
+        <speed>8.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.722743333" lon="-37.178890000">
+        <ele>232.900000</ele>
+        <time>2008-02-03T17:40:02Z</time>
+        <course>299.200012</course>
+        <speed>6.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.722225000" lon="-37.179760000">
+        <ele>230.300000</ele>
+        <time>2008-02-03T17:40:17Z</time>
+        <course>302.899994</course>
+        <speed>7.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.721451667" lon="-37.180683333">
+        <ele>228.500000</ele>
+        <time>2008-02-03T17:40:32Z</time>
+        <course>305.600006</course>
+        <speed>8.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.720891667" lon="-37.181565000">
+        <ele>227.700000</ele>
+        <time>2008-02-03T17:40:47Z</time>
+        <course>297.600006</course>
+        <speed>7.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.720303333" lon="-37.182376667">
+        <ele>225.800000</ele>
+        <time>2008-02-03T17:41:02Z</time>
+        <course>305.700012</course>
+        <speed>7.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719868333" lon="-37.183156667">
+        <ele>225.400000</ele>
+        <time>2008-02-03T17:41:17Z</time>
+        <course>287.299988</course>
+        <speed>6.777778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719695000" lon="-37.183948333">
+        <ele>225.000000</ele>
+        <time>2008-02-03T17:41:32Z</time>
+        <course>268.799988</course>
+        <speed>3.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719713333" lon="-37.184835000">
+        <ele>223.600000</ele>
+        <time>2008-02-03T17:41:47Z</time>
+        <course>273.700012</course>
+        <speed>12.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719520000" lon="-37.186768333">
+        <ele>219.300000</ele>
+        <time>2008-02-03T17:42:02Z</time>
+        <course>276.000000</course>
+        <speed>15.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719350000" lon="-37.188818333">
+        <ele>217.400000</ele>
+        <time>2008-02-03T17:42:17Z</time>
+        <course>276.000000</course>
+        <speed>14.944445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719196667" lon="-37.190636667">
+        <ele>215.500000</ele>
+        <time>2008-02-03T17:42:32Z</time>
+        <course>273.000000</course>
+        <speed>10.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718985000" lon="-37.192230000">
+        <ele>215.000000</ele>
+        <time>2008-02-03T17:42:47Z</time>
+        <course>274.799988</course>
+        <speed>14.444445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718636667" lon="-37.193413333">
+        <ele>226.700000</ele>
+        <time>2008-02-03T17:43:02Z</time>
+        <course>274.500000</course>
+        <speed>7.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.000000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718593333" lon="-37.194726667">
+        <ele>225.100000</ele>
+        <time>2008-02-03T17:43:17Z</time>
+        <course>273.899994</course>
+        <speed>11.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718596667" lon="-37.196088333">
+        <ele>216.300000</ele>
+        <time>2008-02-03T17:43:32Z</time>
+        <course>274.799988</course>
+        <speed>9.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718480000" lon="-37.197555000">
+        <ele>212.600000</ele>
+        <time>2008-02-03T17:43:47Z</time>
+        <course>273.799988</course>
+        <speed>10.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718460000" lon="-37.198401667">
+        <ele>199.300000</ele>
+        <time>2008-02-03T17:44:02Z</time>
+        <course>282.600006</course>
+        <speed>5.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718518333" lon="-37.199043333">
+        <ele>213.700000</ele>
+        <time>2008-02-03T17:44:17Z</time>
+        <course>267.799988</course>
+        <speed>5.277778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718550000" lon="-37.199575000">
+        <ele>211.300000</ele>
+        <time>2008-02-03T17:44:32Z</time>
+        <course>267.500000</course>
+        <speed>0.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718538333" lon="-37.200021667">
+        <ele>209.500000</ele>
+        <time>2008-02-03T17:44:47Z</time>
+        <course>259.899994</course>
+        <speed>3.444444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718185000" lon="-37.200663333">
+        <ele>215.000000</ele>
+        <time>2008-02-03T17:45:02Z</time>
+        <course>280.200012</course>
+        <speed>3.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718305000" lon="-37.201178333">
+        <ele>214.900000</ele>
+        <time>2008-02-03T17:45:17Z</time>
+        <course>221.100006</course>
+        <speed>1.805556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718551667" lon="-37.201226667">
+        <ele>215.200000</ele>
+        <time>2008-02-03T17:45:32Z</time>
+        <course>199.600006</course>
+        <speed>0.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>11.000000</hdop>
+        <vdop>14.400000</vdop>
+        <pdop>18.200001</pdop>
+      </trkpt>
+      <trkpt lat="-6.718905000" lon="-37.201241667">
+        <ele>215.500000</ele>
+        <time>2008-02-03T17:45:47Z</time>
+        <course>145.699997</course>
+        <speed>2.972222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719081667" lon="-37.200996667">
+        <ele>215.000000</ele>
+        <time>2008-02-03T17:46:02Z</time>
+        <course>159.500000</course>
+        <speed>1.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719216667" lon="-37.200515000">
+        <ele>214.800000</ele>
+        <time>2008-02-03T17:46:17Z</time>
+        <course>129.500000</course>
+        <speed>1.694444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719348333" lon="-37.200303333">
+        <ele>214.700000</ele>
+        <time>2008-02-03T17:46:32Z</time>
+        <course>148.899994</course>
+        <speed>2.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719750000" lon="-37.200300000">
+        <ele>215.800000</ele>
+        <time>2008-02-03T17:46:47Z</time>
+        <course>166.300003</course>
+        <speed>4.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719823333" lon="-37.200058333">
+        <ele>216.300000</ele>
+        <time>2008-02-03T17:47:02Z</time>
+        <course>151.000000</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719833333" lon="-37.200058333">
+        <ele>217.000000</ele>
+        <time>2008-02-03T17:47:17Z</time>
+        <course>199.699997</course>
+        <speed>0.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719871667" lon="-37.200101667">
+        <ele>217.400000</ele>
+        <time>2008-02-03T17:47:32Z</time>
+        <course>234.899994</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719868333" lon="-37.200136667">
+        <ele>217.200000</ele>
+        <time>2008-02-03T17:47:47Z</time>
+        <course>272.799988</course>
+        <speed>0.805556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719785000" lon="-37.200155000">
+        <ele>217.400000</ele>
+        <time>2008-02-03T17:48:02Z</time>
+        <course>272.000000</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719756667" lon="-37.200140000">
+        <ele>218.100000</ele>
+        <time>2008-02-03T17:48:17Z</time>
+        <course>229.300003</course>
+        <speed>1.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>7.300000</hdop>
+        <vdop>4.100000</vdop>
+        <pdop>8.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719868333" lon="-37.200140000">
+        <ele>217.500000</ele>
+        <time>2008-02-03T17:48:32Z</time>
+        <course>188.699997</course>
+        <speed>0.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719798333" lon="-37.200106667">
+        <ele>217.400000</ele>
+        <time>2008-02-03T17:48:47Z</time>
+        <course>188.699997</course>
+        <speed>0.277778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.100000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719871667" lon="-37.200108333">
+        <ele>217.800000</ele>
+        <time>2008-02-03T17:49:07Z</time>
+        <course>188.699997</course>
+        <speed>0.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>7.500000</hdop>
+        <vdop>4.300000</vdop>
+        <pdop>8.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719661667" lon="-37.200090000">
+        <ele>218.600000</ele>
+        <time>2008-02-03T17:49:22Z</time>
+        <course>188.699997</course>
+        <speed>1.527778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719655000" lon="-37.200071667">
+        <ele>219.300000</ele>
+        <time>2008-02-03T17:49:37Z</time>
+        <course>188.600006</course>
+        <speed>1.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719671667" lon="-37.200060000">
+        <ele>220.700000</ele>
+        <time>2008-02-03T17:49:52Z</time>
+        <course>187.899994</course>
+        <speed>0.972222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719751667" lon="-37.200038333">
+        <ele>216.300000</ele>
+        <time>2008-02-03T17:50:12Z</time>
+        <course>187.899994</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719708333" lon="-37.200038333">
+        <ele>213.800000</ele>
+        <time>2008-02-03T17:50:27Z</time>
+        <course>187.899994</course>
+        <speed>0.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719673333" lon="-37.200025000">
+        <ele>215.200000</ele>
+        <time>2008-02-03T17:50:42Z</time>
+        <course>187.899994</course>
+        <speed>0.444444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>8.000000</hdop>
+        <vdop>4.800000</vdop>
+        <pdop>9.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719726667" lon="-37.200008333">
+        <ele>214.800000</ele>
+        <time>2008-02-03T17:50:57Z</time>
+        <course>183.800003</course>
+        <speed>0.500000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>4</sat>
+        <hdop>2.000000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719635000" lon="-37.200125000">
+        <ele>215.200000</ele>
+        <time>2008-02-03T17:51:12Z</time>
+        <course>271.299988</course>
+        <speed>0.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>4</sat>
+        <hdop>2.000000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719616667" lon="-37.200206667">
+        <ele>215.300000</ele>
+        <time>2008-02-03T17:51:27Z</time>
+        <course>269.899994</course>
+        <speed>0.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719260000" lon="-37.200155000">
+        <ele>215.600000</ele>
+        <time>2008-02-03T17:51:42Z</time>
+        <course>12.200000</course>
+        <speed>1.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719313333" lon="-37.199728333">
+        <ele>215.000000</ele>
+        <time>2008-02-03T17:51:57Z</time>
+        <course>104.199997</course>
+        <speed>3.638889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719440000" lon="-37.199430000">
+        <ele>214.900000</ele>
+        <time>2008-02-03T17:52:12Z</time>
+        <course>119.199997</course>
+        <speed>2.500000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719136667" lon="-37.199251667">
+        <ele>215.000000</ele>
+        <time>2008-02-03T17:52:27Z</time>
+        <course>358.500000</course>
+        <speed>4.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>4</sat>
+        <hdop>2.100000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718733333" lon="-37.199065000">
+        <ele>215.100000</ele>
+        <time>2008-02-03T17:52:47Z</time>
+        <course>8.100000</course>
+        <speed>3.500000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>4</sat>
+        <hdop>2.100000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718435000" lon="-37.199246667">
+        <ele>210.500000</ele>
+        <time>2008-02-03T17:53:02Z</time>
+        <course>268.799988</course>
+        <speed>5.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718513333" lon="-37.199721667">
+        <ele>205.800000</ele>
+        <time>2008-02-03T17:53:17Z</time>
+        <course>267.700012</course>
+        <speed>3.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718513333" lon="-37.200213333">
+        <ele>202.700000</ele>
+        <time>2008-02-03T17:53:32Z</time>
+        <course>276.399994</course>
+        <speed>4.805555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718241667" lon="-37.200780000">
+        <ele>203.700000</ele>
+        <time>2008-02-03T17:53:47Z</time>
+        <course>266.500000</course>
+        <speed>3.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.200000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718183333" lon="-37.201348333">
+        <ele>202.700000</ele>
+        <time>2008-02-03T17:54:02Z</time>
+        <course>288.600006</course>
+        <speed>3.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>2.100000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718163333" lon="-37.201843333">
+        <ele>202.700000</ele>
+        <time>2008-02-03T17:54:17Z</time>
+        <course>262.399994</course>
+        <speed>5.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>2.100000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.717808333" lon="-37.202205000">
+        <ele>208.600000</ele>
+        <time>2008-02-03T17:54:32Z</time>
+        <course>4.400000</course>
+        <speed>3.638889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.717233333" lon="-37.202065000">
+        <ele>178.400000</ele>
+        <time>2008-02-03T17:54:57Z</time>
+        <course>7.700000</course>
+        <speed>4.805555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.716416667" lon="-37.201951667">
+        <ele>191.600000</ele>
+        <time>2008-02-03T17:55:12Z</time>
+        <course>8.500000</course>
+        <speed>3.444444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.716038333" lon="-37.201820000">
+        <ele>193.500000</ele>
+        <time>2008-02-03T17:55:27Z</time>
+        <course>9.600000</course>
+        <speed>2.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.715430000" lon="-37.201741667">
+        <ele>206.400000</ele>
+        <time>2008-02-03T17:55:42Z</time>
+        <course>14.200000</course>
+        <speed>3.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.714911667" lon="-37.201451667">
+        <ele>208.000000</ele>
+        <time>2008-02-03T17:55:57Z</time>
+        <course>54.400002</course>
+        <speed>5.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.714213333" lon="-37.200731667">
+        <ele>202.900000</ele>
+        <time>2008-02-03T17:56:12Z</time>
+        <course>22.200001</course>
+        <speed>8.944445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.713103333" lon="-37.200206667">
+        <ele>204.300000</ele>
+        <time>2008-02-03T17:56:27Z</time>
+        <course>31.299999</course>
+        <speed>7.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.711898333" lon="-37.199785000">
+        <ele>212.400000</ele>
+        <time>2008-02-03T17:56:47Z</time>
+        <course>11.000000</course>
+        <speed>10.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.710700000" lon="-37.199400000">
+        <ele>211.200000</ele>
+        <time>2008-02-03T17:57:02Z</time>
+        <course>25.600000</course>
+        <speed>8.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.709651667" lon="-37.199213333">
+        <ele>208.400000</ele>
+        <time>2008-02-03T17:57:17Z</time>
+        <course>357.700012</course>
+        <speed>7.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.708716667" lon="-37.199211667">
+        <ele>204.000000</ele>
+        <time>2008-02-03T17:57:32Z</time>
+        <course>0.900000</course>
+        <speed>6.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.707751667" lon="-37.199321667">
+        <ele>202.500000</ele>
+        <time>2008-02-03T17:57:47Z</time>
+        <course>357.500000</course>
+        <speed>7.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>10.900000</hdop>
+        <vdop>8.400000</vdop>
+        <pdop>13.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.707085000" lon="-37.199285000">
+        <ele>202.500000</ele>
+        <time>2008-02-03T17:58:02Z</time>
+        <course>347.500000</course>
+        <speed>3.277778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.706675000" lon="-37.199301667">
+        <ele>203.000000</ele>
+        <time>2008-02-03T17:58:17Z</time>
+        <course>350.299988</course>
+        <speed>2.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.706251667" lon="-37.199435000">
+        <ele>202.000000</ele>
+        <time>2008-02-03T17:58:32Z</time>
+        <course>342.200012</course>
+        <speed>4.638889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705601667" lon="-37.199280000">
+        <ele>207.000000</ele>
+        <time>2008-02-03T17:58:47Z</time>
+        <course>53.700001</course>
+        <speed>3.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705605000" lon="-37.198946667">
+        <ele>206.200000</ele>
+        <time>2008-02-03T17:59:02Z</time>
+        <course>73.000000</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705608333" lon="-37.198953333">
+        <ele>206.700000</ele>
+        <time>2008-02-03T17:59:17Z</time>
+        <course>64.400002</course>
+        <speed>0.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705635000" lon="-37.198936667">
+        <ele>206.900000</ele>
+        <time>2008-02-03T17:59:32Z</time>
+        <course>64.400002</course>
+        <speed>0.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705653333" lon="-37.198938333">
+        <ele>206.200000</ele>
+        <time>2008-02-03T17:59:47Z</time>
+        <course>64.400002</course>
+        <speed>0.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705661667" lon="-37.198941667">
+        <ele>206.000000</ele>
+        <time>2008-02-03T18:00:07Z</time>
+        <course>64.400002</course>
+        <speed>0.555556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705723333" lon="-37.198933333">
+        <ele>204.400000</ele>
+        <time>2008-02-03T18:00:22Z</time>
+        <course>64.400002</course>
+        <speed>0.694444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705731667" lon="-37.198928333">
+        <ele>203.800000</ele>
+        <time>2008-02-03T18:00:37Z</time>
+        <course>64.400002</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705740000" lon="-37.198876667">
+        <ele>203.600000</ele>
+        <time>2008-02-03T18:00:52Z</time>
+        <course>83.099998</course>
+        <speed>0.777778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705743333" lon="-37.198890000">
+        <ele>203.900000</ele>
+        <time>2008-02-03T18:01:07Z</time>
+        <course>83.099998</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705733333" lon="-37.198906667">
+        <ele>203.800000</ele>
+        <time>2008-02-03T18:01:22Z</time>
+        <course>83.099998</course>
+        <speed>0.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705771667" lon="-37.198926667">
+        <ele>203.400000</ele>
+        <time>2008-02-03T18:01:37Z</time>
+        <course>106.599998</course>
+        <speed>0.305556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705771667" lon="-37.198900000">
+        <ele>203.400000</ele>
+        <time>2008-02-03T18:01:52Z</time>
+        <course>160.500000</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705758333" lon="-37.198933333">
+        <ele>204.000000</ele>
+        <time>2008-02-03T18:02:07Z</time>
+        <course>189.100006</course>
+        <speed>0.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705768333" lon="-37.198933333">
+        <ele>204.600000</ele>
+        <time>2008-02-03T18:02:22Z</time>
+        <course>172.300003</course>
+        <speed>0.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705750000" lon="-37.198935000">
+        <ele>204.900000</ele>
+        <time>2008-02-03T18:02:37Z</time>
+        <course>167.899994</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705750000" lon="-37.198928333">
+        <ele>205.300000</ele>
+        <time>2008-02-03T18:02:52Z</time>
+        <course>167.899994</course>
+        <speed>0.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705746667" lon="-37.198925000">
+        <ele>205.700000</ele>
+        <time>2008-02-03T18:03:07Z</time>
+        <course>167.899994</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705760000" lon="-37.198921667">
+        <ele>206.400000</ele>
+        <time>2008-02-03T18:03:22Z</time>
+        <course>149.000000</course>
+        <speed>0.305556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705761667" lon="-37.198920000">
+        <ele>206.400000</ele>
+        <time>2008-02-03T18:03:37Z</time>
+        <course>173.800003</course>
+        <speed>0.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705773333" lon="-37.198946667">
+        <ele>206.200000</ele>
+        <time>2008-02-03T18:03:52Z</time>
+        <course>198.399994</course>
+        <speed>0.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705781667" lon="-37.198918333">
+        <ele>205.400000</ele>
+        <time>2008-02-03T18:04:07Z</time>
+        <course>166.699997</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705790000" lon="-37.198921667">
+        <ele>205.200000</ele>
+        <time>2008-02-03T18:04:22Z</time>
+        <course>190.399994</course>
+        <speed>0.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705776667" lon="-37.198913333">
+        <ele>205.400000</ele>
+        <time>2008-02-03T18:04:37Z</time>
+        <course>190.399994</course>
+        <speed>0.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705793333" lon="-37.198918333">
+        <ele>205.500000</ele>
+        <time>2008-02-03T18:04:52Z</time>
+        <course>190.399994</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705805000" lon="-37.198916667">
+        <ele>205.900000</ele>
+        <time>2008-02-03T18:05:07Z</time>
+        <course>165.100006</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705825000" lon="-37.198916667">
+        <ele>206.400000</ele>
+        <time>2008-02-03T18:05:22Z</time>
+        <course>176.800003</course>
+        <speed>0.305556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705828333" lon="-37.198905000">
+        <ele>207.000000</ele>
+        <time>2008-02-03T18:05:37Z</time>
+        <course>153.500000</course>
+        <speed>0.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705826667" lon="-37.198911667">
+        <ele>207.400000</ele>
+        <time>2008-02-03T18:05:52Z</time>
+        <course>153.500000</course>
+        <speed>0.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705818333" lon="-37.198921667">
+        <ele>207.900000</ele>
+        <time>2008-02-03T18:06:07Z</time>
+        <course>167.600006</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705776667" lon="-37.198940000">
+        <ele>208.500000</ele>
+        <time>2008-02-03T18:06:22Z</time>
+        <course>167.600006</course>
+        <speed>0.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705775000" lon="-37.198956667">
+        <ele>208.900000</ele>
+        <time>2008-02-03T18:06:37Z</time>
+        <course>167.600006</course>
+        <speed>1.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705826667" lon="-37.198993333">
+        <ele>207.900000</ele>
+        <time>2008-02-03T18:06:52Z</time>
+        <course>167.600006</course>
+        <speed>0.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705825000" lon="-37.198925000">
+        <ele>206.900000</ele>
+        <time>2008-02-03T18:07:07Z</time>
+        <course>167.600006</course>
+        <speed>0.694444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>3.200000</hdop>
+        <vdop>4.500000</vdop>
+        <pdop>5.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705785000" lon="-37.198911667">
+        <ele>206.500000</ele>
+        <time>2008-02-03T18:07:22Z</time>
+        <course>160.300003</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705751667" lon="-37.198960000">
+        <ele>206.000000</ele>
+        <time>2008-02-03T18:07:37Z</time>
+        <course>279.200012</course>
+        <speed>0.777778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705760000" lon="-37.198980000">
+        <ele>205.200000</ele>
+        <time>2008-02-03T18:07:52Z</time>
+        <course>279.200012</course>
+        <speed>0.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705868333" lon="-37.199086667">
+        <ele>205.000000</ele>
+        <time>2008-02-03T18:08:07Z</time>
+        <course>236.699997</course>
+        <speed>1.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705835000" lon="-37.199368333">
+        <ele>204.300000</ele>
+        <time>2008-02-03T18:08:22Z</time>
+        <course>338.899994</course>
+        <speed>4.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.704896667" lon="-37.199408333">
+        <ele>203.500000</ele>
+        <time>2008-02-03T18:08:37Z</time>
+        <course>357.200012</course>
+        <speed>7.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.900000</hdop>
+        <vdop>3.000000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.703983333" lon="-37.199903333">
+        <ele>196.700000</ele>
+        <time>2008-02-03T18:08:52Z</time>
+        <course>332.299988</course>
+        <speed>6.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.703160000" lon="-37.200481667">
+        <ele>200.200000</ele>
+        <time>2008-02-03T18:09:07Z</time>
+        <course>325.000000</course>
+        <speed>6.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.702075000" lon="-37.201163333">
+        <ele>196.700000</ele>
+        <time>2008-02-03T18:09:22Z</time>
+        <course>320.700012</course>
+        <speed>10.833333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.701110000" lon="-37.201676667">
+        <ele>199.100000</ele>
+        <time>2008-02-03T18:09:37Z</time>
+        <course>327.100006</course>
+        <speed>6.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.700125000" lon="-37.202203333">
+        <ele>199.900000</ele>
+        <time>2008-02-03T18:09:52Z</time>
+        <course>333.299988</course>
+        <speed>9.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.699053333" lon="-37.202438333">
+        <ele>201.600000</ele>
+        <time>2008-02-03T18:10:07Z</time>
+        <course>356.500000</course>
+        <speed>5.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.698263333" lon="-37.202400000">
+        <ele>202.200000</ele>
+        <time>2008-02-03T18:10:22Z</time>
+        <course>8.000000</course>
+        <speed>3.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.697760000" lon="-37.202370000">
+        <ele>201.700000</ele>
+        <time>2008-02-03T18:10:37Z</time>
+        <course>5.200000</course>
+        <speed>4.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.697153333" lon="-37.202328333">
+        <ele>201.200000</ele>
+        <time>2008-02-03T18:10:52Z</time>
+        <course>17.299999</course>
+        <speed>5.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.696355000" lon="-37.202333333">
+        <ele>202.600000</ele>
+        <time>2008-02-03T18:11:07Z</time>
+        <course>346.600006</course>
+        <speed>4.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.695726667" lon="-37.202568333">
+        <ele>202.300000</ele>
+        <time>2008-02-03T18:11:22Z</time>
+        <course>337.200012</course>
+        <speed>4.972222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.695081667" lon="-37.202856667">
+        <ele>201.300000</ele>
+        <time>2008-02-03T18:11:37Z</time>
+        <course>332.700012</course>
+        <speed>5.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.694385000" lon="-37.203228333">
+        <ele>202.200000</ele>
+        <time>2008-02-03T18:11:52Z</time>
+        <course>324.399994</course>
+        <speed>4.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.694001667" lon="-37.203538333">
+        <ele>203.100000</ele>
+        <time>2008-02-03T18:12:07Z</time>
+        <course>317.700012</course>
+        <speed>4.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.693425000" lon="-37.203773333">
+        <ele>203.600000</ele>
+        <time>2008-02-03T18:12:22Z</time>
+        <course>345.100006</course>
+        <speed>4.194445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.692761667" lon="-37.203960000">
+        <ele>203.500000</ele>
+        <time>2008-02-03T18:12:37Z</time>
+        <course>347.100006</course>
+        <speed>4.944445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.692146667" lon="-37.204215000">
+        <ele>204.800000</ele>
+        <time>2008-02-03T18:12:52Z</time>
+        <course>322.500000</course>
+        <speed>5.638889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.691821667" lon="-37.204646667">
+        <ele>203.300000</ele>
+        <time>2008-02-03T18:13:07Z</time>
+        <course>295.200012</course>
+        <speed>4.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.691416667" lon="-37.205160000">
+        <ele>203.500000</ele>
+        <time>2008-02-03T18:13:22Z</time>
+        <course>327.000000</course>
+        <speed>5.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.690573333" lon="-37.205375000">
+        <ele>203.800000</ele>
+        <time>2008-02-03T18:13:37Z</time>
+        <course>341.399994</course>
+        <speed>6.638889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.689858333" lon="-37.205601667">
+        <ele>204.300000</ele>
+        <time>2008-02-03T18:13:52Z</time>
+        <course>323.700012</course>
+        <speed>5.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.689320000" lon="-37.206031667">
+        <ele>204.600000</ele>
+        <time>2008-02-03T18:14:07Z</time>
+        <course>326.399994</course>
+        <speed>5.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.688866667" lon="-37.206445000">
+        <ele>204.900000</ele>
+        <time>2008-02-03T18:14:22Z</time>
+        <course>315.500000</course>
+        <speed>3.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.688095000" lon="-37.206876667">
+        <ele>204.200000</ele>
+        <time>2008-02-03T18:14:37Z</time>
+        <course>342.200012</course>
+        <speed>7.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.687266667" lon="-37.207503333">
+        <ele>205.300000</ele>
+        <time>2008-02-03T18:14:52Z</time>
+        <course>314.600006</course>
+        <speed>9.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.686285000" lon="-37.207615000">
+        <ele>204.300000</ele>
+        <time>2008-02-03T18:15:07Z</time>
+        <course>3.000000</course>
+        <speed>8.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.685328333" lon="-37.207570000">
+        <ele>204.700000</ele>
+        <time>2008-02-03T18:15:22Z</time>
+        <course>349.899994</course>
+        <speed>7.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.684405000" lon="-37.207750000">
+        <ele>204.500000</ele>
+        <time>2008-02-03T18:15:37Z</time>
+        <course>347.299988</course>
+        <speed>8.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683343333" lon="-37.207841667">
+        <ele>204.700000</ele>
+        <time>2008-02-03T18:15:52Z</time>
+        <course>321.500000</course>
+        <speed>5.500000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682788333" lon="-37.207990000">
+        <ele>207.900000</ele>
+        <time>2008-02-03T18:16:07Z</time>
+        <course>346.000000</course>
+        <speed>3.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682651667" lon="-37.208021667">
+        <ele>199.500000</ele>
+        <time>2008-02-03T18:16:22Z</time>
+        <course>350.500000</course>
+        <speed>0.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682643333" lon="-37.207976667">
+        <ele>199.500000</ele>
+        <time>2008-02-03T18:16:37Z</time>
+        <course>24.000000</course>
+        <speed>0.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682706667" lon="-37.208026667">
+        <ele>198.300000</ele>
+        <time>2008-02-03T18:16:52Z</time>
+        <course>57.700001</course>
+        <speed>0.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682720000" lon="-37.208036667">
+        <ele>198.500000</ele>
+        <time>2008-02-03T18:17:07Z</time>
+        <course>57.700001</course>
+        <speed>0.527778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682728333" lon="-37.208021667">
+        <ele>198.900000</ele>
+        <time>2008-02-03T18:17:22Z</time>
+        <course>113.599998</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682710000" lon="-37.208020000">
+        <ele>199.500000</ele>
+        <time>2008-02-03T18:17:37Z</time>
+        <course>113.599998</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682713333" lon="-37.208006667">
+        <ele>200.000000</ele>
+        <time>2008-02-03T18:17:52Z</time>
+        <course>113.599998</course>
+        <speed>0.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682703333" lon="-37.208026667">
+        <ele>200.800000</ele>
+        <time>2008-02-03T18:18:07Z</time>
+        <course>201.500000</course>
+        <speed>0.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682718333" lon="-37.208021667">
+        <ele>201.600000</ele>
+        <time>2008-02-03T18:18:22Z</time>
+        <course>201.500000</course>
+        <speed>0.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682753333" lon="-37.208016667">
+        <ele>201.800000</ele>
+        <time>2008-02-03T18:18:37Z</time>
+        <course>182.800003</course>
+        <speed>0.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682695000" lon="-37.208011667">
+        <ele>202.400000</ele>
+        <time>2008-02-03T18:18:52Z</time>
+        <course>180.500000</course>
+        <speed>0.527778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682700000" lon="-37.208013333">
+        <ele>202.500000</ele>
+        <time>2008-02-03T18:19:07Z</time>
+        <course>180.500000</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682736667" lon="-37.208001667">
+        <ele>202.600000</ele>
+        <time>2008-02-03T18:19:22Z</time>
+        <course>176.300003</course>
+        <speed>0.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682751667" lon="-37.208020000">
+        <ele>202.800000</ele>
+        <time>2008-02-03T18:19:37Z</time>
+        <course>176.300003</course>
+        <speed>0.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682783333" lon="-37.208043333">
+        <ele>202.700000</ele>
+        <time>2008-02-03T18:19:52Z</time>
+        <course>203.800003</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682661667" lon="-37.208030000">
+        <ele>201.900000</ele>
+        <time>2008-02-03T18:20:07Z</time>
+        <course>326.200012</course>
+        <speed>0.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682675000" lon="-37.208030000">
+        <ele>201.600000</ele>
+        <time>2008-02-03T18:20:22Z</time>
+        <course>326.200012</course>
+        <speed>0.944444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682661667" lon="-37.208028333">
+        <ele>201.900000</ele>
+        <time>2008-02-03T18:20:37Z</time>
+        <course>326.200012</course>
+        <speed>0.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682668333" lon="-37.208023333">
+        <ele>202.100000</ele>
+        <time>2008-02-03T18:20:52Z</time>
+        <course>326.200012</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682663333" lon="-37.208018333">
+        <ele>202.700000</ele>
+        <time>2008-02-03T18:21:07Z</time>
+        <course>326.200012</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682653333" lon="-37.208018333">
+        <ele>202.700000</ele>
+        <time>2008-02-03T18:21:22Z</time>
+        <course>326.200012</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682705000" lon="-37.208023333">
+        <ele>202.500000</ele>
+        <time>2008-02-03T18:21:37Z</time>
+        <course>353.399994</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682721667" lon="-37.208018333">
+        <ele>202.500000</ele>
+        <time>2008-02-03T18:21:52Z</time>
+        <course>65.900002</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682705000" lon="-37.208020000">
+        <ele>202.700000</ele>
+        <time>2008-02-03T18:22:07Z</time>
+        <course>65.900002</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682706667" lon="-37.208010000">
+        <ele>202.900000</ele>
+        <time>2008-02-03T18:22:22Z</time>
+        <course>17.900000</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682705000" lon="-37.208013333">
+        <ele>202.700000</ele>
+        <time>2008-02-03T18:22:37Z</time>
+        <course>17.900000</course>
+        <speed>0.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682683333" lon="-37.208016667">
+        <ele>202.500000</ele>
+        <time>2008-02-03T18:22:52Z</time>
+        <course>358.000000</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682673333" lon="-37.207981667">
+        <ele>202.700000</ele>
+        <time>2008-02-03T18:23:07Z</time>
+        <course>39.000000</course>
+        <speed>0.305556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682676667" lon="-37.207985000">
+        <ele>202.600000</ele>
+        <time>2008-02-03T18:23:22Z</time>
+        <course>29.299999</course>
+        <speed>0.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682720000" lon="-37.208000000">
+        <ele>202.200000</ele>
+        <time>2008-02-03T18:23:37Z</time>
+        <course>104.800003</course>
+        <speed>0.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682671667" lon="-37.208016667">
+        <ele>201.600000</ele>
+        <time>2008-02-03T18:23:52Z</time>
+        <course>352.000000</course>
+        <speed>0.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682580000" lon="-37.208008333">
+        <ele>201.800000</ele>
+        <time>2008-02-03T18:24:07Z</time>
+        <course>357.100006</course>
+        <speed>0.861111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682490000" lon="-37.208021667">
+        <ele>201.900000</ele>
+        <time>2008-02-03T18:24:22Z</time>
+        <course>14.300000</course>
+        <speed>1.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682375000" lon="-37.208080000">
+        <ele>199.900000</ele>
+        <time>2008-02-03T18:24:42Z</time>
+        <course>342.700012</course>
+        <speed>0.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682313333" lon="-37.208081667">
+        <ele>175.100000</ele>
+        <time>2008-02-03T18:24:57Z</time>
+        <course>233.100006</course>
+        <speed>1.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>2.700000</hdop>
+        <vdop>3.500000</vdop>
+        <pdop>4.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682221667" lon="-37.208141667">
+        <ele>185.400000</ele>
+        <time>2008-02-03T18:25:12Z</time>
+        <course>275.000000</course>
+        <speed>0.444444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682238333" lon="-37.208255000">
+        <ele>188.600000</ele>
+        <time>2008-02-03T18:25:27Z</time>
+        <course>252.600006</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>2.700000</hdop>
+        <vdop>3.500000</vdop>
+        <pdop>4.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682285000" lon="-37.208188333">
+        <ele>190.200000</ele>
+        <time>2008-02-03T18:25:42Z</time>
+        <course>181.800003</course>
+        <speed>0.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682223333" lon="-37.208158333">
+        <ele>188.900000</ele>
+        <time>2008-02-03T18:25:57Z</time>
+        <course>181.800003</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>2.700000</hdop>
+        <vdop>3.400000</vdop>
+        <pdop>4.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682213333" lon="-37.208133333">
+        <ele>186.900000</ele>
+        <time>2008-02-03T18:26:12Z</time>
+        <course>181.800003</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682185000" lon="-37.208121667">
+        <ele>187.900000</ele>
+        <time>2008-02-03T18:26:27Z</time>
+        <course>174.300003</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682155000" lon="-37.208098333">
+        <ele>189.100000</ele>
+        <time>2008-02-03T18:26:42Z</time>
+        <course>174.300003</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682175000" lon="-37.208080000">
+        <ele>190.000000</ele>
+        <time>2008-02-03T18:26:57Z</time>
+        <course>171.600006</course>
+        <speed>0.444444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682246667" lon="-37.208065000">
+        <ele>190.700000</ele>
+        <time>2008-02-03T18:27:12Z</time>
+        <course>169.899994</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682183333" lon="-37.208045000">
+        <ele>191.200000</ele>
+        <time>2008-02-03T18:27:27Z</time>
+        <course>157.800003</course>
+        <speed>0.500000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682158333" lon="-37.208058333">
+        <ele>191.100000</ele>
+        <time>2008-02-03T18:27:42Z</time>
+        <course>122.500000</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682088333" lon="-37.208050000">
+        <ele>191.800000</ele>
+        <time>2008-02-03T18:27:57Z</time>
+        <course>41.900002</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682056667" lon="-37.208055000">
+        <ele>193.000000</ele>
+        <time>2008-02-03T18:28:12Z</time>
+        <course>12.600000</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682106667" lon="-37.208051667">
+        <ele>194.000000</ele>
+        <time>2008-02-03T18:28:27Z</time>
+        <course>99.199997</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682070000" lon="-37.208068333">
+        <ele>194.900000</ele>
+        <time>2008-02-03T18:28:42Z</time>
+        <course>99.199997</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682068333" lon="-37.208060000">
+        <ele>196.000000</ele>
+        <time>2008-02-03T18:28:57Z</time>
+        <course>146.199997</course>
+        <speed>0.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.681998333" lon="-37.208041667">
+        <ele>196.500000</ele>
+        <time>2008-02-03T18:29:17Z</time>
+        <course>42.599998</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682066667" lon="-37.208041667">
+        <ele>196.500000</ele>
+        <time>2008-02-03T18:29:32Z</time>
+        <course>42.599998</course>
+        <speed>0.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682123333" lon="-37.208028333">
+        <ele>196.100000</ele>
+        <time>2008-02-03T18:29:47Z</time>
+        <course>89.199997</course>
+        <speed>0.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682098333" lon="-37.208003333">
+        <ele>196.400000</ele>
+        <time>2008-02-03T18:30:02Z</time>
+        <course>21.700001</course>
+        <speed>0.305556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682201667" lon="-37.207996667">
+        <ele>196.000000</ele>
+        <time>2008-02-03T18:30:17Z</time>
+        <course>133.399994</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682205000" lon="-37.208028333">
+        <ele>196.100000</ele>
+        <time>2008-02-03T18:30:32Z</time>
+        <course>178.399994</course>
+        <speed>0.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682211667" lon="-37.208056667">
+        <ele>196.400000</ele>
+        <time>2008-02-03T18:30:47Z</time>
+        <course>178.399994</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682206667" lon="-37.208031667">
+        <ele>197.100000</ele>
+        <time>2008-02-03T18:31:02Z</time>
+        <course>99.800003</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682410000" lon="-37.208105000">
+        <ele>193.600000</ele>
+        <time>2008-02-03T18:31:22Z</time>
+        <course>184.300003</course>
+        <speed>1.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682378333" lon="-37.208093333">
+        <ele>194.500000</ele>
+        <time>2008-02-03T18:31:37Z</time>
+        <course>167.300003</course>
+        <speed>0.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682586667" lon="-37.208083333">
+        <ele>193.900000</ele>
+        <time>2008-02-03T18:31:52Z</time>
+        <course>177.800003</course>
+        <speed>1.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682706667" lon="-37.208046667">
+        <ele>194.400000</ele>
+        <time>2008-02-03T18:32:07Z</time>
+        <course>182.000000</course>
+        <speed>1.277778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682720000" lon="-37.208018333">
+        <ele>183.400000</ele>
+        <time>2008-02-03T18:32:22Z</time>
+        <course>167.600006</course>
+        <speed>0.861111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682723333" lon="-37.208010000">
+        <ele>186.300000</ele>
+        <time>2008-02-03T18:32:37Z</time>
+        <course>173.800003</course>
+        <speed>1.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682740000" lon="-37.207976667">
+        <ele>188.700000</ele>
+        <time>2008-02-03T18:32:52Z</time>
+        <course>173.800003</course>
+        <speed>0.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682745000" lon="-37.207965000">
+        <ele>188.500000</ele>
+        <time>2008-02-03T18:33:07Z</time>
+        <course>173.800003</course>
+        <speed>0.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682720000" lon="-37.207968333">
+        <ele>188.200000</ele>
+        <time>2008-02-03T18:33:22Z</time>
+        <course>124.000000</course>
+        <speed>0.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.682845000" lon="-37.207995000">
+        <ele>189.600000</ele>
+        <time>2008-02-03T18:33:37Z</time>
+        <course>174.399994</course>
+        <speed>0.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683660000" lon="-37.207623333">
+        <ele>180.600000</ele>
+        <time>2008-02-03T18:34:42Z</time>
+        <course>308.000000</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683750000" lon="-37.207578333">
+        <ele>175.900000</ele>
+        <time>2008-02-03T18:34:57Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683710000" lon="-37.207611667">
+        <ele>190.000000</ele>
+        <time>2008-02-03T18:35:12Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683701667" lon="-37.207640000">
+        <ele>192.000000</ele>
+        <time>2008-02-03T18:35:27Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683691667" lon="-37.207648333">
+        <ele>193.800000</ele>
+        <time>2008-02-03T18:35:42Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683690000" lon="-37.207658333">
+        <ele>193.700000</ele>
+        <time>2008-02-03T18:35:57Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683690000" lon="-37.207658333">
+        <ele>192.500000</ele>
+        <time>2008-02-03T18:36:12Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.700000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683688333" lon="-37.207668333">
+        <ele>192.300000</ele>
+        <time>2008-02-03T18:36:27Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683691667" lon="-37.207671667">
+        <ele>190.900000</ele>
+        <time>2008-02-03T18:36:42Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683686667" lon="-37.207673333">
+        <ele>192.000000</ele>
+        <time>2008-02-03T18:36:57Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>4.700000</hdop>
+        <vdop>6.200000</vdop>
+        <pdop>7.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.683681667" lon="-37.207676667">
+        <ele>192.200000</ele>
+        <time>2008-02-03T18:37:12Z</time>
+        <course>308.000000</course>
+        <speed>0.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.684163333" lon="-37.207706667">
+        <ele>193.500000</ele>
+        <time>2008-02-03T18:37:27Z</time>
+        <course>174.699997</course>
+        <speed>5.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.685108333" lon="-37.207551667">
+        <ele>191.300000</ele>
+        <time>2008-02-03T18:37:42Z</time>
+        <course>170.199997</course>
+        <speed>6.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.685936667" lon="-37.207475000">
+        <ele>189.900000</ele>
+        <time>2008-02-03T18:37:57Z</time>
+        <course>185.500000</course>
+        <speed>5.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>4.700000</hdop>
+        <vdop>6.100000</vdop>
+        <pdop>7.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.686986667" lon="-37.207643333">
+        <ele>190.600000</ele>
+        <time>2008-02-03T18:38:12Z</time>
+        <course>194.100006</course>
+        <speed>7.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>3.800000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.687475000" lon="-37.207446667">
+        <ele>207.000000</ele>
+        <time>2008-02-03T18:38:27Z</time>
+        <course>139.300003</course>
+        <speed>5.000000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>3.800000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.688123333" lon="-37.206978333">
+        <ele>197.400000</ele>
+        <time>2008-02-03T18:38:42Z</time>
+        <course>161.899994</course>
+        <speed>5.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.688846667" lon="-37.206480000">
+        <ele>191.700000</ele>
+        <time>2008-02-03T18:38:57Z</time>
+        <course>134.000000</course>
+        <speed>5.694445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.689353333" lon="-37.206051667">
+        <ele>193.700000</ele>
+        <time>2008-02-03T18:39:12Z</time>
+        <course>143.300003</course>
+        <speed>5.694445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.689833333" lon="-37.205681667">
+        <ele>220.200000</ele>
+        <time>2008-02-03T18:39:27Z</time>
+        <course>139.800003</course>
+        <speed>5.111111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.690770000" lon="-37.205430000">
+        <ele>208.300000</ele>
+        <time>2008-02-03T18:39:42Z</time>
+        <course>161.100006</course>
+        <speed>7.805555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.691516667" lon="-37.205141667">
+        <ele>203.100000</ele>
+        <time>2008-02-03T18:39:57Z</time>
+        <course>147.500000</course>
+        <speed>5.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.691861667" lon="-37.204565000">
+        <ele>205.900000</ele>
+        <time>2008-02-03T18:40:12Z</time>
+        <course>118.900002</course>
+        <speed>5.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>3.800000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.692556667" lon="-37.204028333">
+        <ele>190.800000</ele>
+        <time>2008-02-03T18:40:27Z</time>
+        <course>150.300003</course>
+        <speed>7.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.693841667" lon="-37.203718333">
+        <ele>179.300000</ele>
+        <time>2008-02-03T18:40:52Z</time>
+        <course>158.300003</course>
+        <speed>5.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.694581667" lon="-37.203226667">
+        <ele>185.200000</ele>
+        <time>2008-02-03T18:41:07Z</time>
+        <course>146.899994</course>
+        <speed>6.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.695396667" lon="-37.202795000">
+        <ele>192.100000</ele>
+        <time>2008-02-03T18:41:22Z</time>
+        <course>156.199997</course>
+        <speed>6.805555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.696256667" lon="-37.202490000">
+        <ele>193.300000</ele>
+        <time>2008-02-03T18:41:37Z</time>
+        <course>161.199997</course>
+        <speed>6.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.697043333" lon="-37.202300000">
+        <ele>194.300000</ele>
+        <time>2008-02-03T18:41:52Z</time>
+        <course>186.600006</course>
+        <speed>4.805555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>2.900000</hdop>
+        <vdop>1.000000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.697685000" lon="-37.202365000">
+        <ele>196.000000</ele>
+        <time>2008-02-03T18:42:07Z</time>
+        <course>180.199997</course>
+        <speed>6.027778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>3.000000</hdop>
+        <vdop>1.000000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.698795000" lon="-37.202435000">
+        <ele>196.800000</ele>
+        <time>2008-02-03T18:42:27Z</time>
+        <course>183.800003</course>
+        <speed>4.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.699563333" lon="-37.202403333">
+        <ele>196.800000</ele>
+        <time>2008-02-03T18:42:42Z</time>
+        <course>169.500000</course>
+        <speed>6.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.700295000" lon="-37.202165000">
+        <ele>196.000000</ele>
+        <time>2008-02-03T18:42:57Z</time>
+        <course>152.800003</course>
+        <speed>5.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.700981667" lon="-37.201823333">
+        <ele>192.400000</ele>
+        <time>2008-02-03T18:43:12Z</time>
+        <course>156.500000</course>
+        <speed>4.944445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.701523333" lon="-37.201508333">
+        <ele>178.600000</ele>
+        <time>2008-02-03T18:43:27Z</time>
+        <course>146.199997</course>
+        <speed>6.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.702173333" lon="-37.201140000">
+        <ele>191.300000</ele>
+        <time>2008-02-03T18:43:42Z</time>
+        <course>140.300003</course>
+        <speed>6.694445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.703266667" lon="-37.200486667">
+        <ele>176.300000</ele>
+        <time>2008-02-03T18:44:02Z</time>
+        <course>145.699997</course>
+        <speed>5.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.703755000" lon="-37.200103333">
+        <ele>200.900000</ele>
+        <time>2008-02-03T18:44:17Z</time>
+        <course>138.800003</course>
+        <speed>5.722222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.705950000" lon="-37.199351667">
+        <ele>200.700000</ele>
+        <time>2008-02-03T18:44:52Z</time>
+        <course>178.899994</course>
+        <speed>7.972222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.707106667" lon="-37.199250000">
+        <ele>194.100000</ele>
+        <time>2008-02-03T18:45:12Z</time>
+        <course>181.300003</course>
+        <speed>2.861111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.707921667" lon="-37.199193333">
+        <ele>216.500000</ele>
+        <time>2008-02-03T18:45:32Z</time>
+        <course>182.199997</course>
+        <speed>7.444445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>5.000000</hdop>
+        <vdop>5.300000</vdop>
+        <pdop>7.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.709258333" lon="-37.199156667">
+        <ele>185.400000</ele>
+        <time>2008-02-03T18:45:47Z</time>
+        <course>168.000000</course>
+        <speed>10.833333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>5.000000</hdop>
+        <vdop>5.200000</vdop>
+        <pdop>7.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.710845000" lon="-37.199408333">
+        <ele>185.400000</ele>
+        <time>2008-02-03T18:46:02Z</time>
+        <course>203.000000</course>
+        <speed>12.527778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.712858333" lon="-37.200078333">
+        <ele>206.500000</ele>
+        <time>2008-02-03T18:46:27Z</time>
+        <course>208.699997</course>
+        <speed>6.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.713456667" lon="-37.200478333">
+        <ele>206.700000</ele>
+        <time>2008-02-03T18:46:42Z</time>
+        <course>199.300003</course>
+        <speed>4.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>3.200000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.714141667" lon="-37.200768333">
+        <ele>209.100000</ele>
+        <time>2008-02-03T18:46:57Z</time>
+        <course>198.399994</course>
+        <speed>6.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.714830000" lon="-37.201308333">
+        <ele>214.300000</ele>
+        <time>2008-02-03T18:47:12Z</time>
+        <course>238.199997</course>
+        <speed>6.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>5.100000</hdop>
+        <vdop>5.100000</vdop>
+        <pdop>7.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.715331667" lon="-37.201781667">
+        <ele>200.100000</ele>
+        <time>2008-02-03T18:47:27Z</time>
+        <course>197.300003</course>
+        <speed>4.194445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.715956667" lon="-37.201928333">
+        <ele>197.400000</ele>
+        <time>2008-02-03T18:47:42Z</time>
+        <course>190.500000</course>
+        <speed>4.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.716516667" lon="-37.201991667">
+        <ele>203.200000</ele>
+        <time>2008-02-03T18:47:57Z</time>
+        <course>189.199997</course>
+        <speed>3.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>5.200000</hdop>
+        <vdop>5.000000</vdop>
+        <pdop>7.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.717765000" lon="-37.202120000">
+        <ele>206.000000</ele>
+        <time>2008-02-03T18:48:27Z</time>
+        <course>189.600006</course>
+        <speed>4.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718120000" lon="-37.202171667">
+        <ele>206.000000</ele>
+        <time>2008-02-03T18:48:42Z</time>
+        <course>122.300003</course>
+        <speed>4.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718226667" lon="-37.201540000">
+        <ele>206.100000</ele>
+        <time>2008-02-03T18:48:57Z</time>
+        <course>104.199997</course>
+        <speed>4.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>3.400000</hdop>
+        <vdop>1.000000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718451667" lon="-37.201205000">
+        <ele>206.200000</ele>
+        <time>2008-02-03T18:49:12Z</time>
+        <course>189.100006</course>
+        <speed>3.500000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.600000</vdop>
+        <pdop>4.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718875000" lon="-37.201166667">
+        <ele>204.700000</ele>
+        <time>2008-02-03T18:49:27Z</time>
+        <course>176.000000</course>
+        <speed>3.805556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>5.300000</hdop>
+        <vdop>4.900000</vdop>
+        <pdop>7.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719445000" lon="-37.200713333">
+        <ele>231.200000</ele>
+        <time>2008-02-03T18:50:07Z</time>
+        <course>109.199997</course>
+        <speed>3.444444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.500000</vdop>
+        <pdop>4.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719646667" lon="-37.200288333">
+        <ele>229.400000</ele>
+        <time>2008-02-03T18:50:22Z</time>
+        <course>113.199997</course>
+        <speed>2.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.500000</vdop>
+        <pdop>4.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719786667" lon="-37.199938333">
+        <ele>226.800000</ele>
+        <time>2008-02-03T18:50:42Z</time>
+        <course>111.500000</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>3.500000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>3.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719773333" lon="-37.200063333">
+        <ele>214.000000</ele>
+        <time>2008-02-03T18:51:02Z</time>
+        <course>111.500000</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719780000" lon="-37.200040000">
+        <ele>212.800000</ele>
+        <time>2008-02-03T18:51:17Z</time>
+        <course>124.900002</course>
+        <speed>0.805556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719776667" lon="-37.200078333">
+        <ele>212.000000</ele>
+        <time>2008-02-03T18:51:32Z</time>
+        <course>147.699997</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.500000</vdop>
+        <pdop>4.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719775000" lon="-37.200043333">
+        <ele>215.000000</ele>
+        <time>2008-02-03T18:51:52Z</time>
+        <course>125.800003</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719721667" lon="-37.200108333">
+        <ele>205.500000</ele>
+        <time>2008-02-03T18:52:07Z</time>
+        <course>289.899994</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719746667" lon="-37.200071667">
+        <ele>208.200000</ele>
+        <time>2008-02-03T18:52:22Z</time>
+        <course>289.899994</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719750000" lon="-37.200066667">
+        <ele>209.400000</ele>
+        <time>2008-02-03T18:52:37Z</time>
+        <course>289.899994</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719778333" lon="-37.199998333">
+        <ele>210.300000</ele>
+        <time>2008-02-03T18:52:52Z</time>
+        <course>294.299988</course>
+        <speed>0.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719808333" lon="-37.199943333">
+        <ele>209.800000</ele>
+        <time>2008-02-03T18:53:07Z</time>
+        <course>53.900002</course>
+        <speed>0.555556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719813333" lon="-37.200050000">
+        <ele>191.200000</ele>
+        <time>2008-02-03T18:53:27Z</time>
+        <course>53.900002</course>
+        <speed>0.777778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719841667" lon="-37.200030000">
+        <ele>191.400000</ele>
+        <time>2008-02-03T18:53:42Z</time>
+        <course>139.500000</course>
+        <speed>1.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719851667" lon="-37.199973333">
+        <ele>191.700000</ele>
+        <time>2008-02-03T18:53:57Z</time>
+        <course>106.000000</course>
+        <speed>0.277778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719828333" lon="-37.199945000">
+        <ele>191.300000</ele>
+        <time>2008-02-03T18:54:12Z</time>
+        <course>106.000000</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719810000" lon="-37.199968333">
+        <ele>190.300000</ele>
+        <time>2008-02-03T18:54:27Z</time>
+        <course>98.199997</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719825000" lon="-37.199940000">
+        <ele>189.900000</ele>
+        <time>2008-02-03T18:54:42Z</time>
+        <course>111.800003</course>
+        <speed>0.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719810000" lon="-37.199956667">
+        <ele>193.300000</ele>
+        <time>2008-02-03T18:54:57Z</time>
+        <course>111.800003</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719948333" lon="-37.199475000">
+        <ele>221.500000</ele>
+        <time>2008-02-03T18:55:17Z</time>
+        <course>104.300003</course>
+        <speed>5.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.720141667" lon="-37.199113333">
+        <ele>178.200000</ele>
+        <time>2008-02-03T18:55:32Z</time>
+        <course>103.199997</course>
+        <speed>1.833333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>3.900000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>4.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719538333" lon="-37.198933333">
+        <ele>190.700000</ele>
+        <time>2008-02-03T18:55:47Z</time>
+        <course>10.600000</course>
+        <speed>0.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>4.400000</vdop>
+        <pdop>4.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719611667" lon="-37.198783333">
+        <ele>195.600000</ele>
+        <time>2008-02-03T18:56:07Z</time>
+        <course>82.500000</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>6.000000</hdop>
+        <vdop>4.300000</vdop>
+        <pdop>7.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719613333" lon="-37.198770000">
+        <ele>182.000000</ele>
+        <time>2008-02-03T18:56:22Z</time>
+        <course>82.500000</course>
+        <speed>0.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>6.000000</hdop>
+        <vdop>4.300000</vdop>
+        <pdop>7.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719563333" lon="-37.198746667">
+        <ele>183.800000</ele>
+        <time>2008-02-03T18:56:37Z</time>
+        <course>82.500000</course>
+        <speed>0.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719573333" lon="-37.198711667">
+        <ele>185.700000</ele>
+        <time>2008-02-03T18:56:52Z</time>
+        <course>82.500000</course>
+        <speed>0.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719580000" lon="-37.198720000">
+        <ele>185.900000</ele>
+        <time>2008-02-03T18:57:07Z</time>
+        <course>82.500000</course>
+        <speed>0.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719581667" lon="-37.198728333">
+        <ele>185.700000</ele>
+        <time>2008-02-03T18:57:22Z</time>
+        <course>82.500000</course>
+        <speed>0.166667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719590000" lon="-37.198725000">
+        <ele>185.400000</ele>
+        <time>2008-02-03T18:57:37Z</time>
+        <course>82.500000</course>
+        <speed>0.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719626667" lon="-37.198651667">
+        <ele>185.500000</ele>
+        <time>2008-02-03T18:57:52Z</time>
+        <course>108.099998</course>
+        <speed>0.194444</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.900000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719733333" lon="-37.198463333">
+        <ele>185.800000</ele>
+        <time>2008-02-03T18:58:07Z</time>
+        <course>123.300003</course>
+        <speed>2.055556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719311667" lon="-37.198250000">
+        <ele>200.600000</ele>
+        <time>2008-02-03T18:58:27Z</time>
+        <course>43.599998</course>
+        <speed>2.305556</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>4.300000</vdop>
+        <pdop>4.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718846667" lon="-37.197965000">
+        <ele>171.500000</ele>
+        <time>2008-02-03T18:58:42Z</time>
+        <course>351.899994</course>
+        <speed>3.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718546667" lon="-37.197876667">
+        <ele>179.000000</ele>
+        <time>2008-02-03T18:58:57Z</time>
+        <course>73.000000</course>
+        <speed>1.833333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.718818333" lon="-37.195723333">
+        <ele>186.400000</ele>
+        <time>2008-02-03T18:59:22Z</time>
+        <course>96.300003</course>
+        <speed>15.250000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>4.200000</vdop>
+        <pdop>4.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719186667" lon="-37.192106667">
+        <ele>162.500000</ele>
+        <time>2008-02-03T18:59:57Z</time>
+        <course>90.300003</course>
+        <speed>11.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719223333" lon="-37.189601667">
+        <ele>217.700000</ele>
+        <time>2008-02-03T19:00:17Z</time>
+        <course>96.000000</course>
+        <speed>15.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>6</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719451667" lon="-37.187501667">
+        <ele>222.700000</ele>
+        <time>2008-02-03T19:00:32Z</time>
+        <course>96.500000</course>
+        <speed>14.805555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.200000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719666667" lon="-37.185373333">
+        <ele>222.200000</ele>
+        <time>2008-02-03T19:00:47Z</time>
+        <course>95.300003</course>
+        <speed>17.027779</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.200000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719688333" lon="-37.183910000">
+        <ele>235.800000</ele>
+        <time>2008-02-03T19:01:02Z</time>
+        <course>99.599998</course>
+        <speed>5.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.200000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.719938333" lon="-37.182928333">
+        <ele>231.400000</ele>
+        <time>2008-02-03T19:01:17Z</time>
+        <course>109.099998</course>
+        <speed>7.861111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.100000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.720553333" lon="-37.181913333">
+        <ele>227.200000</ele>
+        <time>2008-02-03T19:01:32Z</time>
+        <course>125.400002</course>
+        <speed>9.416667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.100000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.721361667" lon="-37.180945000">
+        <ele>228.000000</ele>
+        <time>2008-02-03T19:01:47Z</time>
+        <course>128.100006</course>
+        <speed>8.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.100000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.722170000" lon="-37.179798333">
+        <ele>231.100000</ele>
+        <time>2008-02-03T19:02:02Z</time>
+        <course>124.599998</course>
+        <speed>10.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.100000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.722840000" lon="-37.178813333">
+        <ele>232.900000</ele>
+        <time>2008-02-03T19:02:17Z</time>
+        <course>125.599998</course>
+        <speed>6.944445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.100000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.723291667" lon="-37.177775000">
+        <ele>208.400000</ele>
+        <time>2008-02-03T19:02:32Z</time>
+        <course>107.300003</course>
+        <speed>7.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.800000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.723603333" lon="-37.176796667">
+        <ele>205.600000</ele>
+        <time>2008-02-03T19:02:47Z</time>
+        <course>109.400002</course>
+        <speed>9.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>4.100000</vdop>
+        <pdop>4.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.723921667" lon="-37.175758333">
+        <ele>221.200000</ele>
+        <time>2008-02-03T19:03:02Z</time>
+        <course>108.199997</course>
+        <speed>7.555555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>1.800000</hdop>
+        <vdop>1.000000</vdop>
+        <pdop>2.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724301667" lon="-37.174701667">
+        <ele>221.400000</ele>
+        <time>2008-02-03T19:03:17Z</time>
+        <course>108.199997</course>
+        <speed>8.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>1.800000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724621667" lon="-37.173596667">
+        <ele>230.100000</ele>
+        <time>2008-02-03T19:03:32Z</time>
+        <course>110.099998</course>
+        <speed>7.750000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>1.800000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725073333" lon="-37.172335000">
+        <ele>236.100000</ele>
+        <time>2008-02-03T19:03:52Z</time>
+        <course>96.300003</course>
+        <speed>9.361111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>4.200000</vdop>
+        <pdop>4.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724890000" lon="-37.171148333">
+        <ele>261.700000</ele>
+        <time>2008-02-03T19:04:07Z</time>
+        <course>84.000000</course>
+        <speed>5.805555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.000000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.724880000" lon="-37.169985000">
+        <ele>249.900000</ele>
+        <time>2008-02-03T19:04:27Z</time>
+        <course>102.500000</course>
+        <speed>6.500000</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.800000</hdop>
+        <vdop>4.100000</vdop>
+        <pdop>4.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725401667" lon="-37.168935000">
+        <ele>249.900000</ele>
+        <time>2008-02-03T19:04:42Z</time>
+        <course>114.199997</course>
+        <speed>8.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>1.800000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>2.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.725763333" lon="-37.167601667">
+        <ele>256.700000</ele>
+        <time>2008-02-03T19:05:02Z</time>
+        <course>110.099998</course>
+        <speed>4.638889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.000000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.726010000" lon="-37.166993333">
+        <ele>233.900000</ele>
+        <time>2008-02-03T19:05:17Z</time>
+        <course>62.599998</course>
+        <speed>4.444445</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.000000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.726303333" lon="-37.166120000">
+        <ele>253.400000</ele>
+        <time>2008-02-03T19:05:32Z</time>
+        <course>106.099998</course>
+        <speed>7.277778</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>3.000000</vdop>
+        <pdop>3.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.726533333" lon="-37.165216667">
+        <ele>265.600000</ele>
+        <time>2008-02-03T19:05:47Z</time>
+        <course>109.599998</course>
+        <speed>6.222222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.900000</vdop>
+        <pdop>4.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.726898333" lon="-37.164065000">
+        <ele>260.500000</ele>
+        <time>2008-02-03T19:06:02Z</time>
+        <course>113.300003</course>
+        <speed>8.611111</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.900000</vdop>
+        <pdop>4.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.727458333" lon="-37.163203333">
+        <ele>259.500000</ele>
+        <time>2008-02-03T19:06:17Z</time>
+        <course>124.599998</course>
+        <speed>6.083333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.900000</vdop>
+        <pdop>4.300000</pdop>
+      </trkpt>
+      <trkpt lat="-6.727596667" lon="-37.162498333">
+        <ele>259.300000</ele>
+        <time>2008-02-03T19:06:32Z</time>
+        <course>78.099998</course>
+        <speed>4.833333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.727948333" lon="-37.161963333">
+        <ele>257.500000</ele>
+        <time>2008-02-03T19:06:47Z</time>
+        <course>140.600006</course>
+        <speed>4.055555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728661667" lon="-37.161231667">
+        <ele>253.000000</ele>
+        <time>2008-02-03T19:07:02Z</time>
+        <course>133.699997</course>
+        <speed>7.055555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.900000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729221667" lon="-37.160431667">
+        <ele>252.400000</ele>
+        <time>2008-02-03T19:07:17Z</time>
+        <course>131.800003</course>
+        <speed>7.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729506667" lon="-37.159478333">
+        <ele>250.700000</ele>
+        <time>2008-02-03T19:07:32Z</time>
+        <course>98.199997</course>
+        <speed>4.472222</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729628333" lon="-37.158578333">
+        <ele>248.300000</ele>
+        <time>2008-02-03T19:07:47Z</time>
+        <course>97.199997</course>
+        <speed>6.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.800000</vdop>
+        <pdop>4.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729760000" lon="-37.157383333">
+        <ele>244.600000</ele>
+        <time>2008-02-03T19:08:02Z</time>
+        <course>94.500000</course>
+        <speed>9.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.900000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729603333" lon="-37.156095000">
+        <ele>241.900000</ele>
+        <time>2008-02-03T19:08:17Z</time>
+        <course>75.500000</course>
+        <speed>8.916667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729151667" lon="-37.154395000">
+        <ele>207.900000</ele>
+        <time>2008-02-03T19:08:42Z</time>
+        <course>75.400002</course>
+        <speed>7.333333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.700000</vdop>
+        <pdop>4.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728860000" lon="-37.153366667">
+        <ele>223.700000</ele>
+        <time>2008-02-03T19:08:57Z</time>
+        <course>75.199997</course>
+        <speed>7.138889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728720000" lon="-37.152671667">
+        <ele>218.300000</ele>
+        <time>2008-02-03T19:09:12Z</time>
+        <course>77.300003</course>
+        <speed>4.305555</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728453333" lon="-37.151946667">
+        <ele>235.600000</ele>
+        <time>2008-02-03T19:09:27Z</time>
+        <course>93.699997</course>
+        <speed>6.388889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.728415000" lon="-37.151093333">
+        <ele>242.000000</ele>
+        <time>2008-02-03T19:09:42Z</time>
+        <course>104.199997</course>
+        <speed>5.583333</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729163333" lon="-37.150486667">
+        <ele>237.100000</ele>
+        <time>2008-02-03T19:09:57Z</time>
+        <course>162.800003</course>
+        <speed>6.666667</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.500000</vdop>
+        <pdop>3.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.729581667" lon="-37.150375000">
+        <ele>236.500000</ele>
+        <time>2008-02-03T19:10:12Z</time>
+        <course>165.000000</course>
+        <speed>3.888889</speed>
+        <geoidheight>-12.0</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730086667" lon="-37.149801667">
+        <ele>233.000000</ele>
+        <time>2008-02-03T19:10:27Z</time>
+        <course>116.099998</course>
+        <speed>5.888889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730368333" lon="-37.148903333">
+        <ele>232.400000</ele>
+        <time>2008-02-03T19:10:42Z</time>
+        <course>107.699997</course>
+        <speed>7.861111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730636667" lon="-37.148023333">
+        <ele>231.800000</ele>
+        <time>2008-02-03T19:10:57Z</time>
+        <course>110.800003</course>
+        <speed>6.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730810000" lon="-37.147206667">
+        <ele>232.500000</ele>
+        <time>2008-02-03T19:11:12Z</time>
+        <course>105.000000</course>
+        <speed>5.305555</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.730921667" lon="-37.146380000">
+        <ele>235.100000</ele>
+        <time>2008-02-03T19:11:27Z</time>
+        <course>96.500000</course>
+        <speed>8.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.731230000" lon="-37.145301667">
+        <ele>236.800000</ele>
+        <time>2008-02-03T19:11:42Z</time>
+        <course>119.800003</course>
+        <speed>8.250000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.732006667" lon="-37.144300000">
+        <ele>237.000000</ele>
+        <time>2008-02-03T19:11:57Z</time>
+        <course>119.699997</course>
+        <speed>10.166667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.732523333" lon="-37.143135000">
+        <ele>237.400000</ele>
+        <time>2008-02-03T19:12:12Z</time>
+        <course>109.699997</course>
+        <speed>7.555555</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.600000</vdop>
+        <pdop>4.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.732908333" lon="-37.142056667">
+        <ele>236.700000</ele>
+        <time>2008-02-03T19:12:27Z</time>
+        <course>112.599998</course>
+        <speed>7.583333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.700000</hdop>
+        <vdop>3.600000</vdop>
+        <pdop>3.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.733285000" lon="-37.141346667">
+        <ele>237.500000</ele>
+        <time>2008-02-03T19:12:42Z</time>
+        <course>114.400002</course>
+        <speed>7.222222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.733600000" lon="-37.140558333">
+        <ele>238.400000</ele>
+        <time>2008-02-03T19:12:57Z</time>
+        <course>114.199997</course>
+        <speed>5.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.734071667" lon="-37.139696667">
+        <ele>238.400000</ele>
+        <time>2008-02-03T19:13:12Z</time>
+        <course>120.400002</course>
+        <speed>7.138889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.734730000" lon="-37.138978333">
+        <ele>238.600000</ele>
+        <time>2008-02-03T19:13:27Z</time>
+        <course>133.899994</course>
+        <speed>6.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.735288333" lon="-37.138431667">
+        <ele>238.700000</ele>
+        <time>2008-02-03T19:13:42Z</time>
+        <course>131.199997</course>
+        <speed>4.277778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>3.000000</pdop>
+      </trkpt>
+      <trkpt lat="-6.735766667" lon="-37.137841667">
+        <ele>238.400000</ele>
+        <time>2008-02-03T19:13:57Z</time>
+        <course>118.599998</course>
+        <speed>6.916667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.736046667" lon="-37.137208333">
+        <ele>239.000000</ele>
+        <time>2008-02-03T19:14:12Z</time>
+        <course>114.400002</course>
+        <speed>3.583333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.500000</vdop>
+        <pdop>3.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.736218333" lon="-37.136725000">
+        <ele>239.400000</ele>
+        <time>2008-02-03T19:14:27Z</time>
+        <course>107.699997</course>
+        <speed>5.333333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.736766667" lon="-37.135981667">
+        <ele>239.900000</ele>
+        <time>2008-02-03T19:14:42Z</time>
+        <course>135.300003</course>
+        <speed>6.694445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.737300000" lon="-37.135383333">
+        <ele>240.400000</ele>
+        <time>2008-02-03T19:14:57Z</time>
+        <course>137.199997</course>
+        <speed>5.083333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.737623333" lon="-37.135050000">
+        <ele>240.100000</ele>
+        <time>2008-02-03T19:15:12Z</time>
+        <course>145.800003</course>
+        <speed>4.222222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.738143333" lon="-37.134630000">
+        <ele>239.000000</ele>
+        <time>2008-02-03T19:15:27Z</time>
+        <course>134.899994</course>
+        <speed>6.166667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.738763333" lon="-37.133983333">
+        <ele>237.900000</ele>
+        <time>2008-02-03T19:15:42Z</time>
+        <course>139.199997</course>
+        <speed>6.805555</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.400000</vdop>
+        <pdop>3.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.739368333" lon="-37.133321667">
+        <ele>237.600000</ele>
+        <time>2008-02-03T19:15:57Z</time>
+        <course>137.000000</course>
+        <speed>3.750000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.400000</vdop>
+        <pdop>3.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.739890000" lon="-37.133001667">
+        <ele>237.900000</ele>
+        <time>2008-02-03T19:16:12Z</time>
+        <course>121.199997</course>
+        <speed>7.527778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.600000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.740858333" lon="-37.132516667">
+        <ele>237.800000</ele>
+        <time>2008-02-03T19:16:27Z</time>
+        <course>161.500000</course>
+        <speed>7.694445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>2.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.741568333" lon="-37.132533333">
+        <ele>237.800000</ele>
+        <time>2008-02-03T19:16:42Z</time>
+        <course>217.100006</course>
+        <speed>5.083333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.500000</hdop>
+        <vdop>3.100000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.741963333" lon="-37.133106667">
+        <ele>238.000000</ele>
+        <time>2008-02-03T19:16:57Z</time>
+        <course>245.899994</course>
+        <speed>2.972222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742050000" lon="-37.133200000">
+        <ele>238.200000</ele>
+        <time>2008-02-03T19:17:12Z</time>
+        <course>240.600006</course>
+        <speed>0.277778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742061667" lon="-37.133233333">
+        <ele>241.200000</ele>
+        <time>2008-02-03T19:17:27Z</time>
+        <course>240.600006</course>
+        <speed>0.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.300000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742130000" lon="-37.133296667">
+        <ele>242.300000</ele>
+        <time>2008-02-03T19:17:42Z</time>
+        <course>235.199997</course>
+        <speed>0.055556</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.300000</vdop>
+        <pdop>3.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742318333" lon="-37.133560000">
+        <ele>239.800000</ele>
+        <time>2008-02-03T19:17:57Z</time>
+        <course>238.800003</course>
+        <speed>5.694445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.500000</hdop>
+        <vdop>3.000000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.742761667" lon="-37.134405000">
+        <ele>234.300000</ele>
+        <time>2008-02-03T19:18:12Z</time>
+        <course>252.800003</course>
+        <speed>7.888889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.200000</vdop>
+        <pdop>3.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.743153333" lon="-37.135210000">
+        <ele>245.600000</ele>
+        <time>2008-02-03T19:18:27Z</time>
+        <course>215.800003</course>
+        <speed>3.333333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.743653333" lon="-37.134918333">
+        <ele>222.200000</ele>
+        <time>2008-02-03T19:18:42Z</time>
+        <course>141.500000</course>
+        <speed>5.361111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.500000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.744223333" lon="-37.134298333">
+        <ele>225.000000</ele>
+        <time>2008-02-03T19:18:57Z</time>
+        <course>118.099998</course>
+        <speed>7.583333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.200000</vdop>
+        <pdop>3.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.745046667" lon="-37.133555000">
+        <ele>224.000000</ele>
+        <time>2008-02-03T19:19:12Z</time>
+        <course>142.800003</course>
+        <speed>6.083333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.200000</vdop>
+        <pdop>3.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.745833333" lon="-37.132983333">
+        <ele>226.000000</ele>
+        <time>2008-02-03T19:19:27Z</time>
+        <course>143.600006</course>
+        <speed>7.222222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.746680000" lon="-37.132416667">
+        <ele>227.500000</ele>
+        <time>2008-02-03T19:19:42Z</time>
+        <course>145.199997</course>
+        <speed>7.222222</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.800000</pdop>
+      </trkpt>
+      <trkpt lat="-6.747143333" lon="-37.131755000">
+        <ele>229.200000</ele>
+        <time>2008-02-03T19:19:57Z</time>
+        <course>115.300003</course>
+        <speed>6.166667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.748026667" lon="-37.131143333">
+        <ele>228.600000</ele>
+        <time>2008-02-03T19:20:12Z</time>
+        <course>155.100006</course>
+        <speed>8.333333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.100000</vdop>
+        <pdop>3.500000</pdop>
+      </trkpt>
+      <trkpt lat="-6.748773333" lon="-37.130658333">
+        <ele>227.100000</ele>
+        <time>2008-02-03T19:20:27Z</time>
+        <course>144.300003</course>
+        <speed>6.027778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.749846667" lon="-37.130225000">
+        <ele>227.400000</ele>
+        <time>2008-02-03T19:20:42Z</time>
+        <course>163.800003</course>
+        <speed>10.444445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.750903333" lon="-37.129890000">
+        <ele>229.100000</ele>
+        <time>2008-02-03T19:20:57Z</time>
+        <course>150.300003</course>
+        <speed>6.944445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.751238333" lon="-37.129713333">
+        <ele>228.900000</ele>
+        <time>2008-02-03T19:21:12Z</time>
+        <course>151.399994</course>
+        <speed>0.055556</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.751255000" lon="-37.129730000">
+        <ele>229.300000</ele>
+        <time>2008-02-03T19:21:27Z</time>
+        <course>151.399994</course>
+        <speed>0.194444</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.751293333" lon="-37.129688333">
+        <ele>230.000000</ele>
+        <time>2008-02-03T19:21:42Z</time>
+        <course>131.100006</course>
+        <speed>0.166667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.500000</hdop>
+        <vdop>2.800000</vdop>
+        <pdop>3.200000</pdop>
+      </trkpt>
+      <trkpt lat="-6.751350000" lon="-37.129655000">
+        <ele>230.900000</ele>
+        <time>2008-02-03T19:21:57Z</time>
+        <course>147.500000</course>
+        <speed>1.361111</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>2d</fix>
+        <sat>3</sat>
+        <hdop>1.700000</hdop>
+        <vdop>0.900000</vdop>
+        <pdop>1.900000</pdop>
+      </trkpt>
+      <trkpt lat="-6.751796667" lon="-37.129225000">
+        <ele>233.000000</ele>
+        <time>2008-02-03T19:22:12Z</time>
+        <course>131.399994</course>
+        <speed>6.527778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.752486667" lon="-37.128550000">
+        <ele>232.600000</ele>
+        <time>2008-02-03T19:22:27Z</time>
+        <course>164.800003</course>
+        <speed>7.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.400000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.753371667" lon="-37.128263333">
+        <ele>232.600000</ele>
+        <time>2008-02-03T19:22:42Z</time>
+        <course>159.100006</course>
+        <speed>5.416667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.600000</hdop>
+        <vdop>3.000000</vdop>
+        <pdop>3.400000</pdop>
+      </trkpt>
+      <trkpt lat="-6.754103333" lon="-37.128028333">
+        <ele>232.900000</ele>
+        <time>2008-02-03T19:22:57Z</time>
+        <course>163.000000</course>
+        <speed>5.666667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.754863333" lon="-37.127821667">
+        <ele>233.700000</ele>
+        <time>2008-02-03T19:23:12Z</time>
+        <course>159.199997</course>
+        <speed>6.166667</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.755988333" lon="-37.127550000">
+        <ele>234.000000</ele>
+        <time>2008-02-03T19:23:27Z</time>
+        <course>162.100006</course>
+        <speed>9.694445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.700000</pdop>
+      </trkpt>
+      <trkpt lat="-6.757150000" lon="-37.127253333">
+        <ele>235.800000</ele>
+        <time>2008-02-03T19:23:42Z</time>
+        <course>173.399994</course>
+        <speed>8.083333</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.758021667" lon="-37.127181667">
+        <ele>237.600000</ele>
+        <time>2008-02-03T19:23:57Z</time>
+        <course>167.100006</course>
+        <speed>6.250000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>4</sat>
+        <hdop>1.400000</hdop>
+        <vdop>2.700000</vdop>
+        <pdop>3.100000</pdop>
+      </trkpt>
+      <trkpt lat="-6.758941667" lon="-37.126996667">
+        <ele>239.900000</ele>
+        <time>2008-02-03T19:24:12Z</time>
+        <course>154.399994</course>
+        <speed>8.194445</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.759661667" lon="-37.126748333">
+        <ele>240.800000</ele>
+        <time>2008-02-03T19:24:27Z</time>
+        <course>170.600006</course>
+        <speed>7.250000</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.760191667" lon="-37.126078333">
+        <ele>241.800000</ele>
+        <time>2008-02-03T19:24:42Z</time>
+        <course>107.000000</course>
+        <speed>4.527778</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+      <trkpt lat="-6.760321667" lon="-37.125885000">
+        <ele>246.100000</ele>
+        <time>2008-02-03T19:24:57Z</time>
+        <course>128.500000</course>
+        <speed>0.138889</speed>
+        <geoidheight>-11.9</geoidheight>
+        <fix>3d</fix>
+        <sat>5</sat>
+        <hdop>1.200000</hdop>
+        <vdop>2.300000</vdop>
+        <pdop>2.600000</pdop>
+      </trkpt>
+    </trkseg>
+  </trk>
+</gpx>
diff --git a/test/data/regress/2147/WG20080203171807.log.nmea b/test/data/regress/2147/WG20080203171807.log.nmea
new file mode 100644
index 0000000..f5f3b84
--- /dev/null
+++ b/test/data/regress/2147/WG20080203171807.log.nmea
@@ -0,0 +1,3410 @@
+ at Sonygps/ver1.0/wgs-84
+$GPGGA,171807,0645.0673,S,03707.7834,W,1,06,01.1,00241.0,M,-011.9,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.1,01.8*08
+$GPGSV,3,1,12,02,01,327,00,04,19,358,43,08,35,149,34,10,20,273,42*7E
+$GPGSV,3,2,12,11,14,102,46,13,34,033,38,15,01,215,00,17,79,012,53*7F
+$GPGSV,3,3,12,25,25,093,41,26,09,213,00,27,34,112,46,28,38,188,50*7F
+$GPRMC,171807,A,0645.0673,S,03707.7834,W,000.0,352.7,030208,,,A*73
+$GPVTG,352.7,T,,M,000.0,N,000.0,K,A*0E
+$GPGGA,171837,0645.0327,S,03707.8008,W,1,05,01.3,00226.9,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.3,01.3,01.9*08
+$GPGSV,3,1,12,02,02,327,00,04,19,358,42,08,36,149,46,10,20,273,47*7F
+$GPGSV,3,2,12,11,14,102,40,13,33,033,30,15,01,215,00,17,79,012,52*77
+$GPGSV,3,3,12,25,25,092,46,26,09,213,00,27,34,112,48,28,38,188,35*74
+$GPRMC,171837,A,0645.0327,S,03707.8008,W,010.4,334.8,030208,,,A*76
+$GPVTG,334.8,T,,M,010.4,N,019.3,K,A*0F
+$GPGGA,171852,0644.9881,S,03707.8150,W,1,05,01.3,00231.2,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,02.4,01.3,02.0*00
+$GPGSV,3,1,12,02,02,327,00,04,19,358,35,08,36,149,37,10,20,274,48*71
+$GPGSV,3,2,12,11,14,102,33,13,33,033,35,15,01,215,00,17,79,013,54*71
+$GPGSV,3,3,12,25,25,092,34,26,09,213,00,27,34,111,46,28,38,188,51*7E
+$GPRMC,171852,A,0644.9881,S,03707.8150,W,011.3,345.7,030208,,,A*79
+$GPVTG,345.7,T,,M,011.3,N,021.0,K,A*08
+$GPGGA,171907,0644.9327,S,03707.8329,W,1,05,01.5,00233.3,M,-011.9,M,,*6A
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.5,02.0*04
+$GPGSV,3,1,12,02,02,327,00,04,19,358,31,08,36,149,46,10,20,274,45*7E
+$GPGSV,3,2,12,11,13,103,28,13,33,033,42,15,01,215,00,17,79,013,53*7A
+$GPGSV,3,3,12,25,25,092,36,26,09,213,00,27,34,111,40,28,38,188,34*79
+$GPRMC,171907,A,0644.9327,S,03707.8329,W,013.8,333.6,030208,,,A*7A
+$GPVTG,333.6,T,,M,013.8,N,025.6,K,A*03
+$GPGGA,171922,0644.8943,S,03707.8559,W,1,05,01.5,00230.1,M,-011.9,M,,*64
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.5,02.0*04
+$GPGSV,3,1,12,02,02,327,00,04,19,358,31,08,36,149,43,10,20,274,45*7B
+$GPGSV,3,2,12,11,13,103,28,13,33,033,44,15,02,215,00,17,79,013,52*7E
+$GPGSV,3,3,12,25,25,092,39,26,09,213,00,27,34,111,38,28,38,188,35*78
+$GPRMC,171922,A,0644.8943,S,03707.8559,W,007.8,328.3,030208,,,A*7F
+$GPVTG,328.3,T,,M,007.8,N,014.4,K,A*09
+$GPGGA,171942,0644.8381,S,03707.8897,W,1,05,01.4,00231.7,M,-011.9,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,,,,,,,,02.3,01.4,01.9*08
+$GPGSV,3,1,12,02,02,327,00,04,19,358,33,08,36,148,43,10,20,274,39*73
+$GPGSV,3,2,12,11,13,103,00,13,33,033,38,15,02,215,00,17,79,013,52*7F
+$GPGSV,3,3,12,25,25,092,41,26,09,213,00,27,34,111,31,28,38,188,46*7A
+$GPRMC,171942,A,0644.8381,S,03707.8897,W,011.8,324.9,030208,,,A*73
+$GPVTG,324.9,T,,M,011.8,N,022.0,K,A*09
+$GPGGA,171957,0644.8137,S,03707.9334,W,1,05,01.5,00228.1,M,-011.9,M,,*68
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.5,02.0*04
+$GPGSV,3,1,12,02,02,327,00,04,19,358,32,08,36,148,46,10,20,274,40*79
+$GPGSV,3,2,12,11,13,103,00,13,33,033,38,15,02,215,00,17,80,014,52*7E
+$GPGSV,3,3,12,25,25,092,38,26,09,213,00,27,34,111,38,28,38,187,46*72
+$GPRMC,171957,A,0644.8137,S,03707.9334,W,010.9,307.7,030208,,,A*74
+$GPVTG,307.7,T,,M,010.9,N,020.2,K,A*06
+$GPGGA,172012,0644.7744,S,03707.9649,W,1,06,01.2,00231.6,M,-011.9,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,327,00,04,19,358,35,08,36,148,44,10,20,274,44*78
+$GPGSV,3,2,12,11,13,103,00,13,33,033,35,15,02,215,00,17,80,014,52*73
+$GPGSV,3,3,12,25,25,092,37,26,10,213,00,27,34,111,35,28,38,187,35*7C
+$GPRMC,172012,A,0644.7744,S,03707.9649,W,015.2,330.1,030208,,,A*71
+$GPVTG,330.1,T,,M,015.2,N,028.3,K,A*03
+$GPGGA,172027,0644.7284,S,03707.9908,W,1,06,01.2,00232.0,M,-011.9,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,328,00,04,19,359,39,08,36,148,44,10,20,274,38*71
+$GPGSV,3,2,12,11,13,103,00,13,33,033,41,15,02,215,00,17,80,014,54*76
+$GPGSV,3,3,12,25,25,091,41,26,10,213,00,27,34,111,39,28,38,187,46*76
+$GPRMC,172027,A,0644.7284,S,03707.9908,W,010.1,323.9,030208,,,A*78
+$GPVTG,323.9,T,,M,010.1,N,018.7,K,A*08
+$GPGGA,172042,0644.6932,S,03708.0192,W,1,06,01.2,00236.9,M,-011.9,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,328,00,04,19,359,33,08,36,148,44,10,20,275,41*74
+$GPGSV,3,2,12,11,13,103,00,13,32,033,36,15,02,215,00,17,80,014,52*71
+$GPGSV,3,3,12,25,25,091,40,26,10,213,00,27,34,110,39,28,38,187,43*73
+$GPRMC,172042,A,0644.6932,S,03708.0192,W,009.9,319.3,030208,,,A*72
+$GPVTG,319.3,T,,M,009.9,N,018.3,K,A*0F
+$GPGGA,172057,0644.6651,S,03708.0488,W,1,06,01.2,00237.2,M,-011.9,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,328,00,04,19,359,38,08,36,148,46,10,20,275,38*73
+$GPGSV,3,2,12,11,13,103,00,13,32,033,41,15,02,215,00,17,80,015,52*70
+$GPGSV,3,3,12,25,25,091,41,26,10,213,00,27,34,110,41,28,38,187,35*7C
+$GPRMC,172057,A,0644.6651,S,03708.0488,W,012.8,304.6,030208,,,A*70
+$GPVTG,304.6,T,,M,012.8,N,023.7,K,A*01
+$GPGGA,172112,0644.6335,S,03708.0815,W,1,06,01.2,00236.7,M,-011.9,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,328,00,04,19,359,34,08,36,148,41,10,20,275,46*71
+$GPGSV,3,2,12,11,13,103,00,13,32,033,36,15,02,215,00,17,80,015,51*73
+$GPGSV,3,3,12,25,25,091,46,26,10,213,00,27,34,110,49,28,38,187,31*77
+$GPRMC,172112,A,0644.6335,S,03708.0815,W,007.3,324.1,030208,,,A*75
+$GPVTG,324.1,T,,M,007.3,N,013.6,K,A*09
+$GPGGA,172127,0644.5967,S,03708.1090,W,1,06,01.2,00237.1,M,-011.9,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,328,00,04,19,359,40,08,36,148,42,10,20,275,45*72
+$GPGSV,3,2,12,11,13,104,00,13,32,033,46,15,02,215,00,17,80,015,50*72
+$GPGSV,3,3,12,25,25,091,46,26,10,213,00,27,34,110,40,28,37,187,42*75
+$GPRMC,172127,A,0644.5967,S,03708.1090,W,009.0,332.3,030208,,,A*71
+$GPVTG,332.3,T,,M,009.0,N,016.6,K,A*04
+$GPGGA,172142,0644.5759,S,03708.1045,W,1,05,03.3,00236.0,M,-011.9,M,,*6C
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,04.6,03.3,03.3*02
+$GPGSV,3,1,12,02,02,328,00,04,19,359,43,08,36,147,36,10,20,275,32*7D
+$GPGSV,3,2,12,11,13,104,00,13,32,032,45,15,02,215,00,17,80,016,53*70
+$GPGSV,3,3,12,25,25,091,37,26,10,213,00,27,34,110,34,28,37,187,50*73
+$GPRMC,172142,A,0644.5759,S,03708.1045,W,003.5,051.0,030208,,,A*73
+$GPVTG,051.0,T,,M,003.5,N,006.6,K,A*0F
+$GPGGA,172157,0644.5694,S,03708.0786,W,1,05,03.3,00235.8,M,-011.9,M,,*6A
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,04.7,03.3,03.3*03
+$GPGSV,3,1,12,02,02,328,00,04,19,359,45,08,36,147,45,10,20,275,30*7D
+$GPGSV,3,2,12,11,13,104,00,13,32,032,45,15,02,215,00,17,81,016,53*71
+$GPGSV,3,3,12,25,25,091,36,26,10,213,00,27,34,110,41,28,37,187,49*78
+$GPRMC,172157,A,0644.5694,S,03708.0786,W,012.8,068.6,030208,,,A*7F
+$GPVTG,068.6,T,,M,012.8,N,023.7,K,A*08
+$GPGGA,172212,0644.5518,S,03708.0331,W,1,04,04.9,00235.2,M,-011.9,M,,*61
+$GPGSA,A,3,04,10,13,17,,,,,,,,,06.9,04.9,04.8*0D
+$GPGSV,3,1,12,02,02,328,00,04,19,359,42,08,36,147,41,10,20,275,40*79
+$GPGSV,3,2,12,11,13,104,00,13,32,032,40,15,03,215,00,17,81,016,54*72
+$GPGSV,3,3,12,25,25,091,31,26,10,213,00,27,34,110,35,28,37,186,52*77
+$GPRMC,172212,A,0644.5518,S,03708.0331,W,010.9,057.8,030208,,,A*73
+$GPVTG,057.8,T,,M,010.9,N,020.2,K,A*0F
+$GPGGA,172227,0644.5364,S,03708.0024,W,1,06,01.2,00235.3,M,-011.9,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,328,00,04,20,359,40,08,36,147,40,10,20,275,43*73
+$GPGSV,3,2,12,11,13,104,00,13,32,032,41,15,03,215,00,17,81,016,54*73
+$GPGSV,3,3,12,25,25,090,35,26,10,213,00,27,34,109,40,28,37,186,51*7B
+$GPRMC,172227,A,0644.5364,S,03708.0024,W,009.3,059.0,030208,,,A*7B
+$GPVTG,059.0,T,,M,009.3,N,017.2,K,A*0F
+$GPGGA,172242,0644.5317,S,03707.9956,W,1,04,03.9,00237.9,M,-011.9,M,,*6E
+$GPGSA,A,3,04,13,17,25,,,,,,,,,05.5,03.9,03.8*04
+$GPGSV,3,1,12,02,02,328,00,04,20,359,41,08,36,147,45,10,20,276,31*71
+$GPGSV,3,2,12,11,13,104,00,13,32,032,46,15,03,215,00,17,81,017,54*75
+$GPGSV,3,3,12,25,25,090,38,26,10,213,00,27,34,109,34,28,37,186,41*74
+$GPRMC,172242,A,0644.5317,S,03707.9956,W,002.6,218.1,030208,,,A*7E
+$GPVTG,218.1,T,,M,002.6,N,004.8,K,A*0F
+$GPGGA,172257,0644.5292,S,03707.9944,W,1,06,01.2,00238.6,M,-011.9,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,328,00,04,20,359,41,08,36,147,41,10,20,276,35*71
+$GPGSV,3,2,12,11,13,104,00,13,31,032,45,15,03,215,00,17,81,017,54*75
+$GPGSV,3,3,12,25,25,090,41,26,11,213,00,27,34,109,35,28,37,186,48*73
+$GPRMC,172257,A,0644.5292,S,03707.9944,W,001.8,197.9,030208,,,A*74
+$GPVTG,197.9,T,,M,001.8,N,003.3,K,A*02
+$GPGGA,172312,0644.5258,S,03707.9890,W,1,04,03.5,00239.8,M,-011.9,M,,*68
+$GPGSA,A,3,04,13,17,27,,,,,,,,,04.9,03.5,03.5*0A
+$GPGSV,3,1,12,02,02,328,00,04,20,000,46,08,36,147,44,10,20,276,33*7A
+$GPGSV,3,2,12,11,13,104,00,13,31,032,46,15,03,216,00,17,81,017,53*72
+$GPGSV,3,3,12,25,25,090,33,26,11,213,00,27,34,109,36,28,37,186,49*74
+$GPRMC,172312,A,0644.5258,S,03707.9890,W,002.9,066.2,030208,,,A*7C
+$GPVTG,066.2,T,,M,002.9,N,005.4,K,A*05
+$GPGGA,172327,0644.5173,S,03707.9831,W,1,06,01.2,00239.2,M,-011.9,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,02,329,00,04,20,000,43,08,36,147,40,10,20,276,35*7C
+$GPGSV,3,2,12,11,13,104,00,13,31,032,45,15,03,216,00,17,81,018,53*7E
+$GPGSV,3,3,12,25,25,090,37,26,11,213,00,27,34,109,34,28,37,186,35*79
+$GPRMC,172327,A,0644.5173,S,03707.9831,W,002.7,053.3,030208,,,A*72
+$GPVTG,053.3,T,,M,002.7,N,005.1,K,A*09
+$GPGGA,172342,0644.5083,S,03707.9730,W,1,03,02.6,00240.9,M,-011.9,M,,*66
+$GPGSA,A,2,13,17,25,,,,,,,,,,02.8,02.6,00.9*07
+$GPGSV,3,1,12,02,02,329,00,04,20,000,35,08,36,146,37,10,20,276,34*7D
+$GPGSV,3,2,12,11,13,104,00,13,31,032,46,15,03,216,00,17,81,018,55*7B
+$GPGSV,3,3,12,25,25,090,40,26,11,213,00,27,34,109,28,28,37,186,50*77
+$GPRMC,172342,A,0644.5083,S,03707.9730,W,009.0,055.3,030208,,,A*7B
+$GPVTG,055.3,T,,M,009.0,N,016.8,K,A*08
+$GPGGA,172357,0644.4911,S,03707.9458,W,1,05,03.4,00243.1,M,-011.9,M,,*62
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,04.9,03.4,03.5*0C
+$GPGSV,3,1,12,02,02,329,00,04,20,000,39,08,36,146,35,10,20,276,33*74
+$GPGSV,3,2,12,11,13,105,00,13,31,032,46,15,03,216,00,17,82,019,53*7E
+$GPGSV,3,3,12,25,25,090,40,26,11,213,00,27,34,109,42,28,37,186,47*7D
+$GPRMC,172357,A,0644.4911,S,03707.9458,W,008.4,048.2,030208,,,A*79
+$GPVTG,048.2,T,,M,008.4,N,015.6,K,A*0D
+$GPGGA,172412,0644.4562,S,03707.9377,W,1,05,03.4,00244.5,M,-011.9,M,,*65
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,05.0,03.4,03.6*07
+$GPGSV,3,1,12,02,03,329,00,04,20,000,40,08,36,146,34,10,20,276,35*7C
+$GPGSV,3,2,12,11,13,105,00,13,31,032,44,15,03,216,00,17,82,019,55*7A
+$GPGSV,3,3,12,25,25,089,38,26,11,213,00,27,34,108,37,28,37,186,47*79
+$GPRMC,172412,A,0644.4562,S,03707.9377,W,009.0,340.2,030208,,,A*73
+$GPVTG,340.2,T,,M,009.0,N,016.7,K,A*01
+$GPGGA,172427,0644.4109,S,03707.9569,W,1,06,01.2,00244.2,M,-011.9,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,03,329,00,04,20,000,40,08,36,146,45,10,20,276,46*7E
+$GPGSV,3,2,12,11,13,105,00,13,31,032,39,15,03,216,00,17,82,019,54*71
+$GPGSV,3,3,12,25,25,089,46,26,11,213,00,27,34,108,48,28,37,185,35*7E
+$GPRMC,172427,A,0644.4109,S,03707.9569,W,013.6,333.4,030208,,,A*7A
+$GPVTG,333.4,T,,M,013.6,N,025.2,K,A*0B
+$GPGGA,172442,0644.3759,S,03707.9964,W,1,06,01.2,00241.0,M,-011.9,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,03,329,00,04,20,000,36,08,36,146,47,10,20,277,42*78
+$GPGSV,3,2,12,11,13,105,00,13,31,032,46,15,03,216,00,17,82,020,52*75
+$GPGSV,3,3,12,25,25,089,46,26,11,213,00,27,34,108,35,28,37,185,47*71
+$GPRMC,172442,A,0644.3759,S,03707.9964,W,009.4,326.1,030208,,,A*74
+$GPVTG,326.1,T,,M,009.4,N,017.4,K,A*04
+$GPGGA,172457,0644.3385,S,03708.0163,W,1,05,01.4,00242.7,M,-011.9,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,,,,,,,,02.4,01.4,01.9*0F
+$GPGSV,3,1,12,02,03,329,00,04,20,000,40,08,36,146,47,10,20,277,42*79
+$GPGSV,3,2,12,11,13,105,00,13,31,032,39,15,04,216,00,17,82,020,54*7C
+$GPGSV,3,3,12,25,25,089,48,26,11,213,00,27,34,108,30,28,37,185,43*7E
+$GPRMC,172457,A,0644.3385,S,03708.0163,W,009.6,316.6,030208,,,A*7A
+$GPVTG,316.6,T,,M,009.6,N,017.8,K,A*0E
+$GPGGA,172512,0644.3105,S,03708.0455,W,1,05,01.5,00245.5,M,-011.9,M,,*65
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.5,01.9*0E
+$GPGSV,3,1,12,02,03,329,00,04,20,000,33,08,36,146,48,10,20,277,34*73
+$GPGSV,3,2,12,11,13,105,00,13,31,032,43,15,04,216,00,17,82,021,54*70
+$GPGSV,3,3,12,25,25,089,49,26,11,213,00,27,34,108,35,28,36,185,46*7E
+$GPRMC,172512,A,0644.3105,S,03708.0455,W,011.1,317.3,030208,,,A*7A
+$GPVTG,317.3,T,,M,011.1,N,020.6,K,A*0E
+$GPGGA,172532,0644.2745,S,03708.0929,W,1,06,01.2,00248.5,M,-011.9,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,03,329,00,04,20,000,35,08,36,145,50,10,20,277,40*7C
+$GPGSV,3,2,12,11,13,105,00,13,30,032,41,15,04,216,00,17,82,021,53*74
+$GPGSV,3,3,12,25,25,089,51,26,11,213,00,27,34,108,36,28,36,185,45*77
+$GPRMC,172532,A,0644.2745,S,03708.0929,W,011.9,317.8,030208,,,A*7E
+$GPVTG,317.8,T,,M,011.9,N,022.1,K,A*08
+$GPGGA,172547,0644.2434,S,03708.1229,W,1,06,01.2,00250.9,M,-011.9,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,03,329,00,04,20,000,39,08,36,145,46,10,20,277,35*75
+$GPGSV,3,2,12,11,13,105,00,13,30,032,38,15,04,216,00,17,82,022,53*79
+$GPGSV,3,3,12,25,25,089,51,26,12,213,00,27,34,107,34,28,36,185,35*7E
+$GPRMC,172547,A,0644.2434,S,03708.1229,W,007.9,308.8,030208,,,A*7A
+$GPVTG,308.8,T,,M,007.9,N,014.6,K,A*03
+$GPGGA,172602,0644.2046,S,03708.1597,W,1,05,01.4,00252.7,M,-011.9,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,,,,,,,,02.4,01.4,01.9*0F
+$GPGSV,3,1,12,02,03,329,00,04,20,001,43,08,37,145,47,10,20,277,39*75
+$GPGSV,3,2,12,11,13,105,00,13,30,032,38,15,04,216,00,17,83,022,54*7F
+$GPGSV,3,3,12,25,25,089,50,26,12,213,00,27,34,107,34,28,36,185,38*72
+$GPRMC,172602,A,0644.2046,S,03708.1597,W,013.4,313.0,030208,,,A*71
+$GPVTG,313.0,T,,M,013.4,N,024.9,K,A*05
+$GPGGA,172617,0644.1709,S,03708.2029,W,1,06,01.2,00255.4,M,-011.9,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,03,329,00,04,20,001,35,08,37,145,33,10,20,277,46*7F
+$GPGSV,3,2,12,11,13,106,00,13,30,031,44,15,04,216,00,17,83,023,52*73
+$GPGSV,3,3,12,25,25,088,35,26,12,213,00,27,34,107,34,28,36,185,48*77
+$GPRMC,172617,A,0644.1709,S,03708.2029,W,013.5,284.7,030208,,,A*70
+$GPVTG,284.7,T,,M,013.5,N,025.1,K,A*05
+$GPGGA,172632,0644.1582,S,03708.2436,W,1,06,01.2,00256.2,M,-011.9,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.2,01.2,01.9*0A
+$GPGSV,3,1,12,02,03,330,00,04,20,001,35,08,37,145,35,10,20,277,36*76
+$GPGSV,3,2,12,11,13,106,00,13,30,031,45,15,04,216,00,17,83,023,52*72
+$GPGSV,3,3,12,25,25,088,36,26,12,213,00,27,34,107,36,28,36,184,50*7E
+$GPRMC,172632,A,0644.1582,S,03708.2436,W,007.0,287.3,030208,,,A*7B
+$GPVTG,287.3,T,,M,007.0,N,013.0,K,A*06
+$GPGGA,172647,0644.1383,S,03708.2796,W,1,05,01.5,00257.1,M,-011.9,M,,*61
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.5,01.9*0E
+$GPGSV,3,1,12,02,03,330,00,04,20,001,31,08,37,145,49,10,20,278,46*71
+$GPGSV,3,2,12,11,13,106,00,13,30,031,47,15,04,216,00,17,83,024,52*77
+$GPGSV,3,3,12,25,25,088,41,26,12,213,00,27,34,107,37,28,36,184,47*79
+$GPRMC,172647,A,0644.1383,S,03708.2796,W,011.3,297.0,030208,,,A*71
+$GPVTG,297.0,T,,M,011.3,N,021.0,K,A*01
+$GPGGA,172702,0644.1165,S,03708.3070,W,1,06,01.2,00256.9,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,20,001,36,08,37,145,47,10,20,278,43*7D
+$GPGSV,3,2,12,11,13,106,00,13,30,031,42,15,04,216,00,17,83,024,52*72
+$GPGSV,3,3,12,25,25,088,52,26,12,213,00,27,34,107,37,28,36,184,35*7E
+$GPRMC,172702,A,0644.1165,S,03708.3070,W,008.1,313.0,030208,,,A*72
+$GPVTG,313.0,T,,M,008.1,N,015.1,K,A*00
+$GPGGA,172717,0644.0846,S,03708.3404,W,1,06,01.2,00255.4,M,-011.9,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,001,40,08,37,144,46,10,20,278,47*79
+$GPGSV,3,2,12,11,13,106,00,13,30,031,38,15,04,216,00,17,83,025,52*7E
+$GPGSV,3,3,12,25,25,088,48,26,12,213,00,27,34,107,45,28,36,184,32*77
+$GPRMC,172717,A,0644.0846,S,03708.3404,W,012.5,315.0,030208,,,A*71
+$GPVTG,315.0,T,,M,012.5,N,023.3,K,A*0E
+$GPGGA,172732,0644.0523,S,03708.3716,W,1,06,01.2,00254.5,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,001,34,08,37,144,50,10,20,278,41*7B
+$GPGSV,3,2,12,11,13,106,00,13,30,031,39,15,05,216,00,17,83,026,52*7D
+$GPGSV,3,3,12,25,25,088,51,26,12,213,00,27,34,106,40,28,36,184,36*7F
+$GPRMC,172732,A,0644.0523,S,03708.3716,W,010.3,317.7,030208,,,A*79
+$GPVTG,317.7,T,,M,010.3,N,019.2,K,A*07
+$GPGGA,172747,0644.0234,S,03708.4205,W,1,06,01.2,00253.4,M,-011.9,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,001,34,08,37,144,42,10,20,278,45*7C
+$GPGSV,3,2,12,11,13,106,00,13,29,031,45,15,05,216,00,17,83,026,52*7E
+$GPGSV,3,3,12,25,24,088,41,26,12,213,00,27,34,106,41,28,36,184,49*76
+$GPRMC,172747,A,0644.0234,S,03708.4205,W,016.4,299.5,030208,,,A*7E
+$GPVTG,299.5,T,,M,016.4,N,030.4,K,A*0E
+$GPGGA,172802,0644.0150,S,03708.4391,W,1,06,01.2,00253.2,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,001,33,08,37,144,45,10,20,278,45*7C
+$GPGSV,3,2,12,11,13,106,00,13,29,031,46,15,05,216,00,17,84,027,52*7B
+$GPGSV,3,3,12,25,24,088,41,26,12,213,00,27,34,106,38,28,36,184,47*76
+$GPRMC,172802,A,0644.0150,S,03708.4391,W,004.2,286.0,030208,,,A*73
+$GPVTG,286.0,T,,M,004.2,N,007.9,K,A*09
+$GPGGA,172817,0643.9915,S,03708.4781,W,1,06,01.2,00253.9,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,001,41,08,37,144,41,10,20,278,42*7A
+$GPGSV,3,2,12,11,13,106,00,13,29,031,43,15,05,216,00,17,84,028,51*72
+$GPGSV,3,3,12,25,24,087,41,26,13,213,00,27,34,106,39,28,36,184,49*77
+$GPRMC,172817,A,0643.9915,S,03708.4781,W,012.9,294.1,030208,,,A*7B
+$GPVTG,294.1,T,,M,012.9,N,024.0,K,A*0F
+$GPGGA,172832,0643.9752,S,03708.5188,W,1,06,01.2,00252.6,M,-011.9,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,001,34,08,37,144,45,10,20,278,42*7C
+$GPGSV,3,2,12,11,13,106,00,13,29,031,42,15,05,216,00,17,84,028,49*7A
+$GPGSV,3,3,12,25,24,087,40,26,13,213,00,27,34,106,41,28,36,183,50*76
+$GPRMC,172832,A,0643.9752,S,03708.5188,W,007.3,295.3,030208,,,A*72
+$GPVTG,295.3,T,,M,007.3,N,013.5,K,A*03
+$GPGGA,172847,0643.9571,S,03708.5632,W,1,06,01.2,00251.5,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,002,33,08,37,144,34,10,20,279,45*78
+$GPGSV,3,2,12,11,13,107,00,13,29,031,46,15,05,216,00,17,84,029,52*74
+$GPGSV,3,3,12,25,24,087,39,26,13,213,00,27,34,106,35,28,36,183,46*7C
+$GPRMC,172847,A,0643.9571,S,03708.5632,W,017.1,290.6,030208,,,A*76
+$GPVTG,290.6,T,,M,017.1,N,031.8,K,A*0D
+$GPGGA,172902,0643.9321,S,03708.6249,W,1,05,01.5,00250.7,M,-011.9,M,,*6A
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.5,01.9*0E
+$GPGSV,3,1,12,02,03,330,00,04,21,002,34,08,37,144,41,10,20,279,47*7F
+$GPGSV,3,2,12,11,13,107,00,13,29,031,42,15,05,216,00,17,84,030,52*78
+$GPGSV,3,3,12,25,24,087,40,26,13,214,00,27,34,106,35,28,36,183,47*74
+$GPRMC,172902,A,0643.9321,S,03708.6249,W,014.7,290.5,030208,,,A*78
+$GPVTG,290.5,T,,M,014.7,N,027.2,K,A*06
+$GPGGA,172917,0643.8966,S,03708.6842,W,1,06,01.2,00250.3,M,-011.9,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,03,330,00,04,21,002,41,08,37,143,45,10,20,279,41*78
+$GPGSV,3,2,12,11,13,107,00,13,29,031,40,15,05,216,00,17,84,030,53*7B
+$GPGSV,3,3,12,25,24,087,50,26,13,214,00,27,34,105,36,28,35,183,33*75
+$GPRMC,172917,A,0643.8966,S,03708.6842,W,017.3,309.9,030208,,,A*7F
+$GPVTG,309.9,T,,M,017.3,N,032.0,K,A*0A
+$GPGGA,172932,0643.8592,S,03708.7410,W,1,06,01.2,00250.6,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,002,35,08,37,143,48,10,20,279,45*74
+$GPGSV,3,2,12,11,13,107,00,13,29,031,40,15,05,216,00,17,84,031,52*7B
+$GPGSV,3,3,12,25,24,087,39,26,13,214,00,27,34,105,35,28,35,183,46*7B
+$GPRMC,172932,A,0643.8592,S,03708.7410,W,014.5,292.2,030208,,,A*78
+$GPVTG,292.2,T,,M,014.5,N,026.9,K,A*0B
+$GPGGA,172947,0643.8478,S,03708.8055,W,1,06,01.2,00251.3,M,-011.9,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,002,38,08,37,143,40,10,20,279,42*76
+$GPGSV,3,2,12,11,12,107,00,13,29,031,42,15,05,216,00,17,84,032,51*78
+$GPGSV,3,3,12,25,24,087,40,26,13,214,00,27,34,105,42,28,35,183,51*73
+$GPRMC,172947,A,0643.8478,S,03708.8055,W,012.9,278.1,030208,,,A*78
+$GPVTG,278.1,T,,M,012.9,N,024.0,K,A*0D
+$GPGGA,173002,0643.8429,S,03708.8549,W,1,06,01.2,00249.7,M,-011.9,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,002,39,08,37,143,35,10,20,279,44*73
+$GPGSV,3,2,12,11,12,107,00,13,28,031,43,15,05,216,00,17,84,033,49*70
+$GPGSV,3,3,12,25,24,086,38,26,13,214,00,27,34,105,38,28,35,183,49*79
+$GPRMC,173002,A,0643.8429,S,03708.8549,W,009.8,284.3,030208,,,A*77
+$GPVTG,284.3,T,,M,009.8,N,018.1,K,A*09
+$GPGGA,173017,0643.8396,S,03708.8864,W,1,06,01.2,00247.5,M,-011.9,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,002,34,08,37,143,45,10,20,279,42*7F
+$GPGSV,3,2,12,11,12,107,00,13,28,031,36,15,05,216,00,17,85,034,52*7E
+$GPGSV,3,3,12,25,24,086,36,26,13,214,00,27,34,105,37,28,35,183,42*73
+$GPRMC,173017,A,0643.8396,S,03708.8864,W,010.2,292.9,030208,,,A*7D
+$GPVTG,292.9,T,,M,010.2,N,018.9,K,A*0E
+$GPGGA,173032,0643.8298,S,03708.9267,W,1,06,01.2,00246.3,M,-011.9,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,002,35,08,37,143,34,10,20,279,37*7A
+$GPGSV,3,2,12,11,12,107,00,13,28,031,41,15,06,216,00,17,85,035,52*7C
+$GPGSV,3,3,12,25,24,086,42,26,13,214,00,27,34,105,35,28,35,183,45*75
+$GPRMC,173032,A,0643.8298,S,03708.9267,W,008.8,278.3,030208,,,A*70
+$GPVTG,278.3,T,,M,008.8,N,016.4,K,A*00
+$GPGGA,173047,0643.8079,S,03708.9741,W,1,06,01.2,00245.2,M,-011.9,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,002,34,08,37,143,36,10,20,280,40*7F
+$GPGSV,3,2,12,11,12,107,00,13,28,031,41,15,06,216,00,17,85,036,53*7E
+$GPGSV,3,3,12,25,24,086,41,26,13,214,00,27,33,105,39,28,35,182,42*7B
+$GPRMC,173047,A,0643.8079,S,03708.9741,W,011.0,284.4,030208,,,A*7A
+$GPVTG,284.4,T,,M,011.0,N,020.3,K,A*06
+$GPGGA,173102,0643.7860,S,03709.0139,W,1,05,01.5,00244.3,M,-012.0,M,,*6B
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.5,01.9*0E
+$GPGSV,3,1,12,02,04,331,00,04,21,002,33,08,37,142,44,10,20,280,38*73
+$GPGSV,3,2,12,11,12,107,00,13,28,031,39,15,06,216,00,17,85,037,54*77
+$GPGSV,3,3,12,25,24,086,51,26,14,214,00,27,33,104,45,28,35,182,34*76
+$GPRMC,173102,A,0643.7860,S,03709.0139,W,010.7,310.1,030208,,,A*7B
+$GPVTG,310.1,T,,M,010.7,N,019.9,K,A*09
+$GPGGA,173117,0643.7497,S,03709.0234,W,1,06,01.2,00243.9,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,002,45,08,37,142,41,10,20,280,36*79
+$GPGSV,3,2,12,11,12,108,00,13,28,031,40,15,06,216,00,17,85,038,52*7F
+$GPGSV,3,3,12,25,24,086,34,26,14,214,00,27,33,104,40,28,35,182,40*73
+$GPRMC,173117,A,0643.7497,S,03709.0234,W,010.9,000.2,030208,,,A*7A
+$GPVTG,000.2,T,,M,010.9,N,020.3,K,A*06
+$GPGGA,173132,0643.7075,S,03709.0583,W,1,06,01.2,00244.2,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,21,003,42,08,37,142,41,10,20,280,40*7E
+$GPGSV,3,2,12,11,12,108,00,13,28,031,41,15,06,216,00,17,85,039,51*7C
+$GPGSV,3,3,12,25,24,086,50,26,14,214,00,27,33,104,36,28,35,182,31*76
+$GPRMC,173132,A,0643.7075,S,03709.0583,W,014.6,304.7,030208,,,A*77
+$GPVTG,304.7,T,,M,014.6,N,027.2,K,A*09
+$GPGGA,173147,0643.7076,S,03709.1025,W,1,06,01.2,00243.8,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,22,003,43,08,37,142,33,10,20,280,46*7F
+$GPGSV,3,2,12,11,12,108,00,13,28,030,52,15,06,216,00,17,85,040,51*71
+$GPGSV,3,3,12,25,24,086,42,26,14,214,00,27,33,104,36,28,35,182,49*7A
+$GPRMC,173147,A,0643.7076,S,03709.1025,W,009.6,266.4,030208,,,A*74
+$GPVTG,266.4,T,,M,009.6,N,017.8,K,A*0A
+$GPGGA,173202,0643.7149,S,03709.1412,W,1,06,01.2,00242.6,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,22,003,37,08,37,142,47,10,20,280,40*79
+$GPGSV,3,2,12,11,12,108,00,13,28,030,38,15,06,216,00,17,85,041,51*7C
+$GPGSV,3,3,12,25,24,085,35,26,14,214,00,27,33,104,32,28,35,182,50*75
+$GPRMC,173202,A,0643.7149,S,03709.1412,W,012.9,256.4,030208,,,A*7D
+$GPVTG,256.4,T,,M,012.9,N,023.8,K,A*0B
+$GPGGA,173217,0643.7244,S,03709.1753,W,1,06,01.2,00240.7,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,331,00,04,22,003,41,08,37,142,36,10,20,280,42*7C
+$GPGSV,3,2,12,11,12,108,00,13,28,030,51,15,06,216,00,17,85,043,52*72
+$GPGSV,3,3,12,25,24,085,38,26,14,214,00,27,33,104,43,28,35,182,51*7F
+$GPRMC,173217,A,0643.7244,S,03709.1753,W,008.1,257.1,030208,,,A*76
+$GPVTG,257.1,T,,M,008.1,N,015.1,K,A*00
+$GPGGA,173232,0643.7410,S,03709.2211,W,1,06,01.2,00238.0,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,332,00,04,22,003,34,08,37,142,33,10,20,280,40*7A
+$GPGSV,3,2,12,11,12,108,00,13,27,030,50,15,06,216,00,17,85,044,51*78
+$GPGSV,3,3,12,25,24,085,35,26,14,214,00,27,33,104,45,28,35,182,51*74
+$GPRMC,173232,A,0643.7410,S,03709.2211,W,014.6,253.9,030208,,,A*70
+$GPVTG,253.9,T,,M,014.6,N,027.1,K,A*07
+$GPGGA,173247,0643.7563,S,03709.2791,W,1,06,01.2,00236.3,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,332,00,04,22,003,38,08,37,142,34,10,20,281,36*71
+$GPGSV,3,2,12,11,12,108,00,13,27,030,50,15,06,216,00,17,85,045,51*79
+$GPGSV,3,3,12,25,24,085,40,26,14,214,00,27,33,103,45,28,35,182,51*71
+$GPRMC,173247,A,0643.7563,S,03709.2791,W,013.5,258.0,030208,,,A*7C
+$GPVTG,258.0,T,,M,013.5,N,025.0,K,A*02
+$GPGGA,173302,0643.7680,S,03709.3313,W,1,06,01.2,00235.7,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.2,01.9*0B
+$GPGSV,3,1,12,02,04,332,00,04,22,003,35,08,37,141,36,10,20,281,36*7D
+$GPGSV,3,2,12,11,12,108,00,13,27,030,46,15,06,216,00,17,86,047,52*7C
+$GPGSV,3,3,12,25,24,085,33,26,14,214,00,27,33,103,43,28,35,181,51*70
+$GPRMC,173302,A,0643.7680,S,03709.3313,W,013.3,252.2,030208,,,A*73
+$GPVTG,252.2,T,,M,013.3,N,024.7,K,A*0A
+$GPGGA,173317,0643.7799,S,03709.3874,W,1,06,01.3,00234.4,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,04,332,00,04,22,003,34,08,37,141,41,10,20,281,44*79
+$GPGSV,3,2,12,11,12,108,00,13,27,030,48,15,07,216,00,17,86,048,50*7E
+$GPGSV,3,3,12,25,24,085,39,26,14,214,00,27,33,103,41,28,34,181,50*78
+$GPRMC,173317,A,0643.7799,S,03709.3874,W,014.3,263.2,030208,,,A*71
+$GPVTG,263.2,T,,M,014.3,N,026.6,K,A*0C
+$GPGGA,173332,0643.7821,S,03709.4517,W,1,06,01.3,00232.0,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,04,332,00,04,22,003,41,08,37,141,34,10,20,281,42*7F
+$GPGSV,3,2,12,11,12,108,00,13,27,030,39,15,07,216,00,17,86,050,51*70
+$GPGSV,3,3,12,25,24,085,41,26,14,214,00,27,33,103,42,28,34,181,51*75
+$GPRMC,173332,A,0643.7821,S,03709.4517,W,014.8,274.2,030208,,,A*78
+$GPVTG,274.2,T,,M,014.8,N,027.4,K,A*02
+$GPGGA,173347,0643.7745,S,03709.5096,W,1,06,01.3,00231.2,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,04,332,00,04,22,003,34,08,38,141,34,10,20,281,39*7E
+$GPGSV,3,2,12,11,12,109,00,13,27,030,40,15,07,216,00,17,86,051,51*7E
+$GPGSV,3,3,12,25,24,085,42,26,15,214,00,27,33,103,40,28,34,181,51*75
+$GPRMC,173347,A,0643.7745,S,03709.5096,W,013.5,279.0,030208,,,A*7F
+$GPVTG,279.0,T,,M,013.5,N,025.1,K,A*00
+$GPGGA,173402,0643.7715,S,03709.5556,W,1,06,01.3,00227.3,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,04,332,00,04,22,003,41,08,38,141,32,10,20,281,39*7A
+$GPGSV,3,2,12,11,12,109,00,13,27,030,42,15,07,216,00,17,86,053,52*7D
+$GPGSV,3,3,12,25,24,084,40,26,15,214,00,27,33,103,43,28,34,181,50*74
+$GPRMC,173402,A,0643.7715,S,03709.5556,W,010.1,274.9,030208,,,A*76
+$GPVTG,274.9,T,,M,010.1,N,018.7,K,A*0B
+$GPGGA,173417,0643.7723,S,03709.6061,W,1,06,01.3,00226.6,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,04,332,00,04,22,004,34,08,38,141,45,10,20,281,36*70
+$GPGSV,3,2,12,11,12,109,00,13,27,030,42,15,07,216,00,17,86,054,52*7A
+$GPGSV,3,3,12,25,24,084,41,26,15,214,00,27,33,103,42,28,34,181,41*74
+$GPRMC,173417,A,0643.7723,S,03709.6061,W,017.0,297.6,030208,,,A*71
+$GPVTG,297.6,T,,M,017.0,N,031.5,K,A*06
+$GPGGA,173432,0643.7376,S,03709.6572,W,1,06,01.3,00225.7,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,04,332,00,04,22,004,36,08,38,141,35,10,20,281,43*77
+$GPGSV,3,2,12,11,12,109,00,13,27,030,35,15,07,216,00,17,86,056,52*78
+$GPGSV,3,3,12,25,24,084,38,26,15,214,00,27,33,102,41,28,34,181,36*78
+$GPRMC,173432,A,0643.7376,S,03709.6572,W,014.2,301.9,030208,,,A*75
+$GPVTG,301.9,T,,M,014.2,N,026.4,K,A*01
+$GPGGA,173447,0643.6961,S,03709.7004,W,1,06,01.3,00227.1,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,05,332,00,04,22,004,36,08,38,140,33,10,20,282,37*71
+$GPGSV,3,2,12,11,12,109,00,13,26,030,35,15,07,216,00,17,86,058,51*74
+$GPGSV,3,3,12,25,24,084,45,26,15,214,00,27,33,102,45,28,34,181,39*79
+$GPRMC,173447,A,0643.6961,S,03709.7004,W,016.4,316.3,030208,,,A*77
+$GPVTG,316.3,T,,M,016.4,N,030.5,K,A*0F
+$GPGGA,173502,0643.6643,S,03709.7288,W,1,05,01.6,00227.8,M,-012.0,M,,*62
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.6,01.9*0D
+$GPGSV,3,1,12,02,05,332,00,04,22,004,32,08,38,140,35,10,20,282,45*76
+$GPGSV,3,2,12,11,12,109,00,13,26,030,34,15,07,216,00,17,86,060,52*7D
+$GPGSV,3,3,12,25,24,084,44,26,15,214,00,27,33,102,46,28,34,181,40*75
+$GPRMC,173502,A,0643.6643,S,03709.7288,W,007.8,310.0,030208,,,A*77
+$GPVTG,310.0,T,,M,007.8,N,014.4,K,A*01
+$GPGGA,173517,0643.6537,S,03709.7604,W,1,06,01.3,00229.0,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,01.9*0A
+$GPGSV,3,1,12,02,05,332,00,04,22,004,34,08,38,140,42,10,20,282,46*73
+$GPGSV,3,2,12,11,12,109,00,13,26,030,47,15,07,217,00,17,86,062,51*79
+$GPGSV,3,3,12,25,24,084,38,26,15,214,00,27,33,102,42,28,34,180,49*72
+$GPRMC,173517,A,0643.6537,S,03709.7604,W,009.7,260.6,030208,,,A*72
+$GPVTG,260.6,T,,M,009.7,N,018.0,K,A*08
+$GPGGA,173532,0643.6476,S,03709.7925,W,1,06,01.3,00231.2,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.3,01.3,02.0*00
+$GPGSV,3,1,12,02,05,332,00,04,22,004,33,08,38,140,35,10,20,282,46*74
+$GPGSV,3,2,12,11,12,109,00,13,26,030,38,15,07,217,00,17,86,063,52*73
+$GPGSV,3,3,12,25,24,084,47,26,15,214,00,27,33,102,42,28,34,180,36*72
+$GPRMC,173532,A,0643.6476,S,03709.7925,W,008.4,299.6,030208,,,A*79
+$GPVTG,299.6,T,,M,008.4,N,015.5,K,A*04
+$GPGGA,173547,0643.6165,S,03709.8416,W,1,06,01.3,00232.8,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,22,004,33,08,38,140,47,10,20,282,43*75
+$GPGSV,3,2,12,11,12,109,00,13,26,030,41,15,07,217,00,17,86,065,50*79
+$GPGSV,3,3,12,25,24,084,36,26,15,214,00,27,33,102,42,28,34,180,45*70
+$GPRMC,173547,A,0643.6165,S,03709.8416,W,017.9,293.2,030208,,,A*73
+$GPVTG,293.2,T,,M,017.9,N,033.1,K,A*09
+$GPGGA,173602,0643.5874,S,03709.9036,W,1,06,01.3,00245.6,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,004,39,08,38,140,35,10,20,282,42*7A
+$GPGSV,3,2,12,11,12,109,00,13,26,030,46,15,08,217,00,17,86,068,51*7D
+$GPGSV,3,3,12,25,24,083,42,26,15,214,00,27,33,101,42,28,34,180,47*75
+$GPRMC,173602,A,0643.5874,S,03709.9036,W,018.4,284.8,030208,,,A*72
+$GPVTG,284.8,T,,M,018.4,N,034.0,K,A*01
+$GPGGA,173617,0643.5771,S,03709.9444,W,1,05,01.6,00248.9,M,-012.0,M,,*66
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.5,01.6,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,004,31,08,38,140,47,10,20,282,44*71
+$GPGSV,3,2,12,11,12,110,00,13,26,030,43,15,08,217,00,17,86,070,52*7A
+$GPGSV,3,3,12,25,24,083,33,26,15,214,00,27,33,101,36,28,34,180,48*7F
+$GPRMC,173617,A,0643.5771,S,03709.9444,W,010.1,289.6,030208,,,A*73
+$GPVTG,289.6,T,,M,010.1,N,018.8,K,A*09
+$GPGGA,173632,0643.5551,S,03709.9936,W,1,06,01.3,00248.0,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,004,35,08,38,139,39,10,20,282,43*75
+$GPGSV,3,2,12,11,12,110,00,13,26,030,40,15,08,217,00,17,86,072,51*78
+$GPGSV,3,3,12,25,24,083,40,26,16,214,00,27,33,101,43,28,34,180,46*74
+$GPRMC,173632,A,0643.5551,S,03709.9936,W,012.1,294.1,030208,,,A*75
+$GPVTG,294.1,T,,M,012.1,N,022.5,K,A*04
+$GPGGA,173647,0643.5468,S,03710.0354,W,1,06,01.3,00242.4,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,004,34,08,38,139,48,10,20,283,46*76
+$GPGSV,3,2,12,11,12,110,00,13,26,030,39,15,08,217,00,17,86,074,52*73
+$GPGSV,3,3,12,25,24,083,36,26,16,214,00,27,33,101,35,28,34,180,45*77
+$GPRMC,173647,A,0643.5468,S,03710.0354,W,008.1,289.3,030208,,,A*76
+$GPVTG,289.3,T,,M,008.1,N,015.0,K,A*00
+$GPGGA,173702,0643.5359,S,03710.0757,W,1,06,01.3,00242.4,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,005,37,08,38,139,46,10,20,283,44*78
+$GPGSV,3,2,12,11,12,110,00,13,26,030,44,15,08,217,00,17,86,076,50*79
+$GPGSV,3,3,12,25,23,083,41,26,16,214,00,27,33,101,41,28,34,180,50*77
+$GPRMC,173702,A,0643.5359,S,03710.0757,W,012.3,289.6,030208,,,A*78
+$GPVTG,289.6,T,,M,012.3,N,022.8,K,A*00
+$GPGGA,173717,0643.5273,S,03710.1317,W,1,06,01.3,00241.0,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,005,35,08,38,139,45,10,20,283,45*78
+$GPGSV,3,2,12,11,12,110,00,13,25,030,45,15,08,217,00,17,86,078,51*74
+$GPGSV,3,3,12,25,23,083,45,26,16,214,00,27,33,101,40,28,34,179,49*7C
+$GPRMC,173717,A,0643.5273,S,03710.1317,W,013.6,288.4,030208,,,A*73
+$GPVTG,288.4,T,,M,013.6,N,025.3,K,A*0B
+$GPGGA,173732,0643.5009,S,03710.1925,W,1,06,01.3,00241.5,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,005,34,08,38,139,46,10,20,283,43*7C
+$GPGSV,3,2,12,11,12,110,00,13,25,030,40,15,08,217,00,17,86,080,52*75
+$GPGSV,3,3,12,25,23,083,37,26,16,214,00,27,33,101,36,28,33,179,49*7F
+$GPRMC,173732,A,0643.5009,S,03710.1925,W,017.4,289.7,030208,,,A*74
+$GPVTG,289.7,T,,M,017.4,N,032.3,K,A*09
+$GPGGA,173747,0643.4880,S,03710.2377,W,1,06,01.3,00240.0,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,005,40,08,38,139,32,10,20,283,39*71
+$GPGSV,3,2,12,11,12,110,00,13,25,030,38,15,08,217,00,17,86,083,52*79
+$GPGSV,3,3,12,25,23,083,35,26,16,214,00,27,33,100,35,28,33,179,50*77
+$GPRMC,173747,A,0643.4880,S,03710.2377,W,012.6,284.6,030208,,,A*7B
+$GPVTG,284.6,T,,M,012.6,N,023.3,K,A*02
+$GPGGA,173802,0643.4901,S,03710.2924,W,1,06,01.3,00238.9,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,005,41,08,38,139,39,10,20,283,42*77
+$GPGSV,3,2,12,11,12,110,00,13,25,030,51,15,08,217,00,17,86,085,49*7A
+$GPGSV,3,3,12,25,23,082,41,26,16,214,00,27,33,100,44,28,33,179,47*75
+$GPRMC,173802,A,0643.4901,S,03710.2924,W,015.7,260.4,030208,,,A*7F
+$GPVTG,260.4,T,,M,015.7,N,029.2,K,A*07
+$GPGGA,173817,0643.4935,S,03710.3543,W,1,06,01.3,00238.5,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,333,00,04,23,005,35,08,38,138,36,10,20,283,41*79
+$GPGSV,3,2,12,11,11,110,00,13,25,029,45,15,08,217,00,17,86,087,51*7F
+$GPGSV,3,3,12,25,23,082,41,26,16,215,00,27,33,100,41,28,33,179,49*7F
+$GPRMC,173817,A,0643.4935,S,03710.3543,W,016.1,280.8,030208,,,A*77
+$GPVTG,280.8,T,,M,016.1,N,029.9,K,A*0B
+$GPGGA,173832,0643.4738,S,03710.4095,W,1,05,01.6,00228.0,M,-012.0,M,,*61
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.6,01.6,02.0*04
+$GPGSV,3,1,12,02,05,333,00,04,23,005,30,08,38,138,46,10,20,283,44*7E
+$GPGSV,3,2,12,11,11,110,00,13,25,029,35,15,08,217,00,17,86,089,52*75
+$GPGSV,3,3,12,25,23,082,34,26,16,215,00,27,33,100,41,28,33,179,46*72
+$GPRMC,173832,A,0643.4738,S,03710.4095,W,011.8,294.5,030208,,,A*7C
+$GPVTG,294.5,T,,M,011.8,N,021.8,K,A*04
+$GPGGA,173847,0643.4586,S,03710.4641,W,1,05,01.5,00225.8,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,25,,,,,,,,02.6,01.5,02.1*07
+$GPGSV,3,1,12,02,05,334,00,04,23,005,37,08,38,138,46,10,19,284,45*72
+$GPGSV,3,2,12,11,11,111,00,13,25,029,42,15,09,217,00,17,86,091,51*7F
+$GPGSV,3,3,12,25,23,082,35,26,16,215,00,27,33,100,31,28,33,179,50*73
+$GPRMC,173847,A,0643.4586,S,03710.4641,W,016.1,289.4,030208,,,A*75
+$GPVTG,289.4,T,,M,016.1,N,029.9,K,A*0E
+$GPGGA,173902,0643.4359,S,03710.5204,W,1,06,01.3,00227.8,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,334,00,04,23,005,33,08,38,138,47,10,19,284,46*74
+$GPGSV,3,2,12,11,11,111,00,13,25,029,43,15,09,217,00,17,86,094,51*7B
+$GPGSV,3,3,12,25,23,082,40,26,17,215,00,27,33,100,40,28,33,179,51*77
+$GPRMC,173902,A,0643.4359,S,03710.5204,W,014.9,287.4,030208,,,A*71
+$GPVTG,287.4,T,,M,014.9,N,027.7,K,A*0A
+$GPGGA,173917,0643.4248,S,03710.5672,W,1,06,01.3,00229.3,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,05,334,00,04,23,005,40,08,38,138,45,10,19,284,44*70
+$GPGSV,3,2,12,11,11,111,00,13,25,029,45,15,09,217,00,17,86,096,50*7E
+$GPGSV,3,3,12,25,23,082,42,26,17,215,00,27,33,100,40,28,33,179,50*74
+$GPRMC,173917,A,0643.4248,S,03710.5672,W,006.4,289.1,030208,,,A*74
+$GPVTG,289.1,T,,M,006.4,N,011.9,K,A*04
+$GPGGA,173932,0643.4026,S,03710.6168,W,1,06,01.3,00232.1,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,23,005,34,08,38,138,49,10,19,284,45*7D
+$GPGSV,3,2,12,11,11,111,00,13,24,029,41,15,09,217,00,17,86,098,51*74
+$GPGSV,3,3,12,25,23,082,35,26,17,215,00,27,33,099,35,28,33,178,48*7F
+$GPRMC,173932,A,0643.4026,S,03710.6168,W,017.9,288.7,030208,,,A*7C
+$GPVTG,288.7,T,,M,017.9,N,033.3,K,A*04
+$GPGGA,173947,0643.3826,S,03710.6801,W,1,05,01.6,00234.4,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,,,,,,,,02.6,01.6,02.1*04
+$GPGSV,3,1,12,02,06,334,00,04,23,006,35,08,38,138,47,10,19,284,43*77
+$GPGSV,3,2,12,11,11,111,00,13,24,029,40,15,09,217,00,17,86,100,52*76
+$GPGSV,3,3,12,25,23,082,42,26,17,215,00,27,33,099,31,28,33,178,46*75
+$GPRMC,173947,A,0643.3826,S,03710.6801,W,015.8,288.7,030208,,,A*74
+$GPVTG,288.7,T,,M,015.8,N,029.3,K,A*0C
+$GPGGA,174002,0643.3646,S,03710.7334,W,1,06,01.3,00232.9,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,23,006,32,08,38,137,43,10,19,284,39*76
+$GPGSV,3,2,12,11,11,111,00,13,24,029,42,15,09,217,00,17,86,102,48*7D
+$GPGSV,3,3,12,25,23,081,46,26,17,215,00,27,33,099,39,28,33,178,39*72
+$GPRMC,174002,A,0643.3646,S,03710.7334,W,012.2,299.2,030208,,,A*77
+$GPVTG,299.2,T,,M,012.2,N,022.7,K,A*0B
+$GPGGA,174017,0643.3335,S,03710.7856,W,1,06,01.3,00230.3,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,24,006,37,08,38,137,42,10,19,284,45*7E
+$GPGSV,3,2,12,11,11,111,00,13,24,029,40,15,09,217,00,17,86,104,49*78
+$GPGSV,3,3,12,25,23,081,49,26,17,215,00,27,33,099,41,28,33,178,39*72
+$GPRMC,174017,A,0643.3335,S,03710.7856,W,015.0,302.9,030208,,,A*70
+$GPVTG,302.9,T,,M,015.0,N,027.8,K,A*0C
+$GPGGA,174032,0643.2871,S,03710.8410,W,1,06,01.3,00228.5,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,24,006,35,08,38,137,46,10,19,284,46*7B
+$GPGSV,3,2,12,11,11,111,00,13,24,029,39,15,09,217,00,17,86,106,51*7D
+$GPGSV,3,3,12,25,23,081,47,26,17,215,00,27,33,099,42,28,33,178,36*70
+$GPRMC,174032,A,0643.2871,S,03710.8410,W,016.6,305.6,030208,,,A*71
+$GPVTG,305.6,T,,M,016.6,N,030.8,K,A*07
+$GPGGA,174047,0643.2535,S,03710.8939,W,1,06,01.3,00227.7,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,24,006,39,08,38,137,48,10,19,285,39*70
+$GPGSV,3,2,12,11,11,111,00,13,24,029,37,15,09,217,00,17,86,108,52*7E
+$GPGSV,3,3,12,25,23,081,47,26,17,215,00,27,33,099,44,28,33,178,30*70
+$GPRMC,174047,A,0643.2535,S,03710.8939,W,013.9,297.6,030208,,,A*78
+$GPVTG,297.6,T,,M,013.9,N,025.7,K,A*0C
+$GPGGA,174102,0643.2182,S,03710.9426,W,1,06,01.3,00225.8,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,24,006,33,08,38,137,48,10,19,285,42*76
+$GPGSV,3,2,12,11,11,111,00,13,24,029,38,15,09,217,00,17,86,110,52*78
+$GPGSV,3,3,12,25,23,081,49,26,17,215,00,27,33,099,42,28,33,178,32*7A
+$GPRMC,174102,A,0643.2182,S,03710.9426,W,014.7,305.7,030208,,,A*70
+$GPVTG,305.7,T,,M,014.7,N,027.2,K,A*09
+$GPGGA,174117,0643.1921,S,03710.9894,W,1,05,01.7,00225.4,M,-012.0,M,,*67
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,02.7,01.7,02.1*05
+$GPGSV,3,1,12,02,06,334,00,04,24,006,32,08,38,137,48,10,19,285,41*74
+$GPGSV,3,2,12,11,11,112,00,13,24,029,41,15,09,217,00,17,86,111,52*74
+$GPGSV,3,3,12,25,23,081,34,26,17,215,00,27,33,098,39,28,33,178,46*7E
+$GPRMC,174117,A,0643.1921,S,03710.9894,W,013.2,287.3,030208,,,A*7E
+$GPVTG,287.3,T,,M,013.2,N,024.4,K,A*01
+$GPGGA,174132,0643.1817,S,03711.0369,W,1,06,01.3,00225.0,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,24,006,40,08,39,137,43,10,19,285,38*75
+$GPGSV,3,2,12,11,11,112,00,13,24,029,43,15,10,217,00,17,86,113,51*7F
+$GPGSV,3,3,12,25,23,081,43,26,17,215,00,27,33,098,44,28,32,178,49*7A
+$GPRMC,174132,A,0643.1817,S,03711.0369,W,005.9,268.8,030208,,,A*7A
+$GPVTG,268.8,T,,M,005.9,N,011.0,K,A*05
+$GPGGA,174147,0643.1828,S,03711.0901,W,1,06,01.3,00223.6,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.4,01.3,02.0*07
+$GPGSV,3,1,12,02,06,334,00,04,24,006,42,08,39,136,41,10,19,285,42*79
+$GPGSV,3,2,12,11,11,112,00,13,24,029,40,15,10,217,00,17,86,115,41*7B
+$GPGSV,3,3,12,25,23,081,42,26,18,215,00,27,33,098,41,28,32,177,51*77
+$GPRMC,174147,A,0643.1828,S,03711.0901,W,024.0,273.7,030208,,,A*7F
+$GPVTG,273.7,T,,M,024.0,N,044.6,K,A*0C
+$GPGGA,174202,0643.1712,S,03711.2061,W,1,06,01.3,00219.3,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.3,02.0*06
+$GPGSV,3,1,12,02,06,335,00,04,24,006,40,08,39,136,41,10,19,285,41*79
+$GPGSV,3,2,12,11,11,112,00,13,23,029,45,15,10,217,00,17,86,116,47*7C
+$GPGSV,3,3,12,25,23,080,42,26,18,215,00,27,33,098,45,28,32,177,50*73
+$GPRMC,174202,A,0643.1712,S,03711.2061,W,030.5,276.0,030208,,,A*74
+$GPVTG,276.0,T,,M,030.5,N,056.4,K,A*0F
+$GPGGA,174217,0643.1610,S,03711.3291,W,1,06,01.3,00217.4,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.3,02.0*06
+$GPGSV,3,1,12,02,06,335,00,04,24,006,41,08,39,136,36,10,19,285,46*7F
+$GPGSV,3,2,12,11,11,112,00,13,23,029,46,15,10,217,00,17,86,118,52*75
+$GPGSV,3,3,12,25,23,080,41,26,18,215,00,27,33,098,36,28,32,177,48*7D
+$GPRMC,174217,A,0643.1610,S,03711.3291,W,029.1,276.0,030208,,,A*73
+$GPVTG,276.0,T,,M,029.1,N,053.8,K,A*0A
+$GPGGA,174232,0643.1518,S,03711.4382,W,1,06,01.3,00215.5,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.3,02.0*06
+$GPGSV,3,1,12,02,06,335,00,04,24,007,40,08,39,136,38,10,19,285,45*72
+$GPGSV,3,2,12,11,11,112,00,13,23,029,45,15,10,217,00,17,86,119,49*7D
+$GPGSV,3,3,12,25,23,080,43,26,18,215,00,27,33,098,36,28,32,177,50*76
+$GPRMC,174232,A,0643.1518,S,03711.4382,W,020.5,273.0,030208,,,A*73
+$GPVTG,273.0,T,,M,020.5,N,038.0,K,A*07
+$GPGGA,174247,0643.1391,S,03711.5338,W,1,06,01.3,00215.0,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.3,02.0*06
+$GPGSV,3,1,12,02,06,335,00,04,24,007,41,08,39,136,35,10,19,286,44*7C
+$GPGSV,3,2,12,11,11,112,00,13,23,029,40,15,10,217,00,17,86,121,50*7B
+$GPGSV,3,3,12,25,23,080,37,26,18,215,00,27,33,098,33,28,32,177,46*77
+$GPRMC,174247,A,0643.1391,S,03711.5338,W,028.0,274.8,030208,,,A*74
+$GPVTG,274.8,T,,M,028.0,N,052.0,K,A*09
+$GPGGA,174302,0643.1182,S,03711.6048,W,1,06,01.4,00226.7,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.0*01
+$GPGSV,3,1,12,02,06,335,00,04,24,007,42,08,39,136,41,10,19,286,42*7A
+$GPGSV,3,2,12,11,11,112,00,13,23,029,43,15,10,217,00,17,85,122,49*70
+$GPGSV,3,3,12,25,23,080,43,26,18,215,00,27,33,097,44,28,32,177,50*7C
+$GPRMC,174302,A,0643.1182,S,03711.6048,W,014.2,274.5,030208,,,A*73
+$GPVTG,274.5,T,,M,014.2,N,026.3,K,A*09
+$GPGGA,174317,0643.1156,S,03711.6836,W,1,06,01.4,00225.1,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,06,335,00,04,24,007,46,08,39,136,41,10,19,286,42*7E
+$GPGSV,3,2,12,11,11,112,00,13,23,029,45,15,10,217,00,17,85,123,43*7D
+$GPGSV,3,3,12,25,23,080,43,26,18,215,00,27,33,097,44,28,32,177,51*7D
+$GPRMC,174317,A,0643.1156,S,03711.6836,W,022.1,273.9,030208,,,A*72
+$GPVTG,273.9,T,,M,022.1,N,041.0,K,A*06
+$GPGGA,174332,0643.1158,S,03711.7653,W,1,06,01.4,00216.3,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,06,335,00,04,24,007,46,08,39,135,35,10,19,286,42*7E
+$GPGSV,3,2,12,11,11,112,00,13,23,029,46,15,10,218,00,17,85,125,44*70
+$GPGSV,3,3,12,25,23,080,40,26,18,215,00,27,33,097,41,28,32,177,51*7B
+$GPRMC,174332,A,0643.1158,S,03711.7653,W,019.2,274.8,030208,,,A*7A
+$GPVTG,274.8,T,,M,019.2,N,035.6,K,A*0E
+$GPGGA,174347,0643.1088,S,03711.8533,W,1,06,01.4,00212.6,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,06,335,00,04,24,007,36,08,39,135,33,10,19,286,45*78
+$GPGSV,3,2,12,11,11,113,00,13,23,029,33,15,10,218,00,17,85,126,47*73
+$GPGSV,3,3,12,25,23,080,41,26,18,215,00,27,33,097,40,28,32,177,49*72
+$GPRMC,174347,A,0643.1088,S,03711.8533,W,020.8,273.8,030208,,,A*79
+$GPVTG,273.8,T,,M,020.8,N,038.6,K,A*04
+$GPGGA,174402,0643.1076,S,03711.9041,W,1,06,01.4,00199.3,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,06,335,00,04,24,007,37,08,39,135,40,10,19,286,35*7A
+$GPGSV,3,2,12,11,11,113,00,13,23,029,42,15,10,218,00,17,85,127,42*71
+$GPGSV,3,3,12,25,23,080,42,26,18,215,00,27,33,097,43,28,32,176,50*7B
+$GPRMC,174402,A,0643.1076,S,03711.9041,W,010.8,282.6,030208,,,A*7C
+$GPVTG,282.6,T,,M,010.8,N,020.0,K,A*08
+$GPGGA,174417,0643.1111,S,03711.9426,W,1,06,01.4,00213.7,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,335,00,04,25,007,34,08,39,135,35,10,19,286,42*7B
+$GPGSV,3,2,12,11,11,113,00,13,22,029,35,15,11,218,00,17,85,128,45*79
+$GPGSV,3,3,12,25,23,079,42,26,18,215,00,27,33,097,45,28,32,176,50*7B
+$GPRMC,174417,A,0643.1111,S,03711.9426,W,010.2,267.8,030208,,,A*72
+$GPVTG,267.8,T,,M,010.2,N,019.0,K,A*0D
+$GPGGA,174432,0643.1130,S,03711.9745,W,1,06,01.4,00211.3,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,335,00,04,25,007,39,08,39,135,40,10,19,286,41*77
+$GPGSV,3,2,12,11,11,113,00,13,22,029,41,15,11,218,00,17,85,129,49*77
+$GPGSV,3,3,12,25,23,079,41,26,19,215,00,27,33,097,35,28,32,176,49*76
+$GPRMC,174432,A,0643.1130,S,03711.9745,W,000.7,267.5,030208,,,A*79
+$GPVTG,267.5,T,,M,000.7,N,001.3,K,A*0E
+$GPGGA,174447,0643.1123,S,03712.0013,W,1,06,01.4,00209.5,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,335,00,04,25,007,35,08,39,135,35,10,19,287,39*77
+$GPGSV,3,2,12,11,11,113,00,13,22,029,35,15,11,218,00,17,85,130,47*72
+$GPGSV,3,3,12,25,23,079,39,26,19,215,00,27,33,096,40,28,32,176,49*7A
+$GPRMC,174447,A,0643.1123,S,03712.0013,W,006.7,259.9,030208,,,A*70
+$GPVTG,259.9,T,,M,006.7,N,012.4,K,A*0C
+$GPGGA,174502,0643.0911,S,03712.0398,W,1,06,01.4,00215.0,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,335,00,04,25,008,36,08,39,135,33,10,19,287,36*72
+$GPGSV,3,2,12,11,11,113,00,13,22,029,36,15,11,218,00,17,85,131,47*70
+$GPGSV,3,3,12,25,22,079,45,26,19,215,00,27,33,096,41,28,32,176,49*71
+$GPRMC,174502,A,0643.0911,S,03712.0398,W,007.2,280.2,030208,,,A*73
+$GPVTG,280.2,T,,M,007.2,N,013.5,K,A*07
+$GPGGA,174517,0643.0983,S,03712.0707,W,1,06,01.4,00214.9,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,336,00,04,25,008,43,08,39,134,48,10,19,287,39*71
+$GPGSV,3,2,12,11,11,113,00,13,22,029,33,15,11,218,00,17,85,132,51*71
+$GPGSV,3,3,12,25,22,079,39,26,19,215,00,27,33,096,48,28,32,176,51*7A
+$GPRMC,174517,A,0643.0983,S,03712.0707,W,003.5,221.1,030208,,,A*75
+$GPVTG,221.1,T,,M,003.5,N,006.5,K,A*08
+$GPGGA,174532,0643.1131,S,03712.0736,W,1,05,11.0,00215.2,M,-012.0,M,,*62
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,18.2,11.0,14.4*0A
+$GPGSV,3,1,12,02,07,336,00,04,25,008,46,08,39,134,51,10,19,287,31*74
+$GPGSV,3,2,12,11,11,113,00,13,22,029,34,15,11,218,00,17,85,133,51*77
+$GPGSV,3,3,12,25,22,079,46,26,19,216,00,27,33,096,48,28,32,176,51*71
+$GPRMC,174532,A,0643.1131,S,03712.0736,W,000.9,199.6,030208,,,A*78
+$GPVTG,199.6,T,,M,000.9,N,001.7,K,A*05
+$GPGGA,174547,0643.1343,S,03712.0745,W,1,06,01.4,00215.5,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,336,00,04,25,008,36,08,39,134,49,10,19,287,34*7F
+$GPGSV,3,2,12,11,10,113,00,13,22,029,36,15,11,218,00,17,84,134,52*71
+$GPGSV,3,3,12,25,22,079,46,26,19,216,00,27,33,096,48,28,32,176,40*71
+$GPRMC,174547,A,0643.1343,S,03712.0745,W,005.7,145.7,030208,,,A*72
+$GPVTG,145.7,T,,M,005.7,N,010.7,K,A*0E
+$GPGGA,174602,0643.1449,S,03712.0598,W,1,06,01.4,00215.0,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,336,00,04,25,008,45,08,39,134,35,10,19,287,33*77
+$GPGSV,3,2,12,11,10,113,00,13,22,029,34,15,11,218,00,17,84,135,52*72
+$GPGSV,3,3,12,25,22,079,42,26,19,216,00,27,33,096,49,28,31,176,42*75
+$GPRMC,174602,A,0643.1449,S,03712.0598,W,002.2,159.5,030208,,,A*72
+$GPVTG,159.5,T,,M,002.2,N,004.2,K,A*03
+$GPGGA,174617,0643.1530,S,03712.0309,W,1,06,01.4,00214.8,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,336,00,04,25,008,46,08,39,134,35,10,19,287,37*70
+$GPGSV,3,2,12,11,10,113,00,13,22,028,47,15,11,218,00,17,84,136,52*74
+$GPGSV,3,3,12,25,22,078,37,26,19,216,00,27,33,096,47,28,31,175,41*78
+$GPRMC,174617,A,0643.1530,S,03712.0309,W,003.3,129.5,030208,,,A*70
+$GPVTG,129.5,T,,M,003.3,N,006.1,K,A*05
+$GPGGA,174632,0643.1609,S,03712.0182,W,1,06,01.4,00214.7,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.5,01.4,02.1*00
+$GPGSV,3,1,12,02,07,336,00,04,25,008,35,08,39,134,48,10,19,287,34*7D
+$GPGSV,3,2,12,11,10,114,00,13,22,028,36,15,11,218,00,17,84,137,53*75
+$GPGSV,3,3,12,25,22,078,47,26,19,216,00,27,33,095,47,28,31,175,37*7D
+$GPRMC,174632,A,0643.1609,S,03712.0182,W,004.3,148.9,030208,,,A*73
+$GPVTG,148.9,T,,M,004.3,N,008.0,K,A*06
+$GPGGA,174647,0643.1850,S,03712.0180,W,1,05,01.6,00215.8,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.7,01.6,02.1*02
+$GPGSV,3,1,12,02,07,336,00,04,25,008,34,08,39,134,50,10,19,287,46*70
+$GPGSV,3,2,12,11,10,114,00,13,21,028,32,15,11,218,00,17,84,137,53*72
+$GPGSV,3,3,12,25,22,078,35,26,19,216,00,27,33,095,46,28,31,175,41*78
+$GPRMC,174647,A,0643.1850,S,03712.0180,W,008.0,166.3,030208,,,A*78
+$GPVTG,166.3,T,,M,008.0,N,014.9,K,A*0B
+$GPGGA,174702,0643.1894,S,03712.0035,W,1,05,01.6,00216.3,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.7,01.6,02.1*02
+$GPGSV,3,1,12,02,07,336,00,04,25,008,45,08,39,133,41,10,19,288,40*78
+$GPGSV,3,2,12,11,10,114,00,13,21,028,33,15,12,218,00,17,84,138,53*7F
+$GPGSV,3,3,12,25,22,078,34,26,20,216,00,27,33,095,49,28,31,175,32*78
+$GPRMC,174702,A,0643.1894,S,03712.0035,W,000.4,151.0,030208,,,A*74
+$GPVTG,151.0,T,,M,000.4,N,000.7,K,A*0B
+$GPGGA,174717,0643.1900,S,03712.0035,W,1,06,01.4,00217.0,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.6,01.4,02.1*03
+$GPGSV,3,1,12,02,07,336,00,04,25,008,42,08,39,133,38,10,19,288,40*71
+$GPGSV,3,2,12,11,10,114,00,13,21,028,34,15,12,218,00,17,84,139,52*78
+$GPGSV,3,3,12,25,22,078,33,26,20,216,00,27,33,095,47,28,31,175,32*71
+$GPRMC,174717,A,0643.1900,S,03712.0035,W,001.1,199.7,030208,,,A*7B
+$GPVTG,199.7,T,,M,001.1,N,002.1,K,A*08
+$GPGGA,174732,0643.1923,S,03712.0061,W,1,05,01.6,00217.4,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.7,01.6,02.1*02
+$GPGSV,3,1,12,02,07,336,00,04,25,008,45,08,39,133,43,10,19,288,36*7B
+$GPGSV,3,2,12,11,10,114,00,13,21,028,32,15,12,218,00,17,84,140,54*76
+$GPGSV,3,3,12,25,22,078,39,26,20,216,00,27,33,095,48,28,31,175,32*74
+$GPRMC,174732,A,0643.1923,S,03712.0061,W,000.2,234.9,030208,,,A*74
+$GPVTG,234.9,T,,M,000.2,N,000.4,K,A*07
+$GPGGA,174747,0643.1921,S,03712.0082,W,1,06,01.4,00217.2,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.6,01.4,02.1*03
+$GPGSV,3,1,12,02,07,336,00,04,25,009,38,08,39,133,42,10,19,288,41*71
+$GPGSV,3,2,12,11,10,114,00,13,21,028,36,15,12,218,00,17,84,140,54*72
+$GPGSV,3,3,12,25,22,078,45,26,20,216,00,27,33,095,48,28,31,175,37*7A
+$GPRMC,174747,A,0643.1921,S,03712.0082,W,001.6,272.8,030208,,,A*7F
+$GPVTG,272.8,T,,M,001.6,N,002.9,K,A*0E
+$GPGGA,174802,0643.1871,S,03712.0093,W,1,06,01.4,00217.4,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.6,01.4,02.1*03
+$GPGSV,3,1,12,02,07,336,00,04,25,009,36,08,39,133,46,10,19,288,43*79
+$GPGSV,3,2,12,11,10,114,00,13,21,028,36,15,12,218,00,17,83,141,55*75
+$GPGSV,3,3,12,25,22,078,42,26,20,216,00,27,33,095,50,28,31,175,43*77
+$GPRMC,174802,A,0643.1871,S,03712.0093,W,000.4,272.0,030208,,,A*7E
+$GPVTG,272.0,T,,M,000.4,N,000.8,K,A*06
+$GPGGA,174817,0643.1854,S,03712.0084,W,1,04,07.3,00218.1,M,-012.0,M,,*67
+$GPGSA,A,3,10,17,25,27,,,,,,,,,08.4,07.3,04.1*0A
+$GPGSV,3,1,12,02,07,336,00,04,25,009,30,08,39,133,40,10,19,288,42*78
+$GPGSV,3,2,12,11,10,114,00,13,21,028,31,15,12,218,00,17,83,141,55*72
+$GPGSV,3,3,12,25,22,077,42,26,20,216,00,27,33,094,41,28,31,175,46*7C
+$GPRMC,174817,A,0643.1854,S,03712.0084,W,002.1,229.3,030208,,,A*71
+$GPVTG,229.3,T,,M,002.1,N,004.0,K,A*00
+$GPGGA,174832,0643.1921,S,03712.0084,W,1,05,01.6,00217.5,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.7,01.6,02.1*02
+$GPGSV,3,1,12,02,07,337,00,04,26,009,35,08,39,133,42,10,19,288,45*7A
+$GPGSV,3,2,12,11,10,114,00,13,21,028,32,15,12,218,00,17,83,142,52*75
+$GPGSV,3,3,12,25,22,077,44,26,20,216,00,27,33,094,40,28,31,174,46*7A
+$GPRMC,174832,A,0643.1921,S,03712.0084,W,000.6,188.7,030208,,,A*7C
+$GPVTG,188.7,T,,M,000.6,N,001.2,K,A*0E
+$GPGGA,174847,0643.1879,S,03712.0064,W,1,06,01.4,00217.4,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.6,01.4,02.1*03
+$GPGSV,3,1,12,02,08,337,00,04,26,009,36,08,39,132,42,10,19,288,46*74
+$GPGSV,3,2,12,11,10,114,00,13,21,028,34,15,12,218,00,17,83,143,51*71
+$GPGSV,3,3,12,25,22,077,43,26,20,216,00,27,33,094,37,28,31,174,52*78
+$GPRMC,174847,A,0643.1879,S,03712.0064,W,000.5,188.7,030208,,,A*7F
+$GPVTG,188.7,T,,M,000.5,N,001.0,K,A*0F
+$GPGGA,174907,0643.1923,S,03712.0065,W,1,04,07.5,00217.8,M,-012.0,M,,*69
+$GPGSA,A,3,10,17,25,27,,,,,,,,,08.7,07.5,04.3*0D
+$GPGSV,3,1,12,02,08,337,00,04,26,009,30,08,39,132,31,10,19,289,37*71
+$GPGSV,3,2,12,11,10,115,00,13,20,028,26,15,12,218,00,17,83,143,52*71
+$GPGSV,3,3,12,25,22,077,35,26,20,216,00,27,33,094,43,28,31,174,46*7F
+$GPRMC,174907,A,0643.1923,S,03712.0065,W,001.3,188.7,030208,,,A*72
+$GPVTG,188.7,T,,M,001.3,N,002.4,K,A*0F
+$GPGGA,174922,0643.1797,S,03712.0054,W,1,06,01.4,00218.6,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.6,01.4,02.2*00
+$GPGSV,3,1,12,02,08,337,00,04,26,009,34,08,39,132,39,10,19,289,43*7E
+$GPGSV,3,2,12,11,10,115,00,13,20,028,36,15,12,218,00,17,83,144,52*77
+$GPGSV,3,3,12,25,22,077,45,26,20,216,00,27,33,094,46,28,31,174,51*7B
+$GPRMC,174922,A,0643.1797,S,03712.0054,W,002.9,188.7,030208,,,A*7F
+$GPVTG,188.7,T,,M,002.9,N,005.5,K,A*00
+$GPGGA,174937,0643.1793,S,03712.0043,W,1,05,01.6,00219.3,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.7,01.6,02.2*01
+$GPGSV,3,1,12,02,08,337,00,04,26,009,34,08,40,132,34,10,19,289,41*7F
+$GPGSV,3,2,12,11,10,115,00,13,20,028,30,15,12,218,00,17,83,144,51*72
+$GPGSV,3,3,12,25,22,077,40,26,20,216,00,27,33,094,48,28,31,174,49*79
+$GPRMC,174937,A,0643.1793,S,03712.0043,W,002.7,188.6,030208,,,A*76
+$GPVTG,188.6,T,,M,002.7,N,005.0,K,A*0A
+$GPGGA,174952,0643.1803,S,03712.0036,W,1,05,01.6,00220.7,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.7,01.6,02.2*01
+$GPGSV,3,1,12,02,08,337,00,04,26,009,34,08,40,132,35,10,19,289,45*7A
+$GPGSV,3,2,12,11,10,115,00,13,20,028,32,15,13,218,00,17,83,145,52*73
+$GPGSV,3,3,12,25,22,077,36,26,21,216,00,27,33,093,37,28,31,174,50*7E
+$GPRMC,174952,A,0643.1803,S,03712.0036,W,001.9,187.9,030208,,,A*7C
+$GPVTG,187.9,T,,M,001.9,N,003.5,K,A*04
+$GPGGA,175012,0643.1851,S,03712.0023,W,1,05,01.7,00216.3,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.8,01.7,02.2*0F
+$GPGSV,3,1,12,02,08,337,00,04,26,009,35,08,40,132,41,10,19,289,34*7E
+$GPGSV,3,2,12,11,10,115,00,13,20,028,29,15,13,218,00,17,82,146,52*7B
+$GPGSV,3,3,12,25,22,077,42,26,21,216,00,27,33,093,35,28,31,174,50*7F
+$GPRMC,175012,A,0643.1851,S,03712.0023,W,000.3,187.9,030208,,,A*78
+$GPVTG,187.9,T,,M,000.3,N,000.6,K,A*0F
+$GPGGA,175027,0643.1825,S,03712.0023,W,1,05,01.9,00213.8,M,-012.0,M,,*69
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,03.1,01.9,02.4*09
+$GPGSV,3,1,12,02,08,337,00,04,26,009,28,08,40,131,33,10,19,289,39*79
+$GPGSV,3,2,12,11,10,115,00,13,20,028,34,15,13,219,00,17,82,146,52*76
+$GPGSV,3,3,12,25,22,076,36,26,21,216,00,27,33,093,42,28,30,174,48*75
+$GPRMC,175027,A,0643.1825,S,03712.0023,W,001.2,187.9,030208,,,A*7D
+$GPVTG,187.9,T,,M,001.2,N,002.2,K,A*09
+$GPGGA,175042,0643.1804,S,03712.0015,W,1,04,08.0,00215.2,M,-012.0,M,,*61
+$GPGSA,A,3,10,17,25,27,,,,,,,,,09.4,08.0,04.8*0E
+$GPGSV,3,1,12,02,08,337,00,04,26,010,27,08,40,131,36,10,19,289,41*74
+$GPGSV,3,2,12,11,10,115,00,13,20,028,33,15,13,219,00,17,82,147,53*71
+$GPGSV,3,3,12,25,22,076,41,26,21,216,00,27,33,093,40,28,30,174,48*77
+$GPRMC,175042,A,0643.1804,S,03712.0015,W,000.8,187.9,030208,,,A*73
+$GPVTG,187.9,T,,M,000.8,N,001.6,K,A*05
+$GPGGA,175057,0643.1836,S,03712.0005,W,1,04,02.0,00214.8,M,-012.0,M,,*64
+$GPGSA,A,2,04,17,25,27,,,,,,,,,02.2,02.0,00.9*08
+$GPGSV,3,1,12,02,08,337,00,04,26,010,46,08,40,131,35,10,19,290,34*7A
+$GPGSV,3,2,12,11,10,115,00,13,20,028,34,15,13,219,00,17,82,147,55*70
+$GPGSV,3,3,12,25,22,076,41,26,21,216,00,27,33,093,41,28,30,173,39*77
+$GPRMC,175057,A,0643.1836,S,03712.0005,W,000.9,183.8,030208,,,A*73
+$GPVTG,183.8,T,,M,000.9,N,001.8,K,A*0F
+$GPGGA,175112,0643.1781,S,03712.0075,W,1,04,02.0,00215.2,M,-012.0,M,,*6B
+$GPGSA,A,2,04,17,25,27,,,,,,,,,02.2,02.0,00.9*08
+$GPGSV,3,1,12,02,08,337,00,04,26,010,37,08,40,131,32,10,19,290,31*7E
+$GPGSV,3,2,12,11,10,115,00,13,20,028,32,15,13,219,00,17,82,147,55*76
+$GPGSV,3,3,12,25,22,076,45,26,21,217,00,27,33,093,42,28,30,173,45*7A
+$GPRMC,175112,A,0643.1781,S,03712.0075,W,001.7,271.3,030208,,,A*7D
+$GPVTG,271.3,T,,M,001.7,N,003.2,K,A*0D
+$GPGGA,175127,0643.1770,S,03712.0124,W,1,06,01.5,00215.3,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.7,01.5,02.2*00
+$GPGSV,3,1,12,02,08,337,00,04,26,010,40,08,40,131,37,10,19,290,35*7F
+$GPGSV,3,2,12,11,10,115,00,13,19,028,35,15,13,219,00,17,82,148,51*70
+$GPGSV,3,3,12,25,22,076,35,26,21,217,00,27,33,093,46,28,30,173,46*7A
+$GPRMC,175127,A,0643.1770,S,03712.0124,W,000.7,269.9,030208,,,A*72
+$GPVTG,269.9,T,,M,000.7,N,001.3,K,A*0C
+$GPGGA,175142,0643.1556,S,03712.0093,W,1,06,01.5,00215.6,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.7,01.5,02.2*00
+$GPGSV,3,1,12,02,08,338,00,04,26,010,35,08,40,131,35,10,19,290,34*71
+$GPGSV,3,2,12,11,10,116,00,13,19,028,39,15,13,219,00,17,82,148,52*7C
+$GPGSV,3,3,12,25,22,076,41,26,21,217,00,27,33,092,42,28,30,173,34*79
+$GPRMC,175142,A,0643.1556,S,03712.0093,W,002.7,012.2,030208,,,A*7D
+$GPVTG,012.2,T,,M,002.7,N,005.1,K,A*0D
+$GPGGA,175157,0643.1588,S,03711.9837,W,1,06,01.5,00215.0,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.7,01.5,02.2*00
+$GPGSV,3,1,12,02,08,338,00,04,26,010,47,08,40,131,42,10,19,290,38*78
+$GPGSV,3,2,12,11,10,116,00,13,19,028,39,15,13,219,00,17,82,149,54*7B
+$GPGSV,3,3,12,25,22,076,45,26,21,217,00,27,33,092,47,28,30,173,30*7C
+$GPRMC,175157,A,0643.1588,S,03711.9837,W,007.0,104.2,030208,,,A*72
+$GPVTG,104.2,T,,M,007.0,N,013.1,K,A*0E
+$GPGGA,175212,0643.1664,S,03711.9658,W,1,04,01.8,00214.9,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,27,,,,,,,,,03.1,01.8,02.6*0B
+$GPGSV,3,1,12,02,08,338,00,04,26,010,46,08,40,130,38,10,19,290,36*7B
+$GPGSV,3,2,12,11,10,116,00,13,19,028,34,15,13,219,00,17,81,149,54*75
+$GPGSV,3,3,12,25,21,076,34,26,21,217,00,27,33,092,36,28,30,173,35*7A
+$GPRMC,175212,A,0643.1664,S,03711.9658,W,004.8,119.2,030208,,,A*71
+$GPVTG,119.2,T,,M,004.8,N,009.0,K,A*03
+$GPGGA,175227,0643.1482,S,03711.9551,W,1,04,02.1,00215.0,M,-012.0,M,,*64
+$GPGSA,A,2,13,17,25,27,,,,,,,,,02.3,02.1,00.9*0E
+$GPGSV,3,1,12,02,08,338,00,04,27,010,32,08,40,130,48,10,19,290,31*79
+$GPGSV,3,2,12,11,09,116,00,13,19,028,45,15,13,219,00,17,81,149,52*7D
+$GPGSV,3,3,12,25,21,075,33,26,22,217,00,27,33,092,36,28,30,173,34*7C
+$GPRMC,175227,A,0643.1482,S,03711.9551,W,008.8,358.5,030208,,,A*7B
+$GPVTG,358.5,T,,M,008.8,N,016.4,K,A*05
+$GPGGA,175247,0643.1240,S,03711.9439,W,1,04,02.1,00215.1,M,-012.0,M,,*64
+$GPGSA,A,2,04,13,17,27,,,,,,,,,02.3,02.1,00.9*0D
+$GPGSV,3,1,12,02,09,338,00,04,27,010,34,08,40,130,47,10,19,290,31*71
+$GPGSV,3,2,12,11,09,116,00,13,19,028,41,15,14,219,00,17,81,150,52*76
+$GPGSV,3,3,12,25,21,075,32,26,22,217,00,27,33,092,45,28,30,173,45*7F
+$GPRMC,175247,A,0643.1240,S,03711.9439,W,006.8,008.1,030208,,,A*76
+$GPVTG,008.1,T,,M,006.8,N,012.6,K,A*0F
+$GPGGA,175302,0643.1061,S,03711.9548,W,1,06,01.5,00210.5,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.7,01.5,02.2*00
+$GPGSV,3,1,12,02,09,338,00,04,27,010,46,08,40,130,35,10,19,291,38*79
+$GPGSV,3,2,12,11,09,116,00,13,19,028,40,15,14,219,00,17,81,150,50*75
+$GPGSV,3,3,12,25,21,075,42,26,22,217,00,27,33,092,33,28,30,173,51*7C
+$GPRMC,175302,A,0643.1061,S,03711.9548,W,010.6,268.8,030208,,,A*74
+$GPVTG,268.8,T,,M,010.6,N,019.7,K,A*01
+$GPGGA,175317,0643.1108,S,03711.9833,W,1,06,01.5,00205.8,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.7,01.5,02.2*00
+$GPGSV,3,1,12,02,09,338,00,04,27,011,47,08,40,130,33,10,19,291,41*71
+$GPGSV,3,2,12,11,09,116,00,13,19,028,37,15,14,219,00,17,81,150,49*7D
+$GPGSV,3,3,12,25,21,075,38,26,22,217,00,27,33,092,39,28,30,172,51*7A
+$GPRMC,175317,A,0643.1108,S,03711.9833,W,006.5,267.7,030208,,,A*7B
+$GPVTG,267.7,T,,M,006.5,N,012.2,K,A*0B
+$GPGGA,175332,0643.1108,S,03712.0128,W,1,05,01.7,00202.7,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.8,01.7,02.2*0F
+$GPGSV,3,1,12,02,09,338,00,04,27,011,40,08,40,130,41,10,19,291,34*71
+$GPGSV,3,2,12,11,09,116,00,13,19,028,32,15,14,219,00,17,81,151,52*73
+$GPGSV,3,3,12,25,21,075,44,26,22,217,00,27,33,091,40,28,30,172,38*73
+$GPRMC,175332,A,0643.1108,S,03712.0128,W,009.3,276.4,030208,,,A*7F
+$GPVTG,276.4,T,,M,009.3,N,017.3,K,A*05
+$GPGGA,175347,0643.0945,S,03712.0468,W,1,06,01.5,00203.7,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.7,01.5,02.2*00
+$GPGSV,3,1,12,02,09,338,00,04,27,011,43,08,40,129,36,10,19,291,39*77
+$GPGSV,3,2,12,11,09,116,00,13,18,028,32,15,14,219,00,17,81,151,49*78
+$GPGSV,3,3,12,25,21,075,43,26,22,217,00,27,33,091,41,28,30,172,42*78
+$GPRMC,175347,A,0643.0945,S,03712.0468,W,005.8,266.5,030208,,,A*7B
+$GPVTG,266.5,T,,M,005.8,N,010.8,K,A*0E
+$GPGGA,175402,0643.0910,S,03712.0809,W,1,05,02.1,00202.7,M,-012.0,M,,*68
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,03.3,02.1,02.6*02
+$GPGSV,3,1,12,02,09,338,00,04,27,011,32,08,40,129,41,10,18,291,38*71
+$GPGSV,3,2,12,11,09,116,00,13,18,028,31,15,14,219,00,17,81,151,50*73
+$GPGSV,3,3,12,25,21,075,41,26,22,217,00,27,33,091,38,28,30,172,43*75
+$GPRMC,175402,A,0643.0910,S,03712.0809,W,006.1,288.6,030208,,,A*7F
+$GPVTG,288.6,T,,M,006.1,N,011.4,K,A*0A
+$GPGGA,175417,0643.0898,S,03712.1106,W,1,05,02.1,00202.7,M,-012.0,M,,*6A
+$GPGSA,A,3,10,13,17,25,27,,,,,,,,03.4,02.1,02.6*05
+$GPGSV,3,1,12,02,09,338,00,04,27,011,29,08,40,129,46,10,18,291,36*72
+$GPGSV,3,2,12,11,09,116,00,13,18,028,32,15,14,219,00,17,80,152,49*7A
+$GPGSV,3,3,12,25,21,075,40,26,22,217,00,27,32,091,43,28,30,172,47*7D
+$GPRMC,175417,A,0643.0898,S,03712.1106,W,010.4,262.4,030208,,,A*79
+$GPVTG,262.4,T,,M,010.4,N,019.2,K,A*00
+$GPGGA,175432,0643.0685,S,03712.1323,W,1,05,01.8,00208.6,M,-012.0,M,,*6B
+$GPGSA,A,2,04,13,17,25,27,,,,,,,,02.1,01.8,00.9*02
+$GPGSV,3,1,12,02,09,338,00,04,27,011,36,08,40,129,46,10,18,291,31*7B
+$GPGSV,3,2,12,11,09,117,00,13,18,028,44,15,14,219,00,17,80,152,52*70
+$GPGSV,3,3,12,25,21,074,35,26,22,217,00,27,32,091,42,28,30,172,44*7C
+$GPRMC,175432,A,0643.0685,S,03712.1323,W,007.0,004.4,030208,,,A*79
+$GPVTG,004.4,T,,M,007.0,N,013.1,K,A*09
+$GPGGA,175457,0643.0340,S,03712.1239,W,1,06,01.5,00178.4,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.7,01.5,02.3*01
+$GPGSV,3,1,12,02,09,338,00,04,27,011,36,08,40,129,34,10,18,291,33*7C
+$GPGSV,3,2,12,11,09,117,00,13,18,028,40,15,14,219,00,17,80,152,45*72
+$GPGSV,3,3,12,25,21,074,33,26,22,217,00,27,32,091,36,28,29,172,33*71
+$GPRMC,175457,A,0643.0340,S,03712.1239,W,009.3,007.7,030208,,,A*71
+$GPVTG,007.7,T,,M,009.3,N,017.3,K,A*02
+$GPGGA,175512,0642.9850,S,03712.1171,W,1,05,01.7,00191.6,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.1,01.7,02.6*06
+$GPGSV,3,1,12,02,09,339,00,04,27,011,34,08,40,129,46,10,18,292,36*7C
+$GPGSV,3,2,12,11,09,117,00,13,18,028,42,15,14,219,00,17,80,153,53*76
+$GPGSV,3,3,12,25,21,074,29,26,23,217,00,27,32,090,45,28,29,172,42*78
+$GPRMC,175512,A,0642.9850,S,03712.1171,W,006.7,008.5,030208,,,A*7A
+$GPVTG,008.5,T,,M,006.7,N,012.4,K,A*06
+$GPGGA,175527,0642.9623,S,03712.1092,W,1,05,01.7,00193.5,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.1,01.7,02.6*06
+$GPGSV,3,1,12,02,09,339,00,04,27,011,38,08,40,128,48,10,18,292,38*71
+$GPGSV,3,2,12,11,09,117,00,13,18,028,35,15,15,219,00,17,80,153,52*76
+$GPGSV,3,3,12,25,21,074,29,26,23,217,00,27,32,090,42,28,29,171,38*71
+$GPRMC,175527,A,0642.9623,S,03712.1092,W,004.7,009.6,030208,,,A*7A
+$GPVTG,009.6,T,,M,004.7,N,008.7,K,A*0E
+$GPGGA,175542,0642.9258,S,03712.1045,W,1,06,01.5,00206.4,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.5,02.3*0E
+$GPGSV,3,1,12,02,09,339,00,04,27,011,35,08,40,128,47,10,18,292,39*72
+$GPGSV,3,2,12,11,09,117,00,13,18,028,42,15,15,219,00,17,80,153,52*76
+$GPGSV,3,3,12,25,21,074,36,26,23,217,00,27,32,090,45,28,29,171,45*72
+$GPRMC,175542,A,0642.9258,S,03712.1045,W,007.2,014.2,030208,,,A*75
+$GPVTG,014.2,T,,M,007.2,N,013.4,K,A*09
+$GPGGA,175557,0642.8947,S,03712.0871,W,1,06,01.5,00208.0,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.5,02.3*0E
+$GPGSV,3,1,12,02,09,339,00,04,27,012,42,08,40,128,46,10,18,292,38*71
+$GPGSV,3,2,12,11,09,117,00,13,18,028,35,15,15,219,00,17,80,153,52*76
+$GPGSV,3,3,12,25,21,074,45,26,23,217,00,27,32,090,37,28,29,171,44*72
+$GPRMC,175557,A,0642.8947,S,03712.0871,W,011.4,054.4,030208,,,A*78
+$GPVTG,054.4,T,,M,011.4,N,021.2,K,A*0D
+$GPGGA,175612,0642.8528,S,03712.0439,W,1,06,01.5,00202.9,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.5,02.3*0E
+$GPGSV,3,1,12,02,09,339,00,04,28,012,36,08,40,128,43,10,18,292,41*76
+$GPGSV,3,2,12,11,09,117,00,13,17,028,40,15,15,220,00,17,79,154,52*70
+$GPGSV,3,3,12,25,21,074,36,26,23,217,00,27,32,090,34,28,29,171,33*75
+$GPRMC,175612,A,0642.8528,S,03712.0439,W,017.4,022.2,030208,,,A*7E
+$GPVTG,022.2,T,,M,017.4,N,032.2,K,A*0E
+$GPGGA,175627,0642.7862,S,03712.0124,W,1,06,01.5,00204.3,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.5,02.3*0E
+$GPGSV,3,1,12,02,09,339,00,04,28,012,34,08,40,128,47,10,18,292,45*74
+$GPGSV,3,2,12,11,09,117,00,13,17,028,43,15,15,220,00,17,79,154,52*73
+$GPGSV,3,3,12,25,21,074,38,26,23,218,00,27,32,090,33,28,29,171,47*70
+$GPRMC,175627,A,0642.7862,S,03712.0124,W,015.3,031.3,030208,,,A*7B
+$GPVTG,031.3,T,,M,015.3,N,028.4,K,A*05
+$GPGGA,175647,0642.7139,S,03711.9871,W,1,05,01.8,00212.4,M,-012.0,M,,*63
+$GPGSA,A,2,04,13,17,25,27,,,,,,,,02.1,01.8,00.9*02
+$GPGSV,3,1,12,02,09,339,00,04,28,012,36,08,40,128,48,10,18,292,32*79
+$GPGSV,3,2,12,11,09,117,00,13,17,028,41,15,15,220,00,17,79,154,52*71
+$GPGSV,3,3,12,25,21,073,36,26,23,218,00,27,32,090,42,28,29,171,46*7E
+$GPRMC,175647,A,0642.7139,S,03711.9871,W,019.8,011.0,030208,,,A*7F
+$GPVTG,011.0,T,,M,019.8,N,036.8,K,A*00
+$GPGGA,175702,0642.6420,S,03711.9640,W,1,06,01.5,00211.2,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.5,02.3*0E
+$GPGSV,3,1,12,02,10,339,00,04,28,012,39,08,40,128,46,10,18,292,34*76
+$GPGSV,3,2,12,11,09,117,00,13,17,028,42,15,15,220,00,17,79,154,52*72
+$GPGSV,3,3,12,25,21,073,39,26,23,218,00,27,32,089,42,28,29,171,43*7C
+$GPRMC,175702,A,0642.6420,S,03711.9640,W,016.4,025.6,030208,,,A*7D
+$GPVTG,025.6,T,,M,016.4,N,030.5,K,A*09
+$GPGGA,175717,0642.5791,S,03711.9528,W,1,05,01.7,00208.4,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,02.9,01.7,02.3*0F
+$GPGSV,3,1,12,02,10,339,00,04,28,012,41,08,40,127,41,10,18,293,40*73
+$GPGSV,3,2,12,11,09,118,00,13,17,028,31,15,15,220,00,17,79,155,52*78
+$GPGSV,3,3,12,25,21,073,38,26,23,218,00,27,32,089,46,28,29,171,40*7A
+$GPRMC,175717,A,0642.5791,S,03711.9528,W,014.2,357.7,030208,,,A*7D
+$GPVTG,357.7,T,,M,014.2,N,026.3,K,A*0B
+$GPGGA,175732,0642.5230,S,03711.9527,W,1,06,01.6,00204.0,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.6,02.3*0D
+$GPGSV,3,1,12,02,10,339,00,04,28,012,43,08,40,127,47,10,18,293,35*75
+$GPGSV,3,2,12,11,09,118,00,13,17,027,39,15,15,220,00,17,79,155,52*7F
+$GPGSV,3,3,12,25,21,073,39,26,23,218,00,27,32,089,37,28,29,171,43*7E
+$GPRMC,175732,A,0642.5230,S,03711.9527,W,013.1,000.9,030208,,,A*70
+$GPVTG,000.9,T,,M,013.1,N,024.3,K,A*02
+$GPGGA,175747,0642.4651,S,03711.9593,W,1,04,10.9,00202.5,M,-012.0,M,,*69
+$GPGSA,A,3,10,17,25,27,,,,,,,,,13.8,10.9,08.4*09
+$GPGSV,3,1,12,02,10,339,00,04,28,012,30,08,40,127,42,10,18,293,35*74
+$GPGSV,3,2,12,11,09,118,00,13,17,027,27,15,15,220,00,17,79,155,52*70
+$GPGSV,3,3,12,25,21,073,35,26,23,218,00,27,32,089,46,28,29,170,34*75
+$GPRMC,175747,A,0642.4651,S,03711.9593,W,013.6,357.5,030208,,,A*75
+$GPVTG,357.5,T,,M,013.6,N,025.3,K,A*09
+$GPGGA,175802,0642.4251,S,03711.9571,W,1,05,01.7,00202.5,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.2,01.7,02.7*04
+$GPGSV,3,1,12,02,10,339,00,04,28,012,46,08,40,127,47,10,18,293,41*73
+$GPGSV,3,2,12,11,09,118,00,13,17,027,33,15,15,220,00,17,78,155,52*74
+$GPGSV,3,3,12,25,21,073,35,26,24,218,00,27,32,089,45,28,29,170,36*73
+$GPRMC,175802,A,0642.4251,S,03711.9571,W,006.4,347.5,030208,,,A*74
+$GPVTG,347.5,T,,M,006.4,N,011.8,K,A*02
+$GPGGA,175817,0642.4005,S,03711.9581,W,1,06,01.6,00203.0,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.6,02.3*0D
+$GPGSV,3,1,12,02,10,339,00,04,28,012,40,08,40,127,36,10,18,293,37*72
+$GPGSV,3,2,12,11,09,118,00,13,17,027,34,15,16,220,00,17,78,155,52*70
+$GPGSV,3,3,12,25,21,073,34,26,24,218,00,27,32,089,46,28,29,170,38*7F
+$GPRMC,175817,A,0642.4005,S,03711.9581,W,005.7,350.3,030208,,,A*7C
+$GPVTG,350.3,T,,M,005.7,N,010.5,K,A*0E
+$GPGGA,175832,0642.3751,S,03711.9661,W,1,06,01.6,00202.0,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.6,02.3*0D
+$GPGSV,3,1,12,02,10,340,00,04,28,013,46,08,41,127,40,10,18,293,42*79
+$GPGSV,3,2,12,11,08,118,00,13,17,027,35,15,16,220,00,17,78,156,52*73
+$GPGSV,3,3,12,25,20,073,35,26,24,218,00,27,32,089,46,28,29,170,35*72
+$GPRMC,175832,A,0642.3751,S,03711.9661,W,009.0,342.2,030208,,,A*7E
+$GPVTG,342.2,T,,M,009.0,N,016.7,K,A*03
+$GPGGA,175847,0642.3361,S,03711.9568,W,1,06,01.6,00207.0,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.8,01.6,02.4*0A
+$GPGSV,3,1,12,02,10,340,00,04,28,013,46,08,41,127,49,10,18,293,34*71
+$GPGSV,3,2,12,11,08,118,00,13,16,027,34,15,16,220,00,17,78,156,51*70
+$GPGSV,3,3,12,25,20,073,36,26,24,218,00,27,32,088,46,28,29,170,48*7A
+$GPRMC,175847,A,0642.3361,S,03711.9568,W,005.9,053.7,030208,,,A*72
+$GPVTG,053.7,T,,M,005.9,N,010.9,K,A*08
+$GPGGA,175902,0642.3363,S,03711.9368,W,1,06,01.6,00206.2,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,10,340,00,04,28,013,50,08,41,126,50,10,18,293,40*7C
+$GPGSV,3,2,12,11,08,118,00,13,16,027,41,15,16,220,00,17,78,156,52*71
+$GPGSV,3,3,12,25,20,072,35,26,24,218,00,27,32,088,39,28,29,170,49*71
+$GPRMC,175902,A,0642.3363,S,03711.9368,W,000.2,073.0,030208,,,A*7D
+$GPVTG,073.0,T,,M,000.2,N,000.4,K,A*0F
+$GPGGA,175917,0642.3365,S,03711.9372,W,1,06,01.6,00206.7,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,10,340,00,04,28,013,50,08,41,126,49,10,18,294,34*70
+$GPGSV,3,2,12,11,08,118,00,13,16,027,44,15,16,220,00,17,78,156,52*74
+$GPGSV,3,3,12,25,20,072,35,26,24,218,00,27,32,088,36,28,29,170,47*70
+$GPRMC,175917,A,0642.3365,S,03711.9372,W,000.6,064.4,030208,,,A*72
+$GPVTG,064.4,T,,M,000.6,N,001.2,K,A*0E
+$GPGGA,175932,0642.3381,S,03711.9362,W,1,05,01.8,00206.9,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.3,01.8,02.7*0A
+$GPGSV,3,1,12,02,10,340,00,04,28,013,51,08,41,126,47,10,18,294,35*7E
+$GPGSV,3,2,12,11,08,118,00,13,16,027,42,15,16,220,00,17,78,156,52*72
+$GPGSV,3,3,12,25,20,072,32,26,24,218,00,27,32,088,41,28,29,170,50*71
+$GPRMC,175932,A,0642.3381,S,03711.9362,W,000.9,064.4,030208,,,A*71
+$GPVTG,064.4,T,,M,000.9,N,001.7,K,A*04
+$GPGGA,175947,0642.3392,S,03711.9363,W,1,05,01.8,00206.2,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.3,01.8,02.7*0A
+$GPGSV,3,1,12,02,10,340,00,04,29,013,50,08,41,126,48,10,18,294,35*71
+$GPGSV,3,2,12,11,08,118,00,13,16,027,40,15,16,220,00,17,78,157,52*71
+$GPGSV,3,3,12,25,20,072,32,26,24,218,00,27,32,088,34,28,28,170,48*7B
+$GPRMC,175947,A,0642.3392,S,03711.9363,W,000.8,064.4,030208,,,A*71
+$GPVTG,064.4,T,,M,000.8,N,001.5,K,A*07
+$GPGGA,180007,0642.3397,S,03711.9365,W,1,06,01.6,00206.0,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,10,340,00,04,29,013,51,08,41,126,50,10,18,294,42*79
+$GPGSV,3,2,12,11,08,119,00,13,16,027,44,15,16,220,00,17,77,157,52*7B
+$GPGSV,3,3,12,25,20,072,33,26,24,218,00,27,32,088,35,28,28,169,50*7A
+$GPRMC,180007,A,0642.3397,S,03711.9365,W,001.1,064.4,030208,,,A*7D
+$GPVTG,064.4,T,,M,001.1,N,002.0,K,A*09
+$GPGGA,180022,0642.3434,S,03711.9360,W,1,06,01.6,00204.4,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,10,340,00,04,29,013,47,08,41,126,49,10,18,294,41*75
+$GPGSV,3,2,12,11,08,119,00,13,16,027,43,15,16,220,00,17,77,157,52*7C
+$GPGSV,3,3,12,25,20,072,35,26,24,218,00,27,32,088,35,28,28,169,47*7A
+$GPRMC,180022,A,0642.3434,S,03711.9360,W,001.4,064.4,030208,,,A*74
+$GPVTG,064.4,T,,M,001.4,N,002.5,K,A*09
+$GPGGA,180037,0642.3439,S,03711.9357,W,1,06,01.6,00203.8,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,10,340,00,04,29,013,46,08,41,125,46,10,18,294,37*79
+$GPGSV,3,2,12,11,08,119,00,13,16,027,39,15,16,220,00,17,77,157,52*71
+$GPGSV,3,3,12,25,20,072,36,26,25,218,00,27,32,087,34,28,28,169,45*74
+$GPRMC,180037,A,0642.3439,S,03711.9357,W,000.4,064.4,030208,,,A*78
+$GPVTG,064.4,T,,M,000.4,N,000.8,K,A*07
+$GPGGA,180052,0642.3444,S,03711.9326,W,1,05,01.8,00203.6,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.3,01.8,02.8*05
+$GPGSV,3,1,12,02,11,340,00,04,29,013,52,08,41,125,46,10,18,294,34*7E
+$GPGSV,3,2,12,11,08,119,00,13,16,027,43,15,16,220,00,17,77,157,52*7C
+$GPGSV,3,3,12,25,20,072,31,26,25,219,00,27,32,087,35,28,28,169,48*7E
+$GPRMC,180052,A,0642.3444,S,03711.9326,W,001.5,083.1,030208,,,A*7B
+$GPVTG,083.1,T,,M,001.5,N,002.8,K,A*09
+$GPGGA,180107,0642.3446,S,03711.9334,W,1,06,01.6,00203.9,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,11,340,00,04,29,013,47,08,41,125,50,10,18,294,36*7F
+$GPGSV,3,2,12,11,08,119,00,13,15,027,41,15,17,221,00,17,77,157,52*7D
+$GPGSV,3,3,12,25,20,071,33,26,25,219,00,27,32,087,40,28,28,169,48*7D
+$GPRMC,180107,A,0642.3446,S,03711.9334,W,000.4,083.1,030208,,,A*7B
+$GPVTG,083.1,T,,M,000.4,N,000.8,K,A*0B
+$GPGGA,180122,0642.3440,S,03711.9344,W,1,06,01.6,00203.8,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,11,340,00,04,29,014,48,08,41,125,49,10,18,295,42*7D
+$GPGSV,3,2,12,11,08,119,00,13,15,027,39,15,17,221,00,17,77,158,50*7F
+$GPGSV,3,3,12,25,20,071,36,26,25,219,00,27,32,087,36,28,28,169,48*79
+$GPRMC,180122,A,0642.3440,S,03711.9344,W,001.7,083.1,030208,,,A*7F
+$GPVTG,083.1,T,,M,001.7,N,003.2,K,A*00
+$GPGGA,180137,0642.3463,S,03711.9356,W,1,06,01.6,00203.4,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,11,340,00,04,29,014,47,08,41,125,48,10,18,295,40*71
+$GPGSV,3,2,12,11,08,119,00,13,15,027,34,15,17,221,00,17,77,158,49*7A
+$GPGSV,3,3,12,25,20,071,36,26,25,219,00,27,32,087,38,28,28,169,48*77
+$GPRMC,180137,A,0642.3463,S,03711.9356,W,000.6,106.6,030208,,,A*72
+$GPVTG,106.6,T,,M,000.6,N,001.1,K,A*0A
+$GPGGA,180152,0642.3463,S,03711.9340,W,1,06,01.6,00203.4,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,11,341,00,04,29,014,47,08,41,125,49,10,18,295,40*71
+$GPGSV,3,2,12,11,08,119,00,13,15,027,36,15,17,221,00,17,76,158,50*71
+$GPGSV,3,3,12,25,20,071,38,26,25,219,00,27,32,087,39,28,28,169,49*79
+$GPRMC,180152,A,0642.3463,S,03711.9340,W,000.4,160.5,030208,,,A*77
+$GPVTG,160.5,T,,M,000.4,N,000.7,K,A*0C
+$GPGGA,180207,0642.3455,S,03711.9360,W,1,06,01.6,00204.0,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,11,341,00,04,29,014,48,08,41,124,47,10,18,295,40*71
+$GPGSV,3,2,12,11,08,119,00,13,15,027,34,15,17,221,00,17,76,158,47*75
+$GPGSV,3,3,12,25,20,071,35,26,25,219,00,27,32,087,40,28,28,169,49*7A
+$GPRMC,180207,A,0642.3455,S,03711.9360,W,001.1,189.1,030208,,,A*74
+$GPVTG,189.1,T,,M,001.1,N,002.2,K,A*0C
+$GPGGA,180222,0642.3461,S,03711.9360,W,1,06,01.6,00204.6,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,11,341,00,04,29,014,50,08,41,124,47,10,18,295,42*7A
+$GPGSV,3,2,12,11,08,119,00,13,15,027,36,15,17,221,00,17,76,158,48*78
+$GPGSV,3,3,12,25,20,071,36,26,25,219,00,27,32,086,40,28,28,169,50*70
+$GPRMC,180222,A,0642.3461,S,03711.9360,W,000.7,172.3,030208,,,A*75
+$GPVTG,172.3,T,,M,000.7,N,001.4,K,A*08
+$GPGGA,180237,0642.3450,S,03711.9361,W,1,06,01.6,00204.9,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,02.9,01.6,02.4*0B
+$GPGSV,3,1,12,02,11,341,00,04,29,014,51,08,41,124,47,10,18,295,43*7A
+$GPGSV,3,2,12,11,08,119,00,13,15,027,37,15,17,221,00,17,76,158,48*79
+$GPGSV,3,3,12,25,20,071,35,26,25,219,00,27,32,086,43,28,28,168,50*71
+$GPRMC,180237,A,0642.3450,S,03711.9361,W,000.3,167.9,030208,,,A*78
+$GPVTG,167.9,T,,M,000.3,N,000.5,K,A*02
+$GPGGA,180252,0642.3450,S,03711.9357,W,1,06,01.6,00205.3,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.6,02.4*03
+$GPGSV,3,1,12,02,11,341,00,04,29,014,49,08,41,124,46,10,18,295,42*73
+$GPGSV,3,2,12,11,08,120,00,13,15,027,38,15,17,221,00,17,76,158,48*7C
+$GPGSV,3,3,12,25,20,071,36,26,25,219,00,27,32,086,43,28,28,168,51*73
+$GPRMC,180252,A,0642.3450,S,03711.9357,W,000.1,167.9,030208,,,A*7C
+$GPVTG,167.9,T,,M,000.1,N,000.2,K,A*07
+$GPGGA,180307,0642.3448,S,03711.9355,W,1,06,01.6,00205.7,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.6,02.4*03
+$GPGSV,3,1,12,02,11,341,00,04,29,014,50,08,41,124,45,10,18,295,40*7A
+$GPGSV,3,2,12,11,08,120,00,13,15,027,37,15,17,221,00,17,76,158,46*7D
+$GPGSV,3,3,12,25,20,071,35,26,25,219,00,27,32,086,45,28,28,168,50*77
+$GPRMC,180307,A,0642.3448,S,03711.9355,W,000.3,167.9,030208,,,A*74
+$GPVTG,167.9,T,,M,000.3,N,000.6,K,A*01
+$GPGGA,180322,0642.3456,S,03711.9353,W,1,06,01.6,00206.4,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.6,02.5*02
+$GPGSV,3,1,12,02,11,341,00,04,29,014,51,08,41,124,44,10,18,295,38*75
+$GPGSV,3,2,12,11,08,120,00,13,15,027,38,15,17,221,00,17,76,159,46*73
+$GPGSV,3,3,12,25,20,070,35,26,26,219,00,27,32,086,43,28,28,168,51*72
+$GPRMC,180322,A,0642.3456,S,03711.9353,W,000.6,149.0,030208,,,A*7A
+$GPVTG,149.0,T,,M,000.6,N,001.1,K,A*07
+$GPGGA,180337,0642.3457,S,03711.9352,W,1,06,01.6,00206.4,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.6,02.5*02
+$GPGSV,3,1,12,02,11,341,00,04,30,014,51,08,41,124,45,10,18,296,36*71
+$GPGSV,3,2,12,11,08,120,00,13,14,027,40,15,17,221,00,17,76,159,48*73
+$GPGSV,3,3,12,25,20,070,34,26,26,219,00,27,32,086,42,28,28,168,51*72
+$GPRMC,180337,A,0642.3457,S,03711.9352,W,000.1,173.8,030208,,,A*78
+$GPVTG,173.8,T,,M,000.1,N,000.2,K,A*03
+$GPGGA,180352,0642.3464,S,03711.9368,W,1,06,01.6,00206.2,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.6,02.5*02
+$GPGSV,3,1,12,02,11,341,00,04,30,015,51,08,41,123,45,10,18,296,37*76
+$GPGSV,3,2,12,11,08,120,00,13,14,027,41,15,18,221,00,17,75,159,49*7F
+$GPGSV,3,3,12,25,20,070,35,26,26,219,00,27,32,086,41,28,28,168,50*71
+$GPRMC,180352,A,0642.3464,S,03711.9368,W,000.6,198.4,030208,,,A*7C
+$GPVTG,198.4,T,,M,000.6,N,001.2,K,A*0C
+$GPGGA,180407,0642.3469,S,03711.9351,W,1,05,01.8,00205.4,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.4,01.8,02.9*03
+$GPGSV,3,1,12,02,11,341,00,04,30,015,50,08,41,123,46,10,18,296,38*7B
+$GPGSV,3,2,12,11,08,120,00,13,14,027,39,15,18,221,00,17,75,159,47*7E
+$GPGSV,3,3,12,25,20,070,30,26,26,219,00,27,32,085,41,28,28,168,49*7F
+$GPRMC,180407,A,0642.3469,S,03711.9351,W,000.2,166.7,030208,,,A*7A
+$GPVTG,166.7,T,,M,000.2,N,000.4,K,A*0D
+$GPGGA,180422,0642.3474,S,03711.9353,W,1,06,01.6,00205.2,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.6,02.5*02
+$GPGSV,3,1,12,02,11,341,00,04,30,015,49,08,41,123,42,10,18,296,40*78
+$GPGSV,3,2,12,11,07,120,00,13,14,027,40,15,18,221,00,17,75,159,46*7E
+$GPGSV,3,3,12,25,20,070,33,26,26,219,00,27,32,085,42,28,28,168,50*77
+$GPRMC,180422,A,0642.3474,S,03711.9353,W,001.3,190.4,030208,,,A*79
+$GPVTG,190.4,T,,M,001.3,N,002.4,K,A*05
+$GPGGA,180437,0642.3466,S,03711.9348,W,1,06,01.7,00205.4,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,11,341,00,04,30,015,50,08,41,123,45,10,18,296,39*79
+$GPGSV,3,2,12,11,07,120,00,13,14,027,37,15,18,221,00,17,75,159,45*7D
+$GPGSV,3,3,12,25,19,070,31,26,26,219,00,27,32,085,42,28,27,168,50*70
+$GPRMC,180437,A,0642.3466,S,03711.9348,W,000.0,190.4,030208,,,A*76
+$GPVTG,190.4,T,,M,000.0,N,000.1,K,A*00
+$GPGGA,180452,0642.3476,S,03711.9351,W,1,06,01.7,00205.5,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,341,00,04,30,015,50,08,41,123,43,10,18,296,39*7C
+$GPGSV,3,2,12,11,07,120,00,13,14,027,41,15,18,221,00,17,75,159,45*7C
+$GPGSV,3,3,12,25,19,070,31,26,26,219,00,27,32,085,43,28,27,167,50*7E
+$GPRMC,180452,A,0642.3476,S,03711.9351,W,000.4,190.4,030208,,,A*78
+$GPVTG,190.4,T,,M,000.4,N,000.8,K,A*0D
+$GPGGA,180507,0642.3483,S,03711.9350,W,1,06,01.7,00205.9,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,341,00,04,30,015,50,08,41,123,44,10,18,296,40*75
+$GPGSV,3,2,12,11,07,120,00,13,14,027,39,15,18,221,00,17,75,159,45*73
+$GPGSV,3,3,12,25,19,070,33,26,26,220,00,27,32,085,43,28,27,167,50*76
+$GPRMC,180507,A,0642.3483,S,03711.9350,W,000.2,165.1,030208,,,A*7B
+$GPVTG,165.1,T,,M,000.2,N,000.4,K,A*08
+$GPGGA,180522,0642.3495,S,03711.9350,W,1,06,01.7,00206.4,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,342,00,04,30,015,50,08,41,122,42,10,18,296,40*71
+$GPGSV,3,2,12,11,07,120,00,13,14,027,41,15,18,221,00,17,75,159,46*7F
+$GPGSV,3,3,12,25,19,070,34,26,26,220,00,27,32,085,42,28,27,167,49*78
+$GPRMC,180522,A,0642.3495,S,03711.9350,W,000.6,176.8,030208,,,A*74
+$GPVTG,176.8,T,,M,000.6,N,001.1,K,A*03
+$GPGGA,180537,0642.3497,S,03711.9343,W,1,06,01.7,00207.0,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,342,00,04,30,015,50,08,41,122,42,10,18,297,40*70
+$GPGSV,3,2,12,11,07,120,00,13,14,027,39,15,18,221,00,17,75,160,45*79
+$GPGSV,3,3,12,25,19,069,31,26,26,220,00,27,32,085,42,28,27,167,48*74
+$GPRMC,180537,A,0642.3497,S,03711.9343,W,000.1,153.5,030208,,,A*7D
+$GPVTG,153.5,T,,M,000.1,N,000.2,K,A*0C
+$GPGGA,180552,0642.3496,S,03711.9347,W,1,06,01.7,00207.4,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,342,00,04,30,015,50,08,41,122,42,10,18,297,38*7F
+$GPGSV,3,2,12,11,07,121,00,13,14,027,41,15,18,222,00,17,74,160,44*74
+$GPGSV,3,3,12,25,19,069,35,26,26,220,00,27,32,084,43,28,27,167,49*71
+$GPRMC,180552,A,0642.3496,S,03711.9347,W,000.7,153.5,030208,,,A*7D
+$GPVTG,153.5,T,,M,000.7,N,001.4,K,A*0D
+$GPGGA,180607,0642.3491,S,03711.9353,W,1,06,01.7,00207.9,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,342,00,04,30,015,51,08,41,122,45,10,18,297,37*76
+$GPGSV,3,2,12,11,07,121,00,13,13,027,42,15,18,222,00,17,74,160,43*77
+$GPGSV,3,3,12,25,19,069,36,26,27,220,00,27,31,084,46,28,27,167,47*7B
+$GPRMC,180607,A,0642.3491,S,03711.9353,W,000.0,167.6,030208,,,A*7F
+$GPVTG,167.6,T,,M,000.0,N,000.0,K,A*0B
+$GPGGA,180622,0642.3466,S,03711.9364,W,1,06,01.7,00208.5,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,342,00,04,30,015,51,08,41,122,42,10,17,297,37*7E
+$GPGSV,3,2,12,11,07,121,00,13,13,027,42,15,18,222,00,17,74,160,47*73
+$GPGSV,3,3,12,25,19,069,34,26,27,220,00,27,31,084,40,28,27,167,48*70
+$GPRMC,180622,A,0642.3466,S,03711.9364,W,000.1,167.6,030208,,,A*75
+$GPVTG,167.6,T,,M,000.1,N,000.2,K,A*08
+$GPGGA,180637,0642.3465,S,03711.9374,W,1,06,01.7,00208.9,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,342,00,04,30,016,50,08,41,122,41,10,17,297,37*7F
+$GPGSV,3,2,12,11,07,121,00,13,13,027,45,15,18,222,00,17,74,160,48*7B
+$GPGSV,3,3,12,25,19,069,37,26,27,220,00,27,31,084,42,28,27,167,41*78
+$GPRMC,180637,A,0642.3465,S,03711.9374,W,002.6,167.6,030208,,,A*76
+$GPVTG,167.6,T,,M,002.6,N,004.9,K,A*02
+$GPGGA,180652,0642.3496,S,03711.9396,W,1,06,01.7,00207.9,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.0,01.7,02.5*03
+$GPGSV,3,1,12,02,12,342,00,04,30,016,52,08,41,122,45,10,17,297,35*7B
+$GPGSV,3,2,12,11,07,121,00,13,13,027,46,15,19,222,00,17,74,160,52*72
+$GPGSV,3,3,12,25,19,069,35,26,27,220,00,27,31,084,36,28,27,167,43*7B
+$GPRMC,180652,A,0642.3496,S,03711.9396,W,001.4,167.6,030208,,,A*74
+$GPVTG,167.6,T,,M,001.4,N,002.6,K,A*0A
+$GPGGA,180707,0642.3495,S,03711.9355,W,1,04,03.2,00206.9,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,,,,,,,,,05.6,03.2,04.5*00
+$GPGSV,3,1,12,02,12,342,00,04,31,016,49,08,41,121,48,10,17,297,35*7E
+$GPGSV,3,2,12,11,07,121,00,13,13,027,45,15,19,222,00,17,74,160,50*73
+$GPGSV,3,3,12,25,19,069,30,26,27,220,00,27,31,084,30,28,27,166,45*7F
+$GPRMC,180707,A,0642.3495,S,03711.9355,W,001.3,167.6,030208,,,A*7E
+$GPVTG,167.6,T,,M,001.3,N,002.5,K,A*0E
+$GPGGA,180722,0642.3471,S,03711.9347,W,1,05,01.9,00206.5,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.5,01.9,02.9*03
+$GPGSV,3,1,12,02,12,342,00,04,31,016,48,08,41,121,44,10,17,297,38*7E
+$GPGSV,3,2,12,11,07,121,00,13,13,027,36,15,19,222,00,17,74,160,50*77
+$GPGSV,3,3,12,25,19,069,26,26,27,220,00,27,31,084,37,28,27,166,45*7F
+$GPRMC,180722,A,0642.3471,S,03711.9347,W,000.3,160.3,030208,,,A*73
+$GPVTG,160.3,T,,M,000.3,N,000.5,K,A*0F
+$GPGGA,180737,0642.3451,S,03711.9376,W,1,06,01.7,00206.0,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.5*02
+$GPGSV,3,1,12,02,12,342,00,04,31,016,50,08,41,121,45,10,17,297,36*78
+$GPGSV,3,2,12,11,07,121,00,13,13,027,43,15,19,222,00,17,73,160,46*75
+$GPGSV,3,3,12,25,19,069,31,26,27,220,00,27,31,084,37,28,27,166,45*79
+$GPRMC,180737,A,0642.3451,S,03711.9376,W,001.5,279.2,030208,,,A*7A
+$GPVTG,279.2,T,,M,001.5,N,002.8,K,A*0D
+$GPGGA,180752,0642.3456,S,03711.9388,W,1,06,01.7,00205.2,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.5*02
+$GPGSV,3,1,12,02,12,342,00,04,31,016,47,08,41,121,46,10,17,298,40*73
+$GPGSV,3,2,12,11,07,121,00,13,13,027,42,15,19,222,00,17,73,160,50*73
+$GPGSV,3,3,12,25,19,068,39,26,27,220,00,27,31,083,46,28,27,166,44*70
+$GPRMC,180752,A,0642.3456,S,03711.9388,W,001.4,279.2,030208,,,A*7E
+$GPVTG,279.2,T,,M,001.4,N,002.7,K,A*03
+$GPGGA,180807,0642.3521,S,03711.9452,W,1,05,01.8,00205.0,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.8,02.6*0C
+$GPGSV,3,1,12,02,12,342,00,04,31,016,41,08,41,121,51,10,17,298,35*71
+$GPGSV,3,2,12,11,07,121,00,13,13,027,30,15,19,222,00,17,73,160,52*74
+$GPGSV,3,3,12,25,19,068,46,26,27,220,00,27,31,083,51,28,27,166,34*79
+$GPRMC,180807,A,0642.3521,S,03711.9452,W,002.1,236.7,030208,,,A*78
+$GPVTG,236.7,T,,M,002.1,N,004.0,K,A*0A
+$GPGGA,180822,0642.3501,S,03711.9621,W,1,05,01.8,00204.3,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.8,02.6*0C
+$GPGSV,3,1,12,02,12,342,00,04,31,016,34,08,42,121,47,10,17,298,44*71
+$GPGSV,3,2,12,11,07,121,00,13,13,027,31,15,19,222,00,17,73,161,51*77
+$GPGSV,3,3,12,25,19,068,34,26,27,220,00,27,31,083,41,28,27,166,37*7E
+$GPRMC,180822,A,0642.3501,S,03711.9621,W,008.3,338.9,030208,,,A*72
+$GPVTG,338.9,T,,M,008.3,N,015.5,K,A*06
+$GPGGA,180837,0642.2938,S,03711.9645,W,1,05,01.9,00203.5,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.5,01.9,03.0*0B
+$GPGSV,3,1,12,02,13,342,00,04,31,016,40,08,42,120,43,10,17,298,46*74
+$GPGSV,3,2,12,11,07,122,00,13,12,027,35,15,19,222,00,17,73,161,52*72
+$GPGSV,3,3,12,25,19,068,32,26,27,220,00,27,31,083,40,28,27,166,35*7B
+$GPRMC,180837,A,0642.2938,S,03711.9645,W,013.8,357.2,030208,,,A*70
+$GPVTG,357.2,T,,M,013.8,N,025.6,K,A*05
+$GPGGA,180852,0642.2390,S,03711.9942,W,1,06,01.7,00196.7,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,31,016,45,08,42,120,34,10,17,298,40*76
+$GPGSV,3,2,12,11,07,122,00,13,12,027,34,15,19,222,00,17,73,161,48*78
+$GPGSV,3,3,12,25,19,068,34,26,28,221,00,27,31,083,38,28,27,166,36*7F
+$GPRMC,180852,A,0642.2390,S,03711.9942,W,012.4,332.3,030208,,,A*7C
+$GPVTG,332.3,T,,M,012.4,N,023.1,K,A*0B
+$GPGGA,180907,0642.1896,S,03712.0289,W,1,05,01.8,00200.2,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.8,02.6*0F
+$GPGSV,3,1,12,02,13,343,00,04,31,017,37,08,42,120,41,10,17,298,37*70
+$GPGSV,3,2,12,11,07,122,00,13,12,027,31,15,19,222,00,17,73,161,52*76
+$GPGSV,3,3,12,25,19,068,33,26,28,221,00,27,31,083,45,28,27,166,41*72
+$GPRMC,180907,A,0642.1896,S,03712.0289,W,013.0,325.0,030208,,,A*75
+$GPVTG,325.0,T,,M,013.0,N,024.2,K,A*0F
+$GPGGA,180922,0642.1245,S,03712.0698,W,1,06,01.7,00196.7,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,31,017,36,08,42,120,42,10,17,298,45*77
+$GPGSV,3,2,12,11,07,122,00,13,12,027,37,15,19,222,00,17,73,161,46*75
+$GPGSV,3,3,12,25,19,068,43,26,28,221,00,27,31,083,48,28,27,166,39*77
+$GPRMC,180922,A,0642.1245,S,03712.0698,W,021.1,320.7,030208,,,A*70
+$GPVTG,320.7,T,,M,021.1,N,039.0,K,A*03
+$GPGGA,180937,0642.0666,S,03712.1006,W,1,06,01.7,00199.1,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,31,017,46,08,42,120,38,10,17,298,41*79
+$GPGSV,3,2,12,11,06,122,00,13,12,027,37,15,19,222,00,17,72,161,50*72
+$GPGSV,3,3,12,25,19,068,42,26,28,221,00,27,31,082,48,28,27,165,35*78
+$GPRMC,180937,A,0642.0666,S,03712.1006,W,011.9,327.1,030208,,,A*7A
+$GPVTG,327.1,T,,M,011.9,N,022.1,K,A*02
+$GPGGA,180952,0642.0075,S,03712.1322,W,1,06,01.7,00199.9,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,31,017,41,08,42,120,43,10,17,299,41*73
+$GPGSV,3,2,12,11,06,122,00,13,12,027,36,15,20,222,00,17,72,161,52*7B
+$GPGSV,3,3,12,25,19,068,39,26,28,221,00,27,31,082,42,28,26,165,45*78
+$GPRMC,180952,A,0642.0075,S,03712.1322,W,018.2,333.3,030208,,,A*7D
+$GPVTG,333.3,T,,M,018.2,N,033.8,K,A*0E
+$GPGGA,181007,0641.9432,S,03712.1463,W,1,06,01.7,00201.6,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,31,017,47,08,42,119,47,10,17,299,43*79
+$GPGSV,3,2,12,11,06,122,00,13,12,027,34,15,20,223,00,17,72,161,51*7B
+$GPGSV,3,3,12,25,18,067,39,26,28,221,00,27,31,082,43,28,26,165,36*73
+$GPRMC,181007,A,0641.9432,S,03712.1463,W,010.6,356.5,030208,,,A*73
+$GPVTG,356.5,T,,M,010.6,N,019.7,K,A*00
+$GPGGA,181022,0641.8958,S,03712.1440,W,1,06,01.7,00202.2,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,31,017,46,08,42,119,47,10,17,299,41*7A
+$GPGSV,3,2,12,11,06,122,00,13,12,027,42,15,20,223,00,17,72,161,51*7A
+$GPGSV,3,3,12,25,18,067,37,26,28,221,00,27,31,082,45,28,26,165,38*75
+$GPRMC,181022,A,0641.8958,S,03712.1440,W,007.2,008.0,030208,,,A*7A
+$GPVTG,008.0,T,,M,007.2,N,013.4,K,A*06
+$GPGGA,181037,0641.8656,S,03712.1422,W,1,06,01.7,00201.7,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,32,017,48,08,42,119,42,10,17,299,40*73
+$GPGSV,3,2,12,11,06,122,00,13,12,027,38,15,20,223,00,17,72,161,52*74
+$GPGSV,3,3,12,25,18,067,39,26,28,221,00,27,31,082,44,28,26,165,37*75
+$GPRMC,181037,A,0641.8656,S,03712.1422,W,007.7,005.2,030208,,,A*71
+$GPVTG,005.2,T,,M,007.7,N,014.4,K,A*0B
+$GPGGA,181052,0641.8292,S,03712.1397,W,1,06,01.7,00201.2,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,32,017,44,08,42,119,38,10,17,299,43*71
+$GPGSV,3,2,12,11,06,122,00,13,12,027,36,15,20,223,00,17,72,161,52*7A
+$GPGSV,3,3,12,25,18,067,40,26,28,221,00,27,31,082,47,28,26,165,41*79
+$GPRMC,181052,A,0641.8292,S,03712.1397,W,010.4,017.3,030208,,,A*70
+$GPVTG,017.3,T,,M,010.4,N,019.4,K,A*01
+$GPGGA,181107,0641.7813,S,03712.1400,W,1,06,01.7,00202.6,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,32,017,45,08,42,119,51,10,17,299,41*7D
+$GPGSV,3,2,12,11,06,122,00,13,11,027,33,15,20,223,00,17,72,161,51*7F
+$GPGSV,3,3,12,25,18,067,35,26,28,221,00,27,31,082,42,28,26,165,40*7F
+$GPRMC,181107,A,0641.7813,S,03712.1400,W,009.5,346.6,030208,,,A*7F
+$GPVTG,346.6,T,,M,009.5,N,017.7,K,A*07
+$GPGGA,181122,0641.7436,S,03712.1541,W,1,06,01.7,00202.3,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,32,017,42,08,42,119,50,10,17,299,45*7F
+$GPGSV,3,2,12,11,06,122,00,13,11,027,39,15,20,223,00,17,72,161,52*76
+$GPGSV,3,3,12,25,18,067,34,26,28,221,00,27,31,081,40,28,26,165,41*7E
+$GPRMC,181122,A,0641.7436,S,03712.1541,W,009.7,337.2,030208,,,A*77
+$GPVTG,337.2,T,,M,009.7,N,017.9,K,A*09
+$GPGGA,181137,0641.7049,S,03712.1714,W,1,06,01.7,00201.3,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,32,018,42,08,42,119,46,10,17,299,39*7C
+$GPGSV,3,2,12,11,06,123,00,13,11,027,35,15,20,223,00,17,71,162,51*78
+$GPGSV,3,3,12,25,18,067,36,26,29,221,00,27,31,081,43,28,26,165,40*7F
+$GPRMC,181137,A,0641.7049,S,03712.1714,W,010.0,332.7,030208,,,A*72
+$GPVTG,332.7,T,,M,010.0,N,018.5,K,A*05
+$GPGGA,181152,0641.6631,S,03712.1937,W,1,06,01.7,00202.2,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,13,343,00,04,32,018,49,08,42,118,39,10,17,299,41*71
+$GPGSV,3,2,12,11,06,123,00,13,11,027,32,15,20,223,00,17,71,162,51*7F
+$GPGSV,3,3,12,25,18,067,37,26,29,221,00,27,31,081,46,28,26,165,40*7B
+$GPRMC,181152,A,0641.6631,S,03712.1937,W,008.1,324.4,030208,,,A*7A
+$GPVTG,324.4,T,,M,008.1,N,015.0,K,A*01
+$GPGGA,181207,0641.6401,S,03712.2123,W,1,06,01.7,00203.1,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,14,343,00,04,32,018,49,08,42,118,37,10,17,300,42*7A
+$GPGSV,3,2,12,11,06,123,00,13,11,027,32,15,20,223,00,17,71,162,51*7F
+$GPGSV,3,3,12,25,18,067,40,26,29,221,00,27,31,081,48,28,26,164,36*75
+$GPRMC,181207,A,0641.6401,S,03712.2123,W,009.0,317.7,030208,,,A*75
+$GPVTG,317.7,T,,M,009.0,N,016.8,K,A*09
+$GPGGA,181222,0641.6055,S,03712.2264,W,1,06,01.7,00203.6,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,14,343,00,04,32,018,47,08,42,118,50,10,17,300,39*79
+$GPGSV,3,2,12,11,06,123,00,13,11,027,33,15,20,223,00,17,71,162,47*79
+$GPGSV,3,3,12,25,18,067,32,26,29,222,00,27,31,081,38,28,26,164,45*70
+$GPRMC,181222,A,0641.6055,S,03712.2264,W,008.1,345.1,030208,,,A*76
+$GPVTG,345.1,T,,M,008.1,N,015.1,K,A*02
+$GPGGA,181237,0641.5657,S,03712.2376,W,1,06,01.7,00203.5,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,32,018,46,08,42,118,49,10,17,300,40*79
+$GPGSV,3,2,12,11,06,123,00,13,11,027,33,15,20,223,00,17,71,162,50*7F
+$GPGSV,3,3,12,25,18,066,34,26,29,222,00,27,31,081,46,28,26,164,42*79
+$GPRMC,181237,A,0641.5657,S,03712.2376,W,009.6,347.1,030208,,,A*73
+$GPVTG,347.1,T,,M,009.6,N,017.8,K,A*0D
+$GPGGA,181252,0641.5288,S,03712.2529,W,1,06,01.7,00204.8,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,32,018,48,08,42,118,38,10,17,300,47*76
+$GPGSV,3,2,12,11,06,123,00,13,11,027,29,15,21,223,00,17,71,162,48*7C
+$GPGSV,3,3,12,25,18,066,36,26,29,222,00,27,31,081,45,28,26,164,36*7B
+$GPRMC,181252,A,0641.5288,S,03712.2529,W,010.9,322.5,030208,,,A*7A
+$GPVTG,322.5,T,,M,010.9,N,020.3,K,A*02
+$GPGGA,181307,0641.5093,S,03712.2788,W,1,05,01.8,00203.3,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.8,02.6*0F
+$GPGSV,3,1,12,02,14,344,00,04,32,018,46,08,42,118,46,10,17,300,40*76
+$GPGSV,3,2,12,11,06,123,00,13,11,027,29,15,21,223,00,17,71,162,51*74
+$GPGSV,3,3,12,25,18,066,36,26,29,222,00,27,31,081,49,28,26,164,36*77
+$GPRMC,181307,A,0641.5093,S,03712.2788,W,008.5,295.2,030208,,,A*75
+$GPVTG,295.2,T,,M,008.5,N,015.7,K,A*0F
+$GPGGA,181322,0641.4850,S,03712.3096,W,1,06,01.7,00203.5,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,32,018,43,08,42,117,46,10,17,300,40*7C
+$GPGSV,3,2,12,11,06,123,00,13,11,027,35,15,21,223,00,17,70,162,52*7B
+$GPGSV,3,3,12,25,18,066,33,26,29,222,00,27,31,080,42,28,26,164,40*79
+$GPRMC,181322,A,0641.4850,S,03712.3096,W,011.0,327.0,030208,,,A*7A
+$GPVTG,327.0,T,,M,011.0,N,020.4,K,A*0D
+$GPGGA,181337,0641.4344,S,03712.3225,W,1,06,01.7,00203.8,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,32,018,46,08,42,117,46,10,17,300,43*7A
+$GPGSV,3,2,12,11,06,123,00,13,10,027,35,15,21,223,00,17,70,162,50*78
+$GPGSV,3,3,12,25,18,066,35,26,29,222,00,27,31,080,45,28,26,164,36*79
+$GPRMC,181337,A,0641.4344,S,03712.3225,W,012.9,341.4,030208,,,A*74
+$GPVTG,341.4,T,,M,012.9,N,023.9,K,A*0D
+$GPGGA,181352,0641.3915,S,03712.3361,W,1,06,01.7,00204.3,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,32,018,50,08,42,117,40,10,17,300,45*7D
+$GPGSV,3,2,12,11,06,123,00,13,10,027,34,15,21,223,00,17,70,162,49*71
+$GPGSV,3,3,12,25,18,066,36,26,29,222,00,27,31,080,42,28,26,164,36*7D
+$GPRMC,181352,A,0641.3915,S,03712.3361,W,010.2,323.7,030208,,,A*71
+$GPVTG,323.7,T,,M,010.2,N,018.9,K,A*0B
+$GPGGA,181407,0641.3592,S,03712.3619,W,1,06,01.7,00204.6,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,33,019,49,08,42,117,35,10,17,301,44*77
+$GPGSV,3,2,12,11,06,123,00,13,10,027,35,15,21,224,00,17,70,162,49*77
+$GPGSV,3,3,12,25,18,066,34,26,29,222,00,27,31,080,40,28,26,164,34*7F
+$GPRMC,181407,A,0641.3592,S,03712.3619,W,009.9,326.4,030208,,,A*7A
+$GPVTG,326.4,T,,M,009.9,N,018.3,K,A*04
+$GPGGA,181422,0641.3320,S,03712.3867,W,1,06,01.7,00204.9,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,33,019,52,08,42,117,35,10,17,301,46*7F
+$GPGSV,3,2,12,11,06,123,00,13,10,027,33,15,21,224,00,17,70,162,51*78
+$GPGSV,3,3,12,25,18,066,35,26,29,222,00,27,31,080,47,28,26,163,36*7C
+$GPRMC,181422,A,0641.3320,S,03712.3867,W,006.6,315.5,030208,,,A*74
+$GPVTG,315.5,T,,M,006.6,N,012.3,K,A*0F
+$GPGGA,181437,0641.2857,S,03712.4126,W,1,06,01.7,00204.2,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,14,344,00,04,33,019,46,08,42,117,48,10,17,301,34*75
+$GPGSV,3,2,12,11,06,124,00,13,10,027,33,15,21,224,00,17,70,162,48*77
+$GPGSV,3,3,12,25,18,066,35,26,30,222,00,27,31,080,34,28,26,163,36*70
+$GPRMC,181437,A,0641.2857,S,03712.4126,W,014.7,342.2,030208,,,A*76
+$GPVTG,342.2,T,,M,014.7,N,027.3,K,A*0E
+$GPGGA,181452,0641.2360,S,03712.4502,W,1,05,01.8,00205.3,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.8,02.7*0E
+$GPGSV,3,1,12,02,14,344,00,04,33,019,48,08,42,116,33,10,17,301,46*73
+$GPGSV,3,2,12,11,05,124,00,13,10,027,28,15,21,224,00,17,70,162,49*7F
+$GPGSV,3,3,12,25,18,065,33,26,30,222,00,27,30,080,46,28,26,163,41*71
+$GPRMC,181452,A,0641.2360,S,03712.4502,W,018.0,314.6,030208,,,A*74
+$GPVTG,314.6,T,,M,018.0,N,033.3,K,A*07
+$GPGGA,181507,0641.1771,S,03712.4569,W,1,06,01.8,00204.3,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,14,344,00,04,33,019,46,08,42,116,46,10,17,301,42*7B
+$GPGSV,3,2,12,11,05,124,00,13,10,027,45,15,21,224,00,17,70,162,51*7D
+$GPGSV,3,3,12,25,18,065,43,26,30,222,00,27,30,079,41,28,25,163,42*77
+$GPRMC,181507,A,0641.1771,S,03712.4569,W,015.8,003.0,030208,,,A*79
+$GPVTG,003.0,T,,M,015.8,N,029.3,K,A*0A
+$GPGGA,181522,0641.1197,S,03712.4542,W,1,06,01.8,00204.7,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,14,344,00,04,33,019,50,08,42,116,49,10,17,301,38*7E
+$GPGSV,3,2,12,11,05,124,00,13,10,027,34,15,21,224,00,17,69,162,50*72
+$GPGSV,3,3,12,25,17,065,42,26,30,222,00,27,30,079,46,28,25,163,36*7D
+$GPRMC,181522,A,0641.1197,S,03712.4542,W,014.2,349.9,030208,,,A*76
+$GPVTG,349.9,T,,M,014.2,N,026.3,K,A*0A
+$GPGGA,181537,0641.0643,S,03712.4650,W,1,06,01.8,00204.5,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,344,00,04,33,019,49,08,42,116,46,10,17,301,37*77
+$GPGSV,3,2,12,11,05,124,00,13,10,027,34,15,22,224,00,17,69,162,51*70
+$GPGSV,3,3,12,25,17,065,34,26,30,223,00,27,30,079,45,28,25,163,41*7E
+$GPRMC,181537,A,0641.0643,S,03712.4650,W,017.3,347.3,030208,,,A*7B
+$GPVTG,347.3,T,,M,017.3,N,032.1,K,A*0B
+$GPGGA,181552,0641.0006,S,03712.4705,W,1,06,01.8,00204.7,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,344,00,04,33,019,50,08,42,116,38,10,17,301,45*73
+$GPGSV,3,2,12,11,05,124,00,13,10,027,35,15,22,224,00,17,69,162,52*72
+$GPGSV,3,3,12,25,17,065,41,26,30,223,00,27,30,079,46,28,25,163,33*7A
+$GPRMC,181552,A,0641.0006,S,03712.4705,W,010.7,321.5,030208,,,A*7B
+$GPVTG,321.5,T,,M,010.7,N,019.8,K,A*0E
+$GPGGA,181607,0640.9673,S,03712.4794,W,1,05,01.8,00207.9,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.8,02.7*0F
+$GPGSV,3,1,12,02,15,345,00,04,33,019,46,08,42,116,51,10,17,301,38*70
+$GPGSV,3,2,12,11,05,124,00,13,09,027,30,15,22,224,00,17,69,162,50*7D
+$GPGSV,3,3,12,25,17,065,31,26,30,223,00,27,30,079,39,28,25,163,35*73
+$GPRMC,181607,A,0640.9673,S,03712.4794,W,005.9,346.0,030208,,,A*72
+$GPVTG,346.0,T,,M,005.9,N,010.9,K,A*08
+$GPGGA,181622,0640.9591,S,03712.4813,W,1,06,01.8,00199.5,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,33,019,50,08,42,116,48,10,17,302,42*71
+$GPGSV,3,2,12,11,05,124,00,13,09,027,40,15,22,224,00,17,69,162,42*79
+$GPGSV,3,3,12,25,17,065,32,26,30,223,00,27,30,079,43,28,25,163,40*7F
+$GPRMC,181622,A,0640.9591,S,03712.4813,W,000.5,350.5,030208,,,A*71
+$GPVTG,350.5,T,,M,000.5,N,000.9,K,A*02
+$GPGGA,181637,0640.9586,S,03712.4786,W,1,06,01.8,00199.5,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,33,020,44,08,42,115,49,10,17,302,40*7E
+$GPGSV,3,2,12,11,05,124,00,13,09,027,41,15,22,224,00,17,69,163,37*7B
+$GPGSV,3,3,12,25,17,065,33,26,30,223,00,27,30,079,39,28,25,162,41*73
+$GPRMC,181637,A,0640.9586,S,03712.4786,W,000.0,024.0,030208,,,A*70
+$GPVTG,024.0,T,,M,000.0,N,000.1,K,A*0A
+$GPGGA,181652,0640.9624,S,03712.4816,W,1,06,01.8,00198.3,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,33,020,42,08,42,115,51,10,17,302,43*72
+$GPGSV,3,2,12,11,05,124,00,13,09,027,39,15,22,224,00,17,69,163,41*75
+$GPGSV,3,3,12,25,17,065,28,26,30,223,00,27,30,079,37,28,25,162,35*74
+$GPRMC,181652,A,0640.9624,S,03712.4816,W,000.7,057.7,030208,,,A*7A
+$GPVTG,057.7,T,,M,000.7,N,001.4,K,A*0A
+$GPGGA,181707,0640.9632,S,03712.4822,W,1,06,01.8,00198.5,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,33,020,36,08,42,115,47,10,17,302,39*7B
+$GPGSV,3,2,12,11,05,124,00,13,09,027,34,15,22,224,00,17,69,163,41*78
+$GPGSV,3,3,12,25,17,065,37,26,30,223,00,27,30,078,45,28,25,162,36*7D
+$GPRMC,181707,A,0640.9632,S,03712.4822,W,001.0,057.7,030208,,,A*7D
+$GPVTG,057.7,T,,M,001.0,N,001.9,K,A*01
+$GPGGA,181722,0640.9637,S,03712.4813,W,1,06,01.8,00198.9,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,33,020,43,08,42,115,49,10,17,302,43*7A
+$GPGSV,3,2,12,11,05,124,00,13,09,027,35,15,22,224,00,17,68,163,42*7B
+$GPGSV,3,3,12,25,17,064,35,26,31,223,00,27,30,078,42,28,25,162,43*7A
+$GPRMC,181722,A,0640.9637,S,03712.4813,W,000.4,113.6,030208,,,A*78
+$GPVTG,113.6,T,,M,000.4,N,000.8,K,A*04
+$GPGGA,181737,0640.9626,S,03712.4812,W,1,06,01.8,00199.5,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,34,020,47,08,42,115,52,10,17,302,40*70
+$GPGSV,3,2,12,11,05,124,00,13,09,027,31,15,22,225,00,17,68,163,36*7D
+$GPGSV,3,3,12,25,17,064,38,26,31,223,00,27,30,078,41,28,25,162,41*76
+$GPRMC,181737,A,0640.9626,S,03712.4812,W,000.2,113.6,030208,,,A*7B
+$GPVTG,113.6,T,,M,000.2,N,000.4,K,A*0E
+$GPGGA,181752,0640.9628,S,03712.4804,W,1,06,01.8,00200.0,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,34,020,38,08,42,115,45,10,17,302,42*7C
+$GPGSV,3,2,12,11,05,125,00,13,09,027,41,15,22,225,00,17,68,163,40*7A
+$GPGSV,3,3,12,25,17,064,36,26,31,223,00,27,30,078,42,28,25,162,41*7B
+$GPRMC,181752,A,0640.9628,S,03712.4804,W,000.7,113.6,030208,,,A*74
+$GPVTG,113.6,T,,M,000.7,N,001.4,K,A*0A
+$GPGGA,181807,0640.9622,S,03712.4816,W,1,06,01.8,00200.8,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,34,020,35,08,42,114,45,10,17,302,42*70
+$GPGSV,3,2,12,11,05,125,00,13,09,027,42,15,22,225,00,17,68,163,42*7B
+$GPGSV,3,3,12,25,17,064,32,26,31,223,00,27,30,078,41,28,25,162,42*7F
+$GPRMC,181807,A,0640.9622,S,03712.4816,W,000.5,201.5,030208,,,A*73
+$GPVTG,201.5,T,,M,000.5,N,000.9,K,A*07
+$GPGGA,181822,0640.9631,S,03712.4813,W,1,06,01.8,00201.6,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,34,020,45,08,42,114,45,10,16,302,41*75
+$GPGSV,3,2,12,11,05,125,00,13,09,027,43,15,22,225,00,17,68,163,45*7D
+$GPGSV,3,3,12,25,17,064,32,26,31,223,00,27,30,078,41,28,25,162,42*7F
+$GPRMC,181822,A,0640.9631,S,03712.4813,W,000.1,201.5,030208,,,A*77
+$GPVTG,201.5,T,,M,000.1,N,000.3,K,A*09
+$GPGGA,181837,0640.9652,S,03712.4810,W,1,06,01.8,00201.8,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,34,020,42,08,42,114,46,10,16,303,39*7F
+$GPGSV,3,2,12,11,05,125,00,13,08,027,41,15,23,225,00,17,68,163,43*79
+$GPGSV,3,3,12,25,17,064,26,26,31,223,00,27,30,078,41,28,25,162,43*7B
+$GPRMC,181837,A,0640.9652,S,03712.4810,W,000.1,182.8,030208,,,A*70
+$GPVTG,182.8,T,,M,000.1,N,000.3,K,A*0C
+$GPGGA,181852,0640.9617,S,03712.4807,W,1,06,01.8,00202.4,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,15,345,00,04,34,020,43,08,42,114,45,10,16,303,42*71
+$GPGSV,3,2,12,11,05,125,00,13,08,027,42,15,23,225,00,17,68,163,41*78
+$GPGSV,3,3,12,25,17,064,35,26,31,224,00,27,30,078,42,28,25,162,43*7D
+$GPRMC,181852,A,0640.9617,S,03712.4807,W,001.0,180.5,030208,,,A*7B
+$GPVTG,180.5,T,,M,001.0,N,001.9,K,A*08
+$GPGGA,181907,0640.9620,S,03712.4808,W,1,06,01.8,00202.5,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,345,00,04,34,021,43,08,42,114,46,10,16,303,41*73
+$GPGSV,3,2,12,11,05,125,00,13,08,027,41,15,23,225,00,17,67,163,40*75
+$GPGSV,3,3,12,25,17,064,35,26,31,224,00,27,30,077,44,28,25,161,41*75
+$GPRMC,181907,A,0640.9620,S,03712.4808,W,000.2,180.5,030208,,,A*72
+$GPVTG,180.5,T,,M,000.2,N,000.4,K,A*07
+$GPGGA,181922,0640.9642,S,03712.4801,W,1,06,01.8,00202.6,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,345,00,04,34,021,43,08,42,114,45,10,16,303,42*73
+$GPGSV,3,2,12,11,05,125,00,13,08,027,42,15,23,225,00,17,67,163,38*79
+$GPGSV,3,3,12,25,17,064,32,26,31,224,00,27,30,077,43,28,25,161,42*76
+$GPRMC,181922,A,0640.9642,S,03712.4801,W,000.5,176.3,030208,,,A*70
+$GPVTG,176.3,T,,M,000.5,N,000.9,K,A*02
+$GPGGA,181937,0640.9651,S,03712.4812,W,1,06,01.8,00202.8,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,345,00,04,34,021,43,08,42,113,45,10,16,303,42*74
+$GPGSV,3,2,12,11,04,125,00,13,08,027,40,15,23,225,00,17,67,163,41*74
+$GPGSV,3,3,12,25,17,063,29,26,31,224,00,27,30,077,45,28,25,161,39*71
+$GPRMC,181937,A,0640.9651,S,03712.4812,W,000.5,176.3,030208,,,A*74
+$GPVTG,176.3,T,,M,000.5,N,000.9,K,A*02
+$GPGGA,181952,0640.9670,S,03712.4826,W,1,06,01.8,00202.7,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,34,021,46,08,42,113,46,10,16,303,43*70
+$GPGSV,3,2,12,11,04,125,00,13,08,027,43,15,23,225,00,17,67,163,42*74
+$GPGSV,3,3,12,25,17,063,33,26,31,224,00,27,30,077,42,28,25,161,43*70
+$GPRMC,181952,A,0640.9670,S,03712.4826,W,000.2,203.8,030208,,,A*7E
+$GPVTG,203.8,T,,M,000.2,N,000.5,K,A*03
+$GPGGA,182007,0640.9597,S,03712.4818,W,1,06,01.8,00201.9,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,34,021,46,08,42,113,46,10,16,303,41*72
+$GPGSV,3,2,12,11,04,125,00,13,08,027,41,15,23,225,00,17,67,163,39*7A
+$GPGSV,3,3,12,25,16,063,34,26,31,224,00,27,30,077,45,28,25,161,43*71
+$GPRMC,182007,A,0640.9597,S,03712.4818,W,000.1,326.2,030208,,,A*7C
+$GPVTG,326.2,T,,M,000.1,N,000.3,K,A*0A
+$GPGGA,182022,0640.9605,S,03712.4818,W,1,06,01.8,00201.6,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,34,021,46,08,42,113,45,10,16,303,41*71
+$GPGSV,3,2,12,11,04,125,00,13,08,027,40,15,23,225,00,17,67,163,35*77
+$GPGSV,3,3,12,25,16,063,36,26,32,224,00,27,30,077,45,28,25,161,42*71
+$GPRMC,182022,A,0640.9605,S,03712.4818,W,001.8,326.2,030208,,,A*7B
+$GPVTG,326.2,T,,M,001.8,N,003.4,K,A*06
+$GPGGA,182037,0640.9597,S,03712.4817,W,1,06,01.8,00201.9,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,34,021,46,08,42,113,45,10,16,304,42*75
+$GPGSV,3,2,12,11,04,125,00,13,08,027,41,15,23,225,00,17,67,163,38*7B
+$GPGSV,3,3,12,25,16,063,35,26,32,224,00,27,30,077,45,28,25,161,36*71
+$GPRMC,182037,A,0640.9597,S,03712.4817,W,000.2,326.2,030208,,,A*73
+$GPVTG,326.2,T,,M,000.2,N,000.3,K,A*09
+$GPGGA,182052,0640.9601,S,03712.4814,W,1,06,01.8,00202.1,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,34,021,46,08,42,113,47,10,16,304,40*75
+$GPGSV,3,2,12,11,04,125,00,13,08,027,41,15,23,225,00,17,67,163,41*75
+$GPGSV,3,3,12,25,16,063,31,26,32,224,00,27,30,076,43,28,24,161,40*72
+$GPRMC,182052,A,0640.9601,S,03712.4814,W,000.3,326.2,030208,,,A*7E
+$GPVTG,326.2,T,,M,000.3,N,000.5,K,A*0E
+$GPGGA,182107,0640.9598,S,03712.4811,W,1,06,01.8,00202.7,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,35,021,44,08,42,112,44,10,16,304,41*75
+$GPGSV,3,2,12,11,04,126,00,13,08,027,36,15,23,226,00,17,66,163,46*73
+$GPGSV,3,3,12,25,16,063,34,26,32,224,00,27,30,076,42,28,24,161,40*76
+$GPRMC,182107,A,0640.9598,S,03712.4811,W,000.4,326.2,030208,,,A*7E
+$GPVTG,326.2,T,,M,000.4,N,000.7,K,A*0B
+$GPGGA,182122,0640.9592,S,03712.4811,W,1,06,01.8,00202.7,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,35,021,47,08,42,112,42,10,16,304,41*70
+$GPGSV,3,2,12,11,04,126,00,13,07,027,36,15,23,226,00,17,66,163,42*78
+$GPGSV,3,3,12,25,16,063,35,26,32,224,00,27,30,076,46,28,24,160,39*7C
+$GPRMC,182122,A,0640.9592,S,03712.4811,W,000.4,326.2,030208,,,A*73
+$GPVTG,326.2,T,,M,000.4,N,000.7,K,A*0B
+$GPGGA,182137,0640.9623,S,03712.4814,W,1,06,01.8,00202.5,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,35,022,47,08,42,112,42,10,16,304,41*73
+$GPGSV,3,2,12,11,04,126,00,13,07,027,36,15,23,226,00,17,66,163,42*78
+$GPGSV,3,3,12,25,16,063,35,26,32,224,00,27,30,076,46,28,24,160,40*72
+$GPRMC,182137,A,0640.9623,S,03712.4814,W,000.4,353.4,030208,,,A*7F
+$GPVTG,353.4,T,,M,000.4,N,000.7,K,A*0F
+$GPGGA,182152,0640.9633,S,03712.4811,W,1,06,01.8,00202.5,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,35,022,47,08,42,112,42,10,16,304,40*72
+$GPGSV,3,2,12,11,04,126,00,13,07,027,35,15,24,226,00,17,66,163,41*7F
+$GPGSV,3,3,12,25,16,063,34,26,32,225,00,27,30,076,46,28,24,160,40*72
+$GPRMC,182152,A,0640.9633,S,03712.4811,W,000.2,065.9,030208,,,A*75
+$GPVTG,065.9,T,,M,000.2,N,000.4,K,A*01
+$GPGGA,182207,0640.9623,S,03712.4812,W,1,06,01.8,00202.7,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,16,346,00,04,35,022,46,08,42,112,42,10,16,304,39*7D
+$GPGSV,3,2,12,11,04,126,00,13,07,027,33,15,24,226,00,17,66,163,40*78
+$GPGSV,3,3,12,25,16,062,35,26,32,225,00,27,29,076,46,28,24,160,40*7A
+$GPRMC,182207,A,0640.9623,S,03712.4812,W,000.3,065.9,030208,,,A*75
+$GPVTG,065.9,T,,M,000.3,N,000.5,K,A*01
+$GPGGA,182222,0640.9624,S,03712.4806,W,1,06,01.8,00202.9,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,346,00,04,35,022,46,08,43,112,42,10,16,304,40*73
+$GPGSV,3,2,12,11,04,126,00,13,07,027,34,15,24,226,00,17,66,163,41*7E
+$GPGSV,3,3,12,25,16,062,33,26,32,225,00,27,29,076,45,28,24,160,40*7F
+$GPRMC,182222,A,0640.9624,S,03712.4806,W,000.3,017.9,030208,,,A*75
+$GPVTG,017.9,T,,M,000.3,N,000.5,K,A*04
+$GPGGA,182237,0640.9623,S,03712.4808,W,1,06,01.8,00202.7,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,346,00,04,35,022,46,08,43,111,44,10,16,304,41*77
+$GPGSV,3,2,12,11,04,126,00,13,07,027,32,15,24,226,00,17,66,163,41*78
+$GPGSV,3,3,12,25,16,062,33,26,32,225,00,27,29,076,46,28,24,160,39*72
+$GPRMC,182237,A,0640.9623,S,03712.4808,W,000.8,017.9,030208,,,A*73
+$GPVTG,017.9,T,,M,000.8,N,001.5,K,A*0E
+$GPGGA,182252,0640.9610,S,03712.4810,W,1,06,01.8,00202.5,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,346,00,04,35,022,45,08,43,111,43,10,16,305,40*73
+$GPGSV,3,2,12,11,04,126,00,13,07,027,30,15,24,226,00,17,66,163,41*7A
+$GPGSV,3,3,12,25,16,062,35,26,32,225,00,27,29,075,47,28,24,160,39*76
+$GPRMC,182252,A,0640.9610,S,03712.4810,W,000.4,358.0,030208,,,A*74
+$GPVTG,358.0,T,,M,000.4,N,000.7,K,A*00
+$GPGGA,182307,0640.9604,S,03712.4789,W,1,05,01.8,00202.7,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.8,02.8*00
+$GPGSV,3,1,12,02,17,346,00,04,35,022,45,08,43,111,44,10,16,305,35*76
+$GPGSV,3,2,12,11,04,126,00,13,07,027,28,15,24,226,00,17,65,163,42*73
+$GPGSV,3,3,12,25,16,062,35,26,33,225,00,27,29,075,46,28,24,160,38*77
+$GPRMC,182307,A,0640.9604,S,03712.4789,W,000.6,039.0,030208,,,A*79
+$GPVTG,039.0,T,,M,000.6,N,001.1,K,A*01
+$GPGGA,182322,0640.9606,S,03712.4791,W,1,06,01.8,00202.6,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,346,00,04,35,022,46,08,43,111,40,10,16,305,37*73
+$GPGSV,3,2,12,11,04,126,00,13,07,027,27,15,24,226,00,17,65,163,43*7D
+$GPGSV,3,3,12,25,16,062,36,26,33,225,00,27,29,075,45,28,24,160,36*79
+$GPRMC,182322,A,0640.9606,S,03712.4791,W,000.1,029.3,030208,,,A*70
+$GPVTG,029.3,T,,M,000.1,N,000.2,K,A*06
+$GPGGA,182337,0640.9632,S,03712.4800,W,1,06,01.8,00202.2,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,347,00,04,35,022,49,08,43,111,32,10,16,305,49*71
+$GPGSV,3,2,12,11,04,126,00,13,07,027,35,15,24,226,00,17,65,163,46*7B
+$GPGSV,3,3,12,25,16,062,41,26,33,225,00,27,29,075,37,28,24,160,35*7F
+$GPRMC,182337,A,0640.9632,S,03712.4800,W,000.5,104.8,030208,,,A*75
+$GPVTG,104.8,T,,M,000.5,N,000.9,K,A*0C
+$GPGGA,182352,0640.9603,S,03712.4810,W,1,06,01.8,00201.6,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,347,00,04,35,023,49,08,43,111,49,10,16,305,34*76
+$GPGSV,3,2,12,11,04,126,00,13,06,027,38,15,24,226,00,17,65,163,49*78
+$GPGSV,3,3,12,25,16,062,46,26,33,225,00,27,29,075,44,28,24,159,49*7D
+$GPRMC,182352,A,0640.9603,S,03712.4810,W,000.8,352.0,030208,,,A*71
+$GPVTG,352.0,T,,M,000.8,N,001.5,K,A*05
+$GPGGA,182407,0640.9548,S,03712.4805,W,1,06,01.8,00201.8,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,347,00,04,35,023,42,08,43,110,47,10,16,305,41*70
+$GPGSV,3,2,12,11,03,126,00,13,06,027,33,15,24,226,00,17,65,163,51*7D
+$GPGSV,3,3,12,25,16,062,33,26,33,225,00,27,29,075,46,28,24,159,52*77
+$GPRMC,182407,A,0640.9548,S,03712.4805,W,001.7,357.1,030208,,,A*74
+$GPVTG,357.1,T,,M,001.7,N,003.1,K,A*09
+$GPGGA,182422,0640.9494,S,03712.4813,W,1,06,01.8,00201.9,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.8,02.6*0D
+$GPGSV,3,1,12,02,17,347,00,04,35,023,33,08,43,110,49,10,16,305,33*7D
+$GPGSV,3,2,12,11,03,127,00,13,06,027,36,15,24,227,00,17,65,164,51*7F
+$GPGSV,3,3,12,25,16,062,35,26,33,225,00,27,29,075,44,28,24,159,49*79
+$GPRMC,182422,A,0640.9494,S,03712.4813,W,001.9,014.3,030208,,,A*7C
+$GPVTG,014.3,T,,M,001.9,N,003.6,K,A*06
+$GPGGA,182442,0640.9425,S,03712.4848,W,1,06,01.7,00199.9,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,17,347,00,04,36,023,35,08,43,110,50,10,16,305,32*71
+$GPGSV,3,2,12,11,03,127,00,13,06,027,35,15,25,227,00,17,65,164,51*7D
+$GPGSV,3,3,12,25,16,061,35,26,33,226,00,27,29,074,46,28,24,159,50*72
+$GPRMC,182442,A,0640.9425,S,03712.4848,W,000.8,342.7,030208,,,A*7A
+$GPVTG,342.7,T,,M,000.8,N,001.5,K,A*03
+$GPGGA,182457,0640.9388,S,03712.4849,W,1,05,02.7,00175.1,M,-012.0,M,,*62
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,04.5,02.7,03.5*02
+$GPGSV,3,1,12,02,17,347,00,04,36,023,45,08,43,110,51,10,16,305,29*7D
+$GPGSV,3,2,12,11,03,127,00,13,06,027,35,15,25,227,00,17,64,164,51*7C
+$GPGSV,3,3,12,25,15,061,42,26,33,226,00,27,29,074,47,28,24,159,52*72
+$GPRMC,182457,A,0640.9388,S,03712.4849,W,002.2,233.1,030208,,,A*76
+$GPVTG,233.1,T,,M,002.2,N,004.0,K,A*0A
+$GPGGA,182512,0640.9333,S,03712.4885,W,1,06,01.7,00185.4,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,17,347,00,04,36,023,41,08,43,110,44,10,16,306,38*7E
+$GPGSV,3,2,12,11,03,127,00,13,06,027,32,15,25,227,00,17,64,164,43*78
+$GPGSV,3,3,12,25,15,061,35,26,33,226,00,27,29,074,41,28,24,159,52*74
+$GPRMC,182512,A,0640.9333,S,03712.4885,W,000.8,275.0,030208,,,A*7D
+$GPVTG,275.0,T,,M,000.8,N,001.6,K,A*02
+$GPGGA,182527,0640.9343,S,03712.4953,W,1,05,02.7,00188.6,M,-012.0,M,,*6C
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,04.4,02.7,03.5*03
+$GPGSV,3,1,12,02,17,347,00,04,36,023,45,08,43,110,52,10,16,306,28*7C
+$GPGSV,3,2,12,11,03,127,00,13,06,027,38,15,25,227,00,17,64,164,49*78
+$GPGSV,3,3,12,25,15,061,40,26,33,226,00,27,29,074,46,28,24,159,49*7B
+$GPRMC,182527,A,0640.9343,S,03712.4953,W,000.4,252.6,030208,,,A*79
+$GPVTG,252.6,T,,M,000.4,N,000.8,K,A*02
+$GPGGA,182542,0640.9371,S,03712.4913,W,1,06,01.7,00190.2,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.2,01.7,02.6*02
+$GPGSV,3,1,12,02,18,347,00,04,36,023,43,08,43,109,48,10,16,306,34*7B
+$GPGSV,3,2,12,11,03,127,00,13,06,027,37,15,25,227,00,17,64,164,50*7F
+$GPGSV,3,3,12,25,15,061,34,26,33,226,00,27,29,074,41,28,24,159,50*77
+$GPRMC,182542,A,0640.9371,S,03712.4913,W,000.4,181.8,030208,,,A*7C
+$GPVTG,181.8,T,,M,000.4,N,000.9,K,A*00
+$GPGGA,182557,0640.9334,S,03712.4895,W,1,05,02.7,00188.9,M,-012.0,M,,*6F
+$GPGSA,A,3,04,13,17,25,27,,,,,,,,04.4,02.7,03.4*02
+$GPGSV,3,1,12,02,18,347,00,04,36,023,45,08,43,109,50,10,16,306,28*79
+$GPGSV,3,2,12,11,03,127,00,13,06,027,52,15,25,227,00,17,64,164,52*7E
+$GPGSV,3,3,12,25,15,061,50,26,33,226,00,27,29,074,49,28,24,159,51*7C
+$GPRMC,182557,A,0640.9334,S,03712.4895,W,000.2,181.8,030208,,,A*70
+$GPVTG,181.8,T,,M,000.2,N,000.5,K,A*0A
+$GPGGA,182612,0640.9328,S,03712.4880,W,1,06,01.7,00186.9,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,18,347,00,04,36,023,51,08,43,109,48,10,16,306,32*7E
+$GPGSV,3,2,12,11,03,127,00,13,06,027,51,15,25,227,00,17,64,164,49*77
+$GPGSV,3,3,12,25,15,061,47,26,34,226,00,27,29,074,51,28,24,158,42*77
+$GPRMC,182612,A,0640.9328,S,03712.4880,W,000.4,181.8,030208,,,A*7D
+$GPVTG,181.8,T,,M,000.4,N,000.8,K,A*01
+$GPGGA,182627,0640.9311,S,03712.4873,W,1,06,01.7,00187.9,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,18,347,00,04,36,024,46,08,43,109,48,10,16,306,52*79
+$GPGSV,3,2,12,11,03,127,00,13,05,027,51,15,25,227,00,17,64,164,41*7C
+$GPGSV,3,3,12,25,15,061,34,26,34,226,00,27,29,074,48,28,24,158,32*7C
+$GPRMC,182627,A,0640.9311,S,03712.4873,W,000.3,174.3,030208,,,A*7B
+$GPVTG,174.3,T,,M,000.3,N,000.5,K,A*0A
+$GPGGA,182642,0640.9293,S,03712.4859,W,1,05,01.9,00189.1,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,13,17,27,,,,,,,,03.5,01.9,02.9*03
+$GPGSV,3,1,12,02,18,347,00,04,36,024,47,08,43,109,46,10,16,306,51*75
+$GPGSV,3,2,12,11,03,127,00,13,05,027,51,15,25,227,00,17,64,164,39*73
+$GPGSV,3,3,12,25,15,061,31,26,34,226,00,27,29,073,50,28,24,158,26*72
+$GPRMC,182642,A,0640.9293,S,03712.4859,W,000.4,174.3,030208,,,A*7C
+$GPVTG,174.3,T,,M,000.4,N,000.8,K,A*00
+$GPGGA,182657,0640.9305,S,03712.4848,W,1,06,01.7,00190.0,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,18,347,00,04,36,024,39,08,43,109,47,10,16,306,50*7C
+$GPGSV,3,2,12,11,03,127,00,13,05,027,46,15,25,227,00,17,63,164,44*78
+$GPGSV,3,3,12,25,15,061,37,26,34,226,00,27,29,073,49,28,23,158,37*7B
+$GPRMC,182657,A,0640.9305,S,03712.4848,W,000.8,171.6,030208,,,A*7A
+$GPVTG,171.6,T,,M,000.8,N,001.6,K,A*03
+$GPGGA,182712,0640.9348,S,03712.4839,W,1,06,01.7,00190.7,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,18,348,00,04,36,024,48,08,43,108,36,10,16,307,50*73
+$GPGSV,3,2,12,11,03,127,00,13,05,027,46,15,25,227,00,17,63,164,33*78
+$GPGSV,3,3,12,25,15,060,47,26,34,227,00,27,29,073,46,28,23,158,31*75
+$GPRMC,182712,A,0640.9348,S,03712.4839,W,000.4,169.9,030208,,,A*7F
+$GPVTG,169.9,T,,M,000.4,N,000.8,K,A*06
+$GPGGA,182727,0640.9310,S,03712.4827,W,1,06,01.7,00191.2,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,13,17,25,27,,,,,,,03.1,01.7,02.6*01
+$GPGSV,3,1,12,02,18,348,00,04,36,024,47,08,43,108,51,10,16,307,36*7D
+$GPGSV,3,2,12,11,03,127,00,13,05,027,52,15,25,228,00,17,63,164,44*72
+$GPGSV,3,3,12,25,15,060,45,26,34,227,00,27,29,073,51,28,23,158,48*7F
+$GPRMC,182727,A,0640.9310,S,03712.4827,W,001.0,157.8,030208,,,A*72
+$GPVTG,157.8,T,,M,001.0,N,001.8,K,A*0E
+$GPGGA,182742,0640.9295,S,03712.4835,W,1,05,01.7,00191.1,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,18,348,00,04,36,024,40,08,43,108,48,10,16,307,47*74
+$GPGSV,3,2,12,11,03,128,00,13,05,027,00,15,25,228,00,17,63,164,48*76
+$GPGSV,3,3,12,25,15,060,33,26,34,227,00,27,29,073,42,28,23,158,51*74
+$GPRMC,182742,A,0640.9295,S,03712.4835,W,000.4,122.5,030208,,,A*74
+$GPVTG,122.5,T,,M,000.4,N,000.7,K,A*0A
+$GPGGA,182757,0640.9253,S,03712.4830,W,1,05,01.7,00191.8,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,18,348,00,04,37,024,41,08,43,108,46,10,16,307,46*7B
+$GPGSV,3,2,12,11,03,128,00,13,05,027,00,15,26,228,00,17,63,164,49*74
+$GPGSV,3,3,12,25,15,060,32,26,34,227,00,27,29,073,41,28,23,158,51*76
+$GPRMC,182757,A,0640.9253,S,03712.4830,W,000.3,041.9,030208,,,A*70
+$GPVTG,041.9,T,,M,000.3,N,000.6,K,A*04
+$GPGGA,182812,0640.9234,S,03712.4833,W,1,04,01.9,00193.0,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.9,03.7*0E
+$GPGSV,3,1,12,02,18,348,00,04,37,024,42,08,43,108,47,10,16,307,46*79
+$GPGSV,3,2,12,11,03,128,00,13,05,027,00,15,26,228,00,17,63,164,49*74
+$GPGSV,3,3,12,25,15,060,00,26,34,227,00,27,29,073,40,28,23,158,48*7E
+$GPRMC,182812,A,0640.9234,S,03712.4833,W,000.3,012.6,030208,,,A*75
+$GPVTG,012.6,T,,M,000.3,N,000.6,K,A*0D
+$GPGGA,182827,0640.9264,S,03712.4831,W,1,04,01.9,00194.0,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.9,03.7*0E
+$GPGSV,3,1,12,02,18,348,00,04,37,024,42,08,43,108,47,10,16,307,45*7A
+$GPGSV,3,2,12,11,03,128,00,13,05,027,00,15,26,228,00,17,63,164,48*75
+$GPGSV,3,3,12,25,15,060,00,26,34,227,00,27,28,073,41,28,23,157,48*71
+$GPRMC,182827,A,0640.9264,S,03712.4831,W,000.2,099.2,030208,,,A*72
+$GPVTG,099.2,T,,M,000.2,N,000.4,K,A*09
+$GPGGA,182842,0640.9242,S,03712.4841,W,1,04,01.9,00194.9,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.9,03.7*0E
+$GPGSV,3,1,12,02,18,348,00,04,37,025,39,08,43,107,43,10,16,307,40*79
+$GPGSV,3,2,12,11,02,128,00,13,05,027,00,15,26,228,00,17,63,164,49*75
+$GPGSV,3,3,12,25,15,060,00,26,34,227,00,27,28,072,36,28,23,157,39*76
+$GPRMC,182842,A,0640.9242,S,03712.4841,W,000.2,099.2,030208,,,A*72
+$GPVTG,099.2,T,,M,000.2,N,000.5,K,A*08
+$GPGGA,182857,0640.9241,S,03712.4836,W,1,04,01.8,00196.0,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,17,25,,,,,,,,,03.3,01.8,02.8*05
+$GPGSV,3,1,12,02,19,348,00,04,37,025,44,08,43,107,39,10,16,307,51*7F
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,228,00,17,62,164,45*79
+$GPGSV,3,3,12,25,15,060,36,26,34,227,00,27,28,072,31,28,23,157,38*75
+$GPRMC,182857,A,0640.9241,S,03712.4836,W,000.5,146.2,030208,,,A*71
+$GPVTG,146.2,T,,M,000.5,N,000.9,K,A*00
+$GPGGA,182917,0640.9199,S,03712.4825,W,1,05,01.7,00196.5,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,348,00,04,37,025,53,08,43,107,41,10,16,307,52*75
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,228,00,17,62,164,43*7F
+$GPGSV,3,3,12,25,14,060,52,26,35,227,00,27,28,072,39,28,23,157,27*71
+$GPRMC,182917,A,0640.9199,S,03712.4825,W,000.3,042.6,030208,,,A*77
+$GPVTG,042.6,T,,M,000.3,N,000.7,K,A*09
+$GPGGA,182932,0640.9240,S,03712.4825,W,1,05,01.7,00196.5,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,348,00,04,37,025,52,08,43,107,41,10,16,308,52*7B
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,228,00,17,62,164,42*7E
+$GPGSV,3,3,12,25,14,060,52,26,35,227,00,27,28,072,40,28,23,157,29*71
+$GPRMC,182932,A,0640.9240,S,03712.4825,W,000.2,042.6,030208,,,A*76
+$GPVTG,042.6,T,,M,000.2,N,000.4,K,A*0B
+$GPGGA,182947,0640.9274,S,03712.4817,W,1,05,01.7,00196.1,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,348,00,04,37,025,45,08,43,107,34,10,16,308,52*7F
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,228,00,17,62,164,45*79
+$GPGSV,3,3,12,25,14,059,39,26,35,228,00,27,28,072,39,28,23,157,36*79
+$GPRMC,182947,A,0640.9274,S,03712.4817,W,000.1,089.2,030208,,,A*72
+$GPVTG,089.2,T,,M,000.1,N,000.1,K,A*0E
+$GPGGA,183002,0640.9259,S,03712.4802,W,1,05,01.7,00196.4,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,348,00,04,37,025,50,08,43,107,36,10,16,308,52*79
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,228,00,17,62,164,39*72
+$GPGSV,3,3,12,25,14,059,46,26,35,228,00,27,28,072,41,28,23,157,33*7B
+$GPRMC,183002,A,0640.9259,S,03712.4802,W,000.6,021.7,030208,,,A*70
+$GPVTG,021.7,T,,M,000.6,N,001.1,K,A*0F
+$GPGGA,183017,0640.9321,S,03712.4798,W,1,05,01.7,00196.0,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,348,00,04,37,025,51,08,43,106,37,10,15,308,52*7B
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,228,00,17,62,164,42*7E
+$GPGSV,3,3,12,25,14,059,35,26,35,228,00,27,28,072,43,28,23,157,35*7B
+$GPRMC,183017,A,0640.9321,S,03712.4798,W,000.4,133.4,030208,,,A*75
+$GPVTG,133.4,T,,M,000.4,N,000.7,K,A*0B
+$GPGGA,183032,0640.9323,S,03712.4817,W,1,05,01.7,00196.1,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,348,00,04,37,025,48,08,43,106,39,10,15,308,46*78
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,229,00,17,62,164,43*7E
+$GPGSV,3,3,12,25,14,059,41,26,35,228,00,27,28,072,42,28,23,157,42*79
+$GPRMC,183032,A,0640.9323,S,03712.4817,W,000.0,178.4,030208,,,A*73
+$GPVTG,178.4,T,,M,000.0,N,000.1,K,A*06
+$GPGGA,183047,0640.9327,S,03712.4834,W,1,04,01.9,00196.4,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.9,03.7*0E
+$GPGSV,3,1,12,02,19,348,00,04,37,025,41,08,43,106,38,10,15,308,52*75
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,26,229,00,17,62,164,40*7D
+$GPGSV,3,3,12,25,14,059,28,26,35,228,00,27,28,071,49,28,23,156,32*78
+$GPRMC,183047,A,0640.9327,S,03712.4834,W,000.4,178.4,030208,,,A*70
+$GPVTG,178.4,T,,M,000.4,N,000.8,K,A*0B
+$GPGGA,183102,0640.9324,S,03712.4819,W,1,05,01.7,00197.1,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,349,00,04,37,026,40,08,43,106,34,10,15,308,45*7C
+$GPGSV,3,2,12,11,02,128,00,13,04,027,00,15,27,229,00,17,61,164,44*7B
+$GPGSV,3,3,12,25,14,059,31,26,35,228,00,27,28,071,31,28,23,156,41*7B
+$GPRMC,183102,A,0640.9324,S,03712.4819,W,000.3,099.8,030208,,,A*79
+$GPVTG,099.8,T,,M,000.3,N,000.6,K,A*00
+$GPGGA,183122,0640.9446,S,03712.4863,W,1,05,01.7,00193.6,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,349,00,04,38,026,47,08,43,106,41,10,15,308,47*74
+$GPGSV,3,2,12,11,02,129,00,13,04,027,00,15,27,229,00,17,61,164,35*7C
+$GPGSV,3,3,12,25,14,059,46,26,35,228,00,27,28,071,45,28,23,156,34*7A
+$GPRMC,183122,A,0640.9446,S,03712.4863,W,002.0,184.3,030208,,,A*72
+$GPVTG,184.3,T,,M,002.0,N,003.8,K,A*0A
+$GPGGA,183137,0640.9427,S,03712.4856,W,1,05,01.7,00194.5,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,19,349,00,04,38,026,47,08,43,105,39,10,15,309,49*77
+$GPGSV,3,2,12,11,02,129,00,13,04,027,00,15,27,229,00,17,61,164,40*7E
+$GPGSV,3,3,12,25,14,059,42,26,35,228,00,27,28,071,46,28,23,156,32*7B
+$GPRMC,183137,A,0640.9427,S,03712.4856,W,001.4,167.3,030208,,,A*7D
+$GPVTG,167.3,T,,M,001.4,N,002.6,K,A*0F
+$GPGGA,183152,0640.9552,S,03712.4850,W,1,04,01.8,00193.9,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,25,,,,,,,,,03.3,01.8,02.8*05
+$GPGSV,3,1,12,02,19,349,00,04,38,026,41,08,43,105,39,10,15,309,46*7E
+$GPGSV,3,2,12,11,02,129,00,13,03,027,00,15,27,229,00,17,61,164,42*7B
+$GPGSV,3,3,12,25,14,059,41,26,35,228,00,27,28,071,35,28,23,156,32*7C
+$GPRMC,183152,A,0640.9552,S,03712.4850,W,003.6,177.8,030208,,,A*71
+$GPVTG,177.8,T,,M,003.6,N,006.8,K,A*0F
+$GPGGA,183207,0640.9624,S,03712.4828,W,1,05,01.7,00194.4,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,20,349,00,04,38,026,41,08,43,105,47,10,15,309,33*7F
+$GPGSV,3,2,12,11,02,129,00,13,03,027,00,15,27,229,00,17,61,164,48*71
+$GPGSV,3,3,12,25,14,059,45,26,35,229,00,27,28,071,50,28,23,156,42*7D
+$GPRMC,183207,A,0640.9624,S,03712.4828,W,002.4,182.0,030208,,,A*7E
+$GPVTG,182.0,T,,M,002.4,N,004.6,K,A*02
+$GPGGA,183222,0640.9632,S,03712.4811,W,1,05,01.7,00183.4,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,20,349,00,04,38,026,49,08,43,105,43,10,15,309,46*71
+$GPGSV,3,2,12,11,02,129,00,13,03,027,00,15,27,229,00,17,61,164,39*77
+$GPGSV,3,3,12,25,14,058,44,26,36,229,00,27,28,071,46,28,23,156,29*74
+$GPRMC,183222,A,0640.9632,S,03712.4811,W,001.6,167.6,030208,,,A*78
+$GPVTG,167.6,T,,M,001.6,N,003.1,K,A*0E
+$GPGGA,183237,0640.9634,S,03712.4806,W,1,05,01.7,00186.3,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.3,01.7,02.8*0F
+$GPGSV,3,1,12,02,20,349,00,04,38,026,48,08,43,105,49,10,15,309,35*7E
+$GPGSV,3,2,12,11,02,129,00,13,03,027,00,15,27,229,00,17,61,164,47*7E
+$GPGSV,3,3,12,25,14,058,49,26,36,229,00,27,28,071,48,28,23,156,47*7F
+$GPRMC,183237,A,0640.9634,S,03712.4806,W,003.0,173.8,030208,,,A*73
+$GPVTG,173.8,T,,M,003.0,N,005.7,K,A*01
+$GPGGA,183252,0640.9644,S,03712.4786,W,1,05,01.7,00188.7,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.8*0E
+$GPGSV,3,1,12,02,20,349,00,04,38,026,51,08,43,105,36,10,15,309,48*74
+$GPGSV,3,2,12,11,02,129,00,13,03,027,00,15,27,229,00,17,60,164,47*7F
+$GPGSV,3,3,12,25,14,058,40,26,36,229,00,27,28,070,46,28,23,156,34*7D
+$GPRMC,183252,A,0640.9644,S,03712.4786,W,000.9,173.8,030208,,,A*7A
+$GPVTG,173.8,T,,M,000.9,N,001.7,K,A*0F
+$GPGGA,183307,0640.9647,S,03712.4779,W,1,05,01.7,00188.5,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.8*0E
+$GPGSV,3,1,12,02,20,349,00,04,38,026,49,08,43,104,48,10,15,309,36*7C
+$GPGSV,3,2,12,11,01,129,00,13,03,027,00,15,27,229,00,17,60,164,51*7B
+$GPGSV,3,3,12,25,14,058,48,26,36,229,00,27,28,070,46,28,23,156,40*76
+$GPRMC,183307,A,0640.9647,S,03712.4779,W,000.6,173.8,030208,,,A*77
+$GPVTG,173.8,T,,M,000.6,N,001.2,K,A*05
+$GPGGA,183322,0640.9632,S,03712.4781,W,1,05,01.7,00188.2,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.8*0E
+$GPGSV,3,1,12,02,20,349,00,04,38,027,50,08,43,104,50,10,15,309,34*7E
+$GPGSV,3,2,12,11,01,129,00,13,03,027,00,15,27,230,00,17,60,164,52*70
+$GPGSV,3,3,12,25,14,058,42,26,36,229,00,27,28,070,47,28,22,155,44*7B
+$GPRMC,183322,A,0640.9632,S,03712.4781,W,001.4,124.0,030208,,,A*7C
+$GPVTG,124.0,T,,M,001.4,N,002.7,K,A*0A
+$GPGGA,183337,0640.9707,S,03712.4797,W,1,05,01.7,00189.6,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,20,349,00,04,38,027,38,08,43,104,42,10,15,309,39*7E
+$GPGSV,3,2,12,11,01,129,00,13,03,027,00,15,27,230,00,17,60,164,36*72
+$GPGSV,3,3,12,25,13,058,26,26,36,229,00,27,28,070,26,28,22,155,00*79
+$GPRMC,183337,A,0640.9707,S,03712.4797,W,000.1,174.4,030208,,,A*7D
+$GPVTG,174.4,T,,M,000.1,N,000.3,K,A*09
+$GPGGA,183442,0641.0196,S,03712.4574,W,1,05,01.7,00180.6,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,20,350,00,04,39,027,40,08,43,103,48,10,15,310,34*70
+$GPGSV,3,2,12,11,01,129,00,13,02,027,00,15,28,230,48,17,60,164,49*78
+$GPGSV,3,3,12,25,13,058,41,26,36,230,00,27,27,070,47,28,22,155,47*7B
+$GPRMC,183442,A,0641.0196,S,03712.4574,W,000.4,308.0,030208,,,A*79
+$GPVTG,308.0,T,,M,000.4,N,000.7,K,A*05
+$GPGGA,183457,0641.0250,S,03712.4547,W,1,05,01.7,00175.9,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,21,350,00,04,39,027,48,08,43,103,49,10,15,310,35*79
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,230,44,17,59,164,50*7E
+$GPGSV,3,3,12,25,13,058,36,26,36,230,00,27,27,069,45,28,22,155,48*7E
+$GPRMC,183457,A,0641.0250,S,03712.4547,W,000.0,308.0,030208,,,A*70
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183512,0641.0226,S,03712.4567,W,1,05,01.7,00190.0,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,21,350,00,04,39,027,45,08,43,103,49,10,15,310,42*74
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,230,43,17,59,164,50*79
+$GPGSV,3,3,12,25,13,057,47,26,36,230,00,27,27,069,47,28,22,155,48*75
+$GPRMC,183512,A,0641.0226,S,03712.4567,W,000.0,308.0,030208,,,A*73
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183527,0641.0221,S,03712.4584,W,1,05,01.7,00192.0,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,21,350,00,04,39,028,46,08,43,103,49,10,15,310,43*79
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,230,44,17,59,164,50*7E
+$GPGSV,3,3,12,25,13,057,47,26,37,230,00,27,27,069,46,28,22,155,50*7C
+$GPRMC,183527,A,0641.0221,S,03712.4584,W,000.0,308.0,030208,,,A*7F
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183542,0641.0215,S,03712.4589,W,1,05,01.7,00193.8,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,21,350,00,04,39,028,48,08,43,103,47,10,15,310,38*75
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,230,46,17,59,164,50*7C
+$GPGSV,3,3,12,25,13,057,48,26,37,230,00,27,27,069,48,28,22,154,48*75
+$GPRMC,183542,A,0641.0215,S,03712.4589,W,000.0,308.0,030208,,,A*76
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183557,0641.0214,S,03712.4595,W,1,05,01.7,00193.7,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,21,350,00,04,39,028,50,08,43,103,48,10,15,310,46*7A
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,230,40,17,59,164,51*7B
+$GPGSV,3,3,12,25,13,057,46,26,37,230,00,27,27,069,45,28,22,154,51*7E
+$GPRMC,183557,A,0641.0214,S,03712.4595,W,000.0,308.0,030208,,,A*7E
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183612,0641.0214,S,03712.4595,W,1,05,01.7,00192.5,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.7,02.7*01
+$GPGSV,3,1,12,02,21,350,00,04,39,028,49,08,43,102,48,10,15,311,45*71
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,231,41,17,59,164,50*7A
+$GPGSV,3,3,12,25,13,057,49,26,37,230,00,27,27,069,47,28,22,154,51*73
+$GPRMC,183612,A,0641.0214,S,03712.4595,W,000.0,308.0,030208,,,A*7C
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183627,0641.0213,S,03712.4601,W,1,05,01.6,00192.3,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,21,350,00,04,39,028,51,08,43,102,48,10,15,311,45*78
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,231,39,17,59,164,50*75
+$GPGSV,3,3,12,25,13,057,49,26,37,230,00,27,27,069,46,28,22,154,51*72
+$GPRMC,183627,A,0641.0213,S,03712.4601,W,000.0,308.0,030208,,,A*73
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183642,0641.0215,S,03712.4603,W,1,05,01.6,00190.9,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,21,350,00,04,39,028,49,08,43,102,50,10,15,311,42*7F
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,231,43,17,59,164,52*7A
+$GPGSV,3,3,12,25,13,057,46,26,37,231,00,27,27,069,51,28,22,154,50*7B
+$GPRMC,183642,A,0641.0215,S,03712.4603,W,000.0,308.0,030208,,,A*74
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183657,0641.0212,S,03712.4604,W,1,04,04.7,00192.0,M,-012.0,M,,*63
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.8,04.7,06.2*0A
+$GPGSV,3,1,12,02,21,350,00,04,39,028,46,08,43,102,49,10,15,311,32*7F
+$GPGSV,3,2,12,11,01,130,00,13,02,027,00,15,28,231,42,17,58,164,52*7A
+$GPGSV,3,3,12,25,13,057,41,26,37,231,00,27,27,068,43,28,22,154,46*79
+$GPRMC,183657,A,0641.0212,S,03712.4604,W,000.0,308.0,030208,,,A*70
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183712,0641.0209,S,03712.4606,W,1,05,01.6,00192.2,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,21,350,00,04,39,028,33,08,43,102,49,10,15,311,38*77
+$GPGSV,3,2,12,11,00,130,00,13,01,027,00,15,28,231,42,17,58,164,52*78
+$GPGSV,3,3,12,25,13,057,42,26,37,231,00,27,27,068,45,28,22,154,43*79
+$GPRMC,183712,A,0641.0209,S,03712.4606,W,000.0,308.0,030208,,,A*78
+$GPVTG,308.0,T,,M,000.0,N,000.0,K,A*06
+$GPGGA,183727,0641.0498,S,03712.4624,W,1,05,01.6,00193.5,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,21,350,00,04,39,028,47,08,43,102,53,10,15,311,36*71
+$GPGSV,3,2,12,11,00,130,00,13,01,027,00,15,28,231,42,17,58,164,52*78
+$GPGSV,3,3,12,25,13,057,35,26,37,231,00,27,27,068,43,28,22,154,39*72
+$GPRMC,183727,A,0641.0498,S,03712.4624,W,011.4,174.7,030208,,,A*7A
+$GPVTG,174.7,T,,M,011.4,N,021.2,K,A*0D
+$GPGGA,183742,0641.1065,S,03712.4531,W,1,05,01.6,00191.3,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,21,350,00,04,39,029,51,08,43,101,53,10,15,311,46*73
+$GPGSV,3,2,12,11,00,130,00,13,01,027,00,15,29,231,36,17,58,164,52*7A
+$GPGSV,3,3,12,25,13,057,36,26,37,231,00,27,27,068,46,28,22,154,39*74
+$GPRMC,183742,A,0641.1065,S,03712.4531,W,013.1,170.2,030208,,,A*7F
+$GPVTG,170.2,T,,M,013.1,N,024.3,K,A*0F
+$GPGGA,183757,0641.1562,S,03712.4485,W,1,04,04.7,00189.9,M,-012.0,M,,*6B
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.7,04.7,06.1*06
+$GPGSV,3,1,12,02,21,350,00,04,40,029,48,08,43,101,49,10,15,311,30*7F
+$GPGSV,3,2,12,11,00,130,00,13,01,027,00,15,29,231,42,17,58,164,55*7E
+$GPGSV,3,3,12,25,12,056,38,26,37,231,00,27,27,068,45,28,22,153,45*75
+$GPRMC,183757,A,0641.1562,S,03712.4485,W,010.3,185.5,030208,,,A*7B
+$GPVTG,185.5,T,,M,010.3,N,019.2,K,A*0C
+$GPGGA,183812,0641.2192,S,03712.4586,W,1,04,01.8,00190.6,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.8,03.8*00
+$GPGSV,3,1,12,02,22,350,00,04,40,029,49,08,43,101,41,10,15,311,36*73
+$GPGSV,3,2,12,11,00,130,00,13,01,028,00,15,29,231,36,17,58,164,55*72
+$GPGSV,3,3,12,25,12,056,33,26,37,231,00,27,27,068,43,28,22,153,35*7F
+$GPRMC,183812,A,0641.2192,S,03712.4586,W,013.9,194.1,030208,,,A*72
+$GPVTG,194.1,T,,M,013.9,N,025.8,K,A*04
+$GPGGA,183827,0641.2485,S,03712.4468,W,1,04,01.8,00207.0,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.8,03.8*00
+$GPGSV,3,1,12,02,22,350,00,04,40,029,45,08,43,101,41,10,15,312,38*72
+$GPGSV,3,2,12,11,00,131,00,13,01,028,00,15,29,231,47,17,58,164,52*72
+$GPGSV,3,3,12,25,12,056,31,26,37,231,00,27,27,068,45,28,22,153,46*7F
+$GPRMC,183827,A,0641.2485,S,03712.4468,W,009.7,139.3,030208,,,A*76
+$GPVTG,139.3,T,,M,009.7,N,018.0,K,A*02
+$GPGGA,183842,0641.2874,S,03712.4187,W,1,05,01.6,00197.4,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,22,351,00,04,40,029,46,08,43,101,51,10,15,312,46*78
+$GPGSV,3,2,12,11,00,131,00,13,01,028,00,15,29,232,43,17,58,164,52*75
+$GPGSV,3,3,12,25,12,056,34,26,38,231,00,27,27,068,46,28,22,153,45*75
+$GPRMC,183842,A,0641.2874,S,03712.4187,W,010.5,161.9,030208,,,A*7E
+$GPVTG,161.9,T,,M,010.5,N,019.4,K,A*0A
+$GPGGA,183857,0641.3308,S,03712.3888,W,1,05,01.6,00191.7,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,22,351,00,04,40,029,35,08,43,101,42,10,15,312,38*77
+$GPGSV,3,2,12,11,00,131,00,13,01,028,00,15,29,232,40,17,57,164,52*79
+$GPGSV,3,3,12,25,12,056,34,26,38,232,00,27,27,068,48,28,22,153,45*78
+$GPRMC,183857,A,0641.3308,S,03712.3888,W,011.1,134.0,030208,,,A*76
+$GPVTG,134.0,T,,M,011.1,N,020.5,K,A*0D
+$GPGGA,183912,0641.3612,S,03712.3631,W,1,05,01.6,00193.7,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,12,02,22,351,00,04,40,029,44,08,43,100,52,10,15,312,45*7B
+$GPGSV,3,2,12,11,00,131,00,13,01,028,00,15,29,232,50,17,57,164,52*78
+$GPGSV,3,3,12,25,12,056,39,26,38,232,00,27,27,067,39,28,22,153,42*7B
+$GPRMC,183912,A,0641.3612,S,03712.3631,W,011.0,143.3,030208,,,A*76
+$GPVTG,143.3,T,,M,011.0,N,020.5,K,A*0F
+$GPGGA,183927,0641.3900,S,03712.3409,W,1,05,01.6,00220.2,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,11,02,22,351,00,04,40,029,45,08,43,100,47,10,15,312,42*7A
+$GPGSV,3,2,11,13,01,028,00,15,29,232,49,17,57,164,52,25,12,056,35*71
+$GPGSV,3,3,11,26,38,232,00,27,27,067,46,28,22,153,44,,,,*4B
+$GPRMC,183927,A,0641.3900,S,03712.3409,W,009.9,139.8,030208,,,A*73
+$GPVTG,139.8,T,,M,009.9,N,018.4,K,A*03
+$GPGGA,183942,0641.4462,S,03712.3258,W,1,05,01.6,00208.3,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,11,02,22,351,00,04,40,029,43,08,43,100,51,10,15,312,51*79
+$GPGSV,3,2,11,13,00,028,00,15,29,232,33,17,57,164,52,25,12,056,43*7C
+$GPGSV,3,3,11,26,38,232,00,27,26,067,47,28,22,153,47,,,,*48
+$GPRMC,183942,A,0641.4462,S,03712.3258,W,015.2,161.1,030208,,,A*7E
+$GPVTG,161.1,T,,M,015.2,N,028.1,K,A*07
+$GPGGA,183957,0641.4910,S,03712.3085,W,1,05,01.6,00203.1,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.2,01.6,02.7*00
+$GPGSV,3,1,11,02,22,351,00,04,40,030,47,08,43,100,52,10,15,312,44*72
+$GPGSV,3,2,11,13,00,028,00,15,29,232,46,17,57,164,52,25,12,056,35*7F
+$GPGSV,3,3,11,26,38,232,00,27,26,067,46,28,22,153,46,,,,*48
+$GPRMC,183957,A,0641.4910,S,03712.3085,W,010.2,147.5,030208,,,A*75
+$GPVTG,147.5,T,,M,010.2,N,018.9,K,A*09
+$GPGGA,184012,0641.5117,S,03712.2739,W,1,04,01.8,00205.9,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.8,03.8*00
+$GPGSV,3,1,11,02,22,351,00,04,40,030,50,08,43,100,46,10,15,312,44*71
+$GPGSV,3,2,11,13,00,028,00,15,29,232,51,17,57,164,52,25,12,056,31*7D
+$GPGSV,3,3,11,26,38,232,00,27,26,067,46,28,22,153,42,,,,*4C
+$GPRMC,184012,A,0641.5117,S,03712.2739,W,010.3,118.9,030208,,,A*72
+$GPVTG,118.9,T,,M,010.3,N,019.1,K,A*07
+$GPGGA,184027,0641.5534,S,03712.2417,W,1,04,01.8,00190.8,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.8,03.7*0F
+$GPGSV,3,1,11,02,22,351,00,04,40,030,45,08,43,100,51,10,15,312,44*73
+$GPGSV,3,2,11,13,00,028,00,15,29,232,45,17,57,164,51,25,12,056,29*72
+$GPGSV,3,3,11,26,38,232,00,27,26,067,39,28,21,152,45,,,,*41
+$GPRMC,184027,A,0641.5534,S,03712.2417,W,014.7,150.3,030208,,,A*78
+$GPVTG,150.3,T,,M,014.7,N,027.2,K,A*0F
+$GPGGA,184052,0641.6305,S,03712.2231,W,1,05,01.6,00179.3,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.7*03
+$GPGSV,3,1,11,02,22,351,46,04,40,030,50,08,43,099,47,10,15,313,37*76
+$GPGSV,3,2,11,13,00,028,00,15,29,232,44,17,56,164,48,25,12,055,32*73
+$GPGSV,3,3,11,26,38,233,48,27,26,067,40,28,21,152,46,,,,*41
+$GPRMC,184052,A,0641.6305,S,03712.2231,W,011.2,158.3,030208,,,A*77
+$GPVTG,158.3,T,,M,011.2,N,020.7,K,A*05
+$GPGGA,184107,0641.6749,S,03712.1936,W,1,05,01.6,00185.2,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.7*03
+$GPGSV,3,1,10,02,23,351,38,04,40,030,47,08,43,099,51,10,15,313,35*7C
+$GPGSV,3,2,10,15,30,232,43,17,56,164,50,25,12,055,38,26,38,233,45*7A
+$GPGSV,3,3,10,27,26,066,34,28,21,152,42,,,,,,,,*77
+$GPRMC,184107,A,0641.6749,S,03712.1936,W,013.4,146.9,030208,,,A*74
+$GPVTG,146.9,T,,M,013.4,N,024.9,K,A*0E
+$GPGGA,184122,0641.7238,S,03712.1677,W,1,05,01.6,00192.1,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.7*03
+$GPGSV,3,1,10,02,23,351,43,04,41,030,49,08,43,099,49,10,15,313,40*74
+$GPGSV,3,2,10,15,30,233,47,17,56,164,50,25,12,055,36,26,38,233,50*75
+$GPGSV,3,3,10,27,26,066,35,28,21,152,46,,,,,,,,*72
+$GPRMC,184122,A,0641.7238,S,03712.1677,W,013.2,156.2,030208,,,A*77
+$GPVTG,156.2,T,,M,013.2,N,024.5,K,A*0E
+$GPGGA,184137,0641.7754,S,03712.1494,W,1,04,01.8,00193.3,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.2,01.8,03.7*0F
+$GPGSV,3,1,10,02,23,351,39,04,41,030,47,08,43,099,49,10,15,313,36*76
+$GPGSV,3,2,10,15,30,233,49,17,56,164,51,25,12,055,29,26,38,233,51*75
+$GPGSV,3,3,10,27,26,066,37,28,21,152,45,,,,,,,,*73
+$GPRMC,184137,A,0641.7754,S,03712.1494,W,012.0,161.2,030208,,,A*74
+$GPVTG,161.2,T,,M,012.0,N,022.2,K,A*08
+$GPGGA,184152,0641.8226,S,03712.1380,W,1,03,02.9,00194.3,M,-012.0,M,,*6F
+$GPGSA,A,2,04,17,27,,,,,,,,,,03.1,02.9,01.0*0C
+$GPGSV,3,1,10,02,23,351,29,04,41,030,49,08,43,099,46,10,15,313,33*73
+$GPGSV,3,2,10,15,30,233,48,17,56,164,54,25,12,055,34,26,38,233,51*7D
+$GPGSV,3,3,10,27,26,066,36,28,21,152,45,,,,,,,,*72
+$GPRMC,184152,A,0641.8226,S,03712.1380,W,009.3,186.6,030208,,,A*7E
+$GPVTG,186.6,T,,M,009.3,N,017.3,K,A*0B
+$GPGGA,184207,0641.8611,S,03712.1419,W,1,03,03.0,00196.0,M,-012.0,M,,*62
+$GPGSA,A,2,04,17,27,,,,,,,,,,03.1,03.0,01.0*04
+$GPGSV,3,1,10,02,23,351,35,04,41,031,48,08,43,098,49,10,15,313,33*70
+$GPGSV,3,2,10,15,30,233,41,17,56,164,53,25,11,055,33,26,39,233,43*75
+$GPGSV,3,3,10,27,26,066,40,28,21,152,41,,,,,,,,*77
+$GPRMC,184207,A,0641.8611,S,03712.1419,W,011.7,180.2,030208,,,A*75
+$GPVTG,180.2,T,,M,011.7,N,021.7,K,A*05
+$GPGGA,184227,0641.9277,S,03712.1461,W,1,05,01.6,00196.8,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.7*03
+$GPGSV,3,1,10,02,23,351,37,04,41,031,49,08,43,098,51,10,15,313,36*7F
+$GPGSV,3,2,10,15,30,233,41,17,56,164,53,25,11,055,34,26,39,233,46*77
+$GPGSV,3,3,10,27,26,066,46,28,21,152,41,,,,,,,,*71
+$GPRMC,184227,A,0641.9277,S,03712.1461,W,009.5,183.8,030208,,,A*7F
+$GPVTG,183.8,T,,M,009.5,N,017.7,K,A*02
+$GPGGA,184242,0641.9738,S,03712.1442,W,1,05,01.6,00196.8,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.7*03
+$GPGSV,3,1,10,02,23,352,42,04,41,031,45,08,43,098,52,10,14,313,36*70
+$GPGSV,3,2,10,15,30,233,42,17,56,164,51,25,11,055,38,26,39,233,50*7D
+$GPGSV,3,3,10,27,26,066,39,28,21,151,44,,,,,,,,*7F
+$GPRMC,184242,A,0641.9738,S,03712.1442,W,011.8,169.5,030208,,,A*7E
+$GPVTG,169.5,T,,M,011.8,N,021.9,K,A*04
+$GPGGA,184257,0642.0177,S,03712.1299,W,1,05,01.6,00196.0,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.7*03
+$GPGSV,3,1,10,02,23,352,42,04,41,031,47,08,43,098,50,10,14,314,40*76
+$GPGSV,3,2,10,15,30,233,38,17,55,164,49,25,11,055,31,26,39,234,45*70
+$GPGSV,3,3,10,27,26,066,34,28,21,151,47,,,,,,,,*71
+$GPRMC,184257,A,0642.0177,S,03712.1299,W,011.5,152.8,030208,,,A*75
+$GPVTG,152.8,T,,M,011.5,N,021.3,K,A*06
+$GPGGA,184312,0642.0589,S,03712.1094,W,1,05,01.6,00192.4,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.6*02
+$GPGSV,3,1,10,02,23,352,41,04,41,031,48,08,43,098,48,10,14,314,41*72
+$GPGSV,3,2,10,15,30,233,35,17,55,164,50,25,11,055,31,26,39,234,40*70
+$GPGSV,3,3,10,27,26,066,36,28,21,151,48,,,,,,,,*7C
+$GPRMC,184312,A,0642.0589,S,03712.1094,W,009.6,156.5,030208,,,A*7C
+$GPVTG,156.5,T,,M,009.6,N,017.8,K,A*0B
+$GPGGA,184327,0642.0914,S,03712.0905,W,1,05,01.6,00178.6,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.6*02
+$GPGSV,3,1,10,02,23,352,44,04,41,031,45,08,43,097,48,10,14,314,36*75
+$GPGSV,3,2,10,15,30,233,45,17,55,164,49,25,11,055,36,26,39,234,48*70
+$GPGSV,3,3,10,27,26,065,34,28,21,151,47,,,,,,,,*72
+$GPRMC,184327,A,0642.0914,S,03712.0905,W,012.4,146.2,030208,,,A*7C
+$GPVTG,146.2,T,,M,012.4,N,023.0,K,A*0A
+$GPGGA,184342,0642.1304,S,03712.0684,W,1,05,01.6,00191.3,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.6*02
+$GPGSV,3,1,10,02,23,352,32,04,41,031,45,08,43,097,51,10,14,314,38*72
+$GPGSV,3,2,10,15,30,234,47,17,55,164,50,25,11,054,45,26,39,234,49*79
+$GPGSV,3,3,10,27,26,065,36,28,21,151,45,,,,,,,,*72
+$GPRMC,184342,A,0642.1304,S,03712.0684,W,013.0,140.3,030208,,,A*71
+$GPVTG,140.3,T,,M,013.0,N,024.1,K,A*0E
+$GPGGA,184402,0642.1960,S,03712.0292,W,1,05,01.6,00176.3,M,-012.0,M,,*69
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.6*02
+$GPGSV,3,1,10,02,24,352,37,04,41,031,41,08,43,097,50,10,14,314,35*78
+$GPGSV,3,2,10,15,30,234,45,17,55,164,49,25,11,054,35,26,39,234,47*7A
+$GPGSV,3,3,10,27,26,065,34,28,21,151,48,,,,,,,,*7D
+$GPRMC,184402,A,0642.1960,S,03712.0292,W,009.8,145.7,030208,,,A*7B
+$GPVTG,145.7,T,,M,009.8,N,018.3,K,A*01
+$GPGGA,184417,0642.2253,S,03712.0062,W,1,05,01.6,00200.9,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.6*02
+$GPGSV,3,1,10,02,24,352,33,04,41,032,44,08,43,097,48,10,14,314,40*71
+$GPGSV,3,2,10,15,30,234,46,17,55,164,50,25,11,054,36,26,39,234,49*7C
+$GPGSV,3,3,10,27,26,065,34,28,21,151,45,,,,,,,,*70
+$GPRMC,184417,A,0642.2253,S,03712.0062,W,011.1,138.8,030208,,,A*7F
+$GPVTG,138.8,T,,M,011.1,N,020.6,K,A*0A
+$GPGGA,184452,0642.3570,S,03711.9611,W,1,04,01.6,00200.7,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,25,,,,,,,,,03.1,01.6,02.6*07
+$GPGSV,3,1,10,02,24,352,32,04,42,032,45,08,43,097,51,10,14,314,41*7B
+$GPGSV,3,2,10,15,31,234,44,17,55,164,52,25,11,054,37,26,39,235,49*7D
+$GPGSV,3,3,10,27,25,065,32,28,21,151,41,,,,,,,,*71
+$GPRMC,184452,A,0642.3570,S,03711.9611,W,015.5,178.9,030208,,,A*74
+$GPVTG,178.9,T,,M,015.5,N,028.7,K,A*06
+$GPGGA,184512,0642.4264,S,03711.9550,W,1,05,01.6,00194.1,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.1,01.6,02.6*02
+$GPGSV,3,1,10,02,24,352,34,04,42,032,35,08,43,096,52,10,14,315,33*7C
+$GPGSV,3,2,10,15,31,234,33,17,54,164,47,25,11,054,33,26,39,235,31*73
+$GPGSV,3,3,10,27,25,065,40,28,21,150,36,,,,,,,,*75
+$GPRMC,184512,A,0642.4264,S,03711.9550,W,005.6,181.3,030208,,,A*7C
+$GPVTG,181.3,T,,M,005.6,N,010.3,K,A*07
+$GPGGA,184532,0642.4753,S,03711.9516,W,1,04,05.0,00216.5,M,-012.0,M,,*61
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.3,05.0,05.3*05
+$GPGSV,3,1,10,02,24,352,29,04,42,032,45,08,43,096,48,10,14,315,30*7F
+$GPGSV,3,2,10,15,31,234,42,17,54,164,52,25,11,054,33,26,40,235,46*7F
+$GPGSV,3,3,10,27,25,064,36,28,21,150,37,,,,,,,,*74
+$GPRMC,184532,A,0642.4753,S,03711.9516,W,014.4,182.2,030208,,,A*7D
+$GPVTG,182.2,T,,M,014.4,N,026.8,K,A*09
+$GPGGA,184547,0642.5555,S,03711.9494,W,1,04,05.0,00185.4,M,-012.0,M,,*65
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.3,05.0,05.2*04
+$GPGSV,3,1,10,02,24,352,31,04,42,032,46,08,43,096,52,10,14,315,30*7E
+$GPGSV,3,2,10,15,31,234,38,17,54,164,50,25,11,054,41,26,40,235,45*76
+$GPGSV,3,3,10,27,25,064,45,28,21,150,36,,,,,,,,*71
+$GPRMC,184547,A,0642.5555,S,03711.9494,W,021.0,168.0,030208,,,A*75
+$GPVTG,168.0,T,,M,021.0,N,039.0,K,A*0B
+$GPGGA,184602,0642.6507,S,03711.9645,W,1,04,01.6,00185.4,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,,,,,,,,,03.1,01.6,02.6*07
+$GPGSV,3,1,10,02,24,352,39,04,42,032,48,08,43,096,47,10,14,315,39*75
+$GPGSV,3,2,10,15,31,235,48,17,54,164,54,25,10,054,35,26,40,235,49*7A
+$GPGSV,3,3,10,27,25,064,34,28,21,150,35,,,,,,,,*74
+$GPRMC,184602,A,0642.6507,S,03711.9645,W,024.3,203.0,030208,,,A*75
+$GPVTG,203.0,T,,M,024.3,N,045.1,K,A*09
+$GPGGA,184627,0642.7715,S,03712.0047,W,1,04,01.6,00206.5,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,,,,,,,,,03.1,01.6,02.6*07
+$GPGSV,3,1,10,02,24,352,43,04,42,033,47,08,43,095,42,10,14,315,41*7F
+$GPGSV,3,2,10,15,31,235,42,17,54,164,52,25,10,053,34,26,40,235,46*7F
+$GPGSV,3,3,10,27,25,064,32,28,21,150,40,,,,,,,,*70
+$GPRMC,184627,A,0642.7715,S,03712.0047,W,012.8,208.7,030208,,,A*7E
+$GPVTG,208.7,T,,M,012.8,N,023.8,K,A*02
+$GPGGA,184642,0642.8074,S,03712.0287,W,1,03,03.2,00206.7,M,-012.0,M,,*6E
+$GPGSA,A,2,04,17,27,,,,,,,,,,03.4,03.2,00.9*0B
+$GPGSV,3,1,10,02,24,353,35,04,42,033,49,08,43,095,46,10,14,315,34*77
+$GPGSV,3,2,10,15,31,235,44,17,54,164,55,25,10,053,30,26,40,235,50*7D
+$GPGSV,3,3,10,27,25,064,42,28,21,150,35,,,,,,,,*75
+$GPRMC,184642,A,0642.8074,S,03712.0287,W,009.5,199.3,030208,,,A*74
+$GPVTG,199.3,T,,M,009.5,N,017.6,K,A*03
+$GPGGA,184657,0642.8485,S,03712.0461,W,1,04,01.7,00209.1,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.1,01.7,03.7*03
+$GPGSV,3,1,10,02,25,353,31,04,42,033,49,08,43,095,47,10,14,315,38*7F
+$GPGSV,3,2,10,15,31,235,51,17,54,164,54,25,10,053,33,26,40,236,48*71
+$GPGSV,3,3,10,27,25,064,40,28,21,150,34,,,,,,,,*76
+$GPRMC,184657,A,0642.8485,S,03712.0461,W,012.8,198.4,030208,,,A*75
+$GPVTG,198.4,T,,M,012.8,N,023.7,K,A*04
+$GPGGA,184712,0642.8898,S,03712.0785,W,1,04,05.1,00214.3,M,-012.0,M,,*62
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.3,05.1,05.1*06
+$GPGSV,3,1,10,02,25,353,46,04,42,033,47,08,43,095,38,10,14,315,30*71
+$GPGSV,3,2,10,15,31,235,44,17,53,164,51,25,10,053,36,26,40,236,50*7B
+$GPGSV,3,3,10,27,25,064,37,28,21,150,36,,,,,,,,*74
+$GPRMC,184712,A,0642.8898,S,03712.0785,W,012.4,238.2,030208,,,A*7F
+$GPVTG,238.2,T,,M,012.4,N,023.1,K,A*01
+$GPGGA,184727,0642.9199,S,03712.1069,W,1,05,01.5,00200.1,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.0,01.5,02.6*00
+$GPGSV,3,1,10,02,25,353,29,04,42,033,49,08,43,095,46,10,14,316,39*75
+$GPGSV,3,2,10,15,31,235,51,17,53,164,55,25,10,053,40,26,40,236,48*73
+$GPGSV,3,3,10,27,25,064,41,28,21,149,37,,,,,,,,*7C
+$GPRMC,184727,A,0642.9199,S,03712.1069,W,008.1,197.3,030208,,,A*7D
+$GPVTG,197.3,T,,M,008.1,N,015.1,K,A*0D
+$GPGGA,184742,0642.9574,S,03712.1157,W,1,04,01.7,00197.4,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.1,01.7,03.7*03
+$GPGSV,3,1,10,02,25,353,35,04,42,033,50,08,43,095,45,10,14,316,35*7F
+$GPGSV,3,2,10,15,31,235,48,17,53,164,54,25,10,053,30,26,40,236,46*73
+$GPGSV,3,3,10,27,25,064,39,28,21,149,40,,,,,,,,*73
+$GPRMC,184742,A,0642.9574,S,03712.1157,W,008.9,190.5,030208,,,A*7C
+$GPVTG,190.5,T,,M,008.9,N,016.5,K,A*03
+$GPGGA,184757,0642.9910,S,03712.1195,W,1,04,05.2,00203.2,M,-012.0,M,,*61
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.3,05.2,05.0*04
+$GPGSV,3,1,10,02,25,353,41,04,42,033,52,08,43,094,49,10,14,316,31*77
+$GPGSV,3,2,10,15,31,235,45,17,53,164,50,25,10,053,35,26,40,236,45*7C
+$GPGSV,3,3,10,27,25,063,40,28,21,149,32,,,,,,,,*7F
+$GPRMC,184757,A,0642.9910,S,03712.1195,W,006.3,189.2,030208,,,A*73
+$GPVTG,189.2,T,,M,006.3,N,011.7,K,A*0D
+$GPGGA,184827,0643.0659,S,03712.1272,W,1,05,01.5,00206.0,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.0,01.5,02.6*00
+$GPGSV,3,1,10,02,25,353,42,04,43,034,51,08,43,094,50,10,14,316,39*71
+$GPGSV,3,2,10,15,32,236,48,17,53,164,41,25,10,053,40,26,40,236,52*75
+$GPGSV,3,3,10,27,25,063,35,28,20,149,42,,,,,,,,*7B
+$GPRMC,184827,A,0643.0659,S,03712.1272,W,008.9,189.6,030208,,,A*7B
+$GPVTG,189.6,T,,M,008.9,N,016.5,K,A*08
+$GPGGA,184842,0643.0872,S,03712.1303,W,1,05,01.5,00206.0,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,27,,,,,,,,03.0,01.5,02.6*00
+$GPGSV,3,1,10,02,25,353,38,04,43,034,49,08,43,094,47,10,14,316,35*7F
+$GPGSV,3,2,10,15,32,236,46,17,53,164,52,25,10,053,33,26,40,237,49*76
+$GPGSV,3,3,10,27,25,063,42,28,20,149,46,,,,,,,,*7F
+$GPRMC,184842,A,0643.0872,S,03712.1303,W,008.2,122.3,030208,,,A*77
+$GPVTG,122.3,T,,M,008.2,N,015.3,K,A*02
+$GPGGA,184857,0643.0936,S,03712.0924,W,1,03,03.4,00206.1,M,-012.0,M,,*60
+$GPGSA,A,2,04,17,27,,,,,,,,,,03.5,03.4,01.0*04
+$GPGSV,3,1,10,02,25,353,41,04,43,034,52,08,43,094,48,10,14,316,34*75
+$GPGSV,3,2,10,15,32,236,51,17,53,164,54,25,10,053,30,26,40,237,51*7C
+$GPGSV,3,3,10,27,25,063,41,28,20,149,34,,,,,,,,*79
+$GPRMC,184857,A,0643.0936,S,03712.0924,W,009.1,104.2,030208,,,A*7B
+$GPVTG,104.2,T,,M,009.1,N,016.8,K,A*0D
+$GPGGA,184912,0643.1071,S,03712.0723,W,1,04,01.7,00206.2,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,27,,,,,,,,,04.0,01.7,03.6*03
+$GPGSV,3,1,10,02,25,353,33,04,43,034,46,08,43,094,51,10,14,316,34*7D
+$GPGSV,3,2,10,15,32,236,40,17,52,164,51,25,10,053,31,26,41,237,46*7E
+$GPGSV,3,3,10,27,25,063,40,28,20,149,33,,,,,,,,*7F
+$GPRMC,184912,A,0643.1071,S,03712.0723,W,006.8,189.1,030208,,,A*79
+$GPVTG,189.1,T,,M,006.8,N,012.6,K,A*07
+$GPGGA,184927,0643.1325,S,03712.0700,W,1,04,05.3,00204.7,M,-012.0,M,,*65
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.3,05.3,04.9*0D
+$GPGSV,3,1,10,02,25,353,30,04,43,034,51,08,43,093,47,10,14,316,29*74
+$GPGSV,3,2,10,15,32,236,51,17,52,164,54,25,10,052,44,26,41,237,46*78
+$GPGSV,3,3,10,27,24,063,43,28,20,149,36,,,,,,,,*78
+$GPRMC,184927,A,0643.1325,S,03712.0700,W,007.4,176.0,030208,,,A*70
+$GPVTG,176.0,T,,M,007.4,N,013.7,K,A*0B
+$GPGGA,185007,0643.1667,S,03712.0428,W,1,04,01.9,00231.2,M,-012.0,M,,*68
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.9,01.9,04.5*05
+$GPGSV,3,1,10,02,26,353,29,04,43,034,50,08,43,093,47,10,14,317,00*74
+$GPGSV,3,2,10,15,32,236,44,17,52,164,51,25,09,052,31,26,41,237,40*75
+$GPGSV,3,3,10,27,24,062,33,28,20,148,35,,,,,,,,*7C
+$GPRMC,185007,A,0643.1667,S,03712.0428,W,006.6,109.2,030208,,,A*79
+$GPVTG,109.2,T,,M,006.6,N,012.4,K,A*00
+$GPGGA,185022,0643.1788,S,03712.0173,W,1,04,01.9,00229.4,M,-012.0,M,,*6B
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.9,01.9,04.5*05
+$GPGSV,3,1,10,02,26,353,45,04,43,035,50,08,43,093,47,10,14,317,00*7F
+$GPGSV,3,2,10,15,32,236,52,17,52,164,53,25,09,052,30,26,41,237,51*71
+$GPGSV,3,3,10,27,24,062,36,28,20,148,34,,,,,,,,*78
+$GPRMC,185022,A,0643.1788,S,03712.0173,W,005.0,113.2,030208,,,A*7B
+$GPVTG,113.2,T,,M,005.0,N,009.3,K,A*03
+$GPGGA,185042,0643.1872,S,03711.9963,W,1,03,03.5,00226.8,M,-012.0,M,,*6E
+$GPGSA,A,2,04,17,27,,,,,,,,,,03.6,03.5,00.9*0E
+$GPGSV,3,1,10,02,26,354,43,04,43,035,46,08,43,093,49,10,14,317,00*77
+$GPGSV,3,2,10,15,32,237,35,17,52,164,53,25,09,052,27,26,41,238,31*7E
+$GPGSV,3,3,10,27,24,062,45,28,20,148,32,,,,,,,,*7A
+$GPRMC,185042,A,0643.1872,S,03711.9963,W,000.4,111.5,030208,,,A*70
+$GPVTG,111.5,T,,M,000.4,N,000.8,K,A*05
+$GPGGA,185102,0643.1864,S,03712.0038,W,1,05,01.9,00214.0,M,-012.0,M,,*60
+$GPGSA,A,3,04,17,25,26,27,,,,,,,,03.3,01.9,02.7*0B
+$GPGSV,3,1,10,02,26,354,48,04,43,035,45,08,43,092,48,10,14,317,00*7F
+$GPGSV,3,2,10,15,32,237,33,17,52,164,49,25,09,052,30,26,41,238,35*71
+$GPGSV,3,3,10,27,24,062,41,28,20,148,26,,,,,,,,*7B
+$GPRMC,185102,A,0643.1864,S,03712.0038,W,000.3,111.5,030208,,,A*78
+$GPVTG,111.5,T,,M,000.3,N,000.5,K,A*0F
+$GPGGA,185117,0643.1868,S,03712.0024,W,1,05,01.9,00212.8,M,-012.0,M,,*6B
+$GPGSA,A,3,04,17,25,26,27,,,,,,,,03.3,01.9,02.7*0B
+$GPGSV,3,1,10,02,26,354,46,04,43,035,45,08,43,092,41,10,14,317,00*78
+$GPGSV,3,2,10,15,32,237,30,17,51,164,48,25,09,052,32,26,41,238,33*74
+$GPGSV,3,3,10,27,24,062,38,28,20,148,27,,,,,,,,*74
+$GPRMC,185117,A,0643.1868,S,03712.0024,W,001.5,124.9,030208,,,A*70
+$GPVTG,124.9,T,,M,001.5,N,002.9,K,A*0C
+$GPGGA,185132,0643.1866,S,03712.0047,W,1,04,01.9,00212.0,M,-012.0,M,,*6E
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.9,01.9,04.5*05
+$GPGSV,3,1,10,02,26,354,49,04,44,035,51,08,43,092,50,10,14,317,00*75
+$GPGSV,3,2,10,15,32,237,27,17,51,164,50,25,09,052,26,26,41,238,40*7A
+$GPGSV,3,3,10,27,24,062,40,28,20,148,34,,,,,,,,*79
+$GPRMC,185132,A,0643.1866,S,03712.0047,W,000.4,147.7,030208,,,A*77
+$GPVTG,147.7,T,,M,000.4,N,000.7,K,A*0B
+$GPGGA,185152,0643.1865,S,03712.0026,W,1,04,01.9,00215.0,M,-012.0,M,,*6B
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,26,354,48,04,44,035,49,08,43,092,49,10,14,317,00*75
+$GPGSV,3,2,10,15,32,237,34,17,51,164,38,25,09,052,00,26,41,238,34*71
+$GPGSV,3,3,10,27,24,062,41,28,20,148,29,,,,,,,,*74
+$GPRMC,185152,A,0643.1865,S,03712.0026,W,000.3,125.8,030208,,,A*79
+$GPVTG,125.8,T,,M,000.3,N,000.6,K,A*06
+$GPGGA,185207,0643.1833,S,03712.0065,W,1,04,01.9,00205.5,M,-012.0,M,,*68
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,26,354,48,04,44,036,40,08,43,092,44,10,14,318,00*7D
+$GPGSV,3,2,10,15,33,237,33,17,51,164,43,25,09,052,00,26,41,238,36*79
+$GPGSV,3,3,10,27,24,062,38,28,20,147,26,,,,,,,,*7A
+$GPRMC,185207,A,0643.1833,S,03712.0065,W,000.2,289.9,030208,,,A*7B
+$GPVTG,289.9,T,,M,000.2,N,000.5,K,A*00
+$GPGGA,185222,0643.1848,S,03712.0043,W,1,04,01.9,00208.2,M,-012.0,M,,*6D
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,26,354,50,04,44,036,45,08,43,091,46,10,14,318,00*70
+$GPGSV,3,2,10,15,33,237,32,17,51,164,42,25,09,052,00,26,41,239,40*79
+$GPGSV,3,3,10,27,24,061,40,28,20,147,29,,,,,,,,*79
+$GPRMC,185222,A,0643.1848,S,03712.0043,W,000.4,289.9,030208,,,A*72
+$GPVTG,289.9,T,,M,000.4,N,000.7,K,A*04
+$GPGGA,185237,0643.1850,S,03712.0040,W,1,04,01.9,00209.4,M,-012.0,M,,*64
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,354,52,04,44,036,44,08,43,091,47,10,14,318,00*73
+$GPGSV,3,2,10,15,33,237,29,17,51,164,45,25,09,051,00,26,41,239,37*77
+$GPGSV,3,3,10,27,24,061,41,28,20,147,31,,,,,,,,*71
+$GPRMC,185237,A,0643.1850,S,03712.0040,W,000.4,289.9,030208,,,A*7C
+$GPVTG,289.9,T,,M,000.4,N,000.8,K,A*0B
+$GPGGA,185252,0643.1867,S,03711.9999,W,1,04,01.9,00210.3,M,-012.0,M,,*6B
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,354,46,04,44,036,42,08,43,091,47,10,14,318,00*70
+$GPGSV,3,2,10,15,33,238,28,17,51,164,45,25,09,051,00,26,41,239,33*7D
+$GPGSV,3,3,10,27,24,061,44,28,20,147,31,,,,,,,,*74
+$GPRMC,185252,A,0643.1867,S,03711.9999,W,000.8,294.3,030208,,,A*76
+$GPVTG,294.3,T,,M,000.8,N,001.5,K,A*0D
+$GPGGA,185307,0643.1885,S,03711.9966,W,1,04,01.9,00209.8,M,-012.0,M,,*65
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,354,52,04,44,036,51,08,43,091,43,10,14,318,00*73
+$GPGSV,3,2,10,15,33,238,35,17,51,164,43,25,09,051,00,26,42,239,34*73
+$GPGSV,3,3,10,27,24,061,48,28,20,147,33,,,,,,,,*7A
+$GPRMC,185307,A,0643.1885,S,03711.9966,W,001.0,053.9,030208,,,A*71
+$GPVTG,053.9,T,,M,001.0,N,002.0,K,A*01
+$GPGGA,185327,0643.1888,S,03712.0030,W,1,04,01.9,00191.2,M,-012.0,M,,*62
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,354,51,04,44,036,49,08,43,091,48,10,14,318,00*72
+$GPGSV,3,2,10,15,33,238,29,17,50,164,42,25,09,051,00,26,42,239,41*7C
+$GPGSV,3,3,10,27,24,061,43,28,20,147,27,,,,,,,,*74
+$GPRMC,185327,A,0643.1888,S,03712.0030,W,001.5,053.9,030208,,,A*7B
+$GPVTG,053.9,T,,M,001.5,N,002.8,K,A*0C
+$GPGGA,185342,0643.1905,S,03712.0018,W,1,04,01.9,00191.4,M,-012.0,M,,*69
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,354,50,04,44,036,48,08,43,091,48,10,14,318,00*72
+$GPGSV,3,2,10,15,33,238,30,17,50,164,41,25,08,051,00,26,42,239,42*75
+$GPGSV,3,3,10,27,24,061,45,28,20,147,00,,,,,,,,*77
+$GPRMC,185342,A,0643.1905,S,03712.0018,W,002.4,139.5,030208,,,A*75
+$GPVTG,139.5,T,,M,002.4,N,004.5,K,A*04
+$GPGGA,185357,0643.1911,S,03711.9984,W,1,04,01.9,00191.7,M,-012.0,M,,*6D
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,354,49,04,44,036,52,08,43,090,50,10,14,318,00*79
+$GPGSV,3,2,10,15,33,238,28,17,50,164,46,25,08,051,00,26,42,239,40*79
+$GPGSV,3,3,10,27,23,061,46,28,20,147,00,,,,,,,,*73
+$GPRMC,185357,A,0643.1911,S,03711.9984,W,000.5,106.0,030208,,,A*78
+$GPVTG,106.0,T,,M,000.5,N,001.0,K,A*0E
+$GPGGA,185412,0643.1897,S,03711.9967,W,1,04,01.9,00191.3,M,-012.0,M,,*6D
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,354,50,04,44,037,50,08,43,090,48,10,14,319,00*7A
+$GPGSV,3,2,10,15,33,238,00,17,50,164,49,25,08,051,00,26,42,240,41*73
+$GPGSV,3,3,10,27,23,061,43,28,20,147,00,,,,,,,,*76
+$GPRMC,185412,A,0643.1897,S,03711.9967,W,000.3,106.0,030208,,,A*7A
+$GPVTG,106.0,T,,M,000.3,N,000.6,K,A*0F
+$GPGGA,185427,0643.1886,S,03711.9981,W,1,04,01.9,00190.3,M,-012.0,M,,*62
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,355,47,04,44,037,51,08,43,090,49,10,14,319,00*7D
+$GPGSV,3,2,10,15,33,238,00,17,50,164,45,25,08,051,00,26,42,240,39*70
+$GPGSV,3,3,10,27,23,061,44,28,20,146,00,,,,,,,,*70
+$GPRMC,185427,A,0643.1886,S,03711.9981,W,000.3,098.2,030208,,,A*70
+$GPVTG,098.2,T,,M,000.3,N,000.5,K,A*08
+$GPGGA,185442,0643.1895,S,03711.9964,W,1,04,01.9,00189.9,M,-012.0,M,,*6A
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,355,44,04,44,037,51,08,43,090,40,10,14,319,00*77
+$GPGSV,3,2,10,15,33,238,00,17,50,164,42,25,08,051,00,26,42,240,40*79
+$GPGSV,3,3,10,27,23,061,34,28,20,146,00,,,,,,,,*77
+$GPRMC,185442,A,0643.1895,S,03711.9964,W,000.7,111.8,030208,,,A*74
+$GPVTG,111.8,T,,M,000.7,N,001.4,K,A*06
+$GPGGA,185457,0643.1886,S,03711.9974,W,1,04,01.9,00193.3,M,-012.0,M,,*6C
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,27,355,46,04,45,037,51,08,43,090,50,10,14,319,00*75
+$GPGSV,3,2,10,15,33,239,00,17,50,164,39,25,08,051,00,26,42,240,35*76
+$GPGSV,3,3,10,27,23,060,41,28,20,146,00,,,,,,,,*74
+$GPRMC,185457,A,0643.1886,S,03711.9974,W,000.3,111.8,030208,,,A*77
+$GPVTG,111.8,T,,M,000.3,N,000.6,K,A*01
+$GPGGA,185517,0643.1969,S,03711.9685,W,1,04,01.9,00221.5,M,-012.0,M,,*64
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,28,355,44,04,45,037,52,08,42,090,46,10,14,319,00*7D
+$GPGSV,3,2,10,15,33,239,50,17,50,164,34,25,08,051,00,26,42,240,43*7F
+$GPGSV,3,3,10,27,23,060,41,28,20,146,00,,,,,,,,*74
+$GPRMC,185517,A,0643.1969,S,03711.9685,W,009.8,104.3,030208,,,A*7E
+$GPVTG,104.3,T,,M,009.8,N,018.3,K,A*00
+$GPGGA,185532,0643.2085,S,03711.9468,W,1,03,03.9,00178.2,M,-012.0,M,,*67
+$GPGSA,A,2,04,17,27,,,,,,,,,,04.0,03.9,00.9*03
+$GPGSV,3,1,10,02,28,355,49,04,45,037,45,08,42,089,44,10,14,319,00*7C
+$GPGSV,3,2,10,15,33,239,35,17,49,164,44,25,08,051,00,26,42,240,37*70
+$GPGSV,3,3,10,27,23,060,41,28,20,146,00,,,,,,,,*74
+$GPRMC,185532,A,0643.2085,S,03711.9468,W,003.6,103.2,030208,,,A*72
+$GPVTG,103.2,T,,M,003.6,N,006.6,K,A*08
+$GPGGA,185547,0643.1723,S,03711.9360,W,1,04,01.9,00190.7,M,-012.0,M,,*64
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.8,01.9,04.4*05
+$GPGSV,3,1,10,02,28,355,46,04,45,037,48,08,42,089,45,10,14,319,00*7F
+$GPGSV,3,2,10,15,33,239,49,17,49,164,48,25,08,051,00,26,42,241,49*7F
+$GPGSV,3,3,10,27,23,060,35,28,20,146,00,,,,,,,,*77
+$GPRMC,185547,A,0643.1723,S,03711.9360,W,000.6,010.6,030208,,,A*73
+$GPVTG,010.6,T,,M,000.6,N,001.2,K,A*0F
+$GPGGA,185607,0643.1767,S,03711.9270,W,1,04,06.0,00195.6,M,-012.0,M,,*69
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.4,06.0,04.3*00
+$GPGSV,3,1,10,02,28,355,48,04,45,038,52,08,42,089,48,10,14,319,00*78
+$GPGSV,3,2,10,15,34,239,50,17,49,164,47,25,08,050,41,26,42,241,32*77
+$GPGSV,3,3,10,27,23,060,39,28,20,146,00,,,,,,,,*7B
+$GPRMC,185607,A,0643.1767,S,03711.9270,W,000.3,082.5,030208,,,A*79
+$GPVTG,082.5,T,,M,000.3,N,000.6,K,A*07
+$GPGGA,185622,0643.1768,S,03711.9262,W,1,04,06.0,00182.0,M,-012.0,M,,*62
+$GPGSA,A,3,04,17,25,27,,,,,,,,,07.4,06.0,04.3*00
+$GPGSV,3,1,10,02,28,355,45,04,45,038,52,08,42,089,48,10,14,319,00*75
+$GPGSV,3,2,10,15,34,239,49,17,49,164,50,25,08,050,38,26,42,241,29*7D
+$GPGSV,3,3,10,27,23,060,41,28,20,146,45,,,,,,,,*75
+$GPRMC,185622,A,0643.1768,S,03711.9262,W,000.7,082.5,030208,,,A*76
+$GPVTG,082.5,T,,M,000.7,N,001.3,K,A*07
+$GPGGA,185637,0643.1738,S,03711.9248,W,1,04,01.9,00183.8,M,-012.0,M,,*6C
+$GPGSA,A,3,04,17,25,26,,,,,,,,,03.2,01.9,02.6*0E
+$GPGSV,3,1,10,02,28,355,46,04,45,038,53,08,42,089,49,10,14,320,00*7C
+$GPGSV,3,2,10,15,34,239,47,17,49,163,51,25,08,050,39,26,42,241,40*7B
+$GPGSV,3,3,10,27,23,060,33,28,19,146,42,,,,,,,,*7D
+$GPRMC,185637,A,0643.1738,S,03711.9248,W,000.1,082.5,030208,,,A*79
+$GPVTG,082.5,T,,M,000.1,N,000.3,K,A*00
+$GPGGA,185652,0643.1744,S,03711.9227,W,1,04,01.9,00185.7,M,-012.0,M,,*64
+$GPGSA,A,3,04,17,25,26,,,,,,,,,03.2,01.9,02.6*0E
+$GPGSV,3,1,10,02,28,355,44,04,45,038,53,08,42,088,50,10,13,320,00*70
+$GPGSV,3,2,10,15,34,239,46,17,49,163,52,25,08,050,40,26,42,241,41*76
+$GPGSV,3,3,10,27,23,060,33,28,19,145,37,,,,,,,,*7C
+$GPRMC,185652,A,0643.1744,S,03711.9227,W,000.7,082.5,030208,,,A*7E
+$GPVTG,082.5,T,,M,000.7,N,001.3,K,A*07
+$GPGGA,185707,0643.1748,S,03711.9232,W,1,05,01.8,00185.9,M,-012.0,M,,*63
+$GPGSA,A,3,04,17,25,26,27,,,,,,,,03.2,01.8,02.6*0A
+$GPGSV,3,1,10,02,28,355,45,04,45,038,53,08,42,088,48,10,13,320,00*78
+$GPGSV,3,2,10,15,34,240,46,17,49,163,51,25,08,050,39,26,43,241,42*77
+$GPGSV,3,3,10,27,23,060,35,28,19,145,34,,,,,,,,*79
+$GPRMC,185707,A,0643.1748,S,03711.9232,W,000.3,082.5,030208,,,A*73
+$GPVTG,082.5,T,,M,000.3,N,000.5,K,A*04
+$GPGGA,185722,0643.1749,S,03711.9237,W,1,04,01.9,00185.7,M,-012.0,M,,*6E
+$GPGSA,A,3,04,17,25,26,,,,,,,,,03.2,01.9,02.6*0E
+$GPGSV,3,1,10,02,28,355,43,04,45,038,53,08,42,088,49,10,13,320,00*7F
+$GPGSV,3,2,10,15,34,240,46,17,49,163,51,25,07,050,40,26,43,242,41*76
+$GPGSV,3,3,10,27,23,059,33,28,19,145,37,,,,,,,,*76
+$GPRMC,185722,A,0643.1749,S,03711.9237,W,000.3,082.5,030208,,,A*70
+$GPVTG,082.5,T,,M,000.3,N,000.6,K,A*07
+$GPGGA,185737,0643.1754,S,03711.9235,W,1,04,01.9,00185.4,M,-012.0,M,,*67
+$GPGSA,A,3,04,17,25,26,,,,,,,,,03.2,01.9,02.6*0E
+$GPGSV,3,1,10,02,28,355,44,04,45,038,53,08,42,088,49,10,13,320,00*78
+$GPGSV,3,2,10,15,34,240,47,17,48,163,51,25,07,050,39,26,43,242,43*7A
+$GPGSV,3,3,10,27,23,059,30,28,19,145,43,,,,,,,,*76
+$GPRMC,185737,A,0643.1754,S,03711.9235,W,000.4,082.5,030208,,,A*7D
+$GPVTG,082.5,T,,M,000.4,N,000.8,K,A*0E
+$GPGGA,185752,0643.1776,S,03711.9191,W,1,04,01.9,00185.5,M,-012.0,M,,*68
+$GPGSA,A,3,04,17,25,26,,,,,,,,,03.2,01.9,02.6*0E
+$GPGSV,3,1,10,02,29,355,43,04,45,039,53,08,42,088,48,10,13,320,00*7E
+$GPGSV,3,2,10,15,34,240,49,17,48,163,51,25,07,050,40,26,43,242,42*7B
+$GPGSV,3,3,10,27,23,059,32,28,19,145,41,,,,,,,,*76
+$GPRMC,185752,A,0643.1776,S,03711.9191,W,000.4,108.1,030208,,,A*74
+$GPVTG,108.1,T,,M,000.4,N,000.7,K,A*06
+$GPGGA,185807,0643.1840,S,03711.9078,W,1,05,01.8,00185.8,M,-012.0,M,,*66
+$GPGSA,A,3,04,17,25,26,27,,,,,,,,03.2,01.8,02.6*0A
+$GPGSV,3,1,10,02,29,355,46,04,45,039,48,08,42,088,46,10,13,320,00*7F
+$GPGSV,3,2,10,15,34,240,51,17,48,163,49,25,07,050,41,26,43,242,51*78
+$GPGSV,3,3,10,27,23,059,42,28,19,145,34,,,,,,,,*73
+$GPRMC,185807,A,0643.1840,S,03711.9078,W,004.0,123.3,030208,,,A*7C
+$GPVTG,123.3,T,,M,004.0,N,007.4,K,A*09
+$GPGGA,185827,0643.1587,S,03711.8950,W,1,04,01.8,00200.6,M,-012.0,M,,*61
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.7,01.8,04.3*0C
+$GPGSV,3,1,10,02,29,356,47,04,46,039,46,08,42,087,47,10,13,320,00*7E
+$GPGSV,3,2,10,15,34,240,43,17,48,163,47,25,07,050,29,26,43,242,34*78
+$GPGSV,3,3,10,27,22,059,42,28,19,145,33,,,,,,,,*75
+$GPRMC,185827,A,0643.1587,S,03711.8950,W,004.5,043.6,030208,,,A*7D
+$GPVTG,043.6,T,,M,004.5,N,008.3,K,A*06
+$GPGGA,185842,0643.1308,S,03711.8779,W,1,05,01.8,00171.5,M,-012.0,M,,*61
+$GPGSA,A,3,04,17,25,26,27,,,,,,,,03.1,01.8,02.6*09
+$GPGSV,3,1,10,02,29,356,42,04,46,039,47,08,42,087,43,10,13,320,00*7E
+$GPGSV,3,2,10,15,34,240,36,17,48,163,50,25,07,050,34,26,43,242,45*76
+$GPGSV,3,3,10,27,22,059,35,28,19,145,50,,,,,,,,*70
+$GPRMC,185842,A,0643.1308,S,03711.8779,W,006.3,351.9,030208,,,A*71
+$GPVTG,351.9,T,,M,006.3,N,011.7,K,A*01
+$GPGGA,185857,0643.1128,S,03711.8726,W,1,05,01.8,00179.0,M,-012.0,M,,*62
+$GPGSA,A,3,04,17,25,26,27,,,,,,,,03.1,01.8,02.5*0A
+$GPGSV,3,1,10,02,29,356,48,04,46,039,44,08,42,087,38,10,13,321,00*7A
+$GPGSV,3,2,10,15,34,240,50,17,48,163,43,25,07,050,32,26,43,242,51*77
+$GPGSV,3,3,10,27,22,059,37,28,19,145,31,,,,,,,,*75
+$GPRMC,185857,A,0643.1128,S,03711.8726,W,003.5,073.0,030208,,,A*76
+$GPVTG,073.0,T,,M,003.5,N,006.6,K,A*0F
+$GPGGA,185922,0643.1291,S,03711.7434,W,1,04,01.8,00186.4,M,-012.0,M,,*6A
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.6,01.8,04.2*0C
+$GPGSV,3,1,10,02,29,356,50,04,46,039,39,08,42,087,47,10,13,321,00*71
+$GPGSV,3,2,10,15,34,241,51,17,48,163,42,25,07,049,34,26,43,243,49*70
+$GPGSV,3,3,10,27,22,059,30,28,19,144,34,,,,,,,,*76
+$GPRMC,185922,A,0643.1291,S,03711.7434,W,029.6,096.3,030208,,,A*78
+$GPVTG,096.3,T,,M,029.6,N,054.9,K,A*04
+$GPGGA,185957,0643.1512,S,03711.5264,W,1,06,01.3,00162.5,M,-012.0,M,,*67
+$GPGSA,A,3,04,10,17,25,26,27,,,,,,,02.7,01.3,02.4*06
+$GPGSV,3,1,10,02,29,356,51,04,46,040,36,08,42,086,45,10,13,321,39*78
+$GPGSV,3,2,10,15,34,241,47,17,47,163,42,25,07,049,32,26,43,243,50*76
+$GPGSV,3,3,10,27,22,058,38,28,19,144,29,,,,,,,,*73
+$GPRMC,185957,A,0643.1512,S,03711.5264,W,021.6,090.3,030208,,,A*79
+$GPVTG,090.3,T,,M,021.6,N,040.1,K,A*07
+$GPGGA,190017,0643.1534,S,03711.3761,W,1,06,01.3,00217.7,M,-012.0,M,,*6F
+$GPGSA,A,3,04,10,17,25,26,27,,,,,,,02.7,01.3,02.3*01
+$GPGSV,3,1,10,02,29,356,52,04,46,040,34,08,42,086,47,10,13,321,41*74
+$GPGSV,3,2,10,15,34,241,46,17,47,163,45,25,07,049,34,26,43,243,51*77
+$GPGSV,3,3,10,27,22,058,36,28,19,144,30,,,,,,,,*75
+$GPRMC,190017,A,0643.1534,S,03711.3761,W,030.3,096.0,030208,,,A*72
+$GPVTG,096.0,T,,M,030.3,N,056.2,K,A*03
+$GPGGA,190032,0643.1671,S,03711.2501,W,1,05,01.4,00222.7,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.5,01.4,03.2*02
+$GPGSV,3,1,10,02,30,356,49,04,46,040,49,08,42,086,47,10,13,321,36*7C
+$GPGSV,3,2,10,15,35,241,51,17,47,163,44,25,07,049,28,26,43,243,46*7A
+$GPGSV,3,3,10,27,22,058,40,28,19,144,32,,,,,,,,*76
+$GPRMC,190032,A,0643.1671,S,03711.2501,W,028.8,096.5,030208,,,A*75
+$GPVTG,096.5,T,,M,028.8,N,053.3,K,A*00
+$GPGGA,190047,0643.1800,S,03711.1224,W,1,05,01.4,00222.2,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.5,01.4,03.2*02
+$GPGSV,3,1,10,02,30,356,52,04,46,040,42,08,42,086,49,10,13,321,36*73
+$GPGSV,3,2,10,15,35,241,48,17,47,163,45,25,07,049,29,26,43,244,51*73
+$GPGSV,3,3,10,27,22,058,35,28,19,144,30,,,,,,,,*76
+$GPRMC,190047,A,0643.1800,S,03711.1224,W,033.1,095.3,030208,,,A*7A
+$GPVTG,095.3,T,,M,033.1,N,061.3,K,A*07
+$GPGGA,190102,0643.1813,S,03711.0346,W,1,05,01.4,00235.8,M,-012.0,M,,*6B
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.5,01.4,03.2*02
+$GPGSV,3,1,10,02,30,356,52,04,46,040,43,08,42,086,50,10,13,321,41*7A
+$GPGSV,3,2,10,15,35,242,46,17,47,163,47,25,06,049,00,26,43,244,51*76
+$GPGSV,3,3,10,27,22,058,35,28,19,144,31,,,,,,,,*77
+$GPRMC,190102,A,0643.1813,S,03711.0346,W,011.1,099.6,030208,,,A*75
+$GPVTG,099.6,T,,M,011.1,N,020.7,K,A*0F
+$GPGGA,190117,0643.1963,S,03710.9757,W,1,05,01.4,00231.4,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.5,01.4,03.1*01
+$GPGSV,3,1,10,02,30,356,36,04,46,040,53,08,42,086,44,10,13,322,34*7D
+$GPGSV,3,2,10,15,35,242,39,17,47,163,48,25,06,049,00,26,43,244,46*77
+$GPGSV,3,3,10,27,22,058,34,28,19,144,33,,,,,,,,*74
+$GPRMC,190117,A,0643.1963,S,03710.9757,W,015.3,109.1,030208,,,A*72
+$GPVTG,109.1,T,,M,015.3,N,028.3,K,A*0A
+$GPGGA,190132,0643.2332,S,03710.9148,W,1,05,01.4,00227.2,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.5,01.4,03.1*01
+$GPGSV,3,1,10,02,30,356,43,04,46,041,47,08,42,085,49,10,13,322,45*73
+$GPGSV,3,2,10,15,35,242,42,17,47,163,49,25,06,049,00,26,43,244,35*7E
+$GPGSV,3,3,10,27,22,058,43,28,19,143,36,,,,,,,,*76
+$GPRMC,190132,A,0643.2332,S,03710.9148,W,018.3,125.4,030208,,,A*76
+$GPVTG,125.4,T,,M,018.3,N,033.9,K,A*0C
+$GPGGA,190147,0643.2817,S,03710.8567,W,1,05,01.4,00228.0,M,-012.0,M,,*65
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.4,01.4,03.1*00
+$GPGSV,3,1,10,02,30,356,41,04,46,041,48,08,42,085,48,10,13,322,39*74
+$GPGSV,3,2,10,15,35,242,40,17,47,163,48,25,06,049,00,26,44,244,35*7A
+$GPGSV,3,3,10,27,22,058,39,28,19,143,34,,,,,,,,*79
+$GPRMC,190147,A,0643.2817,S,03710.8567,W,017.3,128.1,030208,,,A*77
+$GPVTG,128.1,T,,M,017.3,N,032.1,K,A*02
+$GPGGA,190202,0643.3302,S,03710.7879,W,1,05,01.4,00231.1,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.4,01.4,03.1*00
+$GPGSV,3,1,10,02,30,356,33,04,47,041,50,08,42,085,47,10,13,322,41*79
+$GPGSV,3,2,10,15,35,242,35,17,46,163,51,25,06,049,00,26,44,244,38*7C
+$GPGSV,3,3,10,27,22,058,42,28,19,143,39,,,,,,,,*78
+$GPRMC,190202,A,0643.3302,S,03710.7879,W,020.4,124.6,030208,,,A*7E
+$GPVTG,124.6,T,,M,020.4,N,037.7,K,A*09
+$GPGGA,190217,0643.3704,S,03710.7288,W,1,05,01.4,00232.9,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.4,01.4,03.1*00
+$GPGSV,3,1,10,02,30,356,42,04,47,041,52,08,42,085,47,10,13,322,35*7E
+$GPGSV,3,2,10,15,35,242,41,17,46,163,48,25,06,049,00,26,44,245,40*79
+$GPGSV,3,3,10,27,22,057,43,28,19,143,34,,,,,,,,*7B
+$GPRMC,190217,A,0643.3704,S,03710.7288,W,013.5,125.6,030208,,,A*7C
+$GPVTG,125.6,T,,M,013.5,N,025.0,K,A*0D
+$GPGGA,190232,0643.3975,S,03710.6665,W,1,05,01.8,00208.4,M,-012.0,M,,*65
+$GPGSA,A,3,04,17,25,26,27,,,,,,,,03.1,01.8,02.5*0A
+$GPGSV,3,1,10,02,30,357,50,04,47,041,54,08,42,085,47,10,13,322,29*77
+$GPGSV,3,2,10,15,35,242,44,17,46,163,47,25,06,048,36,26,44,245,40*77
+$GPGSV,3,3,10,27,21,057,39,28,19,143,35,,,,,,,,*74
+$GPRMC,190232,A,0643.3975,S,03710.6665,W,014.7,107.3,030208,,,A*75
+$GPVTG,107.3,T,,M,014.7,N,027.4,K,A*0B
+$GPGGA,190247,0643.4162,S,03710.6078,W,1,04,01.8,00205.6,M,-012.0,M,,*6A
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.5,01.8,04.1*0C
+$GPGSV,3,1,10,02,30,357,49,04,47,041,55,08,42,085,42,10,13,322,31*72
+$GPGSV,3,2,10,15,35,242,44,17,46,163,45,25,06,048,30,26,44,245,42*71
+$GPGSV,3,3,10,27,21,057,37,28,19,143,34,,,,,,,,*7B
+$GPRMC,190247,A,0643.4162,S,03710.6078,W,018.1,109.4,030208,,,A*77
+$GPVTG,109.4,T,,M,018.1,N,033.6,K,A*0F
+$GPGGA,190302,0643.4353,S,03710.5455,W,1,03,01.8,00221.2,M,-012.0,M,,*67
+$GPGSA,A,2,04,17,26,,,,,,,,,,02.1,01.8,01.0*0E
+$GPGSV,3,1,10,02,30,357,49,04,47,041,55,08,42,084,45,10,13,322,34*71
+$GPGSV,3,2,10,15,35,243,43,17,46,163,49,25,06,048,34,26,44,245,40*7D
+$GPGSV,3,3,10,27,21,057,35,28,19,143,32,,,,,,,,*7F
+$GPRMC,190302,A,0643.4353,S,03710.5455,W,014.7,108.2,030208,,,A*72
+$GPVTG,108.2,T,,M,014.7,N,027.2,K,A*03
+$GPGGA,190317,0643.4581,S,03710.4821,W,1,03,01.8,00221.4,M,-012.0,M,,*62
+$GPGSA,A,2,04,17,26,,,,,,,,,,02.1,01.8,00.9*06
+$GPGSV,3,1,10,02,31,357,49,04,47,042,55,08,42,084,39,10,13,322,33*7F
+$GPGSV,3,2,10,15,35,243,37,17,46,163,47,25,06,048,33,26,44,245,44*73
+$GPGSV,3,3,10,27,21,057,34,28,19,143,29,,,,,,,,*74
+$GPRMC,190317,A,0643.4581,S,03710.4821,W,016.2,108.2,030208,,,A*76
+$GPVTG,108.2,T,,M,016.2,N,030.1,K,A*01
+$GPGGA,190332,0643.4773,S,03710.4158,W,1,03,01.8,00230.1,M,-012.0,M,,*68
+$GPGSA,A,2,04,17,26,,,,,,,,,,02.1,01.8,00.9*06
+$GPGSV,3,1,10,02,31,357,45,04,47,042,55,08,42,084,35,10,13,323,32*7F
+$GPGSV,3,2,10,15,35,243,39,17,46,163,48,25,06,048,26,26,44,245,49*7B
+$GPGSV,3,3,10,27,21,057,34,28,19,143,27,,,,,,,,*7A
+$GPRMC,190332,A,0643.4773,S,03710.4158,W,015.0,110.1,030208,,,A*72
+$GPVTG,110.1,T,,M,015.0,N,027.9,K,A*04
+$GPGGA,190352,0643.5044,S,03710.3401,W,1,04,01.8,00236.1,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,17,26,,,,,,,,,04.6,01.8,04.2*08
+$GPGSV,3,1,10,02,31,357,52,04,47,042,47,08,42,084,44,10,13,323,35*7B
+$GPGSV,3,2,10,15,35,243,49,17,46,163,45,25,06,048,30,26,44,246,51*7C
+$GPGSV,3,3,10,27,21,057,31,28,19,142,34,,,,,,,,*7C
+$GPRMC,190352,A,0643.5044,S,03710.3401,W,018.2,096.3,030208,,,A*7A
+$GPVTG,096.3,T,,M,018.2,N,033.7,K,A*0D
+$GPGGA,190407,0643.4934,S,03710.2689,W,1,05,01.4,00261.7,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.3,01.4,03.0*06
+$GPGSV,3,1,10,02,31,357,51,04,47,042,45,08,42,084,46,10,13,323,35*78
+$GPGSV,3,2,10,15,35,243,51,17,45,163,45,25,06,048,00,26,44,246,49*7C
+$GPGSV,3,3,10,27,21,057,39,28,19,142,28,,,,,,,,*79
+$GPRMC,190407,A,0643.4934,S,03710.2689,W,011.3,084.0,030208,,,A*79
+$GPVTG,084.0,T,,M,011.3,N,020.9,K,A*09
+$GPGGA,190427,0643.4928,S,03710.1991,W,1,04,01.8,00249.9,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,17,26,,,,,,,,,04.5,01.8,04.1*08
+$GPGSV,3,1,10,02,31,357,47,04,47,042,48,08,42,083,47,10,13,323,34*75
+$GPGSV,3,2,10,15,35,243,46,17,45,163,39,25,06,048,30,26,44,246,52*78
+$GPGSV,3,3,10,27,21,057,32,28,19,142,36,,,,,,,,*7D
+$GPRMC,190427,A,0643.4928,S,03710.1991,W,012.6,102.5,030208,,,A*7F
+$GPVTG,102.5,T,,M,012.6,N,023.4,K,A*0B
+$GPGGA,190442,0643.5241,S,03710.1361,W,1,03,01.8,00249.9,M,-012.0,M,,*66
+$GPGSA,A,2,04,17,26,,,,,,,,,,02.1,01.8,00.9*06
+$GPGSV,3,1,10,02,31,357,42,04,47,042,54,08,42,083,44,10,13,323,31*7B
+$GPGSV,3,2,10,15,35,243,46,17,45,163,49,25,05,048,28,26,44,246,41*77
+$GPGSV,3,3,10,27,21,056,33,28,19,142,30,,,,,,,,*7B
+$GPRMC,190442,A,0643.5241,S,03710.1361,W,016.2,114.2,030208,,,A*7C
+$GPVTG,114.2,T,,M,016.2,N,030.0,K,A*0D
+$GPGGA,190502,0643.5458,S,03710.0561,W,1,05,01.4,00256.7,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.3,01.4,03.0*06
+$GPGSV,3,1,10,02,31,357,46,04,47,043,52,08,42,083,43,10,13,323,34*7A
+$GPGSV,3,2,10,15,35,244,45,17,45,163,45,25,05,048,26,26,44,246,45*75
+$GPGSV,3,3,10,27,21,056,33,28,19,142,29,,,,,,,,*73
+$GPRMC,190502,A,0643.5458,S,03710.0561,W,009.0,110.1,030208,,,A*7B
+$GPVTG,110.1,T,,M,009.0,N,016.7,K,A*05
+$GPGGA,190517,0643.5606,S,03710.0196,W,1,05,01.4,00233.9,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.3,01.4,03.0*06
+$GPGSV,3,1,10,02,31,357,49,04,47,043,51,08,42,083,48,10,13,323,41*7F
+$GPGSV,3,2,10,15,36,244,44,17,45,163,45,25,05,048,31,26,44,247,51*75
+$GPGSV,3,3,10,27,21,056,35,28,19,142,38,,,,,,,,*75
+$GPRMC,190517,A,0643.5606,S,03710.0196,W,008.6,062.6,030208,,,A*7E
+$GPVTG,062.6,T,,M,008.6,N,016.0,K,A*06
+$GPGGA,190532,0643.5782,S,03709.9672,W,1,05,01.4,00253.4,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.3,01.4,03.0*06
+$GPGSV,3,1,10,02,31,357,46,04,48,043,52,08,42,083,47,10,13,323,33*76
+$GPGSV,3,2,10,15,36,244,45,17,45,163,45,25,05,048,30,26,44,247,44*71
+$GPGSV,3,3,10,27,21,056,33,28,19,142,36,,,,,,,,*7D
+$GPRMC,190532,A,0643.5782,S,03709.9672,W,014.1,106.1,030208,,,A*76
+$GPVTG,106.1,T,,M,014.1,N,026.2,K,A*09
+$GPGGA,190547,0643.5920,S,03709.9130,W,1,04,01.7,00265.6,M,-012.0,M,,*61
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.3,01.7,03.9*0A
+$GPGSV,3,1,10,02,32,357,50,04,48,043,54,08,42,083,34,10,13,324,34*70
+$GPGSV,3,2,10,15,36,244,34,17,45,163,51,25,05,048,33,26,44,247,47*72
+$GPGSV,3,3,10,27,21,056,46,28,19,142,35,,,,,,,,*7C
+$GPRMC,190547,A,0643.5920,S,03709.9130,W,012.1,109.6,030208,,,A*7D
+$GPVTG,109.6,T,,M,012.1,N,022.4,K,A*05
+$GPGGA,190602,0643.6139,S,03709.8439,W,1,04,01.7,00260.5,M,-012.0,M,,*6B
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.3,01.7,03.9*0A
+$GPGSV,3,1,10,02,32,357,52,04,48,043,51,08,42,082,42,10,13,324,30*73
+$GPGSV,3,2,10,15,36,244,31,17,45,163,51,25,05,048,30,26,44,247,48*7B
+$GPGSV,3,3,10,27,21,056,45,28,18,142,28,,,,,,,,*72
+$GPRMC,190602,A,0643.6139,S,03709.8439,W,016.7,113.3,030208,,,A*7D
+$GPVTG,113.3,T,,M,016.7,N,031.0,K,A*0F
+$GPGGA,190617,0643.6475,S,03709.7922,W,1,04,01.7,00259.5,M,-012.0,M,,*60
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.3,01.7,03.9*0A
+$GPGSV,3,1,10,02,32,357,43,04,48,043,52,08,42,082,49,10,13,324,32*79
+$GPGSV,3,2,10,15,36,244,40,17,44,163,49,25,05,047,27,26,44,247,45*71
+$GPGSV,3,3,10,27,21,056,45,28,18,141,46,,,,,,,,*79
+$GPRMC,190617,A,0643.6475,S,03709.7922,W,011.8,124.6,030208,,,A*75
+$GPVTG,124.6,T,,M,011.8,N,021.9,K,A*0E
+$GPGGA,190632,0643.6558,S,03709.7499,W,1,05,01.4,00259.3,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.2,01.4,02.9*0F
+$GPGSV,3,1,10,02,32,357,48,04,48,043,50,08,42,082,46,10,13,324,32*7F
+$GPGSV,3,2,10,15,36,244,42,17,44,163,48,25,05,047,00,26,44,247,44*76
+$GPGSV,3,3,10,27,20,056,33,28,18,141,33,,,,,,,,*7B
+$GPRMC,190632,A,0643.6558,S,03709.7499,W,009.4,078.1,030208,,,A*7B
+$GPVTG,078.1,T,,M,009.4,N,017.4,K,A*0C
+$GPGGA,190647,0643.6769,S,03709.7178,W,1,05,01.4,00257.5,M,-012.0,M,,*60
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.2,01.4,02.9*0F
+$GPGSV,3,1,10,02,32,358,46,04,48,044,46,08,42,082,52,10,13,324,32*7B
+$GPGSV,3,2,10,15,36,244,46,17,44,163,49,25,05,047,00,26,44,248,47*7F
+$GPGSV,3,3,10,27,20,056,45,28,18,141,48,,,,,,,,*76
+$GPRMC,190647,A,0643.6769,S,03709.7178,W,007.9,140.6,030208,,,A*7D
+$GPVTG,140.6,T,,M,007.9,N,014.6,K,A*03
+$GPGGA,190702,0643.7197,S,03709.6739,W,1,04,01.7,00253.0,M,-012.0,M,,*67
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.2,01.7,03.9*0B
+$GPGSV,3,1,10,02,32,358,35,04,48,044,47,08,41,082,49,10,13,324,29*7D
+$GPGSV,3,2,10,15,36,245,46,17,44,163,51,25,05,047,00,26,45,248,45*74
+$GPGSV,3,3,10,27,20,056,47,28,18,141,35,,,,,,,,*7E
+$GPRMC,190702,A,0643.7197,S,03709.6739,W,013.7,133.7,030208,,,A*77
+$GPVTG,133.7,T,,M,013.7,N,025.4,K,A*0D
+$GPGGA,190717,0643.7533,S,03709.6259,W,1,05,01.3,00252.4,M,-012.0,M,,*6A
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.2,01.3,02.9*08
+$GPGSV,3,1,10,02,32,358,36,04,48,044,48,08,41,082,49,10,13,324,35*7C
+$GPGSV,3,2,10,15,36,245,38,17,44,163,49,25,05,047,00,26,45,248,43*72
+$GPGSV,3,3,10,27,20,056,35,28,18,141,37,,,,,,,,*79
+$GPRMC,190717,A,0643.7533,S,03709.6259,W,014.9,131.8,030208,,,A*7E
+$GPVTG,131.8,T,,M,014.9,N,027.6,K,A*09
+$GPGGA,190732,0643.7704,S,03709.5687,W,1,05,01.3,00250.7,M,-012.0,M,,*6E
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.2,01.3,02.9*08
+$GPGSV,3,1,10,02,32,358,52,04,48,044,52,08,41,081,45,10,13,324,35*7A
+$GPGSV,3,2,10,15,36,245,33,17,44,163,49,25,05,047,00,26,45,248,47*7D
+$GPGSV,3,3,10,27,20,055,36,28,18,141,34,,,,,,,,*7A
+$GPRMC,190732,A,0643.7704,S,03709.5687,W,008.7,098.2,030208,,,A*70
+$GPVTG,098.2,T,,M,008.7,N,016.1,K,A*07
+$GPGGA,190747,0643.7777,S,03709.5147,W,1,04,01.7,00248.3,M,-012.0,M,,*6B
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.2,01.7,03.8*0A
+$GPGSV,3,1,10,02,32,358,52,04,48,044,51,08,41,081,45,10,13,324,30*7C
+$GPGSV,3,2,10,15,36,245,46,17,44,163,48,25,05,047,00,26,45,248,40*79
+$GPGSV,3,3,10,27,20,055,40,28,18,141,34,,,,,,,,*7B
+$GPRMC,190747,A,0643.7777,S,03709.5147,W,012.8,097.2,030208,,,A*76
+$GPVTG,097.2,T,,M,012.8,N,023.7,K,A*0C
+$GPGGA,190802,0643.7856,S,03709.4430,W,1,05,01.3,00244.6,M,-012.0,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.2,01.3,02.9*08
+$GPGSV,3,1,10,02,32,358,52,04,48,044,50,08,41,081,46,10,13,324,35*7B
+$GPGSV,3,2,10,15,36,245,49,17,44,163,49,25,05,047,00,26,45,248,48*7F
+$GPGSV,3,3,10,27,20,055,47,28,18,141,36,,,,,,,,*7E
+$GPRMC,190802,A,0643.7856,S,03709.4430,W,018.8,094.5,030208,,,A*7E
+$GPVTG,094.5,T,,M,018.8,N,034.8,K,A*0B
+$GPGGA,190817,0643.7762,S,03709.3657,W,1,04,01.7,00241.9,M,-012.0,M,,*66
+$GPGSA,A,3,04,10,17,26,,,,,,,,,04.1,01.7,03.7*02
+$GPGSV,3,1,10,02,32,358,47,04,48,045,52,08,41,081,45,10,13,325,34*7F
+$GPGSV,3,2,10,15,36,245,48,17,44,163,46,25,04,047,00,26,45,249,41*78
+$GPGSV,3,3,10,27,20,055,32,28,18,141,32,,,,,,,,*78
+$GPRMC,190817,A,0643.7762,S,03709.3657,W,017.3,075.5,030208,,,A*7D
+$GPVTG,075.5,T,,M,017.3,N,032.1,K,A*0F
+$GPGGA,190842,0643.7491,S,03709.2637,W,1,04,01.7,00207.9,M,-012.0,M,,*6C
+$GPGSA,A,3,04,10,17,26,,,,,,,,,04.0,01.7,03.7*03
+$GPGSV,3,1,10,02,33,358,43,04,48,045,52,08,41,081,45,10,13,325,34*7A
+$GPGSV,3,2,10,15,36,246,43,17,43,163,49,25,04,047,00,26,45,249,38*76
+$GPGSV,3,3,10,27,20,055,31,28,18,140,34,,,,,,,,*7C
+$GPRMC,190842,A,0643.7491,S,03709.2637,W,014.3,075.4,030208,,,A*77
+$GPVTG,075.4,T,,M,014.3,N,026.4,K,A*0D
+$GPGGA,190857,0643.7316,S,03709.2020,W,1,05,01.3,00223.7,M,-012.0,M,,*6D
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.8*0A
+$GPGSV,3,1,10,02,33,358,35,04,48,045,51,08,41,081,46,10,13,325,42*7A
+$GPGSV,3,2,10,15,36,246,46,17,43,163,47,25,04,047,00,26,45,249,35*70
+$GPGSV,3,3,10,27,20,055,34,28,18,140,34,,,,,,,,*79
+$GPRMC,190857,A,0643.7316,S,03709.2020,W,013.8,075.2,030208,,,A*71
+$GPVTG,075.2,T,,M,013.8,N,025.7,K,A*07
+$GPGGA,190912,0643.7232,S,03709.1603,W,1,05,01.3,00218.3,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.8*0A
+$GPGSV,3,1,10,02,33,358,46,04,49,045,53,08,41,080,47,10,13,325,34*7C
+$GPGSV,3,2,10,15,36,246,46,17,43,163,43,25,04,047,00,26,45,249,40*76
+$GPGSV,3,3,10,27,20,055,38,28,18,140,30,,,,,,,,*71
+$GPRMC,190912,A,0643.7232,S,03709.1603,W,008.4,077.3,030208,,,A*77
+$GPVTG,077.3,T,,M,008.4,N,015.5,K,A*03
+$GPGGA,190927,0643.7072,S,03709.1168,W,1,05,01.3,00235.6,M,-012.0,M,,*62
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.8*0A
+$GPGSV,3,1,10,02,33,358,47,04,49,045,51,08,41,080,46,10,13,325,39*73
+$GPGSV,3,2,10,15,36,246,47,17,43,163,51,25,04,047,00,26,45,249,49*7D
+$GPGSV,3,3,10,27,20,055,42,28,18,140,41,,,,,,,,*7A
+$GPRMC,190927,A,0643.7072,S,03709.1168,W,012.4,093.7,030208,,,A*78
+$GPVTG,093.7,T,,M,012.4,N,023.0,K,A*06
+$GPGGA,190942,0643.7049,S,03709.0656,W,1,05,01.3,00242.0,M,-012.0,M,,*64
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.8*0A
+$GPGSV,3,1,10,02,33,358,51,04,49,045,51,08,41,080,44,10,13,325,36*79
+$GPGSV,3,2,10,15,36,246,50,17,43,163,49,25,04,047,00,26,45,250,46*75
+$GPGSV,3,3,10,27,20,055,41,28,18,140,34,,,,,,,,*7B
+$GPRMC,190942,A,0643.7049,S,03709.0656,W,010.8,104.2,030208,,,A*7C
+$GPVTG,104.2,T,,M,010.8,N,020.1,K,A*00
+$GPGGA,190957,0643.7498,S,03709.0292,W,1,04,01.6,00237.1,M,-012.0,M,,*63
+$GPGSA,A,3,04,10,17,26,,,,,,,,,03.9,01.6,03.5*0E
+$GPGSV,3,1,10,02,33,358,47,04,49,046,53,08,41,080,43,10,13,325,41*78
+$GPGSV,3,2,10,15,36,246,45,17,43,162,48,25,04,046,00,26,45,250,49*7F
+$GPGSV,3,3,10,27,20,055,33,28,18,140,40,,,,,,,,*7D
+$GPRMC,190957,A,0643.7498,S,03709.0292,W,013.0,162.8,030208,,,A*7D
+$GPVTG,162.8,T,,M,013.0,N,024.0,K,A*04
+$GPGGA,191012,0643.7749,S,03709.0225,W,1,05,01.3,00236.5,M,-012.0,M,,*68
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.8*0A
+$GPGSV,3,1,10,02,33,358,38,04,49,046,43,08,41,080,50,10,13,325,39*7C
+$GPGSV,3,2,10,15,37,246,36,17,43,162,46,25,04,046,00,26,45,250,48*75
+$GPGSV,3,3,10,27,20,054,35,28,18,140,37,,,,,,,,*7A
+$GPRMC,191012,A,0643.7749,S,03709.0225,W,007.6,165.0,030208,,,A*7B
+$GPVTG,165.0,T,,M,007.6,N,014.0,K,A*0B
+$GPGGA,191027,0643.8052,S,03708.9881,W,1,05,01.3,00233.0,M,-011.9,M,,*6A
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.8*0A
+$GPGSV,3,1,10,02,33,358,50,04,49,046,52,08,41,080,46,10,13,325,35*79
+$GPGSV,3,2,10,15,37,246,50,17,43,162,47,25,04,046,00,26,45,250,50*7D
+$GPGSV,3,3,10,27,20,054,42,28,18,140,42,,,,,,,,*78
+$GPRMC,191027,A,0643.8052,S,03708.9881,W,011.4,116.1,030208,,,A*73
+$GPVTG,116.1,T,,M,011.4,N,021.2,K,A*0F
+$GPGGA,191042,0643.8221,S,03708.9342,W,1,05,01.3,00232.4,M,-011.9,M,,*6E
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.8*0A
+$GPGSV,3,1,10,02,33,359,46,04,49,046,48,08,41,079,36,10,13,326,36*75
+$GPGSV,3,2,10,15,37,247,50,17,42,162,50,25,04,046,00,26,45,250,46*7C
+$GPGSV,3,3,10,27,19,054,35,28,18,139,33,,,,,,,,*7A
+$GPRMC,191042,A,0643.8221,S,03708.9342,W,015.2,107.7,030208,,,A*76
+$GPVTG,107.7,T,,M,015.2,N,028.3,K,A*03
+$GPGGA,191057,0643.8382,S,03708.8814,W,1,05,01.3,00231.8,M,-011.9,M,,*64
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.1,01.3,02.7*05
+$GPGSV,3,1,10,02,34,359,51,04,49,046,47,08,41,079,38,10,13,326,35*76
+$GPGSV,3,2,10,15,37,247,50,17,42,162,50,25,04,046,00,26,45,250,51*7A
+$GPGSV,3,3,10,27,19,054,35,28,18,139,31,,,,,,,,*78
+$GPRMC,191057,A,0643.8382,S,03708.8814,W,012.5,110.8,030208,,,A*7A
+$GPVTG,110.8,T,,M,012.5,N,023.1,K,A*03
+$GPGGA,191112,0643.8486,S,03708.8324,W,1,05,01.3,00232.5,M,-011.9,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.7*04
+$GPGSV,3,1,10,02,34,359,42,04,49,046,47,08,41,079,40,10,13,326,32*7C
+$GPGSV,3,2,10,15,37,247,50,17,42,162,49,25,04,046,00,26,45,251,47*74
+$GPGSV,3,3,10,27,19,054,34,28,18,139,41,,,,,,,,*7E
+$GPRMC,191112,A,0643.8486,S,03708.8324,W,010.3,105.0,030208,,,A*79
+$GPVTG,105.0,T,,M,010.3,N,019.1,K,A*02
+$GPGGA,191127,0643.8553,S,03708.7828,W,1,05,01.3,00235.1,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.7*04
+$GPGSV,3,1,10,02,34,359,33,04,49,047,48,08,41,079,41,10,13,326,37*70
+$GPGSV,3,2,10,15,37,247,46,17,42,162,51,25,04,046,00,26,45,251,48*75
+$GPGSV,3,3,10,27,19,054,34,28,18,139,41,,,,,,,,*7E
+$GPRMC,191127,A,0643.8553,S,03708.7828,W,016.4,096.5,030208,,,A*71
+$GPVTG,096.5,T,,M,016.4,N,030.3,K,A*04
+$GPGGA,191142,0643.8738,S,03708.7181,W,1,05,01.3,00236.8,M,-011.9,M,,*69
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.7*04
+$GPGSV,3,1,10,02,34,359,41,04,49,047,50,08,41,079,47,10,13,326,35*78
+$GPGSV,3,2,10,15,37,247,49,17,42,162,44,25,03,046,00,26,45,251,49*78
+$GPGSV,3,3,10,27,19,054,48,28,18,139,45,,,,,,,,*71
+$GPRMC,191142,A,0643.8738,S,03708.7181,W,016.0,119.8,030208,,,A*78
+$GPVTG,119.8,T,,M,016.0,N,029.7,K,A*07
+$GPGGA,191157,0643.9204,S,03708.6580,W,1,05,01.3,00237.0,M,-011.9,M,,*6B
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.7*04
+$GPGSV,3,1,10,02,34,359,42,04,49,047,49,08,41,079,47,10,13,326,34*72
+$GPGSV,3,2,10,15,37,247,51,17,42,162,45,25,03,046,00,26,45,251,49*70
+$GPGSV,3,3,10,27,19,054,46,28,18,139,44,,,,,,,,*7E
+$GPRMC,191157,A,0643.9204,S,03708.6580,W,019.8,119.7,030208,,,A*7B
+$GPVTG,119.7,T,,M,019.8,N,036.6,K,A*00
+$GPGGA,191212,0643.9514,S,03708.5881,W,1,04,01.7,00237.4,M,-011.9,M,,*61
+$GPGSA,A,3,04,17,26,27,,,,,,,,,04.0,01.7,03.6*06
+$GPGSV,3,1,10,02,34,359,45,04,49,047,51,08,41,078,37,10,13,326,32*7C
+$GPGSV,3,2,10,15,37,247,49,17,42,162,49,25,03,046,00,26,45,251,46*7A
+$GPGSV,3,3,10,27,19,054,36,28,18,139,34,,,,,,,,*7E
+$GPRMC,191212,A,0643.9514,S,03708.5881,W,014.7,109.7,030208,,,A*73
+$GPVTG,109.7,T,,M,014.7,N,027.2,K,A*07
+$GPGGA,191227,0643.9745,S,03708.5234,W,1,04,01.7,00236.7,M,-011.9,M,,*67
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.9,01.7,03.6*08
+$GPGSV,3,1,10,02,34,359,43,04,49,047,51,08,41,078,40,10,13,326,30*78
+$GPGSV,3,2,10,15,37,248,50,17,42,162,50,25,03,046,00,26,45,251,46*75
+$GPGSV,3,3,10,27,19,054,41,28,18,139,35,,,,,,,,*7F
+$GPRMC,191227,A,0643.9745,S,03708.5234,W,014.7,112.6,030208,,,A*7C
+$GPVTG,112.6,T,,M,014.7,N,027.3,K,A*0D
+$GPGGA,191242,0643.9971,S,03708.4808,W,1,05,01.3,00237.5,M,-011.9,M,,*6F
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.7*04
+$GPGSV,3,1,10,02,34,359,45,04,49,047,51,08,41,078,38,10,13,326,38*79
+$GPGSV,3,2,10,15,37,248,49,17,42,162,49,25,03,046,00,26,45,252,49*79
+$GPGSV,3,3,10,27,19,054,46,28,18,139,41,,,,,,,,*7B
+$GPRMC,191242,A,0643.9971,S,03708.4808,W,014.0,114.4,030208,,,A*71
+$GPVTG,114.4,T,,M,014.0,N,026.0,K,A*0C
+$GPGGA,191257,0644.0160,S,03708.4335,W,1,05,01.3,00238.4,M,-011.9,M,,*66
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.7*04
+$GPGSV,3,1,10,02,34,359,35,04,50,047,52,08,41,078,48,10,13,327,34*7F
+$GPGSV,3,2,10,15,37,248,50,17,41,162,47,25,03,046,00,26,46,252,46*70
+$GPGSV,3,3,10,27,19,053,46,28,18,139,43,,,,,,,,*7E
+$GPRMC,191257,A,0644.0160,S,03708.4335,W,010.5,114.2,030208,,,A*71
+$GPVTG,114.2,T,,M,010.5,N,019.5,K,A*02
+$GPGGA,191312,0644.0443,S,03708.3818,W,1,05,01.3,00238.4,M,-011.9,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.7*04
+$GPGSV,3,1,10,02,34,359,34,04,50,048,50,08,41,078,47,10,13,327,32*7A
+$GPGSV,3,2,10,15,37,248,49,17,41,162,38,25,03,046,00,26,46,252,48*7E
+$GPGSV,3,3,10,27,19,053,39,28,18,138,42,,,,,,,,*76
+$GPRMC,191312,A,0644.0443,S,03708.3818,W,013.8,120.4,030208,,,A*79
+$GPVTG,120.4,T,,M,013.8,N,025.7,K,A*00
+$GPGGA,191327,0644.0838,S,03708.3387,W,1,05,01.3,00238.6,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.6*05
+$GPGSV,3,1,10,02,35,359,33,04,50,048,49,08,41,078,51,10,13,327,33*72
+$GPGSV,3,2,10,15,37,248,47,17,41,162,44,25,03,046,00,26,46,252,50*72
+$GPGSV,3,3,10,27,19,053,45,28,18,138,36,,,,,,,,*7E
+$GPRMC,191327,A,0644.0838,S,03708.3387,W,012.4,133.9,030208,,,A*70
+$GPVTG,133.9,T,,M,012.4,N,023.1,K,A*02
+$GPGGA,191342,0644.1173,S,03708.3059,W,1,05,01.3,00238.7,M,-011.9,M,,*6D
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,03.0,01.3,02.6*05
+$GPGSV,3,1,10,02,35,359,32,04,50,048,48,08,41,078,51,10,13,327,33*72
+$GPGSV,3,2,10,15,37,248,49,17,41,162,42,25,03,045,00,26,46,252,50*79
+$GPGSV,3,3,10,27,19,053,47,28,18,138,35,,,,,,,,*7F
+$GPRMC,191342,A,0644.1173,S,03708.3059,W,008.3,131.2,030208,,,A*71
+$GPVTG,131.2,T,,M,008.3,N,015.4,K,A*07
+$GPGGA,191357,0644.1460,S,03708.2705,W,1,05,01.3,00238.4,M,-011.9,M,,*62
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.6*0D
+$GPGSV,3,1,10,02,35,359,34,04,50,048,52,08,41,077,46,10,13,327,35*70
+$GPGSV,3,2,10,15,37,248,48,17,41,162,46,25,03,045,00,26,46,253,48*74
+$GPGSV,3,3,10,27,19,053,43,28,18,138,42,,,,,,,,*7B
+$GPRMC,191357,A,0644.1460,S,03708.2705,W,013.4,118.6,030208,,,A*7F
+$GPVTG,118.6,T,,M,013.4,N,024.9,K,A*0A
+$GPGGA,191412,0644.1628,S,03708.2325,W,1,04,01.6,00239.0,M,-011.9,M,,*6D
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.8,01.6,03.5*0B
+$GPGSV,3,1,10,02,35,359,45,04,50,048,49,08,41,077,47,10,13,327,29*70
+$GPGSV,3,2,10,15,37,249,50,17,41,162,47,25,03,045,00,26,46,253,50*74
+$GPGSV,3,3,10,27,19,053,43,28,18,138,39,,,,,,,,*77
+$GPRMC,191412,A,0644.1628,S,03708.2325,W,007.0,114.4,030208,,,A*7E
+$GPVTG,114.4,T,,M,007.0,N,012.9,K,A*00
+$GPGGA,191427,0644.1731,S,03708.2035,W,1,05,01.3,00239.4,M,-011.9,M,,*60
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.6*0D
+$GPGSV,3,1,10,02,35,359,38,04,50,048,50,08,41,077,48,10,13,327,34*71
+$GPGSV,3,2,10,15,37,249,46,17,41,162,49,25,03,045,00,26,46,253,47*7B
+$GPGSV,3,3,10,27,18,053,36,28,18,138,34,,,,,,,,*79
+$GPRMC,191427,A,0644.1731,S,03708.2035,W,010.3,107.7,030208,,,A*77
+$GPVTG,107.7,T,,M,010.3,N,019.2,K,A*04
+$GPGGA,191442,0644.2060,S,03708.1589,W,1,05,01.3,00239.9,M,-011.9,M,,*6F
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.6*0D
+$GPGSV,3,1,10,02,35,359,33,04,50,049,48,08,41,077,51,10,13,327,34*7A
+$GPGSV,3,2,10,15,37,249,48,17,41,162,50,25,03,045,00,26,46,253,51*7A
+$GPGSV,3,3,10,27,18,053,41,28,18,138,41,,,,,,,,*7B
+$GPRMC,191442,A,0644.2060,S,03708.1589,W,013.0,135.3,030208,,,A*70
+$GPVTG,135.3,T,,M,013.0,N,024.1,K,A*0C
+$GPGGA,191457,0644.2380,S,03708.1230,W,1,05,01.3,00240.4,M,-011.9,M,,*60
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.6*0D
+$GPGSV,3,1,10,02,35,000,30,04,50,049,49,08,41,077,51,10,13,327,33*70
+$GPGSV,3,2,10,15,37,249,49,17,41,162,49,25,03,045,00,26,46,253,51*73
+$GPGSV,3,3,10,27,18,053,40,28,18,138,42,,,,,,,,*79
+$GPRMC,191457,A,0644.2380,S,03708.1230,W,009.8,137.2,030208,,,A*7C
+$GPVTG,137.2,T,,M,009.8,N,018.3,K,A*01
+$GPGGA,191512,0644.2574,S,03708.1030,W,1,05,01.3,00240.1,M,-011.9,M,,*6A
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.6*0D
+$GPGSV,3,1,10,02,35,000,44,04,50,049,53,08,40,077,51,10,13,328,34*71
+$GPGSV,3,2,10,15,37,249,51,17,40,162,45,25,02,045,00,26,46,253,50*77
+$GPGSV,3,3,10,27,18,053,39,28,18,138,46,,,,,,,,*73
+$GPRMC,191512,A,0644.2574,S,03708.1030,W,008.2,145.8,030208,,,A*77
+$GPVTG,145.8,T,,M,008.2,N,015.2,K,A*09
+$GPGGA,191527,0644.2886,S,03708.0778,W,1,05,01.3,00239.0,M,-011.9,M,,*69
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.6*0D
+$GPGSV,3,1,10,02,35,000,32,04,50,049,48,08,40,076,52,10,13,328,34*78
+$GPGSV,3,2,10,15,37,249,49,17,40,162,45,25,02,045,00,26,46,254,50*79
+$GPGSV,3,3,10,27,18,053,42,28,18,137,39,,,,,,,,*78
+$GPRMC,191527,A,0644.2886,S,03708.0778,W,012.0,134.9,030208,,,A*75
+$GPVTG,134.9,T,,M,012.0,N,022.2,K,A*03
+$GPGGA,191542,0644.3258,S,03708.0390,W,1,04,01.6,00237.9,M,-011.9,M,,*63
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.8,01.6,03.4*0A
+$GPGSV,3,1,10,02,35,000,35,04,50,049,52,08,40,076,52,10,13,328,32*72
+$GPGSV,3,2,10,15,37,249,47,17,40,162,47,25,02,045,00,26,46,254,49*7D
+$GPGSV,3,3,10,27,18,052,43,28,18,137,46,,,,,,,,*70
+$GPRMC,191542,A,0644.3258,S,03708.0390,W,013.2,139.2,030208,,,A*79
+$GPVTG,139.2,T,,M,013.2,N,024.5,K,A*07
+$GPGGA,191557,0644.3621,S,03707.9993,W,1,04,01.6,00237.6,M,-011.9,M,,*6D
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.8,01.6,03.4*0A
+$GPGSV,3,1,10,02,36,000,45,04,50,049,53,08,40,076,51,10,13,328,29*7E
+$GPGSV,3,2,10,15,37,250,49,17,40,162,46,25,02,045,00,26,46,254,49*7A
+$GPGSV,3,3,10,27,18,052,49,28,18,137,33,,,,,,,,*78
+$GPRMC,191557,A,0644.3621,S,03707.9993,W,007.2,137.0,030208,,,A*71
+$GPVTG,137.0,T,,M,007.2,N,013.5,K,A*0A
+$GPGGA,191612,0644.3934,S,03707.9801,W,1,05,01.3,00237.9,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.6*0D
+$GPGSV,3,1,10,02,36,000,30,04,50,050,52,08,40,076,51,10,13,328,34*79
+$GPGSV,3,2,10,15,38,250,49,17,40,162,40,25,02,045,00,26,46,254,50*7B
+$GPGSV,3,3,10,27,18,052,45,28,18,137,45,,,,,,,,*75
+$GPRMC,191612,A,0644.3934,S,03707.9801,W,014.6,121.2,030208,,,A*71
+$GPVTG,121.2,T,,M,014.6,N,027.1,K,A*0A
+$GPGGA,191627,0644.4515,S,03707.9510,W,1,05,01.3,00237.8,M,-011.9,M,,*67
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.9,01.3,02.5*0E
+$GPGSV,3,1,10,02,36,000,39,04,50,050,52,08,40,076,47,10,12,328,34*76
+$GPGSV,3,2,10,15,38,250,45,17,40,162,50,25,02,045,00,26,46,254,45*72
+$GPGSV,3,3,10,27,18,052,41,28,18,137,42,,,,,,,,*76
+$GPRMC,191627,A,0644.4515,S,03707.9510,W,014.9,161.5,030208,,,A*7E
+$GPVTG,161.5,T,,M,014.9,N,027.7,K,A*00
+$GPGGA,191642,0644.4941,S,03707.9520,W,1,04,01.5,00237.8,M,-011.9,M,,*6D
+$GPGSA,A,3,04,10,17,26,,,,,,,,,03.4,01.5,03.1*04
+$GPGSV,3,1,11,02,36,000,47,04,51,050,37,08,40,076,34,09,00,215,00*7B
+$GPGSV,3,2,11,10,12,328,39,15,38,250,43,17,40,162,52,25,02,045,00*72
+$GPGSV,3,3,11,26,46,254,46,27,18,052,29,28,18,137,36,,,,*4D
+$GPRMC,191642,A,0644.4941,S,03707.9520,W,009.9,217.1,030208,,,A*79
+$GPVTG,217.1,T,,M,009.9,N,018.3,K,A*02
+$GPGGA,191657,0644.5178,S,03707.9864,W,1,05,01.3,00238.0,M,-011.9,M,,*67
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.8,01.3,02.5*0F
+$GPGSV,3,1,11,02,36,000,50,04,51,050,44,08,40,076,36,09,00,215,00*7B
+$GPGSV,3,2,11,10,12,328,35,15,38,250,46,17,40,162,51,25,02,045,00*78
+$GPGSV,3,3,11,26,46,255,47,27,18,052,34,28,18,137,41,,,,*41
+$GPRMC,191657,A,0644.5178,S,03707.9864,W,005.8,245.9,030208,,,A*71
+$GPVTG,245.9,T,,M,005.8,N,010.7,K,A*0C
+$GPGGA,191712,0644.5230,S,03707.9920,W,1,05,01.3,00238.2,M,-011.9,M,,*6B
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.8,01.3,02.5*0F
+$GPGSV,3,1,11,02,36,000,41,04,51,050,36,08,40,075,46,09,00,215,00*7A
+$GPGSV,3,2,11,10,12,328,36,15,38,250,47,17,40,162,45,25,02,045,00*7F
+$GPGSV,3,3,11,26,46,255,47,27,18,052,33,28,17,137,39,,,,*46
+$GPRMC,191712,A,0644.5230,S,03707.9920,W,000.5,240.6,030208,,,A*7D
+$GPVTG,240.6,T,,M,000.5,N,001.0,K,A*09
+$GPGGA,191727,0644.5237,S,03707.9940,W,1,05,01.3,00241.2,M,-011.9,M,,*62
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.8,01.3,02.5*0F
+$GPGSV,3,1,11,02,36,000,46,04,51,050,42,08,40,075,42,09,00,215,00*7A
+$GPGSV,3,2,11,10,12,328,39,15,38,250,44,17,40,162,46,25,02,045,00*70
+$GPGSV,3,3,11,26,46,255,45,27,18,052,31,28,17,137,39,,,,*46
+$GPRMC,191727,A,0644.5237,S,03707.9940,W,000.8,240.6,030208,,,A*77
+$GPVTG,240.6,T,,M,000.8,N,001.5,K,A*01
+$GPGGA,191742,0644.5278,S,03707.9978,W,1,04,01.6,00242.3,M,-011.9,M,,*67
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.7,01.6,03.3*02
+$GPGSV,3,1,11,02,36,000,45,04,51,051,45,08,40,075,42,09,00,215,00*7F
+$GPGSV,3,2,11,10,12,329,31,15,38,251,46,17,39,162,51,25,02,045,00*72
+$GPGSV,3,3,11,26,46,255,47,27,18,052,34,28,17,136,43,,,,*4D
+$GPRMC,191742,A,0644.5278,S,03707.9978,W,000.1,235.2,030208,,,A*7B
+$GPVTG,235.2,T,,M,000.1,N,000.2,K,A*08
+$GPGGA,191757,0644.5391,S,03708.0136,W,1,04,01.5,00239.8,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,17,26,,,,,,,,,03.4,01.5,03.0*05
+$GPGSV,3,1,11,02,36,000,42,04,51,051,46,08,40,075,40,09,00,215,00*79
+$GPGSV,3,2,11,10,12,329,34,15,38,251,49,17,39,162,49,25,02,044,00*70
+$GPGSV,3,3,11,26,46,255,52,27,18,052,31,28,17,136,41,,,,*4E
+$GPRMC,191757,A,0644.5391,S,03708.0136,W,011.0,238.8,030208,,,A*7B
+$GPVTG,238.8,T,,M,011.0,N,020.5,K,A*0B
+$GPGGA,191812,0644.5657,S,03708.0643,W,1,04,01.6,00234.3,M,-011.9,M,,*64
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.6,01.6,03.2*02
+$GPGSV,3,1,11,02,36,000,47,04,51,051,47,08,40,075,38,09,00,215,00*72
+$GPGSV,3,2,11,10,12,329,28,15,38,251,46,17,39,162,52,25,02,044,00*78
+$GPGSV,3,3,11,26,46,256,45,27,17,052,42,28,17,136,47,,,,*46
+$GPRMC,191812,A,0644.5657,S,03708.0643,W,015.3,252.8,030208,,,A*74
+$GPVTG,252.8,T,,M,015.3,N,028.4,K,A*09
+$GPGGA,191827,0644.5892,S,03708.1126,W,1,05,01.2,00245.6,M,-011.9,M,,*66
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.8,01.2,02.5*0E
+$GPGSV,3,1,11,02,37,000,50,04,51,051,46,08,40,075,35,09,01,215,00*78
+$GPGSV,3,2,11,10,12,329,34,15,38,251,46,17,39,162,35,25,02,044,00*74
+$GPGSV,3,3,11,26,46,256,46,27,17,052,31,28,17,136,47,,,,*41
+$GPRMC,191827,A,0644.5892,S,03708.1126,W,006.5,215.8,030208,,,A*77
+$GPVTG,215.8,T,,M,006.5,N,012.0,K,A*03
+$GPGGA,191842,0644.6192,S,03708.0951,W,1,05,01.2,00222.2,M,-011.9,M,,*63
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.8,01.2,02.5*0E
+$GPGSV,3,1,11,02,37,001,35,04,51,051,49,08,40,074,52,09,01,215,00*75
+$GPGSV,3,2,11,10,12,329,35,15,38,251,45,17,39,162,46,25,01,044,00*71
+$GPGSV,3,3,11,26,46,256,45,27,17,051,40,28,17,136,39,,,,*4E
+$GPRMC,191842,A,0644.6192,S,03708.0951,W,010.4,141.5,030208,,,A*7E
+$GPVTG,141.5,T,,M,010.4,N,019.3,K,A*02
+$GPGGA,191857,0644.6534,S,03708.0579,W,1,04,01.6,00225.0,M,-011.9,M,,*69
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.6,01.6,03.2*02
+$GPGSV,3,1,11,02,37,001,52,04,51,051,52,08,40,074,51,09,01,215,00*7D
+$GPGSV,3,2,11,10,12,329,31,15,38,251,40,17,39,162,48,25,01,044,00*7E
+$GPGSV,3,3,11,26,46,256,47,27,17,051,47,28,17,136,43,,,,*46
+$GPRMC,191857,A,0644.6534,S,03708.0579,W,014.7,118.1,030208,,,A*7B
+$GPVTG,118.1,T,,M,014.7,N,027.3,K,A*00
+$GPGGA,191912,0644.7028,S,03708.0133,W,1,04,01.6,00224.0,M,-011.9,M,,*6B
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.6,01.6,03.2*02
+$GPGSV,3,1,11,02,37,001,46,04,51,052,52,08,40,074,48,09,01,215,00*73
+$GPGSV,3,2,11,10,12,329,33,15,38,251,47,17,39,161,45,25,01,044,00*75
+$GPGSV,3,3,11,26,46,256,47,27,17,051,38,28,17,136,42,,,,*4F
+$GPRMC,191912,A,0644.7028,S,03708.0133,W,011.8,142.8,030208,,,A*74
+$GPVTG,142.8,T,,M,011.8,N,021.9,K,A*00
+$GPGGA,191927,0644.7500,S,03707.9790,W,1,05,01.2,00226.0,M,-011.9,M,,*6C
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.8,01.2,02.4*0F
+$GPGSV,3,1,11,02,37,001,48,04,51,052,51,08,40,074,38,09,01,215,00*79
+$GPGSV,3,2,11,10,12,329,34,15,38,252,49,17,39,161,46,25,01,044,00*7C
+$GPGSV,3,3,11,26,46,257,45,27,17,051,35,28,17,136,40,,,,*43
+$GPRMC,191927,A,0644.7500,S,03707.9790,W,014.0,143.6,030208,,,A*76
+$GPVTG,143.6,T,,M,014.0,N,026.0,K,A*0C
+$GPGGA,191942,0644.8008,S,03707.9450,W,1,05,01.2,00227.5,M,-011.9,M,,*66
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.8,01.2,02.4*0F
+$GPGSV,3,1,11,02,37,001,46,04,51,052,51,08,40,074,41,09,01,215,00*79
+$GPGSV,3,2,11,10,12,329,32,15,38,252,50,17,39,161,48,25,01,044,00*7C
+$GPGSV,3,3,11,26,46,257,48,27,17,051,33,28,17,136,36,,,,*49
+$GPRMC,191942,A,0644.8008,S,03707.9450,W,014.0,145.2,030208,,,A*7A
+$GPVTG,145.2,T,,M,014.0,N,026.0,K,A*0E
+$GPGGA,191957,0644.8286,S,03707.9053,W,1,05,01.2,00229.2,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,37,001,52,04,51,052,53,08,40,074,51,09,01,215,00*7F
+$GPGSV,3,2,11,10,12,330,35,15,38,252,47,17,38,161,47,25,01,044,00*7B
+$GPGSV,3,3,11,26,46,257,47,27,17,051,44,28,17,135,42,,,,*46
+$GPRMC,191957,A,0644.8286,S,03707.9053,W,012.0,115.3,030208,,,A*7F
+$GPVTG,115.3,T,,M,012.0,N,022.2,K,A*0A
+$GPGGA,192012,0644.8816,S,03707.8686,W,1,04,01.6,00228.6,M,-011.9,M,,*6F
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.5,01.6,03.1*02
+$GPGSV,3,1,11,02,37,001,44,04,51,052,51,08,40,074,50,09,01,214,00*7A
+$GPGSV,3,2,11,10,12,330,31,15,38,252,49,17,38,161,40,25,01,044,00*76
+$GPGSV,3,3,11,26,46,257,49,27,17,051,45,28,17,135,31,,,,*4D
+$GPRMC,192012,A,0644.8816,S,03707.8686,W,016.2,155.1,030208,,,A*78
+$GPVTG,155.1,T,,M,016.2,N,030.0,K,A*0B
+$GPGGA,192027,0644.9264,S,03707.8395,W,1,05,01.2,00227.1,M,-011.9,M,,*6D
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,37,001,45,04,51,052,47,08,40,073,46,09,01,214,00*7C
+$GPGSV,3,2,11,10,12,330,34,15,38,252,51,17,38,161,44,25,01,044,00*7E
+$GPGSV,3,3,11,26,46,257,49,27,17,051,35,28,17,135,37,,,,*4C
+$GPRMC,192027,A,0644.9264,S,03707.8395,W,011.7,144.3,030208,,,A*77
+$GPVTG,144.3,T,,M,011.7,N,021.7,K,A*0C
+$GPGGA,192042,0644.9908,S,03707.8135,W,1,05,01.2,00227.4,M,-011.9,M,,*62
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,37,001,45,04,51,053,50,08,40,073,51,09,01,214,00*7D
+$GPGSV,3,2,11,10,12,330,45,15,38,252,47,17,38,161,47,25,01,044,00*7C
+$GPGSV,3,3,11,26,46,257,50,27,17,051,45,28,17,135,35,,,,*41
+$GPRMC,192042,A,0644.9908,S,03707.8135,W,020.3,163.8,030208,,,A*75
+$GPVTG,163.8,T,,M,020.3,N,037.6,K,A*02
+$GPGGA,192057,0645.0542,S,03707.7934,W,1,05,01.2,00229.1,M,-011.9,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,38,001,34,04,52,053,52,08,40,073,53,09,01,214,00*77
+$GPGSV,3,2,11,10,12,330,34,15,38,253,48,17,38,161,46,25,01,044,00*75
+$GPGSV,3,3,11,26,46,258,50,27,17,051,45,28,17,135,35,,,,*4E
+$GPRMC,192057,A,0645.0542,S,03707.7934,W,013.5,150.3,030208,,,A*70
+$GPVTG,150.3,T,,M,013.5,N,025.0,K,A*0A
+$GPGGA,192112,0645.0743,S,03707.7828,W,1,05,01.2,00228.9,M,-011.9,M,,*67
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,38,001,49,04,52,053,50,08,40,073,51,09,01,214,00*7D
+$GPGSV,3,2,11,10,12,330,48,15,38,253,42,17,38,161,51,25,01,044,00*72
+$GPGSV,3,3,11,26,47,258,45,27,17,051,35,28,17,135,37,,,,*4E
+$GPRMC,192112,A,0645.0743,S,03707.7828,W,000.1,151.4,030208,,,A*7F
+$GPVTG,151.4,T,,M,000.1,N,000.2,K,A*0F
+$GPGGA,192127,0645.0753,S,03707.7838,W,1,05,01.2,00229.3,M,-011.9,M,,*6A
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,38,001,50,04,52,053,52,08,39,073,51,09,01,214,00*79
+$GPGSV,3,2,11,10,12,330,43,15,38,253,34,17,38,161,52,25,01,044,00*7B
+$GPGSV,3,3,11,26,47,258,46,27,17,051,42,28,17,135,44,,,,*49
+$GPRMC,192127,A,0645.0753,S,03707.7838,W,000.4,151.4,030208,,,A*7C
+$GPVTG,151.4,T,,M,000.4,N,000.7,K,A*0F
+$GPGGA,192142,0645.0776,S,03707.7813,W,1,04,01.5,00230.0,M,-011.9,M,,*6A
+$GPGSA,A,3,04,10,17,26,,,,,,,,,03.2,01.5,02.8*0A
+$GPGSV,3,1,11,02,38,001,35,04,52,053,57,08,39,073,36,09,02,214,00*7D
+$GPGSV,3,2,11,10,12,330,40,15,38,253,41,17,38,161,45,25,01,044,00*7C
+$GPGSV,3,3,11,26,47,258,46,27,16,050,36,28,17,135,32,,,,*4B
+$GPRMC,192142,A,0645.0776,S,03707.7813,W,000.3,131.1,030208,,,A*75
+$GPVTG,131.1,T,,M,000.3,N,000.6,K,A*0A
+$GPGGA,192157,0645.0810,S,03707.7793,W,1,03,01.7,00230.9,M,-011.9,M,,*6A
+$GPGSA,A,2,04,17,26,,,,,,,,,,01.9,01.7,00.9*02
+$GPGSV,3,1,11,02,38,001,36,04,52,054,55,08,39,072,33,09,02,214,00*7F
+$GPGSV,3,2,11,10,12,330,33,15,38,253,40,17,38,161,42,25,00,043,00*78
+$GPGSV,3,3,11,26,47,258,46,27,16,050,35,28,17,135,34,,,,*4E
+$GPRMC,192157,A,0645.0810,S,03707.7793,W,002.6,147.5,030208,,,A*7B
+$GPVTG,147.5,T,,M,002.6,N,004.9,K,A*03
+$GPGGA,192212,0645.1078,S,03707.7535,W,1,05,01.2,00233.0,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,38,001,45,04,52,054,49,08,39,072,40,09,02,214,00*72
+$GPGSV,3,2,11,10,12,330,42,15,38,253,38,17,37,161,43,25,00,043,00*7F
+$GPGSV,3,3,11,26,47,259,41,27,16,050,32,28,17,135,34,,,,*4F
+$GPRMC,192212,A,0645.1078,S,03707.7535,W,012.7,131.4,030208,,,A*70
+$GPVTG,131.4,T,,M,012.7,N,023.5,K,A*0A
+$GPGGA,192227,0645.1492,S,03707.7130,W,1,05,01.2,00232.6,M,-011.9,M,,*68
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.4*00
+$GPGSV,3,1,11,02,38,001,39,04,52,054,55,08,39,072,46,09,02,214,00*72
+$GPGSV,3,2,11,10,12,331,45,15,38,253,41,17,37,161,47,25,00,043,00*73
+$GPGSV,3,3,11,26,47,259,47,27,16,050,38,28,17,134,44,,,,*45
+$GPRMC,192227,A,0645.1492,S,03707.7130,W,014.4,164.8,030208,,,A*7E
+$GPVTG,164.8,T,,M,014.4,N,026.7,K,A*04
+$GPGGA,192242,0645.2023,S,03707.6958,W,1,04,01.6,00232.6,M,-011.9,M,,*64
+$GPGSA,A,3,04,17,26,27,,,,,,,,,03.4,01.6,03.0*02
+$GPGSV,3,1,11,02,38,002,38,04,52,054,52,08,39,072,39,09,02,214,00*7F
+$GPGSV,3,2,11,10,12,331,31,15,38,254,47,17,37,161,48,25,00,043,00*7E
+$GPGSV,3,3,11,26,47,259,50,27,16,050,45,28,17,134,42,,,,*4F
+$GPRMC,192242,A,0645.2023,S,03707.6958,W,010.5,159.1,030208,,,A*75
+$GPVTG,159.1,T,,M,010.5,N,019.5,K,A*08
+$GPGGA,192257,0645.2462,S,03707.6817,W,1,05,01.2,00232.9,M,-011.9,M,,*61
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.3*07
+$GPGSV,3,1,11,02,38,002,41,04,52,054,55,08,39,072,44,09,02,214,00*7C
+$GPGSV,3,2,11,10,12,331,45,15,39,254,45,17,37,161,45,25,00,043,00*73
+$GPGSV,3,3,11,26,47,259,48,27,16,050,42,28,17,134,42,,,,*41
+$GPRMC,192257,A,0645.2462,S,03707.6817,W,011.0,163.0,030208,,,A*76
+$GPVTG,163.0,T,,M,011.0,N,020.4,K,A*0F
+$GPGGA,192312,0645.2918,S,03707.6693,W,1,05,01.2,00233.7,M,-011.9,M,,*6C
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.3*07
+$GPGSV,3,1,11,02,39,002,47,04,52,054,55,08,39,072,46,09,02,214,00*79
+$GPGSV,3,2,11,10,12,331,35,15,39,254,46,17,37,161,43,25,00,043,00*71
+$GPGSV,3,3,11,26,47,259,48,27,16,050,46,28,17,134,39,,,,*49
+$GPRMC,192312,A,0645.2918,S,03707.6693,W,012.0,159.2,030208,,,A*7C
+$GPVTG,159.2,T,,M,012.0,N,022.2,K,A*03
+$GPGGA,192327,0645.3593,S,03707.6530,W,1,05,01.2,00234.0,M,-011.9,M,,*6E
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.7,01.2,02.3*07
+$GPGSV,3,1,11,02,39,002,47,04,52,055,51,08,39,072,52,09,02,214,00*79
+$GPGSV,3,2,11,10,12,331,34,15,39,254,48,17,37,161,49,25,00,043,00*74
+$GPGSV,3,3,11,26,47,260,50,27,16,050,46,28,17,134,39,,,,*4A
+$GPRMC,192327,A,0645.3593,S,03707.6530,W,018.8,162.1,030208,,,A*77
+$GPVTG,162.1,T,,M,018.8,N,034.9,K,A*06
+$GPGGA,192342,0645.4290,S,03707.6352,W,1,05,01.2,00235.8,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.6,01.2,02.3*06
+$GPGSV,3,1,10,02,39,002,47,04,52,055,43,08,39,071,51,09,02,214,00*7B
+$GPGSV,3,2,10,10,12,331,35,15,39,254,46,17,37,161,49,26,47,260,48*75
+$GPGSV,3,3,10,27,16,050,35,28,17,134,42,,,,,,,,*75
+$GPRMC,192342,A,0645.4290,S,03707.6352,W,015.7,173.4,030208,,,A*72
+$GPVTG,173.4,T,,M,015.7,N,029.1,K,A*05
+$GPGGA,192357,0645.4813,S,03707.6309,W,1,04,01.4,00237.6,M,-011.9,M,,*65
+$GPGSA,A,3,04,10,17,26,,,,,,,,,03.1,01.4,02.7*07
+$GPGSV,3,1,10,02,39,002,45,04,52,055,54,08,39,071,48,09,02,214,00*77
+$GPGSV,3,2,10,10,12,331,47,15,39,254,42,17,37,161,50,26,47,260,46*72
+$GPGSV,3,3,10,27,16,050,36,28,17,134,36,,,,,,,,*75
+$GPRMC,192357,A,0645.4813,S,03707.6309,W,012.1,167.1,030208,,,A*78
+$GPVTG,167.1,T,,M,012.1,N,022.5,K,A*0B
+$GPGGA,192412,0645.5365,S,03707.6198,W,1,05,01.2,00239.9,M,-011.9,M,,*64
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.6,01.2,02.3*06
+$GPGSV,3,1,10,02,39,002,45,04,52,055,55,08,39,071,48,09,02,214,00*76
+$GPGSV,3,2,10,10,12,331,39,15,39,255,43,17,37,161,43,26,47,260,48*77
+$GPGSV,3,3,10,27,16,050,48,28,17,134,34,,,,,,,,*7E
+$GPRMC,192412,A,0645.5365,S,03707.6198,W,015.9,154.4,030208,,,A*75
+$GPVTG,154.4,T,,M,015.9,N,029.5,K,A*0A
+$GPGGA,192427,0645.5797,S,03707.6049,W,1,05,01.2,00240.8,M,-011.9,M,,*69
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.6,01.2,02.3*06
+$GPGSV,3,1,10,02,39,002,45,04,52,055,52,08,39,071,50,09,02,214,00*78
+$GPGSV,3,2,10,10,12,331,41,15,39,255,43,17,37,161,48,26,47,260,45*7E
+$GPGSV,3,3,10,27,16,050,34,28,17,134,43,,,,,,,,*75
+$GPRMC,192427,A,0645.5797,S,03707.6049,W,014.1,170.6,030208,,,A*7A
+$GPVTG,170.6,T,,M,014.1,N,026.1,K,A*0C
+$GPGGA,192442,0645.6115,S,03707.5647,W,1,05,01.2,00241.8,M,-011.9,M,,*6F
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.6,01.2,02.3*06
+$GPGSV,3,1,10,02,39,002,51,04,52,055,51,08,39,071,39,09,03,214,00*70
+$GPGSV,3,2,10,10,12,331,36,15,39,255,39,17,36,161,42,26,47,260,41*7C
+$GPGSV,3,3,10,27,16,049,48,28,17,133,33,,,,,,,,*76
+$GPRMC,192442,A,0645.6115,S,03707.5647,W,008.8,107.0,030208,,,A*7F
+$GPVTG,107.0,T,,M,008.8,N,016.3,K,A*0F
+$GPGGA,192457,0645.6193,S,03707.5531,W,1,05,01.2,00246.1,M,-011.9,M,,*69
+$GPGSA,A,3,04,10,17,26,27,,,,,,,,02.6,01.2,02.3*06
+$GPGSV,3,1,10,02,39,002,52,04,52,056,50,08,39,071,45,09,03,214,00*7A
+$GPGSV,3,2,10,10,12,332,32,15,39,255,45,17,36,161,42,26,47,261,46*76
+$GPGSV,3,3,10,27,16,049,49,28,17,133,34,,,,,,,,*70
+$GPRMC,192457,A,0645.6193,S,03707.5531,W,000.2,128.5,030208,,,A*7D
+$GPVTG,128.5,T,,M,000.2,N,000.5,K,A*04
diff --git a/test/functional/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialogTestFT.java b/test/functional/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialogTestFT.java
index dd5c9e1..b0ba379 100644
--- a/test/functional/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialogTestFT.java
+++ b/test/functional/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialogTestFT.java
@@ -31,7 +31,7 @@ public class ConflictResolutionDialogTestFT extends JFrame {
     }
 
     public void showDialog() {
-        dialog.setVisible(true);
+        dialog.showDialog();
     }
 
     /**
diff --git a/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java b/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
index 5dd40f2..85b3124 100644
--- a/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
+++ b/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
@@ -5,7 +5,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -39,6 +38,9 @@ import org.openstreetmap.josm.gui.io.UploadStrategy;
 import org.openstreetmap.josm.gui.io.UploadStrategySpecification;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 
+/**
+ * Unit tests of {@link MultiFetchServerObjectReader}.
+ */
 public class MultiFetchServerObjectReaderTest {
     private static Logger logger = Logger.getLogger(MultiFetchServerObjectReader.class.getName());
 
@@ -137,8 +139,12 @@ public class MultiFetchServerObjectReaderTest {
         OsmApi.getOsmApi().closeChangeset(cs, NullProgressMonitor.INSTANCE);
     }
 
+    /**
+     * Setup test.
+     * @throws Exception if an error occurs
+     */
     @BeforeClass
-    public static void init() throws OsmTransferException {
+    public static void init() throws Exception {
         logger.info("initializing ...");
         JOSMFixture.createFunctionalTestFixture().init();
 
@@ -176,8 +182,6 @@ public class MultiFetchServerObjectReaderTest {
                 w.writeContent(testDataSet);
                 w.footer();
             }
-        } catch (IOException e) {
-            fail(MessageFormat.format("failed to open file ''{0}'' for writing", dataSetCacheOutputFile.toString()));
         }
     }
 
@@ -199,6 +203,10 @@ public class MultiFetchServerObjectReaderTest {
         }
     }
 
+    /**
+     * Test to multi-get 10 nodes.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testMultiGet10Nodes() throws OsmTransferException {
         MultiFetchServerObjectReader reader = new MultiFetchServerObjectReader();
@@ -216,6 +224,10 @@ public class MultiFetchServerObjectReaderTest {
         assertTrue(reader.getMissingPrimitives().isEmpty());
     }
 
+    /**
+     * Test to multi-get 10 ways.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testMultiGet10Ways() throws OsmTransferException {
         MultiFetchServerObjectReader reader = new MultiFetchServerObjectReader();
@@ -234,6 +246,10 @@ public class MultiFetchServerObjectReaderTest {
         assertTrue(reader.getMissingPrimitives().isEmpty());
     }
 
+    /**
+     * Test to multi-get 10 relations.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testMultiGet10Relations() throws OsmTransferException {
         MultiFetchServerObjectReader reader = new MultiFetchServerObjectReader();
@@ -252,6 +268,10 @@ public class MultiFetchServerObjectReaderTest {
         assertTrue(reader.getMissingPrimitives().isEmpty());
     }
 
+    /**
+     * Test to multi-get 800 nodes.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testMultiGet800Nodes() throws OsmTransferException {
         MultiFetchServerObjectReader reader = new MultiFetchServerObjectReader();
@@ -269,6 +289,10 @@ public class MultiFetchServerObjectReaderTest {
         assertTrue(reader.getMissingPrimitives().isEmpty());
     }
 
+    /**
+     * Test to multi-get non-existing node.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testMultiGetWithNonExistingNode() throws OsmTransferException {
         MultiFetchServerObjectReader reader = new MultiFetchServerObjectReader();
diff --git a/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java b/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java
index 4436598..94b971b 100644
--- a/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java
+++ b/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java
@@ -150,9 +150,10 @@ public class OsmServerBackreferenceReaderTest {
      * Setup test.
      * @throws OsmTransferException if something goes wrong
      * @throws CyclicUploadDependencyException if a cyclic dependency is detected
+     * @throws IOException if an I/O error occurs
      */
     @BeforeClass
-    public static void setUpBeforeClass() throws OsmTransferException, CyclicUploadDependencyException {
+    public static void setUpBeforeClass() throws OsmTransferException, CyclicUploadDependencyException, IOException {
         logger.info("initializing ...");
 
         JOSMFixture.createFunctionalTestFixture().init();
@@ -195,8 +196,6 @@ public class OsmServerBackreferenceReaderTest {
                 w.writeContent(testDataSet);
                 w.footer();
             }
-        } catch (IOException e) {
-            fail(MessageFormat.format("failed to open file ''{0}'' for writing", dataSetCacheOutputFile.toString()));
         }
     }
 
@@ -218,6 +217,10 @@ public class OsmServerBackreferenceReaderTest {
         }
     }
 
+    /**
+     * Test reading references for a node.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testBackreferenceForNode() throws OsmTransferException {
         Node n = lookupNode(ds, 0);
@@ -271,6 +274,10 @@ public class OsmServerBackreferenceReaderTest {
                 " #relations=" + referers.getRelations().size());
     }
 
+    /**
+     * Test reading full references for a node.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testBackreferenceForNodeFull() throws OsmTransferException {
         Node n = lookupNode(ds, 0);
@@ -315,6 +322,10 @@ public class OsmServerBackreferenceReaderTest {
         }
     }
 
+    /**
+     * Test reading references for a way.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testBackreferenceForWay() throws OsmTransferException {
         Way w = lookupWay(ds, 1);
@@ -355,6 +366,10 @@ public class OsmServerBackreferenceReaderTest {
         assertFalse(r.isIncomplete());
     }
 
+    /**
+     * Test reading full references for a way.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testBackreferenceForWayFull() throws OsmTransferException {
         Way w = lookupWay(ds, 1);
@@ -389,6 +404,10 @@ public class OsmServerBackreferenceReaderTest {
         assertFalse(r.isIncomplete());
     }
 
+    /**
+     * Test reading references for a relation.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testBackreferenceForRelation() throws OsmTransferException {
         Relation r = lookupRelation(ds, 1);
@@ -504,6 +523,10 @@ public class OsmServerBackreferenceReaderTest {
         return ret;
     }
 
+    /**
+     * Test reading full references for a relation.
+     * @throws OsmTransferException if an error occurs
+     */
     @Test
     public void testBackreferenceForRelationFull() throws OsmTransferException {
         Relation r = lookupRelation(ds, 1);
diff --git a/test/functional/org/openstreetmap/josm/tools/HttpClientTest.java b/test/functional/org/openstreetmap/josm/tools/HttpClientTest.java
index fab7dde..8a7c19f 100644
--- a/test/functional/org/openstreetmap/josm/tools/HttpClientTest.java
+++ b/test/functional/org/openstreetmap/josm/tools/HttpClientTest.java
@@ -19,25 +19,25 @@ import javax.json.spi.JsonProvider;
 
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Tests the {@link HttpClient} using the webservice <a href="https://httpbin.org/">https://httpbin.org/</a>.
  */
 public class HttpClientTest {
 
-    private ProgressMonitor progress;
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createFunctionalTestFixture().init();
-    }
+    private ProgressMonitor progress;
 
     @Before
     public void setUp() {
@@ -172,7 +172,6 @@ public class HttpClientTest {
      */
     @Test
     public void testOpenUrlGzip() throws IOException {
-        Main.initApplicationPreferences();
         final URL url = new URL("https://www.openstreetmap.org/trace/1613906/data");
         try (BufferedReader x = HttpClient.create(url).connect().uncompress(true).getContentReader()) {
             Assert.assertTrue(x.readLine().startsWith("<?xml version="));
@@ -185,7 +184,6 @@ public class HttpClientTest {
      */
     @Test
     public void testOpenUrlBzip() throws IOException {
-        Main.initApplicationPreferences();
         final URL url = new URL("https://www.openstreetmap.org/trace/785544/data");
         try (BufferedReader x = HttpClient.create(url).connect().uncompress(true).getContentReader()) {
             Assert.assertTrue(x.readLine().startsWith("<?xml version="));
@@ -198,7 +196,6 @@ public class HttpClientTest {
      */
     @Test
     public void testTicket9660() throws IOException {
-        Main.initApplicationPreferences();
         final URL url = new URL("http://www.openstreetmap.org/trace/1350010/data");
         try (BufferedReader x = HttpClient.create(url).connect()
                 .uncompress(true).uncompressAccordingToContentDisposition(true).getContentReader()) {
diff --git a/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRendererPerformanceTestParent.java b/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRendererPerformanceTestParent.java
index 569c6a0..63b5f74 100644
--- a/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRendererPerformanceTestParent.java
+++ b/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRendererPerformanceTestParent.java
@@ -71,6 +71,15 @@ public abstract class AbstractMapRendererPerformanceTestParent {
         }
     }
 
+    protected static void clean() throws Exception {
+        g = null;
+        img = null;
+        nc = null;
+        dsRestriction = null;
+        dsMultipolygon = null;
+        dsCity = null;
+    }
+
     protected abstract Rendering buildRenderer();
 
     protected final void test(int iterations, DataSet ds, Bounds bounds) throws Exception {
diff --git a/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRendererPerformanceTest.java b/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRendererPerformanceTest.java
index 018bfd0..cf7940d 100644
--- a/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRendererPerformanceTest.java
+++ b/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRendererPerformanceTest.java
@@ -6,6 +6,7 @@ import java.io.IOException;
 
 import javax.imageio.ImageIO;
 
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 
@@ -23,6 +24,11 @@ public class StyledMapRendererPerformanceTest extends AbstractMapRendererPerform
         MapPaintStyles.readFromPreferences();
     }
 
+    @AfterClass
+    public static void clean() throws Exception {
+        AbstractMapRendererPerformanceTestParent.clean();
+    }
+
     @Override
     protected Rendering buildRenderer() {
         return new StyledMapRenderer(g, nc, false);
diff --git a/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRendererPerformanceTest.java b/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRendererPerformanceTest.java
index 75f74d3..7549d9e 100644
--- a/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRendererPerformanceTest.java
+++ b/test/performance/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRendererPerformanceTest.java
@@ -1,6 +1,7 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.osm.visitor.paint;
 
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
 /**
@@ -13,6 +14,11 @@ public class WireframeMapRendererPerformanceTest extends AbstractMapRendererPerf
         AbstractMapRendererPerformanceTestParent.load();
     }
 
+    @AfterClass
+    public static void clean() throws Exception {
+        AbstractMapRendererPerformanceTestParent.clean();
+    }
+
     @Override
     protected Rendering buildRenderer() {
         return new WireframeMapRenderer(g, nc, false);
diff --git a/test/performance/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSConditionPerformanceTest.java b/test/performance/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSConditionPerformanceTest.java
index 8ec27df..f0f639c 100644
--- a/test/performance/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSConditionPerformanceTest.java
+++ b/test/performance/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSConditionPerformanceTest.java
@@ -5,7 +5,7 @@ import java.util.EnumSet;
 
 import org.junit.Test;
 import org.openstreetmap.josm.PerformanceTestUtils;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Op;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op;
 
 /**
  * Performance test of MapCSS Condition objects.
diff --git a/test/unit/org/openstreetmap/josm/JOSMFixture.java b/test/unit/org/openstreetmap/josm/JOSMFixture.java
index 1b5bbc2..800af7c 100644
--- a/test/unit/org/openstreetmap/josm/JOSMFixture.java
+++ b/test/unit/org/openstreetmap/josm/JOSMFixture.java
@@ -21,6 +21,7 @@ import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.io.CertificateAmendment;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.tools.I18n;
+import org.openstreetmap.josm.tools.Logging;
 
 /**
  * Fixture to define a proper and safe environment before running tests.
@@ -90,7 +91,7 @@ public class JOSMFixture {
         }
         System.setProperty("josm.home", josmHome);
         TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
-        Main.initApplicationPreferences();
+        Main.pref.resetToInitialState();
         Main.pref.enableSaveOnPut(false);
         I18n.init();
         // initialize the plaform hook, and
@@ -98,8 +99,12 @@ public class JOSMFixture {
         // call the really early hook before we anything else
         Main.platform.preStartupHook();
 
-        Main.logLevel = 3;
+        Logging.setLogLevel(Logging.LEVEL_INFO);
         Main.pref.init(false);
+        String url = Main.pref.get("osm-server.url");
+        if (url == null || url.isEmpty() || isProductionApiUrl(url)) {
+            Main.pref.put("osm-server.url", "http://api06.dev.openstreetmap.org/api");
+        }
         I18n.set(Main.pref.get("language", "en"));
 
         try {
@@ -112,10 +117,8 @@ public class JOSMFixture {
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
 
         // make sure we don't upload to or test against production
-        //
-        String url = OsmApi.getOsmApi().getBaseUrl().toLowerCase(Locale.ENGLISH).trim();
-        if (url.startsWith("http://www.openstreetmap.org") || url.startsWith("http://api.openstreetmap.org")
-            || url.startsWith("https://www.openstreetmap.org") || url.startsWith("https://api.openstreetmap.org")) {
+        url = OsmApi.getOsmApi().getBaseUrl().toLowerCase(Locale.ENGLISH).trim();
+        if (isProductionApiUrl(url)) {
             fail(MessageFormat.format("configured server url ''{0}'' seems to be a productive url, aborting.", url));
         }
 
@@ -129,6 +132,11 @@ public class JOSMFixture {
         }
     }
 
+    private static boolean isProductionApiUrl(String url) {
+        return url.startsWith("http://www.openstreetmap.org") || url.startsWith("http://api.openstreetmap.org")
+            || url.startsWith("https://www.openstreetmap.org") || url.startsWith("https://api.openstreetmap.org");
+    }
+
     private void setupGUI() {
         Main.getLayerManager().resetState();
         assertTrue(Main.getLayerManager().getLayers().isEmpty());
diff --git a/test/unit/org/openstreetmap/josm/MainTest.java b/test/unit/org/openstreetmap/josm/MainTest.java
index 2b4bcb3..ab3b39e 100644
--- a/test/unit/org/openstreetmap/josm/MainTest.java
+++ b/test/unit/org/openstreetmap/josm/MainTest.java
@@ -2,16 +2,18 @@
 package org.openstreetmap.josm;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
 
-import org.junit.BeforeClass;
+import javax.swing.UIManager;
+
+import org.junit.Rule;
 import org.junit.Test;
 import org.openstreetmap.josm.Main.DownloadParamType;
-import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
@@ -23,10 +25,9 @@ public class MainTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform();
 
     /**
      * Unit test of {@link DownloadParamType#paramType} method.
@@ -42,16 +43,6 @@ public class MainTest {
     }
 
     /**
-     * Unit test of {@code Main#preConstructorInit}.
-     */
-    @Test
-    public void testPreConstructorInit() {
-        Main.preConstructorInit(MainApplication.buildCommandLineArgumentMap(new String[0]));
-        Main.preConstructorInit(MainApplication.buildCommandLineArgumentMap(new String[]{"--geometry=400x300+10+5", "--no-maximize"}));
-        //assertEquals(new WindowGeometry(new Point(10, 5), new Dimension(400, 300)), Main.geometry); // FIXME see #12927
-    }
-
-    /**
      * Unit tests on log messages.
      */
     @Test
@@ -77,22 +68,16 @@ public class MainTest {
         assertTrue(warnings.contains("W: java.lang.Exception: exception_warn. Cause: java.lang.Exception: root_cause"));
         assertTrue(warnings.contains("W: Warning message on one line"));
         assertTrue(warnings.contains("W: First line of warning message on several lines"));
+    }
 
-        int defaultLevel = Main.logLevel;
-
-        // Check levels
-        Main.logLevel = 5;
-        assertTrue(Main.isTraceEnabled());
-        assertTrue(Main.isDebugEnabled());
-
-        Main.logLevel = 4;
-        assertFalse(Main.isTraceEnabled());
-        assertTrue(Main.isDebugEnabled());
-
-        Main.logLevel = 3;
-        assertFalse(Main.isTraceEnabled());
-        assertFalse(Main.isDebugEnabled());
-
-        Main.logLevel = defaultLevel;
+    /**
+     * Unit test of {@link Main#preConstructorInit}.
+     */
+    @Test
+    public void testPreConstructorInit() {
+        Main.preConstructorInit();
+        assertNotNull(Main.getProjection());
+        assertEquals(Main.pref.get("laf", Main.platform.getDefaultStyle()), UIManager.getLookAndFeel().getClass().getCanonicalName());
+        assertNotNull(Main.toolbar);
     }
 }
diff --git a/test/unit/org/openstreetmap/josm/actions/CombineWayActionTest.java b/test/unit/org/openstreetmap/josm/actions/CombineWayActionTest.java
index e6ca451..5b7a14c 100644
--- a/test/unit/org/openstreetmap/josm/actions/CombineWayActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/CombineWayActionTest.java
@@ -9,9 +9,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.CombineWayAction.NodeGraph;
 import org.openstreetmap.josm.actions.CombineWayAction.NodePair;
@@ -19,8 +18,11 @@ import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
 
 /**
  * Unit tests for class {@link CombineWayAction}.
@@ -30,10 +32,9 @@ public class CombineWayActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Non-regression test for bug #11957.
@@ -63,6 +64,7 @@ public class CombineWayActionTest {
     @Test
     public void testEqualsContract() {
         EqualsVerifier.forClass(NodePair.class).usingGetClass()
+            .suppress(Warning.ANNOTATION) // FIXME: remove it after https://github.com/jqno/equalsverifier/issues/152 is fixed
             .withPrefabValues(Node.class, new Node(1), new Node(2))
             .verify();
     }
diff --git a/test/unit/org/openstreetmap/josm/actions/CreateCircleActionTest.java b/test/unit/org/openstreetmap/josm/actions/CreateCircleActionTest.java
index b9fbe80..7fd929d 100644
--- a/test/unit/org/openstreetmap/josm/actions/CreateCircleActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/CreateCircleActionTest.java
@@ -3,7 +3,6 @@ package org.openstreetmap.josm.actions;
 
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.awt.geom.Area;
 import java.lang.reflect.Field;
@@ -13,9 +12,8 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -25,12 +23,15 @@ import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.GeoPropertyIndex;
 import org.openstreetmap.josm.tools.GeoPropertyIndex.GeoProperty;
 import org.openstreetmap.josm.tools.Geometry;
 import org.openstreetmap.josm.tools.RightAndLefthandTraffic;
 import org.openstreetmap.josm.tools.Utils;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests for class {@link CreateCircleAction}.
  */
@@ -39,10 +40,9 @@ public final class CreateCircleActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform();
 
     /**
      * FIXME: Conveniance method to prevent Selection Change events.
@@ -53,27 +53,23 @@ public final class CreateCircleActionTest {
      * but in this case there is a problem with an even listener of selection change.
      * @param p primitive
      * @param ds data set
+     * @throws ReflectiveOperationException if an error occurs
      */
-    public void addSelected(OsmPrimitive p, DataSet ds) {
-        try {
-            Method method = ds.getClass()
-                .getDeclaredMethod("addSelected",
-                                   new Class<?>[] {Collection.class, boolean.class});
-            Utils.setObjectsAccessible(method);
-            method.invoke(ds, Collections.singleton(p), false);
-        } catch (ReflectiveOperationException e) {
-            e.printStackTrace();
-            fail("Can't add OsmPrimitive to dataset: " + e.getMessage());
-        }
+    public void addSelected(OsmPrimitive p, DataSet ds) throws ReflectiveOperationException {
+        Method method = ds.getClass().getDeclaredMethod("addSelected",
+                                                        new Class<?>[] {Collection.class, boolean.class});
+        Utils.setObjectsAccessible(method);
+        method.invoke(ds, Collections.singleton(p), false);
     }
 
     /**
      * Test case: When Create Circle action is performed with a single way selected,
      * circle direction must equals way direction.
      * see #7421
+     * @throws ReflectiveOperationException if an error occurs
      */
     @Test
-    public void testTicket7421case0() {
+    public void testTicket7421case0() throws ReflectiveOperationException {
         DataSet dataSet = new DataSet();
         OsmDataLayer layer = new OsmDataLayer(dataSet, OsmDataLayer.createNewName(), null);
 
@@ -136,9 +132,10 @@ public final class CreateCircleActionTest {
      * Test case: When Create Circle action is performed with nodes, resulting
      * circle direction depend on traffic hand. Simulate a left hand traffic.
      * see #7421
+     * @throws ReflectiveOperationException if an error occurs
      */
     @Test
-    public void testTicket7421case1() {
+    public void testTicket7421case1() throws ReflectiveOperationException {
         DataSet dataSet = new DataSet();
         OsmDataLayer layer = new OsmDataLayer(dataSet, OsmDataLayer.createNewName(), null);
 
@@ -154,17 +151,12 @@ public final class CreateCircleActionTest {
         addSelected(n3, dataSet);
 
         // Mock left/right hand traffic database
-        try {
-            Field leftHandTrafficPolygons = RightAndLefthandTraffic.class
-                .getDeclaredField("leftHandTrafficPolygons");
-            Field rlCache = RightAndLefthandTraffic.class.getDeclaredField("rlCache");
-            Utils.setObjectsAccessible(leftHandTrafficPolygons, rlCache);
-            leftHandTrafficPolygons.set(null, new ArrayList<Area>());
-            rlCache.set(null, new GeoPropertyIndex<>(new ConstantTrafficHand(true), 24));
-        } catch (ReflectiveOperationException e) {
-            e.printStackTrace();
-            fail("Impossible to mock left/right hand database: " + e.getMessage());
-        }
+        Field leftHandTrafficPolygons = RightAndLefthandTraffic.class
+            .getDeclaredField("leftHandTrafficPolygons");
+        Field rlCache = RightAndLefthandTraffic.class.getDeclaredField("rlCache");
+        Utils.setObjectsAccessible(leftHandTrafficPolygons, rlCache);
+        leftHandTrafficPolygons.set(null, new ArrayList<Area>());
+        rlCache.set(null, new GeoPropertyIndex<>(new ConstantTrafficHand(true), 24));
 
         CreateCircleAction action = new CreateCircleAction();
         action.setEnabled(true);
diff --git a/test/unit/org/openstreetmap/josm/actions/CreateMultipolygonActionTest.groovy b/test/unit/org/openstreetmap/josm/actions/CreateMultipolygonActionTest.groovy
index 1c9b810..f82ec27 100644
--- a/test/unit/org/openstreetmap/josm/actions/CreateMultipolygonActionTest.groovy
+++ b/test/unit/org/openstreetmap/josm/actions/CreateMultipolygonActionTest.groovy
@@ -11,7 +11,7 @@ import org.openstreetmap.josm.data.osm.Way
 import org.openstreetmap.josm.io.OsmReader
 import org.openstreetmap.josm.tools.SubclassFilteredCollection
 
-class CreateMultipolygonActionTest {
+public class CreateMultipolygonActionTest {
 
     @BeforeClass
     public static void setUp() {
diff --git a/test/unit/org/openstreetmap/josm/actions/ExtensionFileFilterTest.java b/test/unit/org/openstreetmap/josm/actions/ExtensionFileFilterTest.java
index 2c9be37..619ee5e 100644
--- a/test/unit/org/openstreetmap/josm/actions/ExtensionFileFilterTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/ExtensionFileFilterTest.java
@@ -6,6 +6,7 @@ import static org.junit.Assert.assertEquals;
 import org.junit.Test;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
 
 /**
  * Unit tests for class {@link ExtensionFileFilter}.
@@ -42,6 +43,7 @@ public class ExtensionFileFilterTest {
     @Test
     public void testEqualsContract() {
         EqualsVerifier.forClass(ExtensionFileFilter.class).usingGetClass()
+            .suppress(Warning.ANNOTATION) // FIXME: remove it after https://github.com/jqno/equalsverifier/issues/152 is fixed
             .verify();
     }
 }
diff --git a/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java b/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java
index 231f693..d54ed11 100644
--- a/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java
@@ -7,9 +7,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collection;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.search.SearchAction;
@@ -20,8 +19,11 @@ import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.Utils;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests of {@link JoinAreasAction} class.
  */
@@ -30,10 +32,9 @@ public class JoinAreasActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().commands();
 
     /**
      * Non-regression test for bug #10511.
diff --git a/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java b/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java
index 93c3a4b..6a02129 100644
--- a/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java
@@ -7,9 +7,8 @@ import java.io.FileInputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.search.SearchCompiler;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -18,9 +17,12 @@ import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.Geometry;
 import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests for class {@link OsmDataLayer}.
  */
@@ -29,10 +31,9 @@ public class OrthogonalizeActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test(expected = OrthogonalizeAction.InvalidUserInputException.class)
     public void testNoSelection() throws Exception {
diff --git a/test/unit/org/openstreetmap/josm/actions/PurgeActionTest.java b/test/unit/org/openstreetmap/josm/actions/PurgeActionTest.java
index de7fba3..5aa5668 100644
--- a/test/unit/org/openstreetmap/josm/actions/PurgeActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/PurgeActionTest.java
@@ -8,9 +8,8 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -18,6 +17,9 @@ import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link PurgeAction}.
@@ -27,10 +29,9 @@ public class PurgeActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().commands();
 
     /**
      * Non-regression test for ticket #12038.
diff --git a/test/unit/org/openstreetmap/josm/actions/UnJoinNodeWayActionTest.java b/test/unit/org/openstreetmap/josm/actions/UnJoinNodeWayActionTest.java
index 971215e..69603d2 100644
--- a/test/unit/org/openstreetmap/josm/actions/UnJoinNodeWayActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/UnJoinNodeWayActionTest.java
@@ -5,15 +5,17 @@ import static org.junit.Assert.assertFalse;
 
 import java.util.Arrays;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link UnJoinNodeWayAction}.
@@ -37,10 +39,9 @@ public final class UnJoinNodeWayActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform();
 
     /**
      * Test case: Ignore irrelevant nodes
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetContentDownloadTaskTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetContentDownloadTaskTest.java
index 85f07d1..1b7b6d9 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetContentDownloadTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetContentDownloadTaskTest.java
@@ -6,9 +6,11 @@ import static org.junit.Assert.assertNotNull;
 import java.awt.Component;
 import java.util.Arrays;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link ChangesetContentDownloadTask}.
@@ -18,10 +20,9 @@ public class ChangesetContentDownloadTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@code ChangesetContentDownloadTask#ChangesetContentDownloadTask}.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetHeaderDownloadTaskTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetHeaderDownloadTaskTest.java
index 1e1dddb..296b3eb 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetHeaderDownloadTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetHeaderDownloadTaskTest.java
@@ -6,10 +6,12 @@ import static org.junit.Assert.assertNotNull;
 import java.awt.Component;
 import java.util.Collections;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Changeset;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link ChangesetHeaderDownloadTask}.
@@ -19,10 +21,9 @@ public class ChangesetHeaderDownloadTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@code ChangesetHeaderDownloadTask#buildTaskForChangesets}.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetQueryTaskTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetQueryTaskTest.java
index df8fefb..f2c1e31 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetQueryTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/ChangesetQueryTaskTest.java
@@ -5,10 +5,12 @@ import static org.junit.Assert.assertNotNull;
 
 import java.awt.Component;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.io.ChangesetQuery;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link ChangesetQueryTask}.
@@ -18,10 +20,9 @@ public class ChangesetQueryTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@code ChangesetQueryTask#ChangesetQueryTask}.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTaskTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTaskTest.java
index 0fd096b..b240972 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTaskTest.java
@@ -7,10 +7,12 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.ExecutionException;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.gpx.GpxData;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link DownloadGpsTask}.
@@ -22,10 +24,9 @@ public class DownloadGpsTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@code DownloadGpsTask#acceptsUrl} method.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTaskTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTaskTest.java
index 7d7eed2..bb19abd 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTaskTest.java
@@ -7,10 +7,12 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.ExecutionException;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.NoteData;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link DownloadNotesTask}.
@@ -22,10 +24,9 @@ public class DownloadNotesTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform();
 
     /**
      * Unit test of {@code DownloadNotesTask#acceptsUrl} method.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskTest.java
index 5914d4c..fdbb235 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskTest.java
@@ -7,10 +7,12 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.ExecutionException;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link DownloadOsmTask}.
@@ -22,10 +24,9 @@ public class DownloadOsmTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@code DownloadOsmTask#acceptsUrl} method.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadReferrersTaskTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadReferrersTaskTest.java
index ed96da4..4998bbe 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadReferrersTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadReferrersTaskTest.java
@@ -5,14 +5,16 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link DownloadReferrersTask}.
@@ -22,10 +24,9 @@ public class DownloadReferrersTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@code DownloadReferrersTask#DownloadReferrersTask}.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskListTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskListTest.java
index c865f3a..619bb2a 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskListTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskListTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.actions.downloadtasks;
 
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link DownloadTaskList}.
@@ -15,10 +17,9 @@ public class DownloadTaskListTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@code DownloadTaskList#DownloadTaskList}.
diff --git a/test/unit/org/openstreetmap/josm/actions/downloadtasks/PostDownloadHandlerTest.java b/test/unit/org/openstreetmap/josm/actions/downloadtasks/PostDownloadHandlerTest.java
index 04a6ef4..5b4a046 100644
--- a/test/unit/org/openstreetmap/josm/actions/downloadtasks/PostDownloadHandlerTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/downloadtasks/PostDownloadHandlerTest.java
@@ -12,12 +12,14 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link PostDownloadHandler}.
@@ -27,10 +29,9 @@ public class PostDownloadHandlerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static DownloadTask newTask(final List<Object> errorObjects) {
         return new DownloadTask() {
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/AddNoteActionTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/AddNoteActionTest.java
index 366baec..096fea2 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/AddNoteActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/AddNoteActionTest.java
@@ -6,14 +6,16 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.Collections;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.notes.Note;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.NoteData;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link AddNoteAction}.
@@ -23,10 +25,9 @@ public class AddNoteActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().commands();
 
     /**
      * Unit test of {@link AddNoteAction#enterMode} and {@link AddNoteAction#exitMode}.
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/DeleteActionTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/DeleteActionTest.java
index 71461f9..f3170f3 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/DeleteActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/DeleteActionTest.java
@@ -4,12 +4,14 @@ package org.openstreetmap.josm.actions.mapmode;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link DeleteAction}.
@@ -19,10 +21,9 @@ public class DeleteActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().commands();
 
     /**
      * Unit test of {@link DeleteAction#enterMode} and {@link DeleteAction#exitMode}.
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/DrawActionTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/DrawActionTest.java
index 1bd00dc..13ffa36 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/DrawActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/DrawActionTest.java
@@ -13,9 +13,8 @@ import java.util.Collection;
 
 import javax.swing.JList;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -25,8 +24,11 @@ import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.Utils;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests for class {@link DrawAction}.
  */
@@ -35,10 +37,9 @@ public class DrawActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().commands();
 
     /**
      * Non regression test case for bug #12011.
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/ExtrudeActionTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/ExtrudeActionTest.java
index 9936a56..46d00f6 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/ExtrudeActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/ExtrudeActionTest.java
@@ -4,12 +4,14 @@ package org.openstreetmap.josm.actions.mapmode;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link ExtrudeAction}.
@@ -19,10 +21,9 @@ public class ExtrudeActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().commands();
 
     /**
      * Unit test of {@link ExtrudeAction#enterMode} and {@link ExtrudeAction#exitMode}.
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyActionTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyActionTest.java
index 6787813..c442ac6 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyActionTest.java
@@ -4,12 +4,14 @@ package org.openstreetmap.josm.actions.mapmode;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link ImproveWayAccuracyAction}.
@@ -19,10 +21,9 @@ public class ImproveWayAccuracyActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().commands();
 
     /**
      * Unit test of {@link ImproveWayAccuracyAction#enterMode} and {@link ImproveWayAccuracyAction#exitMode}.
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/ParallelWayActionTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/ParallelWayActionTest.java
index daf0ba5..8c856ee 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/ParallelWayActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/ParallelWayActionTest.java
@@ -4,12 +4,14 @@ package org.openstreetmap.josm.actions.mapmode;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link ParallelWayAction}.
@@ -19,10 +21,9 @@ public class ParallelWayActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().commands();
 
     /**
      * Unit test of {@link ParallelWayAction#enterMode} and {@link ParallelWayAction#exitMode}.
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/PlayHeadDragModeTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/PlayHeadDragModeTest.java
index e206187..65510a3 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/PlayHeadDragModeTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/PlayHeadDragModeTest.java
@@ -4,13 +4,15 @@ package org.openstreetmap.josm.actions.mapmode;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.PlayHeadMarker;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link PlayHeadDragMode}.
@@ -20,10 +22,9 @@ public class PlayHeadDragModeTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().commands();
 
     /**
      * Unit test of {@link PlayHeadDragMode#enterMode} and {@link PlayHeadDragMode#exitMode}.
diff --git a/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java b/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java
index 0c0ae11..ba77937 100644
--- a/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java
@@ -4,7 +4,6 @@ package org.openstreetmap.josm.actions.mapmode;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.awt.event.InputEvent;
 import java.awt.event.MouseEvent;
@@ -12,17 +11,16 @@ import java.lang.reflect.Field;
 import java.util.Arrays;
 import java.util.Collection;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.Utils;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -32,33 +30,14 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  */
 public class SelectActionTest {
 
-    /**
-     * Override some configuration variables without change in preferences.xml
-     */
-    static class PreferencesMock extends Preferences {
-        @Override
-        public synchronized int getInteger(String key, int def) {
-            if ("edit.initial-move-delay".equals(key)) {
-                return 0;
-            } else {
-                return super.getInteger(key, def);
-            }
-        }
-    }
-
     boolean nodesMerged;
 
     class SelectActionMock extends SelectAction {
-        SelectActionMock(MapFrame mapFrame, DataSet dataSet, OsmDataLayer layer) {
+        SelectActionMock(MapFrame mapFrame, DataSet dataSet, OsmDataLayer layer) throws ReflectiveOperationException {
             super(mapFrame);
-            try {
-                Field mv = SelectAction.class.getDeclaredField("mv");
-                Utils.setObjectsAccessible(mv);
-                mv.set(this, new MapViewMock());
-            } catch (ReflectiveOperationException e) {
-                e.printStackTrace();
-                fail("Can't setup testing environnement");
-            }
+            Field mv = SelectAction.class.getDeclaredField("mv");
+            Utils.setObjectsAccessible(mv);
+            mv.set(this, new MapViewMock());
         }
 
         @Override
@@ -73,19 +52,19 @@ public class SelectActionTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().projection().commands();
 
     /**
      * Test case: Move a two nodes way near a third node.
      * Resulting way should be attach to the third node.
      * see #10748
+     * @throws ReflectiveOperationException if an error occurs
      */
     @Test
     @SuppressFBWarnings(value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD")
-    public void testTicket10748() {
+    public void testTicket10748() throws ReflectiveOperationException {
         DataSet dataSet = new DataSet();
         OsmDataLayer layer = new OsmDataLayer(dataSet, OsmDataLayer.createNewName(), null);
 
@@ -103,7 +82,7 @@ public class SelectActionTest {
         dataSet.addSelected(n2);
         dataSet.addSelected(w);
 
-        Main.pref = new PreferencesMock();
+        Main.pref.put("edit.initial-move-delay", "0");
         Main.getLayerManager().addLayer(layer);
         try {
             SelectAction action = new SelectActionMock(Main.map, dataSet, layer);
diff --git a/test/unit/org/openstreetmap/josm/actions/upload/FixDataHookTest.java b/test/unit/org/openstreetmap/josm/actions/upload/FixDataHookTest.java
index c124e74..27b9985 100644
--- a/test/unit/org/openstreetmap/josm/actions/upload/FixDataHookTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/upload/FixDataHookTest.java
@@ -9,9 +9,8 @@ import static org.junit.Assert.assertTrue;
 import java.util.Arrays;
 import java.util.Collection;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.PseudoCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
@@ -20,6 +19,9 @@ import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link FixDataHook}.
@@ -29,10 +31,9 @@ public class FixDataHookTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().commands();
 
     /**
      * Test of {@link FixDataHook#checkUpload} method.
diff --git a/test/unit/org/openstreetmap/josm/actions/upload/ValidateUploadHookTest.java b/test/unit/org/openstreetmap/josm/actions/upload/ValidateUploadHookTest.java
index b2dc3ad..a127eb3 100644
--- a/test/unit/org/openstreetmap/josm/actions/upload/ValidateUploadHookTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/upload/ValidateUploadHookTest.java
@@ -1,10 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.actions.upload;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.APIDataSet;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link ValidateUploadHook}.
@@ -14,10 +16,9 @@ public class ValidateUploadHookTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().timeout(20000);
 
     /**
      * Test of {@link ValidateUploadHook#checkUpload} method.
diff --git a/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java b/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
index bb9448e..cde24a9 100644
--- a/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
@@ -3,7 +3,6 @@ package org.openstreetmap.josm.command;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
@@ -217,10 +216,10 @@ public class AddPrimitivesCommandTest {
         assertEquals(3, layer1.data.allPrimitives().size());
         assertEquals(2, layer1.data.getNodes().size());
         assertEquals(1, layer1.data.getWays().size());
-        assertEquals(0, layer1.data.allModifiedPrimitives().size());
+        assertEquals(3, layer1.data.allModifiedPrimitives().size());
         for (OsmPrimitive n : layer1.data.allPrimitives()) {
             assertEquals("test", n.get("test"));
-            assertFalse(n.isModified());
+            assertTrue(n.isModified());
         }
 
         for (Node n : layer1.data.getNodes()) {
diff --git a/test/unit/org/openstreetmap/josm/command/TransformNodesCommandTest.java b/test/unit/org/openstreetmap/josm/command/TransformNodesCommandTest.java
index d1593fa..3a60e18 100644
--- a/test/unit/org/openstreetmap/josm/command/TransformNodesCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/TransformNodesCommandTest.java
@@ -1,14 +1,15 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -20,10 +21,9 @@ public class TransformNodesCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link TransformNodesCommand#equals} and {@link TransformNodesCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/command/conflict/ConflictResolveCommandTest.java b/test/unit/org/openstreetmap/josm/command/conflict/ConflictResolveCommandTest.java
index c79d090..e1c43a1 100644
--- a/test/unit/org/openstreetmap/josm/command/conflict/ConflictResolveCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/conflict/ConflictResolveCommandTest.java
@@ -1,15 +1,16 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command.conflict;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -21,10 +22,9 @@ public class ConflictResolveCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link ConflictResolveCommand#equals} and {@link ConflictResolveCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/command/conflict/DeletedStateConflictResolveCommandTest.java b/test/unit/org/openstreetmap/josm/command/conflict/DeletedStateConflictResolveCommandTest.java
index e29d9c7..139d041 100644
--- a/test/unit/org/openstreetmap/josm/command/conflict/DeletedStateConflictResolveCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/conflict/DeletedStateConflictResolveCommandTest.java
@@ -1,16 +1,17 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command.conflict;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -22,10 +23,9 @@ public class DeletedStateConflictResolveCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link DeletedStateConflictResolveCommand#equals} and {@link DeletedStateConflictResolveCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/command/conflict/ModifiedConflictResolveCommandTest.java b/test/unit/org/openstreetmap/josm/command/conflict/ModifiedConflictResolveCommandTest.java
index 8c0d9cd..d8a18b1 100644
--- a/test/unit/org/openstreetmap/josm/command/conflict/ModifiedConflictResolveCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/conflict/ModifiedConflictResolveCommandTest.java
@@ -1,16 +1,17 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command.conflict;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -22,10 +23,9 @@ public class ModifiedConflictResolveCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link ModifiedConflictResolveCommand#equals} and {@link ModifiedConflictResolveCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommandTest.java b/test/unit/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommandTest.java
index 50590b9..019d074 100644
--- a/test/unit/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommandTest.java
@@ -1,16 +1,17 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command.conflict;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -22,10 +23,9 @@ public class RelationMemberConflictResolverCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link RelationMemberConflictResolverCommand#equals} and {@link RelationMemberConflictResolverCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/command/conflict/TagConflictResolveCommandTest.java b/test/unit/org/openstreetmap/josm/command/conflict/TagConflictResolveCommandTest.java
index 8949c7b..0b1857e 100644
--- a/test/unit/org/openstreetmap/josm/command/conflict/TagConflictResolveCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/conflict/TagConflictResolveCommandTest.java
@@ -1,16 +1,17 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command.conflict;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -22,10 +23,9 @@ public class TagConflictResolveCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link TagConflictResolveCommand#equals} and {@link TagConflictResolveCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/command/conflict/VersionConflictResolveCommandTest.java b/test/unit/org/openstreetmap/josm/command/conflict/VersionConflictResolveCommandTest.java
index 22c6907..da59030 100644
--- a/test/unit/org/openstreetmap/josm/command/conflict/VersionConflictResolveCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/conflict/VersionConflictResolveCommandTest.java
@@ -1,16 +1,17 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command.conflict;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -22,10 +23,9 @@ public class VersionConflictResolveCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link VersionConflictResolveCommand#equals} and {@link VersionConflictResolveCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/command/conflict/WayNodesConflictResolverCommandTest.java b/test/unit/org/openstreetmap/josm/command/conflict/WayNodesConflictResolverCommandTest.java
index 6649abf..ee5783e 100644
--- a/test/unit/org/openstreetmap/josm/command/conflict/WayNodesConflictResolverCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/conflict/WayNodesConflictResolverCommandTest.java
@@ -1,16 +1,17 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.command.conflict;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -22,10 +23,9 @@ public class WayNodesConflictResolverCommandTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link WayNodesConflictResolverCommand#equals} and {@link WayNodesConflictResolverCommand#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/corrector/ReverseWayNoTagCorrectorTest.java b/test/unit/org/openstreetmap/josm/corrector/ReverseWayNoTagCorrectorTest.java
index 821a40e..8bc8218 100644
--- a/test/unit/org/openstreetmap/josm/corrector/ReverseWayNoTagCorrectorTest.java
+++ b/test/unit/org/openstreetmap/josm/corrector/ReverseWayNoTagCorrectorTest.java
@@ -3,10 +3,12 @@ package org.openstreetmap.josm.corrector;
 
 import static org.junit.Assert.assertEquals;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Tag;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ReverseWayNoTagCorrector} class.
@@ -16,10 +18,9 @@ public class ReverseWayNoTagCorrectorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Tests the {@link ReverseWayNoTagCorrector#getDirectionalTags} function
diff --git a/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java b/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java
index 8f8fd5a..0a7905c 100644
--- a/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java
+++ b/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java
@@ -2,10 +2,12 @@
 package org.openstreetmap.josm.corrector;
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Tag;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ReverseWayTagCorrector} class.
@@ -15,10 +17,9 @@ public class ReverseWayTagCorrectorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link ReverseWayTagCorrector.TagSwitcher#apply} method.
diff --git a/test/unit/org/openstreetmap/josm/data/BoundsTest.java b/test/unit/org/openstreetmap/josm/data/BoundsTest.java
index 27b0e4b..de6d2de 100644
--- a/test/unit/org/openstreetmap/josm/data/BoundsTest.java
+++ b/test/unit/org/openstreetmap/josm/data/BoundsTest.java
@@ -5,6 +5,8 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import java.awt.geom.Rectangle2D;
+
 import org.junit.Test;
 import org.openstreetmap.josm.data.coor.LatLon;
 
@@ -46,4 +48,45 @@ public class BoundsTest {
         b3.extend(LatLon.ZERO);
         assertEquals(b3, new Bounds(0, 0, 90, -170));
     }
+
+    private static void doTestConstructorNominal(Bounds b) {
+        double eps = 1e-7;
+        assertEquals(1d, b.getMinLat(), eps);
+        assertEquals(2d, b.getMinLon(), eps);
+        assertEquals(3d, b.getMaxLat(), eps);
+        assertEquals(4d, b.getMaxLon(), eps);
+    }
+
+    private static void doTestConstructorPoint(Bounds b) {
+        double eps = 1e-7;
+        assertEquals(1d, b.getMinLat(), eps);
+        assertEquals(2d, b.getMinLon(), eps);
+        assertEquals(1d, b.getMaxLat(), eps);
+        assertEquals(2d, b.getMaxLon(), eps);
+    }
+
+    /**
+     * Unit tests for {@link Bounds#Bounds} - nominal cases.
+     */
+    @Test
+    public void testConstructorNominalCases() {
+        doTestConstructorNominal(new Bounds(new LatLon(1d, 2d), new LatLon(3d, 4d)));
+        doTestConstructorNominal(new Bounds(new LatLon(1d, 2d), new LatLon(3d, 4d), true));
+        doTestConstructorNominal(new Bounds(1d, 2d, 3d, 4d));
+        doTestConstructorNominal(new Bounds(1d, 2d, 3d, 4d, true));
+        doTestConstructorNominal(new Bounds(new double[]{1d, 2d, 3d, 4d}));
+        doTestConstructorNominal(new Bounds(new double[]{1d, 2d, 3d, 4d}, true));
+        doTestConstructorNominal(new Bounds(new Bounds(1d, 2d, 3d, 4d)));
+        doTestConstructorNominal(new Bounds(new Rectangle2D.Double(2d, 1d, 2d, 2d)));
+    }
+
+    /**
+     * Unit tests for {@link Bounds#Bounds} - single point cases.
+     */
+    @Test
+    public void testConstructorSinglePointCases() {
+        doTestConstructorPoint(new Bounds(new LatLon(1d, 2d)));
+        doTestConstructorPoint(new Bounds(new LatLon(1d, 2d), true));
+        doTestConstructorPoint(new Bounds(1d, 2d, true));
+    }
 }
diff --git a/test/unit/org/openstreetmap/josm/data/CustomConfiguratorTest.java b/test/unit/org/openstreetmap/josm/data/CustomConfiguratorTest.java
index c9e9a54..2f2034c 100644
--- a/test/unit/org/openstreetmap/josm/data/CustomConfiguratorTest.java
+++ b/test/unit/org/openstreetmap/josm/data/CustomConfiguratorTest.java
@@ -13,13 +13,15 @@ import java.util.Arrays;
 import java.util.Collections;
 
 import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.Utils;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests for class {@link CustomConfigurator}.
  */
@@ -28,10 +30,9 @@ public class CustomConfiguratorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Setup test.
diff --git a/test/unit/org/openstreetmap/josm/data/PreferencesTest.groovy b/test/unit/org/openstreetmap/josm/data/PreferencesTest.groovy
deleted file mode 100644
index dcccb2e..0000000
--- a/test/unit/org/openstreetmap/josm/data/PreferencesTest.groovy
+++ /dev/null
@@ -1,42 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.data
-
-import java.awt.Color
-
-import org.openstreetmap.josm.JOSMFixture
-import org.openstreetmap.josm.Main
-
-class PreferencesTest extends GroovyTestCase {
-    @Override
-    void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
-
-    void testColorName() {
-        assert Main.pref.getColorName("color.layer {5DE308C0-916F-4B5A-B3DB-D45E17F30172}.gpx") == "color.layer {5DE308C0-916F-4B5A-B3DB-D45E17F30172}.gpx"
-    }
-
-    void testColorAlpha() {
-        assert Main.pref.getColor("foo", new Color(0x12345678, true)).alpha == 0x12
-        assert Main.pref.putColor("bar", new Color(0x12345678, true))
-        assert Main.pref.getColor("bar", null).alpha == 0x12
-    }
-
-    void testColorNameAlpha() {
-        assert Main.pref.getColor("foo", "bar", new Color(0x12345678, true)).alpha == 0x12
-        assert Main.pref.getDefaultColor("foo") == new Color(0x34, 0x56, 0x78, 0x12)
-        assert Main.pref.getDefaultColor("foo").alpha == 0x12
-    }
-
-    void testToXml() {
-        assert Main.pref.toXML(true) == String.format(
-            "<?xml version=\"1.0\" encoding=\"UTF-8\"?>%n" +
-            "<preferences xmlns='http://josm.openstreetmap.de/preferences-1.0' version='%d'>%n" +
-            "  <tag key='expert' value='true'/>%n" +
-            "  <tag key='jdk.Arrays.useLegacyMergeSort' value='false'/>%n" +
-            "  <tag key='language' value='en'/>%n" +
-            "  <tag key='osm-server.url' value='http://api06.dev.openstreetmap.org/api'/>%n" +
-            "  <tag key='osm-server.username' value='%s'/>%n" +
-            "</preferences>%n", Version.getInstance().getVersion(), Main.pref.get("osm-server.username"))
-    }
-}
diff --git a/test/unit/org/openstreetmap/josm/data/PreferencesTest.java b/test/unit/org/openstreetmap/josm/data/PreferencesTest.java
new file mode 100644
index 0000000..11b28d3
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/PreferencesTest.java
@@ -0,0 +1,70 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Color;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link Preferences}.
+ */
+public class PreferencesTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().preferences().fakeAPI();
+
+    /**
+     * Test color name.
+     */
+    @Test
+    public void testColorName() {
+        assertEquals("color.layer {5DE308C0-916F-4B5A-B3DB-D45E17F30172}.gpx",
+                Main.pref.getColorName("color.layer {5DE308C0-916F-4B5A-B3DB-D45E17F30172}.gpx"));
+    }
+
+    /**
+     * Test color alpha.
+     */
+    @Test
+    public void testColorAlpha() {
+        assertEquals(0x12, new ColorProperty("foo", new Color(0x12345678, true)).get().getAlpha());
+        assertTrue(Main.pref.putColor("bar", new Color(0x12345678, true)));
+        assertEquals(0x12, new ColorProperty("bar", (String) null).get().getAlpha());
+    }
+
+    /**
+     * Test color name and alpha.
+     */
+    @Test
+    public void testColorNameAlpha() {
+        assertEquals(0x12, new ColorProperty("foo", new Color(0x12345678, true)).get().getAlpha());
+        assertEquals(new Color(0x34, 0x56, 0x78, 0x12), Main.pref.getDefaultColor("foo"));
+        assertEquals(0x12, Main.pref.getDefaultColor("foo").getAlpha());
+    }
+
+    /**
+     * Test {@link Preferences#toXML}.
+     */
+    @Test
+    public void testToXml() {
+        assertEquals(String.format(
+            "<?xml version=\"1.0\" encoding=\"UTF-8\"?>%n" +
+            "<preferences xmlns='http://josm.openstreetmap.de/preferences-1.0' version='%d'>%n" +
+            "  <tag key='osm-server.url' value='http://fake.xxx/api'/>%n" +
+            "</preferences>%n", Version.getInstance().getVersion()),
+                Main.pref.toXML(true));
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java b/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java
index b893024..9a3d6a6 100644
--- a/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java
+++ b/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java
@@ -10,9 +10,11 @@ import java.util.logging.Logger;
 
 import org.apache.commons.jcs.access.CacheAccess;
 import org.apache.commons.jcs.auxiliary.disk.block.BlockDiskCacheAttributes;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link JCSCacheManager}.
@@ -22,10 +24,9 @@ public class JCSCacheManagerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/12054">Bug #12054</a>.
diff --git a/test/unit/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJobTest.java b/test/unit/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJobTest.java
index e392350..0f7a57c 100644
--- a/test/unit/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJobTest.java
+++ b/test/unit/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJobTest.java
@@ -10,10 +10,10 @@ import java.net.URL;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.cache.ICachedLoaderListener.LoadResult;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
@@ -70,10 +70,9 @@ public class JCSCachedTileLoaderJobTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test status codes
diff --git a/test/unit/org/openstreetmap/josm/data/coor/CachedLatLonTest.java b/test/unit/org/openstreetmap/josm/data/coor/CachedLatLonTest.java
index 469b139..ce01396 100644
--- a/test/unit/org/openstreetmap/josm/data/coor/CachedLatLonTest.java
+++ b/test/unit/org/openstreetmap/josm/data/coor/CachedLatLonTest.java
@@ -3,10 +3,11 @@ package org.openstreetmap.josm.data.coor;
 
 import java.text.DecimalFormat;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -18,10 +19,9 @@ public class CachedLatLonTest {
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link CachedLatLon#equals} and {@link CachedLatLon#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/data/coor/EastNorthTest.java b/test/unit/org/openstreetmap/josm/data/coor/EastNorthTest.java
new file mode 100644
index 0000000..e057665
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/coor/EastNorthTest.java
@@ -0,0 +1,52 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.coor;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+/**
+ * Test the {@link EastNorth} class
+ * @author Michael Zangl
+ * @since 10915
+ */
+public class EastNorthTest {
+
+    /**
+     * Test {@link EastNorth#interpolate(EastNorth, double)}
+     */
+    @Test
+    public void testInterpolate() {
+        EastNorth en1 = new EastNorth(0, 0);
+        EastNorth en2 = new EastNorth(30, 60);
+        EastNorth en3 = new EastNorth(-70, -40);
+        // east:
+        assertEquals(15, en1.interpolate(en2, 0.5).east(), 1e-10);
+        assertEquals(0, en1.interpolate(en2, 0).east(), 1e-10);
+        assertEquals(30, en1.interpolate(en2, 1).east(), 1e-10);
+        assertEquals(0, en3.interpolate(en2, .7).east(), 1e-10);
+        // north
+        assertEquals(30, en1.interpolate(en2, 0.5).north(), 1e-10);
+        assertEquals(0, en1.interpolate(en2, 0).north(), 1e-10);
+        assertEquals(60, en1.interpolate(en2, 1).north(), 1e-10);
+        assertEquals(0, en3.interpolate(en2, .4).north(), 1e-10);
+    }
+
+    /**
+     * Test {@link EastNorth#getCenter(EastNorth)}
+     */
+    @Test
+    public void testGetCenter() {
+        EastNorth en1 = new EastNorth(0, 0);
+        EastNorth en2 = new EastNorth(30, 60);
+        EastNorth en3 = new EastNorth(-70, -40);
+
+        assertEquals(15, en1.getCenter(en2).east(), 1e-10);
+        assertEquals(15, en2.getCenter(en1).east(), 1e-10);
+        assertEquals(-20, en3.getCenter(en2).east(), 1e-10);
+
+        assertEquals(30, en1.getCenter(en2).north(), 1e-10);
+        assertEquals(30, en2.getCenter(en1).north(), 1e-10);
+        assertEquals(10, en3.getCenter(en2).north(), 1e-10);
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java b/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java
index 740c3c5..22c5e85 100644
--- a/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java
+++ b/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java
@@ -5,9 +5,9 @@ import static org.junit.Assert.assertEquals;
 
 import java.text.DecimalFormat;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
@@ -20,10 +20,9 @@ public class LatLonTest {
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static final double EPSILON = 1e-6;
 
@@ -164,4 +163,44 @@ public class LatLonTest {
         assertEquals("5942074.0724311", c.latToString(CoordinateFormat.EAST_NORTH));
         assertEquals("2115070.3250722", c.lonToString(CoordinateFormat.EAST_NORTH));
     }
+
+    /**
+     * Test {@link LatLon#interpolate(LatLon, double)}
+     * @since 10915
+     */
+    @Test
+    public void testInterpolate() {
+        LatLon ll1 = new LatLon(0, 0);
+        LatLon ll2 = new LatLon(30, 60);
+        LatLon ll3 = new LatLon(-70, -40);
+        // lat:
+        assertEquals(15, ll1.interpolate(ll2, 0.5).lat(), 1e-10);
+        assertEquals(0, ll1.interpolate(ll2, 0).lat(), 1e-10);
+        assertEquals(30, ll1.interpolate(ll2, 1).lat(), 1e-10);
+        assertEquals(0, ll3.interpolate(ll2, .7).lat(), 1e-10);
+        // lon
+        assertEquals(30, ll1.interpolate(ll2, 0.5).lon(), 1e-10);
+        assertEquals(0, ll1.interpolate(ll2, 0).lon(), 1e-10);
+        assertEquals(60, ll1.interpolate(ll2, 1).lon(), 1e-10);
+        assertEquals(0, ll3.interpolate(ll2, .4).lon(), 1e-10);
+    }
+
+    /**
+     * Test {@link LatLon#getCenter(LatLon)}
+     * @since 10915
+     */
+    @Test
+    public void testGetCenter() {
+        LatLon ll1 = new LatLon(0, 0);
+        LatLon ll2 = new LatLon(30, 60);
+        LatLon ll3 = new LatLon(-70, -40);
+
+        assertEquals(15, ll1.getCenter(ll2).lat(), 1e-10);
+        assertEquals(15, ll2.getCenter(ll1).lat(), 1e-10);
+        assertEquals(-20, ll3.getCenter(ll2).lat(), 1e-10);
+
+        assertEquals(30, ll1.getCenter(ll2).lon(), 1e-10);
+        assertEquals(30, ll2.getCenter(ll1).lon(), 1e-10);
+        assertEquals(10, ll3.getCenter(ll2).lon(), 1e-10);
+    }
 }
diff --git a/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java b/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java
new file mode 100644
index 0000000..8081b42
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java
@@ -0,0 +1,34 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.gpx;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+/**
+ * Unit tests for class {@link GpxData}.
+ */
+public class GpxDataTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link GpxData#equals} and {@link GpxData#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(GpxData.class).usingGetClass()
+            .withIgnoredFields("attr", "creator", "fromServer", "storageFile")
+            .withPrefabValues(WayPoint.class, new WayPoint(LatLon.NORTH_POLE), new WayPoint(LatLon.SOUTH_POLE))
+            .verify();
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/gpx/GpxRouteTest.java b/test/unit/org/openstreetmap/josm/data/gpx/GpxRouteTest.java
new file mode 100644
index 0000000..d3a69da
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/gpx/GpxRouteTest.java
@@ -0,0 +1,35 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.gpx;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
+
+/**
+ * Unit tests for class {@link GpxRoute}.
+ */
+public class GpxRouteTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link GpxRoute#equals} and {@link GpxRoute#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(GpxRoute.class).usingGetClass()
+            .suppress(Warning.NONFINAL_FIELDS)
+            .withPrefabValues(WayPoint.class, new WayPoint(LatLon.NORTH_POLE), new WayPoint(LatLon.SOUTH_POLE))
+            .verify();
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegmentTest.java b/test/unit/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegmentTest.java
new file mode 100644
index 0000000..5727064
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegmentTest.java
@@ -0,0 +1,34 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.gpx;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+/**
+ * Unit tests for class {@link ImmutableGpxTrackSegment}.
+ */
+public class ImmutableGpxTrackSegmentTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link ImmutableGpxTrackSegment#equals} and {@link ImmutableGpxTrackSegment#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(ImmutableGpxTrackSegment.class).usingGetClass()
+            .withIgnoredFields("bounds", "length")
+            .withPrefabValues(WayPoint.class, new WayPoint(LatLon.NORTH_POLE), new WayPoint(LatLon.SOUTH_POLE))
+            .verify();
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackTest.java b/test/unit/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackTest.java
new file mode 100644
index 0000000..5cd7dcc
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackTest.java
@@ -0,0 +1,34 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.gpx;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
+
+/**
+ * Unit tests for class {@link ImmutableGpxTrack}.
+ */
+public class ImmutableGpxTrackTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link ImmutableGpxTrack#equals} and {@link ImmutableGpxTrack#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(ImmutableGpxTrack.class).usingGetClass()
+            .suppress(Warning.NONFINAL_FIELDS)
+            .withIgnoredFields("bounds", "length")
+            .verify();
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/gpx/WayPointTest.java b/test/unit/org/openstreetmap/josm/data/gpx/WayPointTest.java
new file mode 100644
index 0000000..4ff7bcd
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/gpx/WayPointTest.java
@@ -0,0 +1,37 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.gpx;
+
+import java.awt.color.ColorSpace;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
+
+/**
+ * Unit tests for class {@link WayPoint}.
+ */
+public class WayPointTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link WayPoint#equals} and {@link WayPoint#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(WayPoint.class).usingGetClass()
+            .suppress(Warning.NONFINAL_FIELDS)
+            .withIgnoredFields("customColoring", "dir", "drawLine", "east", "north")
+            .withPrefabValues(ColorSpace.class, ColorSpace.getInstance(ColorSpace.CS_sRGB), ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB))
+            .verify();
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/gpx/WithAttributesTest.java b/test/unit/org/openstreetmap/josm/data/gpx/WithAttributesTest.java
new file mode 100644
index 0000000..09b29c4
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/gpx/WithAttributesTest.java
@@ -0,0 +1,33 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.gpx;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
+
+/**
+ * Unit tests for class {@link WithAttributes}.
+ */
+public class WithAttributesTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link WithAttributes#equals} and {@link WithAttributes#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(WithAttributes.class).usingGetClass()
+            .suppress(Warning.NONFINAL_FIELDS)
+            .verify();
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/imagery/ImageryInfoTest.java b/test/unit/org/openstreetmap/josm/data/imagery/ImageryInfoTest.java
index bc2fec6..b529e59 100644
--- a/test/unit/org/openstreetmap/josm/data/imagery/ImageryInfoTest.java
+++ b/test/unit/org/openstreetmap/josm/data/imagery/ImageryInfoTest.java
@@ -9,12 +9,14 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.MultiMap;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  *
  * Unit tests for class {@link ImageryInfo}.
@@ -25,10 +27,9 @@ public class ImageryInfoTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test if extended URL is returned properly
diff --git a/test/unit/org/openstreetmap/josm/data/imagery/TemplatedWMSTileSourceTest.java b/test/unit/org/openstreetmap/josm/data/imagery/TemplatedWMSTileSourceTest.java
index 84ea5b1..a379279 100644
--- a/test/unit/org/openstreetmap/josm/data/imagery/TemplatedWMSTileSourceTest.java
+++ b/test/unit/org/openstreetmap/josm/data/imagery/TemplatedWMSTileSourceTest.java
@@ -4,18 +4,20 @@ package org.openstreetmap.josm.data.imagery;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
 import org.openstreetmap.gui.jmapviewer.TileXY;
 import org.openstreetmap.gui.jmapviewer.interfaces.ICoordinate;
 import org.openstreetmap.gui.jmapviewer.tilesources.TemplatedTMSTileSource;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.CustomProjection;
 import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link TemplatedWMSTileSource}.
@@ -28,10 +30,9 @@ public class TemplatedWMSTileSourceTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test EPSG:3857
diff --git a/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java b/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java
index b29ab74..bdeafb1 100644
--- a/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java
+++ b/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java
@@ -8,16 +8,18 @@ import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
 
-import org.junit.BeforeClass;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.openstreetmap.gui.jmapviewer.tilesources.TemplatedTMSTileSource;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link WMTSTileSource}.
@@ -39,10 +41,9 @@ public class WMTSTileSourceTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static ImageryInfo getImagery(String path) {
         try {
diff --git a/test/unit/org/openstreetmap/josm/data/notes/NoteCommentTest.java b/test/unit/org/openstreetmap/josm/data/notes/NoteCommentTest.java
index cd6322c..229feb3 100644
--- a/test/unit/org/openstreetmap/josm/data/notes/NoteCommentTest.java
+++ b/test/unit/org/openstreetmap/josm/data/notes/NoteCommentTest.java
@@ -7,9 +7,11 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.Date;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link NoteComment}.
@@ -19,10 +21,9 @@ public class NoteCommentTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link NoteComment} class.
diff --git a/test/unit/org/openstreetmap/josm/data/notes/NoteTest.java b/test/unit/org/openstreetmap/josm/data/notes/NoteTest.java
index dc41335..e41736b 100644
--- a/test/unit/org/openstreetmap/josm/data/notes/NoteTest.java
+++ b/test/unit/org/openstreetmap/josm/data/notes/NoteTest.java
@@ -6,11 +6,12 @@ import static org.junit.Assert.assertNotEquals;
 
 import java.util.Date;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -22,10 +23,9 @@ public class NoteTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link Note#toString} method.
diff --git a/test/unit/org/openstreetmap/josm/data/oauth/OAuthParametersTest.java b/test/unit/org/openstreetmap/josm/data/oauth/OAuthParametersTest.java
index 9e8c15e..1197127 100644
--- a/test/unit/org/openstreetmap/josm/data/oauth/OAuthParametersTest.java
+++ b/test/unit/org/openstreetmap/josm/data/oauth/OAuthParametersTest.java
@@ -5,11 +5,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.io.OsmApi;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
@@ -22,10 +22,9 @@ public class OAuthParametersTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of method {@link OAuthParameters#createDefault}.
diff --git a/test/unit/org/openstreetmap/josm/data/oauth/SignpostAdaptersTest.java b/test/unit/org/openstreetmap/josm/data/oauth/SignpostAdaptersTest.java
index dac52a5..739fd12 100644
--- a/test/unit/org/openstreetmap/josm/data/oauth/SignpostAdaptersTest.java
+++ b/test/unit/org/openstreetmap/josm/data/oauth/SignpostAdaptersTest.java
@@ -9,14 +9,16 @@ import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.oauth.SignpostAdapters.HttpRequest;
 import org.openstreetmap.josm.data.oauth.SignpostAdapters.HttpResponse;
 import org.openstreetmap.josm.data.oauth.SignpostAdapters.OAuthConsumer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.HttpClient;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests for class {@link SignpostAdapters}.
  */
@@ -25,10 +27,9 @@ public class SignpostAdaptersTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static HttpClient newClient() throws MalformedURLException {
         return HttpClient.create(new URL("https://www.openstreetmap.org"));
diff --git a/test/unit/org/openstreetmap/josm/data/osm/APIDataSetTest.java b/test/unit/org/openstreetmap/josm/data/osm/APIDataSetTest.java
index 12ecced..8818041 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/APIDataSetTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/APIDataSetTest.java
@@ -7,11 +7,13 @@ import static org.junit.Assert.fail;
 
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.actions.upload.CyclicUploadDependencyException;
 import org.openstreetmap.josm.data.APIDataSet;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link APIDataSet}.
@@ -21,13 +23,12 @@ public class APIDataSetTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test
-    public void testOneNewRelationOnly() {
+    public void testOneNewRelationOnly() throws CyclicUploadDependencyException {
         Relation r = new Relation();
         r.put("name", "r1");
         DataSet ds = new DataSet();
@@ -35,11 +36,7 @@ public class APIDataSetTest {
 
         APIDataSet apiDataSet = new APIDataSet();
         apiDataSet.init(ds);
-        try {
-            apiDataSet.adjustRelationUploadOrder();
-        } catch (CyclicUploadDependencyException e) {
-            fail("unexpected exception:" + e);
-        }
+        apiDataSet.adjustRelationUploadOrder();
         List<OsmPrimitive> toAdd = apiDataSet.getPrimitivesToAdd();
 
         assertEquals(1, toAdd.size());
@@ -47,7 +44,7 @@ public class APIDataSetTest {
     }
 
     @Test
-    public void testNewParentChildPair() {
+    public void testNewParentChildPair() throws CyclicUploadDependencyException {
         DataSet ds = new DataSet();
         Relation r1 = new Relation();
         ds.addPrimitive(r1);
@@ -61,11 +58,7 @@ public class APIDataSetTest {
 
         APIDataSet apiDataSet = new APIDataSet();
         apiDataSet.init(ds);
-        try {
-            apiDataSet.adjustRelationUploadOrder();
-        } catch (CyclicUploadDependencyException e) {
-            fail("unexpected exception:" + e);
-        }
+        apiDataSet.adjustRelationUploadOrder();
         List<OsmPrimitive> toAdd = apiDataSet.getPrimitivesToAdd();
 
         assertEquals(2, toAdd.size());
@@ -74,7 +67,7 @@ public class APIDataSetTest {
     }
 
     @Test
-    public void testOneExistingAndThreNewInAChain() {
+    public void testOneExistingAndThreNewInAChain() throws CyclicUploadDependencyException {
         DataSet ds = new DataSet();
 
         Relation r1 = new Relation();
@@ -99,11 +92,7 @@ public class APIDataSetTest {
 
         APIDataSet apiDataSet = new APIDataSet();
         apiDataSet.init(ds);
-        try {
-            apiDataSet.adjustRelationUploadOrder();
-        } catch (CyclicUploadDependencyException e) {
-            fail("unexpected exception:" + e);
-        }
+        apiDataSet.adjustRelationUploadOrder();
         List<OsmPrimitive> toAdd = apiDataSet.getPrimitivesToAdd();
 
         assertEquals(3, toAdd.size());
@@ -117,7 +106,7 @@ public class APIDataSetTest {
     }
 
     @Test
-    public void testOneParentTwoNewChildren() {
+    public void testOneParentTwoNewChildren() throws CyclicUploadDependencyException {
         DataSet ds = new DataSet();
         Relation r1 = new Relation();
         ds.addPrimitive(r1);
@@ -137,11 +126,7 @@ public class APIDataSetTest {
 
         APIDataSet apiDataSet = new APIDataSet();
         apiDataSet.init(ds);
-        try {
-            apiDataSet.adjustRelationUploadOrder();
-        } catch (CyclicUploadDependencyException e) {
-            fail("unexpected exception:" + e);
-        }
+        apiDataSet.adjustRelationUploadOrder();
         List<OsmPrimitive> toAdd = apiDataSet.getPrimitivesToAdd();
 
         assertEquals(3, toAdd.size());
@@ -150,7 +135,7 @@ public class APIDataSetTest {
     }
 
     @Test // for ticket #9624
-    public void testDeleteOneParentTwoNewChildren() {
+    public void testDeleteOneParentTwoNewChildren() throws CyclicUploadDependencyException {
         DataSet ds = new DataSet();
         Relation r1 = new Relation(1);
         ds.addPrimitive(r1);
@@ -184,11 +169,7 @@ public class APIDataSetTest {
         apiDataSet.getPrimitivesToDelete().add(r2);
         apiDataSet.getPrimitivesToDelete().add(r3);
         apiDataSet.getPrimitivesToDelete().add(r4);
-        try {
-            apiDataSet.adjustRelationUploadOrder();
-        } catch (CyclicUploadDependencyException e) {
-            fail("unexpected exception:" + e);
-        }
+        apiDataSet.adjustRelationUploadOrder();
         List<OsmPrimitive> toDelete = apiDataSet.getPrimitivesToDelete();
 
         assertEquals(4, toDelete.size());
@@ -197,7 +178,7 @@ public class APIDataSetTest {
     }
 
     @Test // for ticket #9656
-    public void testDeleteWay() {
+    public void testDeleteWay() throws CyclicUploadDependencyException {
         DataSet ds = new DataSet();
         final Way way = new Way(1, 2);
         way.put("highway", "unclassified");
@@ -224,11 +205,7 @@ public class APIDataSetTest {
 
         APIDataSet apiDataSet = new APIDataSet();
         apiDataSet.init(ds);
-        try {
-            apiDataSet.adjustRelationUploadOrder();
-        } catch (CyclicUploadDependencyException e) {
-            fail("unexpected exception:" + e);
-        }
+        apiDataSet.adjustRelationUploadOrder();
         List<OsmPrimitive> toDelete = apiDataSet.getPrimitivesToDelete();
 
         assertEquals(4, toDelete.size());
diff --git a/test/unit/org/openstreetmap/josm/data/osm/BBoxTest.java b/test/unit/org/openstreetmap/josm/data/osm/BBoxTest.java
index cdc6c3c..fcd9f64 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/BBoxTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/BBoxTest.java
@@ -1,10 +1,11 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.osm;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
 
@@ -16,10 +17,9 @@ public class BBoxTest {
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of methods {@link BBox#equals} and {@link BBox#hashCode}.
diff --git a/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java b/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java
index 16aeb10..7ca4b14 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java
@@ -17,12 +17,14 @@ import java.util.GregorianCalendar;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link DataSetMerger}.
@@ -32,10 +34,9 @@ public class DataSetMergerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private DataSet my;
     private DataSet their;
diff --git a/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java b/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java
index f6af013..d9d6709 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java
@@ -12,14 +12,16 @@ import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.actions.search.SearchAction.SearchMode;
 import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link Filter}.
@@ -29,10 +31,9 @@ public class FilterTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test
     public void testBasic() throws ParseError {
diff --git a/test/unit/org/openstreetmap/josm/data/osm/MultipolygonBuilderTest.java b/test/unit/org/openstreetmap/josm/data/osm/MultipolygonBuilderTest.java
index f37be6b..a6097b7 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/MultipolygonBuilderTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/MultipolygonBuilderTest.java
@@ -5,13 +5,11 @@ import static org.junit.Assert.assertNull;
 
 import java.io.InputStream;
 
-import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.Timeout;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
@@ -21,19 +19,11 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 public class MultipolygonBuilderTest {
 
     /**
-     * Global timeout applied to all test methods.
+     * Setup test.
      */
     @Rule
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public Timeout globalTimeout = Timeout.seconds(15);
-
-    /**
-     * Setup test.
-     */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    public JOSMTestRules test = new JOSMTestRules().projection().timeout(15000);
 
     /**
      * Non-regression test for ticket #12060.
diff --git a/test/unit/org/openstreetmap/josm/data/osm/NodeDataTest.java b/test/unit/org/openstreetmap/josm/data/osm/NodeDataTest.java
index 669c7e3..ed85328 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/NodeDataTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/NodeDataTest.java
@@ -1,8 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.osm;
 
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
@@ -11,6 +15,17 @@ import org.junit.Test;
 import org.openstreetmap.josm.data.coor.LatLon;
 
 public class NodeDataTest {
+
+    private static NodeData serializeUnserialize(NodeData data) throws IOException, ClassNotFoundException {
+        try (ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+             ObjectOutputStream out = new ObjectOutputStream(bytes)) {
+            out.writeObject(data);
+            try (ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes.toByteArray()))) {
+                return (NodeData) in.readObject();
+            }
+        }
+    }
+
     @Test
     public void testSerializationForDragAndDrop() throws Exception {
         final NodeData data = new NodeData();
@@ -18,14 +33,27 @@ public class NodeDataTest {
         data.setId(314);
         data.setVersion(14);
         data.setChangesetId(314159);
-        final Object readData;
-        try (ByteArrayOutputStream bytes = new ByteArrayOutputStream();
-             ObjectOutputStream out = new ObjectOutputStream(bytes)) {
-            out.writeObject(data);
-            try (ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes.toByteArray()))) {
-                readData = in.readObject();
-            }
-        }
+        final NodeData readData = serializeUnserialize(data);
         Assert.assertEquals(data.toString(), readData.toString());
     }
+
+    /**
+     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/13395">#13395</a>.
+     * @throws Exception if an error occurs
+     */
+    @Test
+    public void testTicket13395() throws Exception {
+        Node n = new Node(1925320646, 1);
+        n.setCoor(null);
+        assertNull(n.getCoor());
+        assertTrue(n.isIncomplete());
+
+        NodeData data = n.save();
+        assertNull(data.getCoor());
+        assertTrue(data.isIncomplete());
+
+        NodeData readData = serializeUnserialize(data);
+        assertNull(readData.getCoor());
+        assertTrue(readData.isIncomplete());
+    }
 }
diff --git a/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java b/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java
index 600403b..7c4ce2f 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java
@@ -5,12 +5,14 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.DataSource;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of the {@code Node} class.
@@ -20,10 +22,9 @@ public class NodeTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Non-regression test for ticket #12060.
diff --git a/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandlingTest.java b/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandlingTest.java
index 52070b4..b393a57 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandlingTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandlingTest.java
@@ -5,10 +5,10 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
@@ -21,10 +21,9 @@ public class OsmPrimitiveKeyHandlingTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * test query and get methods on a node withouth keys
diff --git a/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java b/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java
index 06d0c0f..6e78a92 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java
@@ -6,11 +6,14 @@ import java.util.HashSet;
 
 import org.junit.Assert;
 import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of the {@code OsmPrimitive} class.
@@ -20,10 +23,9 @@ public class OsmPrimitiveTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private void compareReferrers(OsmPrimitive actual, OsmPrimitive... expected) {
         Assert.assertEquals(new HashSet<>(Arrays.asList(expected)),
diff --git a/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java b/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java
index 600a45a..14a23e6 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java
@@ -4,19 +4,20 @@ package org.openstreetmap.josm.data.osm;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 public class OsmUtilsTest {
 
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test
     public void testCreatePrimitive() throws Exception {
diff --git a/test/unit/org/openstreetmap/josm/data/osm/QuadBucketsTest.java b/test/unit/org/openstreetmap/josm/data/osm/QuadBucketsTest.java
index 8673b8c..5b9d2a3 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/QuadBucketsTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/QuadBucketsTest.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.data.osm;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
@@ -11,24 +12,28 @@ import java.util.List;
 import org.fest.reflect.core.Reflection;
 import org.fest.reflect.reference.TypeRef;
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link QuadBuckets}.
+ */
 public class QuadBucketsTest {
 
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private void removeAllTest(DataSet ds) {
         List<Node> allNodes = new ArrayList<>(ds.getNodes());
@@ -89,4 +94,85 @@ public class QuadBucketsTest {
             removeAllTest(ds);
         }
     }
+
+    /**
+     * Test handling of objects with invalid bbox
+     */
+    @Test
+    public void testSpecialBBox() {
+        QuadBuckets<Node> qbNodes = new QuadBuckets<>();
+        QuadBuckets<Way> qbWays = new QuadBuckets<>();
+        Way w1 = new Way(1);
+        Way w2 = new Way(2);
+        Way w3 = new Way(3);
+        Node n1 = new Node(1);
+        Node n2 = new Node(2); n2.setCoor(new LatLon(10, 20));
+        Node n3 = new Node(3); n2.setCoor(new LatLon(20, 30));
+        w2.setNodes(Arrays.asList(n1));
+        w3.setNodes(Arrays.asList(n1, n2, n3));
+
+        qbNodes.add(n1);
+        qbNodes.add(n2);
+        Assert.assertEquals(2, qbNodes.size());
+        Assert.assertTrue(qbNodes.contains(n1));
+        Assert.assertTrue(qbNodes.contains(n2));
+        Assert.assertFalse(qbNodes.contains(n3));
+        qbNodes.remove(n1);
+        Assert.assertEquals(1, qbNodes.size());
+        Assert.assertFalse(qbNodes.contains(n1));
+        Assert.assertTrue(qbNodes.contains(n2));
+        qbNodes.remove(n2);
+        Assert.assertEquals(0, qbNodes.size());
+        Assert.assertFalse(qbNodes.contains(n1));
+        Assert.assertFalse(qbNodes.contains(n2));
+
+        qbNodes.addAll(Arrays.asList(n1, n2, n3));
+        qbNodes.removeAll(Arrays.asList(n1, n3));
+        Assert.assertEquals(1, qbNodes.size());
+        Assert.assertTrue(qbNodes.contains(n2));
+
+        qbWays.add(w1);
+        qbWays.add(w2);
+        qbWays.add(w3);
+        Assert.assertEquals(3, qbWays.size());
+        Assert.assertTrue(qbWays.contains(w1));
+        Assert.assertTrue(qbWays.contains(w2));
+        Assert.assertTrue(qbWays.contains(w3));
+        qbWays.remove(w1);
+        Assert.assertEquals(2, qbWays.size());
+        Assert.assertFalse(qbWays.contains(w1));
+        Assert.assertTrue(qbWays.contains(w2));
+        Assert.assertTrue(qbWays.contains(w3));
+        qbWays.remove(w2);
+        Assert.assertEquals(1, qbWays.size());
+        Assert.assertFalse(qbWays.contains(w1));
+        Assert.assertFalse(qbWays.contains(w2));
+        Assert.assertTrue(qbWays.contains(w3));
+        qbWays.remove(w3);
+        Assert.assertEquals(0, qbWays.size());
+        Assert.assertFalse(qbWays.contains(w1));
+        Assert.assertFalse(qbWays.contains(w2));
+        Assert.assertFalse(qbWays.contains(w3));
+
+        qbWays.clear();
+        Assert.assertEquals(0, qbWays.size());
+        List<Way> allWays = new ArrayList<>(Arrays.asList(w1, w2, w3));
+        qbWays.addAll(allWays);
+        Assert.assertEquals(3, qbWays.size());
+        int count = 0;
+        for (Way w : qbWays) {
+            Assert.assertTrue(allWays.contains(w));
+            count++;
+        }
+        Assert.assertEquals(3, count);
+        // test remove with iterator
+        Iterator<Way> iter = qbWays.iterator();
+        while (iter.hasNext()) {
+            iter.next();
+            iter.remove();
+            count--;
+            Assert.assertEquals(count, qbWays.size());
+        }
+        Assert.assertEquals(0, qbWays.size());
+    }
 }
diff --git a/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java b/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java
index f0473ad..40f253a 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java
@@ -6,20 +6,21 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 public class RelationTest {
 
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test(expected = NullPointerException.class)
     public void testCreateNewRelation() {
diff --git a/test/unit/org/openstreetmap/josm/data/osm/WaySegmentTest.java b/test/unit/org/openstreetmap/josm/data/osm/WaySegmentTest.java
index b360337..1fbf035 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/WaySegmentTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/WaySegmentTest.java
@@ -4,10 +4,12 @@ package org.openstreetmap.josm.data.osm;
 import java.util.Arrays;
 
 import org.junit.Assert;
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of the {@code WaySegment} class.
@@ -17,10 +19,9 @@ public class WaySegmentTest {
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test
     public void testForNodePair() throws Exception {
diff --git a/test/unit/org/openstreetmap/josm/data/osm/history/HistoryNodeTest.java b/test/unit/org/openstreetmap/josm/data/osm/history/HistoryNodeTest.java
index ded9a3a..836bd61 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/history/HistoryNodeTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/history/HistoryNodeTest.java
@@ -8,14 +8,16 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link HistoryNode}.
@@ -25,10 +27,9 @@ public class HistoryNodeTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static HistoryNode create(Date d) {
         return new HistoryNode(
diff --git a/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java b/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java
index 6730f11..16e44a7 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java
@@ -8,13 +8,15 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.RelationMemberData;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link HistoryRelation}.
@@ -24,10 +26,9 @@ public class HistoryRelationTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static HistoryRelation create(Date d) {
         return new HistoryRelation(
diff --git a/test/unit/org/openstreetmap/josm/data/osm/history/HistoryWayTest.java b/test/unit/org/openstreetmap/josm/data/osm/history/HistoryWayTest.java
index 8d2cb8a..df581b8 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/history/HistoryWayTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/history/HistoryWayTest.java
@@ -10,13 +10,15 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link HistoryWay}.
@@ -26,10 +28,9 @@ public class HistoryWayTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static HistoryWay create(Date d) {
         return new HistoryWay(
diff --git a/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java b/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java
index 8b2097a..79ff4f7 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java
@@ -8,9 +8,8 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -20,6 +19,9 @@ import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link MergeSourceBuildingVisitor}.
@@ -39,10 +41,9 @@ public class MergeSourceBuildingVisitorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test
     public void testNodes() {
diff --git a/test/unit/org/openstreetmap/josm/data/preferences/ColorPropertyTest.java b/test/unit/org/openstreetmap/josm/data/preferences/ColorPropertyTest.java
new file mode 100644
index 0000000..0f1b319
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/preferences/ColorPropertyTest.java
@@ -0,0 +1,82 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.preferences;
+
+import static org.junit.Assert.assertEquals;
+
+import java.awt.Color;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Test {@link ColorProperty}
+ * @author Michael Zangl
+ */
+public class ColorPropertyTest {
+    /**
+     * This is a preference test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+    private ColorProperty base;
+
+    /**
+     * Set up test case
+     */
+    @Before
+    public void createTestProperty() {
+        base = new ColorProperty("test", Color.RED);
+    }
+
+    /**
+     * Test {@link ColorProperty#get()}
+     */
+    @Test
+    public void testGet() {
+        assertEquals(Color.RED, base.get());
+
+        Main.pref.put("color.test", "#00ff00");
+        assertEquals(new Color(0xff00ff00), base.get());
+    }
+
+    /**
+     * Test {@link ColorProperty#put}
+     */
+    @Test
+    public void testPut() {
+        assertEquals(Color.RED, base.get());
+
+        base.put(new Color(0xff00ff00));
+        assertEquals(new Color(0xff00ff00), base.get());
+        assertEquals("#00ff00", Main.pref.get("color.test").toLowerCase());
+
+        base.put(null);
+        assertEquals(Color.RED, base.get());
+    }
+
+    /**
+     * Test {@link ColorProperty#getChildColor(String)}
+     */
+    @Test
+    public void testGetChildColor() {
+        AbstractToStringProperty<Color> child = base.getChildColor("test2");
+
+        assertEquals(Color.RED, child.get());
+
+        base.put(Color.GREEN);
+        assertEquals(Color.GREEN, child.get());
+
+        child.put(Color.YELLOW);
+        assertEquals(Color.YELLOW, child.get());
+        assertEquals(Color.GREEN, base.get());
+
+        child.put(null);
+        assertEquals(Color.GREEN, child.get());
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/preferences/StrokePropertyTest.java b/test/unit/org/openstreetmap/josm/data/preferences/StrokePropertyTest.java
new file mode 100644
index 0000000..55b4754
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/preferences/StrokePropertyTest.java
@@ -0,0 +1,108 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.preferences;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+import java.awt.BasicStroke;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Test {@link StrokeProperty}
+ * @author Michael Zangl
+ */
+public class StrokePropertyTest {
+    /**
+     * This is a preference test
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Test {@link StrokeProperty#get()}
+     */
+    @Test
+    public void testGetValue() {
+        StrokeProperty property = new StrokeProperty("x", "1");
+
+        Main.pref.put("x", "11");
+        BasicStroke bs = property.get();
+        assertWide(bs);
+        assertEquals(11, bs.getLineWidth(), 1e-10);
+        assertEquals(null, bs.getDashArray());
+
+        Main.pref.put("x", ".5");
+        bs = property.get();
+        assertThin(bs);
+        assertEquals(.5, bs.getLineWidth(), 1e-10);
+        assertEquals(null, bs.getDashArray());
+
+        Main.pref.put("x", "2 1");
+        bs = property.get();
+        assertWide(bs);
+        assertEquals(2, bs.getLineWidth(), 1e-10);
+        assertArrayEquals(new float[] {1}, bs.getDashArray(), 1e-10f);
+
+        Main.pref.put("x", "2 0.1 1 10");
+        bs = property.get();
+        assertWide(bs);
+        assertEquals(2, bs.getLineWidth(), 1e-10);
+        assertArrayEquals(new float[] {0.1f, 1, 10}, bs.getDashArray(), 1e-10f);
+
+        Main.pref.put("x", "x");
+        bs = property.get();
+        assertThin(bs);
+        assertEquals(1, bs.getLineWidth(), 1e-10);
+        assertEquals(null, bs.getDashArray());
+
+        // ignore dashes
+        Main.pref.put("x", "11 0 0 0.0001");
+        bs = property.get();
+        assertWide(bs);
+        assertEquals(11, bs.getLineWidth(), 1e-10);
+        assertEquals(null, bs.getDashArray());
+    }
+
+    /**
+     * Test {@link StrokeProperty#put(BasicStroke)}
+     */
+    @Test
+    public void testPutValue() {
+        StrokeProperty property = new StrokeProperty("x", new BasicStroke(12));
+        BasicStroke bs = property.get();
+
+        assertWide(bs);
+        assertEquals(12, bs.getLineWidth(), 1e-10);
+        assertEquals(null, bs.getDashArray());
+
+        property.put(new BasicStroke(2, 0, 0, 1, new float[] {0.1f, 1, 10}, 0));
+        bs = property.get();
+        assertWide(bs);
+        assertEquals(2, bs.getLineWidth(), 1e-10);
+        assertArrayEquals(new float[] {0.1f, 1, 10}, bs.getDashArray(), 1e-10f);
+    }
+
+    private static void assertThin(BasicStroke bs) {
+        assertBase(bs);
+        assertEquals(BasicStroke.CAP_BUTT, bs.getEndCap());
+        assertEquals(BasicStroke.JOIN_MITER, bs.getLineJoin());
+    }
+
+    private static void assertWide(BasicStroke bs) {
+        assertBase(bs);
+        assertEquals(BasicStroke.CAP_ROUND, bs.getEndCap());
+        assertEquals(BasicStroke.JOIN_ROUND, bs.getLineJoin());
+    }
+
+    private static void assertBase(BasicStroke bs) {
+        assertEquals(10, bs.getMiterLimit(), 1e-10);
+        assertEquals(0, bs.getDashPhase(), 1e-10);
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/projection/CustomProjectionTest.java b/test/unit/org/openstreetmap/josm/data/projection/CustomProjectionTest.java
new file mode 100644
index 0000000..d580f31
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/projection/CustomProjectionTest.java
@@ -0,0 +1,73 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.projection;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.stream.Stream;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Tests for {@link CustomProjection}.
+ * @author Michael Zangl
+ */
+public class CustomProjectionTest {
+    /**
+     * Need pref to load pref.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Test {@link CustomProjection#parseAngle(String, String)}
+     * @throws ProjectionConfigurationException in case of error
+     */
+    @Test
+    public void testParseAngle() throws ProjectionConfigurationException {
+        assertEquals(0, CustomProjection.parseAngle("0", "xxx"), 1e-10);
+        assertEquals(1, CustomProjection.parseAngle("1", "xxx"), 1e-10);
+        assertEquals(1.1, CustomProjection.parseAngle("1.1", "xxx"), 1e-10);
+
+        assertEquals(1, CustomProjection.parseAngle("1d", "xxx"), 1e-10);
+        assertEquals(1.1, CustomProjection.parseAngle("1.1d", "xxx"), 1e-10);
+
+        assertEquals(1 / 60.0, CustomProjection.parseAngle("1'", "xxx"), 1e-10);
+        assertEquals(1.1 / 60.0, CustomProjection.parseAngle("1.1'", "xxx"), 1e-10);
+
+        assertEquals(1 / 3600.0, CustomProjection.parseAngle("1\"", "xxx"), 1e-10);
+        assertEquals(1.1 / 3600.0, CustomProjection.parseAngle("1.1\"", "xxx"), 1e-10);
+
+        // negate
+        assertEquals(-1.1, CustomProjection.parseAngle("-1.1", "xxx"), 1e-10);
+        assertEquals(1.1, CustomProjection.parseAngle("1.1N", "xxx"), 1e-10);
+        assertEquals(1.1, CustomProjection.parseAngle("1.1E", "xxx"), 1e-10);
+        assertEquals(-1.1, CustomProjection.parseAngle("1.1S", "xxx"), 1e-10);
+        assertEquals(-1.1, CustomProjection.parseAngle("1.1W", "xxx"), 1e-10);
+        assertEquals(-1.1, CustomProjection.parseAngle("-1.1N", "xxx"), 1e-10);
+        assertEquals(-1.1, CustomProjection.parseAngle("-1.1E", "xxx"), 1e-10);
+        assertEquals(1.1, CustomProjection.parseAngle("-1.1S", "xxx"), 1e-10);
+        assertEquals(1.1, CustomProjection.parseAngle("-1.1W", "xxx"), 1e-10);
+
+        // combine
+        assertEquals(1.1 + 3 / 60.0 + 5.2 / 3600.0, CustomProjection.parseAngle("1.1d3'5.2\"", "xxx"), 1e-10);
+
+        // fail
+        Stream.of("", "-", "-N", "N", "1.1 ", "x", "1.1d1.1d", "1.1e", "1.1.1", ".1", "1.1d3\"5.2'").forEach(
+                s -> {
+                    try {
+                        CustomProjection.parseAngle(s, "xxxx");
+                        fail("Expected exception for " + s);
+                    } catch (ProjectionConfigurationException e) {
+                        // good!
+                        assertTrue(e.getMessage().contains("xxx"));
+                    }
+                });
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/projection/ShiftedProjectionTest.java b/test/unit/org/openstreetmap/josm/data/projection/ShiftedProjectionTest.java
new file mode 100644
index 0000000..8a2b625
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/data/projection/ShiftedProjectionTest.java
@@ -0,0 +1,148 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.projection;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
+import org.openstreetmap.josm.data.ProjectionBounds;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+
+/**
+ * Tests for {@link ShiftedProjecting}
+ * @author Michael Zangl
+ */
+public class ShiftedProjectionTest {
+    private static final class ProjectingBase implements Projecting {
+        @Override
+        public EastNorth latlon2eastNorth(LatLon ll) {
+            return new EastNorth(ll.lat() * 2, ll.lon() * 3);
+        }
+
+        @Override
+        public Map<ProjectionBounds, Projecting> getProjectingsForArea(ProjectionBounds area) {
+            HashMap<ProjectionBounds, Projecting> map = new HashMap<>();
+            // split at east = 0
+            if (area.minEast < 0) {
+                map.put(new ProjectionBounds(area.minEast, area.minNorth, Math.min(area.maxEast, 0), area.maxNorth), this);
+            }
+            if (area.maxEast > 0) {
+                map.put(new ProjectionBounds(Math.max(area.minEast, 0), area.minNorth, area.maxEast, area.maxNorth), this);
+            }
+
+            return map;
+        }
+
+        @Override
+        public Projection getBaseProjection() {
+            throw new AssertionError();
+        }
+
+        @Override
+        public LatLon eastNorth2latlonClamped(EastNorth en) {
+            return new LatLon(en.east() / 2, en.north() / 3);
+        }
+    }
+
+    /**
+     * Test {@link ShiftedProjecting#latlon2eastNorth(LatLon)}
+     */
+    @Test
+    public void testLatlon2eastNorth() {
+        Projecting base = new ProjectingBase();
+
+        ShiftedProjecting unshifted = new ShiftedProjecting(base, new EastNorth(0, 0));
+        EastNorth unshift_00 = unshifted.latlon2eastNorth(new LatLon(0, 0));
+        assertEquals(0, unshift_00.east(), 1e-10);
+        assertEquals(0, unshift_00.north(), 1e-10);
+        EastNorth unshift_12 = unshifted.latlon2eastNorth(new LatLon(1, 2));
+        assertEquals(2, unshift_12.east(), 1e-10);
+        assertEquals(6, unshift_12.north(), 1e-10);
+
+        ShiftedProjecting shifted = new ShiftedProjecting(base, new EastNorth(5, 7));
+        EastNorth shift_00 = shifted.latlon2eastNorth(new LatLon(0, 0));
+        assertEquals(5, shift_00.east(), 1e-10);
+        assertEquals(7, shift_00.north(), 1e-10);
+        EastNorth shift_12 = shifted.latlon2eastNorth(new LatLon(1, 2));
+        assertEquals(2 + 5, shift_12.east(), 1e-10);
+        assertEquals(6 + 7, shift_12.north(), 1e-10);
+    }
+
+    /**
+     * Test {@link ShiftedProjecting#eastNorth2latlonClamped(EastNorth)}
+     */
+    @Test
+    public void testEastNorth2latlonClamped() {
+        Projecting base = new ProjectingBase();
+
+        ShiftedProjecting unshifted = new ShiftedProjecting(base, new EastNorth(0, 0));
+        LatLon unshift_00 = unshifted.eastNorth2latlonClamped(new EastNorth(0, 0));
+        assertEquals(0, unshift_00.lat(), 1e-10);
+        assertEquals(0, unshift_00.lon(), 1e-10);
+        LatLon unshift_12 = unshifted.eastNorth2latlonClamped(new EastNorth(2, 6));
+        assertEquals(1, unshift_12.lat(), 1e-10);
+        assertEquals(2, unshift_12.lon(), 1e-10);
+
+        ShiftedProjecting shifted = new ShiftedProjecting(base, new EastNorth(5, 7));
+        LatLon shift_00 = shifted.eastNorth2latlonClamped(new EastNorth(5, 7));
+        assertEquals(0, shift_00.lat(), 1e-10);
+        assertEquals(0, shift_00.lon(), 1e-10);
+        LatLon shift_12 = shifted.eastNorth2latlonClamped(new EastNorth(2 + 5, 6 + 7));
+        assertEquals(1, shift_12.lat(), 1e-10);
+        assertEquals(2, shift_12.lon(), 1e-10);
+    }
+
+    /**
+     * Test {@link ShiftedProjecting#getProjectingsForArea(ProjectionBounds)}, single area case
+     */
+    @Test
+    public void testGetProjectingsForArea() {
+        Projecting base = new ProjectingBase();
+        ShiftedProjecting shifted = new ShiftedProjecting(base, new EastNorth(5, 7));
+
+        ProjectionBounds area = new ProjectionBounds(10, 0, 20, 20);
+
+        Map<ProjectionBounds, Projecting> areas = shifted.getProjectingsForArea(area);
+        assertEquals(1, areas.size());
+        ProjectionBounds pb = areas.keySet().iterator().next();
+        assertEquals(area.minEast, pb.minEast, 1e-7);
+        assertEquals(area.maxEast, pb.maxEast, 1e-7);
+        assertEquals(area.minNorth, pb.minNorth, 1e-7);
+        assertEquals(area.maxNorth, pb.maxNorth, 1e-7);
+    }
+
+    /**
+     * Test {@link ShiftedProjecting#getProjectingsForArea(ProjectionBounds)}, multiple area case
+     */
+    @Test
+    public void testGetProjectingsForAreaMultiple() {
+        Projecting base = new ProjectingBase();
+        ShiftedProjecting shifted = new ShiftedProjecting(base, new EastNorth(5, 7));
+
+        ProjectionBounds area = new ProjectionBounds(-10, 0, 20, 20);
+
+        // breach is at:
+        EastNorth breachAt = shifted.latlon2eastNorth(base.eastNorth2latlonClamped(new EastNorth(0, 0)));
+        assertEquals(5, breachAt.east(), 1e-7);
+
+        Map<ProjectionBounds, Projecting> areas = shifted.getProjectingsForArea(area);
+        assertEquals(2, areas.size());
+        List<Entry<ProjectionBounds, Projecting>> entries = areas.entrySet().stream()
+                .sorted(Comparator.comparingDouble(b -> b.getKey().minEast)).collect(Collectors.toList());
+        assertEquals(area.minEast, entries.get(0).getKey().minEast, 1e-7);
+        assertEquals(5, entries.get(0).getKey().maxEast, 1e-7);
+        assertEquals(area.minNorth, entries.get(0).getKey().minNorth, 1e-7);
+        assertEquals(area.maxNorth, entries.get(0).getKey().maxNorth, 1e-7);
+        assertEquals(5, entries.get(1).getKey().minEast, 1e-7);
+        assertEquals(area.maxEast, entries.get(1).getKey().maxEast, 1e-7);
+        assertEquals(area.minNorth, entries.get(1).getKey().minNorth, 1e-7);
+        assertEquals(area.maxNorth, entries.get(1).getKey().maxNorth, 1e-7);
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java
index 2a8856d..6c73700 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java
@@ -3,13 +3,15 @@ package org.openstreetmap.josm.data.validation.tests;
 
 import static org.junit.Assert.assertEquals;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * JUnit Test of "Duplicate node" validation test.
@@ -19,10 +21,9 @@ public class DuplicateNodeTest {
     /**
      * Setup test by initializing JOSM preferences and projection.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of "Duplicate node" validation test.
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/InternetTagsTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/InternetTagsTest.java
index b42f284..e5b0ed6 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/InternetTagsTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/InternetTagsTest.java
@@ -4,30 +4,30 @@ package org.openstreetmap.josm.data.validation.tests;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.OsmUtils;
 import org.openstreetmap.josm.data.validation.TestError;
 import org.openstreetmap.josm.data.validation.routines.AbstractValidator;
 import org.openstreetmap.josm.data.validation.routines.EmailValidator;
 import org.openstreetmap.josm.data.validation.routines.UrlValidator;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * JUnit Test of "Internet Tags" validation test.
  */
 public class InternetTagsTest {
 
-    private static InternetTags TEST;
+    private static final InternetTags TEST = new InternetTags();
 
     /**
      * Setup test by initializing JOSM preferences and projection.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-        TEST = new InternetTags();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of valid URLs.
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/LongSegmentTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/LongSegmentTest.java
index da1c6fe..a7679d4 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/LongSegmentTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/LongSegmentTest.java
@@ -3,12 +3,14 @@ package org.openstreetmap.josm.data.validation.tests;
 
 import static org.junit.Assert.assertEquals;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * JUnit Test of "Long Segment" validation test.
@@ -18,10 +20,9 @@ public class LongSegmentTest {
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static int test(Way w) throws Exception {
         LongSegment test = new LongSegment();
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerTest.java
index c924657..0c060af 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerTest.java
@@ -13,9 +13,8 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.ChangePropertyKeyCommand;
@@ -30,6 +29,9 @@ import org.openstreetmap.josm.data.validation.TestError;
 import org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.ParseResult;
 import org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.TagCheck;
 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.ParseException;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * JUnit Test of {@link MapCSSTagChecker}.
@@ -39,10 +41,9 @@ public class MapCSSTagCheckerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     static MapCSSTagChecker buildTagChecker(String css) throws ParseException {
         final MapCSSTagChecker test = new MapCSSTagChecker();
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/MultipolygonTestTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/MultipolygonTestTest.java
index efafab1..63ba4e0 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/MultipolygonTestTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/MultipolygonTestTest.java
@@ -14,9 +14,8 @@ import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmUtils;
@@ -25,8 +24,10 @@ import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.validation.TestError;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
 import org.openstreetmap.josm.gui.mappaint.ElemStyles;
-import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * JUnit Test of Multipolygon validation test.
@@ -38,13 +39,10 @@ public class MultipolygonTestTest {
 
     /**
      * Setup test.
-     * @throws Exception if test cannot be initialized
      */
-    @BeforeClass
-    public static void setUp() throws Exception {
-        JOSMFixture.createUnitTestFixture().init(true);
-        MapPaintStyles.readFromPreferences();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().commands();
 
     private static Way createUnclosedWay(String tags) {
         List<Node> nodes = new ArrayList<>();
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/NameMismatchTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/NameMismatchTest.java
index d052895..f611564 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/NameMismatchTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/NameMismatchTest.java
@@ -5,11 +5,13 @@ import static org.junit.Assert.assertEquals;
 
 import java.util.List;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.OsmUtils;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * JUnit Test of "Name mismatch" validation test.
@@ -19,10 +21,9 @@ public class NameMismatchTest {
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     List<TestError> test(String primitive) {
         final NameMismatch test = new NameMismatch();
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/PublicTransportRouteTestTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/PublicTransportRouteTestTest.java
index 0839bb2..b10df18 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/PublicTransportRouteTestTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/PublicTransportRouteTestTest.java
@@ -6,14 +6,16 @@ import static org.junit.Assert.assertEquals;
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * JUnit Test of "Public Transport Route" validation test.
@@ -25,10 +27,9 @@ public class PublicTransportRouteTestTest {
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules rules = new JOSMTestRules();
 
     /**
      * Performs various tests.
diff --git a/test/unit/org/openstreetmap/josm/data/validation/tests/UntaggedNodeTest.java b/test/unit/org/openstreetmap/josm/data/validation/tests/UntaggedNodeTest.java
index 5f55274..135573d 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/tests/UntaggedNodeTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/tests/UntaggedNodeTest.java
@@ -7,29 +7,29 @@ import static org.junit.Assert.assertThat;
 
 import java.io.InputStream;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@code UntaggedNode} class.
  */
 public class UntaggedNodeTest {
 
-    private UntaggedNode test;
+    private final UntaggedNode test = new UntaggedNode();
 
     /**
      * Setup test.
      */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-        test = new UntaggedNode();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules rules = new JOSMTestRules();
 
     /**
      * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/12436">Bug #12436</a>.
diff --git a/test/unit/org/openstreetmap/josm/data/validation/util/MultipleNameVisitorTest.java b/test/unit/org/openstreetmap/josm/data/validation/util/MultipleNameVisitorTest.java
index 919b8ed..de37523 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/util/MultipleNameVisitorTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/util/MultipleNameVisitorTest.java
@@ -5,10 +5,12 @@ import static org.junit.Assert.assertEquals;
 
 import java.util.Arrays;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests for class {@link MultipleNameVisitor}.
@@ -18,10 +20,9 @@ public class MultipleNameVisitorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Non-regression test for bug #11967.
diff --git a/test/unit/org/openstreetmap/josm/gui/JosmUserIdentityManagerTest.groovy b/test/unit/org/openstreetmap/josm/gui/JosmUserIdentityManagerTest.groovy
index 523941e..90df07b 100644
--- a/test/unit/org/openstreetmap/josm/gui/JosmUserIdentityManagerTest.groovy
+++ b/test/unit/org/openstreetmap/josm/gui/JosmUserIdentityManagerTest.groovy
@@ -27,9 +27,6 @@ class JosmUserIdentityManagerTest {
         // created ?
         assert im != null
 
-        // registered as listener ?
-        assert Main.pref. at listeners.contains(im)
-
         JosmUserIdentityManager im2 = JosmUserIdentityManager.getInstance()
 
         // only one instance
@@ -244,9 +241,6 @@ class JosmUserIdentityManagerTest {
     public void apiUrlChanged() {
         JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
 
-        // make sure im is a preference change listener
-        Main.pref.addPreferenceChangeListener im
-
         // reset it
         im. at userName = null
         im. at userInfo = null
@@ -289,9 +283,6 @@ class JosmUserIdentityManagerTest {
     public void userNameChanged() {
         JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
 
-        // make sure im is a preference change listener
-        Main.pref.addPreferenceChangeListener im
-
         // reset it
         im. at userName = null
         im. at userInfo = null
diff --git a/test/unit/org/openstreetmap/josm/gui/MapViewStateTest.java b/test/unit/org/openstreetmap/josm/gui/MapViewStateTest.java
index 5481d08..165a384 100644
--- a/test/unit/org/openstreetmap/josm/gui/MapViewStateTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/MapViewStateTest.java
@@ -6,6 +6,7 @@ import static org.junit.Assert.assertEquals;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
 import java.util.Arrays;
+import java.util.function.Function;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -15,6 +16,7 @@ import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
+import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle;
 
 /**
  * Test {@link MapViewState}
@@ -22,7 +24,7 @@ import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
  */
 public class MapViewStateTest {
 
-    private static final int WIDTH = 300;
+    private static final int WIDTH = 301;
     private static final int HEIGHT = 200;
     private MapViewState state;
 
@@ -42,26 +44,38 @@ public class MapViewStateTest {
         state = MapViewState.createDefaultState(WIDTH, HEIGHT);
     }
 
-    /**
-     * Test {@link MapViewState#getCenter()} returns map view center.
-     */
-    @Test
-    public void testGetCenter() {
-        MapViewPoint center = state.getCenter();
-        assertHasViewCoords(WIDTH / 2, HEIGHT / 2, center);
+    private void doTestGetCenter(Function<MapViewState, MapViewPoint> getter, Function<Integer, Double> divider) {
+        MapViewPoint center = getter.apply(state);
+        assertHasViewCoords(divider.apply(WIDTH), divider.apply(HEIGHT), center);
 
         MapViewState newState = state.movedTo(center, new EastNorth(3, 4));
 
         // state should not change, but new state should.
-        center = state.getCenter();
-        assertHasViewCoords(WIDTH / 2, HEIGHT / 2, center);
+        center = getter.apply(state);
+        assertHasViewCoords(divider.apply(WIDTH), divider.apply(HEIGHT), center);
 
-        center = newState.getCenter();
+        center = getter.apply(newState);
         assertEquals("east", 3, center.getEastNorth().east(), 0.01);
         assertEquals("north", 4, center.getEastNorth().north(), 0.01);
     }
 
-    private void assertHasViewCoords(double x, double y, MapViewPoint center) {
+    /**
+     * Test {@link MapViewState#getCenter()} returns map view center.
+     */
+    @Test
+    public void testGetCenter() {
+        doTestGetCenter(s -> s.getCenter(), t -> t / 2d);
+    }
+
+    /**
+     * Test {@link MapViewState#getCenterAtPixel()} returns map view center.
+     */
+    @Test
+    public void testGetCenterAtPixel() {
+        doTestGetCenter(s -> s.getCenterAtPixel(), t -> (double) (t / 2));
+    }
+
+    private static void assertHasViewCoords(double x, double y, MapViewPoint center) {
         assertEquals("x", x, center.getInViewX(), 0.01);
         assertEquals("y", y, center.getInViewY(), 0.01);
         assertEquals("x", x, center.getInView().getX(), 0.01);
@@ -100,8 +114,8 @@ public class MapViewStateTest {
      */
     @Test
     public void testPointConversions() {
-        MapViewPoint p = state.getForView(WIDTH / 2, HEIGHT / 2);
-        assertHasViewCoords(WIDTH / 2, HEIGHT / 2, p);
+        MapViewPoint p = state.getForView(WIDTH / 2d, HEIGHT / 2d);
+        assertHasViewCoords(WIDTH / 2d, HEIGHT / 2d, p);
 
         EastNorth eastnorth = p.getEastNorth();
         LatLon shouldLatLon = Main.getProjection().getWorldBoundsLatLon().getCenter();
@@ -109,7 +123,7 @@ public class MapViewStateTest {
         assertEquals("east", shouldEastNorth.east(), eastnorth.east(), 0.01);
         assertEquals("north", shouldEastNorth.north(), eastnorth.north(), 0.01);
         MapViewPoint reversed = state.getPointFor(shouldEastNorth);
-        assertHasViewCoords(WIDTH / 2, HEIGHT / 2, reversed);
+        assertHasViewCoords(WIDTH / 2d, HEIGHT / 2d, reversed);
 
         LatLon latlon = p.getLatLon();
         assertEquals("lat", shouldLatLon.lat(), latlon.lat(), 0.01);
@@ -137,6 +151,62 @@ public class MapViewStateTest {
     }
 
     /**
+     * Test {@link MapViewState#OUTSIDE_BOTTOM} and similar constants.
+     */
+    @Test
+    public void testOutsideFlags() {
+        assertEquals(1, Integer.bitCount(MapViewState.OUTSIDE_BOTTOM));
+        assertEquals(1, Integer.bitCount(MapViewState.OUTSIDE_TOP));
+        assertEquals(1, Integer.bitCount(MapViewState.OUTSIDE_LEFT));
+        assertEquals(1, Integer.bitCount(MapViewState.OUTSIDE_RIGHT));
+        assertEquals(4, Integer.bitCount(MapViewState.OUTSIDE_BOTTOM | MapViewState.OUTSIDE_TOP
+                | MapViewState.OUTSIDE_LEFT | MapViewState.OUTSIDE_RIGHT));
+    }
+
+    /**
+     * Test {@link MapViewPoint#getOutsideRectangleFlags(MapViewRectangle)}
+     */
+    @Test
+    public void testPointGetOutsideRectangleFlags() {
+        MapViewRectangle rect = state.getForView(0, 0).rectTo(state.getForView(10, 10));
+        assertEquals(0, state.getForView(1, 1).getOutsideRectangleFlags(rect));
+        assertEquals(0, state.getForView(1, 5).getOutsideRectangleFlags(rect));
+        assertEquals(0, state.getForView(9, 1).getOutsideRectangleFlags(rect));
+        assertEquals(0, state.getForView(10 - 1e-10, 1e-10).getOutsideRectangleFlags(rect));
+        assertEquals(0, state.getForView(10 - 1e-10, 10 - 1e-10).getOutsideRectangleFlags(rect));
+
+
+        assertEquals(MapViewState.OUTSIDE_TOP, state.getForView(1, -11).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_TOP, state.getForView(1, -1e20).getOutsideRectangleFlags(rect));
+
+        assertEquals(MapViewState.OUTSIDE_BOTTOM, state.getForView(1, 11).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_BOTTOM, state.getForView(1, 1e20).getOutsideRectangleFlags(rect));
+
+        assertEquals(MapViewState.OUTSIDE_LEFT, state.getForView(-11, 1).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_LEFT, state.getForView(-1e20, 1).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_RIGHT, state.getForView(11, 1).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_RIGHT, state.getForView(1e20, 1).getOutsideRectangleFlags(rect));
+
+        assertEquals(MapViewState.OUTSIDE_RIGHT | MapViewState.OUTSIDE_TOP, state.getForView(11, -11).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_RIGHT | MapViewState.OUTSIDE_BOTTOM, state.getForView(11, 11).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_LEFT | MapViewState.OUTSIDE_TOP, state.getForView(-11, -11).getOutsideRectangleFlags(rect));
+        assertEquals(MapViewState.OUTSIDE_LEFT | MapViewState.OUTSIDE_BOTTOM, state.getForView(-11, 11).getOutsideRectangleFlags(rect));
+    }
+
+    /**
+     * Test {@link MapViewPoint#oneNormInView(MapViewPoint)}
+     */
+    @Test
+    public void testPointOneNormInView() {
+        MapViewPoint p = state.getForView(5, 15);
+        assertEquals(0, p.oneNormInView(p), 1e-10);
+        assertEquals(6, p.oneNormInView(state.getForView(-1, 15)), 1e-10);
+        assertEquals(5, p.oneNormInView(state.getForView(5, 20)), 1e-10);
+        assertEquals(22, p.oneNormInView(state.getForView(-1, -1)), 1e-10);
+        assertEquals(40, p.oneNormInView(state.getForView(30, 30)), 1e-10);
+    }
+
+    /**
      * Test {@link MapViewState.MapViewViewPoint#toString()} and {@link MapViewState.MapViewEastNorthPoint#toString()}
      */
     @Test
diff --git a/test/unit/org/openstreetmap/josm/gui/TableCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/TableCellRendererTest.java
index 924c1c8..01454f7 100644
--- a/test/unit/org/openstreetmap/josm/gui/TableCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/TableCellRendererTest.java
@@ -1,8 +1,9 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui;
 
+import static org.junit.Assert.assertNotNull;
+
 import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
 import java.util.Collection;
@@ -52,9 +53,12 @@ public class TableCellRendererTest {
 
     /**
      * Unit test of all table cell renderers against null values.
+     * @throws NoSuchMethodException no default constructor - to fix this, add a default constructor to the class
+     *                               or add the class to the SKIP_TEST list above
+     * @throws ReflectiveOperationException if an error occurs
      */
     @Test
-    public void testTableCellRenderer() {
+    public void testTableCellRenderer() throws ReflectiveOperationException {
         Reflections reflections = new Reflections("org.openstreetmap.josm");
         Set<Class<? extends TableCellRenderer>> renderers = reflections.getSubTypesOf(TableCellRenderer.class);
         Assert.assertTrue(renderers.size() >= 10); // if it finds less than 10 classes, something is broken
@@ -66,13 +70,7 @@ public class TableCellRendererTest {
             if (klass.isAnonymousClass()) {
                 continue;
             }
-            TableCellRenderer tcr = createInstance(klass);
-            try {
-                tcr.getTableCellRendererComponent(tbl, null, false, false, 0, 0);
-            } catch (NullPointerException npe) {
-                npe.printStackTrace();
-                Assert.fail("NPE in getTableCellRendererComponent");
-            }
+            assertNotNull(createInstance(klass).getTableCellRendererComponent(tbl, null, false, false, 0, 0));
         }
     }
 
@@ -81,37 +79,23 @@ public class TableCellRendererTest {
      * @param <T> the class or a super-type of the class
      * @param klass the class
      * @return an instance of the class
+     * @throws NoSuchMethodException no default constructor - to fix this, add a default constructor to the class
+     *                               or add the class to the SKIP_TEST list above
+     * @throws ReflectiveOperationException if an error occurs
      */
-    private static <T> T createInstance(Class<? extends T> klass) {
+    private static <T> T createInstance(Class<? extends T> klass) throws ReflectiveOperationException {
         boolean needOuterClass = klass.isMemberClass() && !Modifier.isStatic(klass.getModifiers());
         Constructor<? extends T> c;
-        try {
-            if (needOuterClass) {
-                c = klass.getDeclaredConstructor(klass.getDeclaringClass());
-            } else {
-                c = klass.getDeclaredConstructor();
-            }
-        } catch (NoSuchMethodException ex) {
-            // no default constructor - to fix this, add a default constructor
-            // to the class or add the class to the SKIP_TEST list above
-            Assert.fail("No default constructor - cannot test TableCellRenderer: " + ex);
-            return null;
-        } catch (SecurityException ex) {
-            throw new RuntimeException(ex);
+        if (needOuterClass) {
+            c = klass.getDeclaredConstructor(klass.getDeclaringClass());
+        } else {
+            c = klass.getDeclaredConstructor();
         }
         Utils.setObjectsAccessible(c);
-        T o;
-        try {
-            if (needOuterClass) {
-                Object outerInstance = createInstance(klass.getDeclaringClass());
-                o = c.newInstance(outerInstance);
-            } else {
-                o = c.newInstance();
-            }
-        } catch (InstantiationException | IllegalArgumentException | IllegalAccessException | InvocationTargetException ex) {
-            throw new RuntimeException(ex);
+        if (needOuterClass) {
+            return c.newInstance(createInstance(klass.getDeclaringClass()));
+        } else {
+            return c.newInstance();
         }
-        return o;
     }
-
 }
diff --git a/test/unit/org/openstreetmap/josm/gui/bbox/SizeButtonTest.java b/test/unit/org/openstreetmap/josm/gui/bbox/SizeButtonTest.java
index 7a671c7..bcac79a 100644
--- a/test/unit/org/openstreetmap/josm/gui/bbox/SizeButtonTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/bbox/SizeButtonTest.java
@@ -5,11 +5,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.bbox.SizeButton.AccessibleSizeButton;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link SizeButton} class.
@@ -19,10 +21,9 @@ public class SizeButtonTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link SizeButton#SizeButton}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergeModelTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergeModelTest.java
index c94901a..1280fef 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergeModelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergeModelTest.java
@@ -17,14 +17,19 @@ import java.util.Set;
 
 import javax.swing.DefaultListSelectionModel;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.osm.DatasetFactory;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.DatasetFactory;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link NodeListMergeModel}.
+ */
 public class NodeListMergeModelTest {
 
     private DatasetFactory my = new DatasetFactory();
@@ -33,10 +38,9 @@ public class NodeListMergeModelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @SuppressWarnings("unchecked")
     protected List<Node> inspectNodeList(NodeListMergeModel model, String name) {
@@ -60,19 +64,15 @@ public class NodeListMergeModelTest {
                 assertTrue("expected row " + j + " to be selected", model.isSelectedIndex(j));
                 break;
             }
-            try {
-                int[] rows = (int[]) idx[i];
-                if (rows.length != 2) {
-                    fail("illegal selection range. Either null or not length 2: " + Arrays.toString(rows));
-                }
-                if (rows[0] > rows[1]) {
-                    fail("illegal selection range. lower bound > upper bound ");
-                }
-                for (int j = rows[0]; j <= rows[1]; j++) {
-                    assertTrue("expected row " + j + " to be selected", model.isSelectedIndex(j));
-                }
-            } catch (ClassCastException e) {
-                fail("illegal selection range:" + idx[i]);
+            int[] rows = (int[]) idx[i];
+            if (rows.length != 2) {
+                fail("illegal selection range. Either null or not length 2: " + Arrays.toString(rows));
+            }
+            if (rows[0] > rows[1]) {
+                fail("illegal selection range. lower bound > upper bound ");
+            }
+            for (int j = rows[0]; j <= rows[1]; j++) {
+                assertTrue("expected row " + j + " to be selected", model.isSelectedIndex(j));
             }
         }
     }
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergerTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergerTest.java
index af5a07a..037d8e0 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMergerTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.conflict.pair.nodes;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link NodeListMerger} class.
@@ -15,10 +17,9 @@ public class NodeListMergerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link NodeListMerger#NodeListMerger}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergeModelTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergeModelTest.java
index 734e70c..007a5b3 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergeModelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergeModelTest.java
@@ -9,9 +9,8 @@ import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 
 import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -20,7 +19,13 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link PropertiesMergeModel}.
+ */
 public class PropertiesMergeModelTest {
 
     private abstract static class TestChangeListener implements ChangeListener {
@@ -44,10 +49,9 @@ public class PropertiesMergeModelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Setup test.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergerTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergerTest.java
index 7642ed3..1440d8b 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergerTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.conflict.pair.properties;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link PropertiesMerger} class.
@@ -15,10 +17,9 @@ public class PropertiesMergerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link PropertiesMerger#PropertiesMerger}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMergerTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMergerTest.java
index 792ee50..8609ccc 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMergerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMergerTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.conflict.pair.relation;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationMemberMerger} class.
@@ -15,10 +17,9 @@ public class RelationMemberMergerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link RelationMemberMerger#RelationMemberMerger}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellEditorTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellEditorTest.java
index 23f39ec..56d8fd3 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellEditorTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellEditorTest.java
@@ -7,11 +7,13 @@ import static org.junit.Assert.assertNull;
 
 import java.awt.Component;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.RelationMember;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationMemberTableCellEditor} class.
@@ -21,10 +23,9 @@ public class RelationMemberTableCellEditorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link RelationMemberTableCellEditor#RelationMemberTableCellEditor}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRendererTest.java
index d186091..d751023 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRendererTest.java
@@ -5,13 +5,15 @@ import static org.junit.Assert.assertEquals;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.gui.conflict.pair.ListRole;
 import org.openstreetmap.josm.gui.conflict.pair.nodes.NodeListMergeModel;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationMemberTableCellRenderer} class.
@@ -21,10 +23,9 @@ public class RelationMemberTableCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link RelationMemberTableCellRenderer#RelationMemberTableCellRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeItemTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeItemTest.java
index 8a40f53..6ce97de 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeItemTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeItemTest.java
@@ -5,12 +5,14 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link TagMergeItem} class.
@@ -20,10 +22,9 @@ public class TagMergeItemTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test
     public void testTagMergeItem() {
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModelTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModelTest.java
index 9bd2e66..a88513d 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModelTest.java
@@ -10,11 +10,13 @@ import java.beans.PropertyChangeListener;
 import java.util.List;
 import java.util.Set;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link TagMergeModel} class.
@@ -25,10 +27,9 @@ public class TagMergeModelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     @Test
     public void testAddPropertyChangeListener() {
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergerTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergerTest.java
index afe9998..6ff8f76 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergerTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.conflict.pair.tags;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link TagMerger} class.
@@ -15,10 +17,9 @@ public class TagMergerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link TagMerger#TagMerger}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialogTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialogTest.java
index d681f42..fd00f86 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialogTest.java
@@ -7,10 +7,12 @@ import java.beans.PropertyChangeEvent;
 
 import javax.swing.JSplitPane;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.gui.conflict.tags.CombinePrimitiveResolverDialog.AutoAdjustingSplitPane;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link CombinePrimitiveResolverDialog} class.
@@ -20,10 +22,9 @@ public class CombinePrimitiveResolverDialogTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link CombinePrimitiveResolverDialog.AutoAdjustingSplitPane} class.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditorTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditorTest.java
index a7e858f..b637472 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditorTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditorTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.conflict.tags;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link MultiValueCellEditor} class.
@@ -15,10 +17,9 @@ public class MultiValueCellEditorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link MultiValueCellEditor#MultiValueCellEditor}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRendererTest.java
index 23c2141..8104d42 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRendererTest.java
@@ -9,11 +9,13 @@ import java.util.Collections;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.data.osm.TagCollection;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link MultiValueCellRenderer} class.
@@ -23,10 +25,9 @@ public class MultiValueCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link MultiValueCellRenderer#MultiValueCellRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialogTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialogTest.java
index 794c256..39f0f54 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialogTest.java
@@ -8,13 +8,15 @@ import static org.junit.Assert.assertNull;
 
 import java.awt.Insets;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.gui.conflict.tags.PasteTagsConflictResolverDialog.StatisticsInfo;
 import org.openstreetmap.josm.gui.conflict.tags.PasteTagsConflictResolverDialog.StatisticsInfoTable;
 import org.openstreetmap.josm.gui.conflict.tags.PasteTagsConflictResolverDialog.StatisticsTableModel;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link PasteTagsConflictResolverDialog} class.
@@ -24,10 +26,9 @@ public class PasteTagsConflictResolverDialogTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link PasteTagsConflictResolverDialog#PANE_TITLES}.
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModelTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModelTest.java
index 82f269a..89d9df3 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModelTest.java
@@ -9,15 +9,17 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationMemberConflictResolverModel} class.
@@ -27,10 +29,9 @@ public class RelationMemberConflictResolverModelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     List<Way> buildTestDataSet() {
         final DataSet ds = new DataSet();
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverTest.java
index 801b849..cd807c4 100644
--- a/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.conflict.tags;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationMemberConflictResolver} class.
@@ -15,10 +17,9 @@ public class RelationMemberConflictResolverTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void init() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test for {@link RelationMemberConflictResolver#RelationMemberConflictResolver}.
diff --git a/test/unit/org/openstreetmap/josm/gui/correction/RoleCorrectionTableTest.java b/test/unit/org/openstreetmap/josm/gui/correction/RoleCorrectionTableTest.java
index 3de141f..03bd530 100644
--- a/test/unit/org/openstreetmap/josm/gui/correction/RoleCorrectionTableTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/correction/RoleCorrectionTableTest.java
@@ -9,13 +9,15 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.correction.RoleCorrection;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RoleCorrectionTable} class.
@@ -25,10 +27,9 @@ public class RoleCorrectionTableTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link RoleCorrectionTable#RoleCorrectionTable}.
diff --git a/test/unit/org/openstreetmap/josm/gui/correction/TagCorrectionTableTest.java b/test/unit/org/openstreetmap/josm/gui/correction/TagCorrectionTableTest.java
index 20413b1..99da56d 100644
--- a/test/unit/org/openstreetmap/josm/gui/correction/TagCorrectionTableTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/correction/TagCorrectionTableTest.java
@@ -9,10 +9,12 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.correction.TagCorrection;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link TagCorrectionTable} class.
@@ -22,10 +24,9 @@ public class TagCorrectionTableTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link TagCorrectionTable#TagCorrectionTable}.
diff --git a/test/unit/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandlerTest.java b/test/unit/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandlerTest.java
new file mode 100644
index 0000000..eb63f75
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandlerTest.java
@@ -0,0 +1,72 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Collections;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.CopyAction;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link OsmTransferHandler} class.
+ */
+public class OsmTransferHandlerTest {
+    /**
+     * Prefs to use OSM primitives
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().projection().commands();
+
+    private final OsmTransferHandler transferHandler = new OsmTransferHandler();
+
+    /**
+     * Test of {@link OsmTransferHandler#pasteOn} method
+     */
+    @Test
+    public void testPasteOn() {
+        DataSet ds1 = new DataSet();
+        Node n1 = new Node(new LatLon(43, 1));
+        ds1.addPrimitive(n1);
+        OsmDataLayer source = new OsmDataLayer(ds1, "source", null);
+
+        CopyAction.copy(source, Collections.singleton(n1));
+
+        DataSet ds2 = new DataSet();
+        OsmDataLayer target = new OsmDataLayer(ds2, "target", null);
+
+        transferHandler.pasteOn(target, null);
+        assertTrue(n1.getCoor().equalsEpsilon(ds2.getNodes().iterator().next().getCoor()));
+
+        ds2.clear();
+        assertTrue(ds2.getNodes().isEmpty());
+
+        LatLon pos = new LatLon(55, -5);
+        transferHandler.pasteOn(target, Main.getProjection().latlon2eastNorth(pos));
+        assertTrue(pos.equalsEpsilon(ds2.getNodes().iterator().next().getCoor()));
+    }
+
+    /**
+     * Test of {@link OsmTransferHandler#pasteTags} method
+     */
+    @Test
+    public void testPasteTags() {
+        Node n = new Node(LatLon.ZERO);
+
+        ClipboardUtils.copyString("test=ok");
+        transferHandler.pasteTags(Collections.singleton(n));
+
+        assertEquals("ok", n.get("test"));
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java b/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java
index 6a80442..457ca2c 100644
--- a/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java
@@ -11,14 +11,16 @@ import java.awt.datatransfer.UnsupportedFlavorException;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.PrimitiveData;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.RelationMemberData;
 import org.openstreetmap.josm.gui.datatransfer.data.PrimitiveTransferData;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationMemberTransferable} class.
@@ -28,10 +30,9 @@ public class RelationMemberTransferableTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link RelationMemberTransferable#getTransferDataFlavors()} method.
diff --git a/test/unit/org/openstreetmap/josm/gui/datatransfer/importers/OsmLinkPasterTest.java b/test/unit/org/openstreetmap/josm/gui/datatransfer/importers/OsmLinkPasterTest.java
new file mode 100644
index 0000000..09ecf57
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/datatransfer/importers/OsmLinkPasterTest.java
@@ -0,0 +1,49 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer.importers;
+
+import static org.junit.Assert.assertArrayEquals;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
+import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Test {@link OsmLinkPaster}
+ * @author Michael Zangl
+ */
+public class OsmLinkPasterTest {
+    /**
+     * No dependencies
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Test of {@link OsmLinkPaster#parseIds(String)}
+     */
+    @Test
+    public void testParseIds() {
+        assertArrayEquals(new Object[] {new SimplePrimitiveId(1234, OsmPrimitiveType.NODE) },
+                OsmLinkPaster.parseIds("http://www.openstreetmap.org/node/1234").toArray());
+        assertArrayEquals(new Object[] {new SimplePrimitiveId(1234, OsmPrimitiveType.WAY) },
+                OsmLinkPaster.parseIds("http://www.openstreetmap.org/way/1234").toArray());
+        assertArrayEquals(new Object[] {new SimplePrimitiveId(1234, OsmPrimitiveType.RELATION) },
+                OsmLinkPaster.parseIds("http://www.openstreetmap.org/relation/1234").toArray());
+
+        assertArrayEquals(new Object[] {new SimplePrimitiveId(1234, OsmPrimitiveType.NODE) },
+                OsmLinkPaster.parseIds("http://www.osm.org/node/1234").toArray());
+        assertArrayEquals(new Object[] {new SimplePrimitiveId(1234, OsmPrimitiveType.WAY) },
+                OsmLinkPaster.parseIds("http://osm.org/way/1234").toArray());
+        assertArrayEquals(new Object[] {new SimplePrimitiveId(1234, OsmPrimitiveType.RELATION) },
+                OsmLinkPaster.parseIds("https://www.openstreetmap.org/relation/1234").toArray());
+
+        assertArrayEquals(new Object[0], OsmLinkPaster.parseIds("http://www.openstreetmap.org/xx/1234").toArray());
+        assertArrayEquals(new Object[0], OsmLinkPaster.parseIds("http://www.openstreetmap.org/way/1234x").toArray());
+        assertArrayEquals(new Object[0], OsmLinkPaster.parseIds("").toArray());
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/ConflictDialogTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/ConflictDialogTest.java
index e232842..ebf30b1 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/ConflictDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/ConflictDialogTest.java
@@ -7,9 +7,8 @@ import static org.junit.Assert.assertNotNull;
 import java.awt.Color;
 import java.awt.image.BufferedImage;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Node;
@@ -17,6 +16,9 @@ import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.dialogs.ConflictDialog.ConflictPainter;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ConflictDialog} class.
@@ -26,10 +28,9 @@ public class ConflictDialogTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().commands();
 
     /**
      * Unit test of {@link ConflictDialog#ConflictDialog}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java
index ed6c0d3..a84d779 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java
@@ -8,15 +8,17 @@ import java.util.ArrayList;
 
 import javax.swing.JPanel;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link InspectPrimitiveDialog} class.
@@ -26,10 +28,9 @@ public class InspectPrimitiveDialogTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().commands();
 
     /**
      * Unit test of {@link InspectPrimitiveDialog#genericMonospacePanel}.
@@ -105,7 +106,7 @@ public class InspectPrimitiveDialogTest {
                 "> skipping \"Potlatch 2\" (not active)\n" +
                 "\n" +
                 "List of generated Styles:\n" +
-                " * NodeElemStyle{z_idx=[4.95/0.0/0.0]  symbol=[symbol=SQUARE size=6 stroke=java.awt.BasicStroke strokeColor=java.awt.Color[r=255,g=0,b=0] fillColor=java.awt.Color[r=255,g=0,b=0]]}\n" +
+                " * NodeElemStyle{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=SQUARE size=6 stroke=java.awt.BasicStroke strokeColor=java.awt.Color[r=255,g=0,b=0] fillColor=java.awt.Color[r=255,g=0,b=0]]}\n" +
                 "\n" +
                 "\n";
         // CHECKSTYLE.ON: LineLength
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/MapPaintDialogTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/MapPaintDialogTest.java
index f1ba16a..c851829 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/MapPaintDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/MapPaintDialogTest.java
@@ -1,10 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.dialogs;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link MapPaintDialog} class.
@@ -14,10 +16,9 @@ public class MapPaintDialogTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().commands();
 
     /**
      * Unit test of {@link MapPaintDialog.InfoAction} class.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerTest.java
index 11b627b..5894626 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerTest.java
@@ -6,9 +6,8 @@ import static org.junit.Assert.assertNotNull;
 import java.util.Collections;
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager.CancelAction;
 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager.ChangesetDetailViewSynchronizer;
@@ -19,6 +18,9 @@ import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager.Downlo
 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager.QueryAction;
 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager.RemoveFromCacheAction;
 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager.ShowDetailAction;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChangesetCacheManager} class.
@@ -28,10 +30,9 @@ public class ChangesetCacheManagerTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ChangesetCacheManager#destroyInstance}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanelTest.java
index fbfc018..b19c63f 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.dialogs.changeset;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChangesetContentPanel} class.
@@ -15,10 +17,9 @@ public class ChangesetContentPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ChangesetContentPanel#ChangesetContentPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanelTest.java
index 51a803e..10b0ff1 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.dialogs.changeset;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChangesetDetailPanel} class.
@@ -15,10 +17,9 @@ public class ChangesetDetailPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ChangesetDetailPanel#ChangesetDetailPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDiscussionPanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDiscussionPanelTest.java
index 99c09d1..60a6bf3 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDiscussionPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDiscussionPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.dialogs.changeset;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChangesetDiscussionPanel} class.
@@ -15,10 +17,9 @@ public class ChangesetDiscussionPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ChangesetDiscussionPanel#ChangesetDiscussionPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetTagsPanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetTagsPanelTest.java
index f466229..2cd59b4 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetTagsPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetTagsPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.dialogs.changeset;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChangesetTagsPanel} class.
@@ -15,10 +17,9 @@ public class ChangesetTagsPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ChangesetTagsPanel#ChangesetTagsPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanelTest.java
index 30dfd52..db23fe8 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.dialogs.changeset.query;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link AdvancedChangesetQueryPanel} class.
@@ -15,10 +17,9 @@ public class AdvancedChangesetQueryPanelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link AdvancedChangesetQueryPanel#AdvancedChangesetQueryPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanelTest.java
index 626939d..065e95b 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.dialogs.changeset.query;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link BasicChangesetQueryPanel} class.
@@ -15,10 +17,9 @@ public class BasicChangesetQueryPanelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link BasicChangesetQueryPanel#BasicChangesetQueryPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanelTest.java
index d731f88..48c70f6 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.dialogs.changeset.query;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link UrlBasedQueryPanel} class.
@@ -15,10 +17,9 @@ public class UrlBasedQueryPanelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link UrlBasedQueryPanel#UrlBasedQueryPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialogTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialogTest.java
index cd5ba13..bb62fb1 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialogTest.java
@@ -7,15 +7,17 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveComparator;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link PropertiesDialog} class.
@@ -25,10 +27,9 @@ public class PropertiesDialogTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     private static String createSearchSetting(DataSet ds, boolean sameType) {
         List<OsmPrimitive> sel = new ArrayList<>(ds.allPrimitives());
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollectionTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollectionTest.java
index e33695c..d4c292b 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollectionTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollectionTest.java
@@ -8,13 +8,15 @@ import static org.junit.Assert.assertTrue;
 import java.util.Arrays;
 import java.util.Collections;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.actions.search.SearchAction;
 import org.openstreetmap.josm.actions.search.SearchCompiler;
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.data.preferences.CollectionProperty;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RecentTagCollection} class.
@@ -24,10 +26,9 @@ public class RecentTagCollectionTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Performs various tests on a {@link RecentTagCollection}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowserTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowserTest.java
index 49c55d2..2d075bd 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowserTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowserTest.java
@@ -3,12 +3,14 @@ package org.openstreetmap.josm.gui.dialogs.relation;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChildRelationBrowser} class.
@@ -18,10 +20,9 @@ public class ChildRelationBrowserTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ChildRelationBrowser#ChildRelationBrowser}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java
index 2a5bc49..b11bb2f 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java
@@ -8,9 +8,8 @@ import java.util.Collections;
 
 import javax.swing.JPanel;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -27,6 +26,9 @@ import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.tagging.TagEditorModel;
 import org.openstreetmap.josm.gui.tagging.TagEditorPanel;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link GenericRelationEditor} class.
@@ -36,10 +38,9 @@ public class GenericRelationEditorTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().platform().commands();
 
     /**
      * Returns a new relation editor for unit tests.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRendererTest.java
index 6a485fa..aceee30 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRendererTest.java
@@ -5,11 +5,13 @@ import static org.junit.Assert.assertEquals;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link MemberTableLinkedCellRenderer} class.
@@ -19,10 +21,9 @@ public class MemberTableLinkedCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link MemberTableLinkedCellRenderer#MemberTableLinkedCellRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableMemberCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableMemberCellRendererTest.java
index 16cec68..e182605 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableMemberCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableMemberCellRendererTest.java
@@ -5,12 +5,14 @@ import static org.junit.Assert.assertEquals;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link MemberTableMemberCellRenderer} class.
@@ -20,10 +22,9 @@ public class MemberTableMemberCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link MemberTableMemberCellRenderer#MemberTableMemberCellRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModelTest.java
index e6ddb85..9cacfc6 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModelTest.java
@@ -7,13 +7,15 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link MemberTableModel} class.
@@ -23,10 +25,9 @@ public class MemberTableModelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/12443">#12443</a>.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableRoleCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableRoleCellRendererTest.java
index e86fc32..ebef240 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableRoleCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableRoleCellRendererTest.java
@@ -5,11 +5,13 @@ import static org.junit.Assert.assertEquals;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link MemberTableRoleCellRenderer} class.
@@ -19,10 +21,9 @@ public class MemberTableRoleCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link MemberTableRoleCellRenderer#MemberTableRoleCellRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowserTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowserTest.java
index a82f7df..565fa5e 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowserTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowserTest.java
@@ -1,12 +1,14 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.dialogs.relation;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ReferringRelationsBrowser} class.
@@ -16,10 +18,9 @@ public class ReferringRelationsBrowserTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ReferringRelationsBrowser#ReferringRelationsBrowser}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/RelationTreeCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/RelationTreeCellRendererTest.java
index 9f53ae6..c3654da 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/RelationTreeCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/RelationTreeCellRendererTest.java
@@ -5,10 +5,12 @@ import static org.junit.Assert.assertEquals;
 
 import javax.swing.JTree;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationTreeCellRenderer} class.
@@ -18,10 +20,9 @@ public class RelationTreeCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link RelationTreeCellRenderer#RelationTreeCellRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRendererTest.java
index b497dbb..40abffb 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRendererTest.java
@@ -5,10 +5,12 @@ import static org.junit.Assert.assertEquals;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link SelectionTableCellRenderer} class.
@@ -18,10 +20,9 @@ public class SelectionTableCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link SelectionTableCellRenderer#SelectionTableCellRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java
index bbbf3da..5b4a662 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java
@@ -7,9 +7,8 @@ import static org.junit.Assert.assertNotNull;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -18,6 +17,9 @@ import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.gui.dialogs.relation.SelectionTable.DoubleClickAdapter;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link SelectionTable} class.
@@ -27,10 +29,9 @@ public class SelectionTableTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link SelectionTable#SelectionTable}.
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorterTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorterTest.java
index d58ebf7..9f52c13 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorterTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorterTest.java
@@ -7,16 +7,18 @@ import java.io.InputStream;
 import java.util.List;
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
-import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link RelationSorter} class.
@@ -24,14 +26,26 @@ import org.openstreetmap.josm.io.OsmReader;
 public class RelationSorterTest {
 
     private final RelationSorter sorter = new RelationSorter();
-    private static DataSet testDataset;
+    private DataSet testDataset;
+
+    /**
+     * Use Mercator projection
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().projection();
 
-    @BeforeClass
-    public static void loadData() throws IllegalDataException, IOException {
-        Main.initApplicationPreferences();
-        Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
-        try (InputStream fis = new FileInputStream("data_nodist/relation_sort.osm")) {
-            testDataset = OsmReader.parseDataSet(fis, NullProgressMonitor.INSTANCE);
+    /**
+     * Load the test data set
+     * @throws IllegalDataException if an error was found while parsing the data
+     * @throws IOException in case of I/O error
+     */
+    @Before
+    public void loadData() throws IllegalDataException, IOException {
+        if (testDataset == null) {
+            try (InputStream fis = new FileInputStream("data_nodist/relation_sort.osm")) {
+                testDataset = OsmReader.parseDataSet(fis, NullProgressMonitor.INSTANCE);
+            }
         }
     }
 
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculatorTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculatorTest.java
index c9ee5b1..cc595d5 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculatorTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculatorTest.java
@@ -8,15 +8,17 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Relation;
-import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link WayConnectionTypeCalculator} class.
@@ -25,14 +27,26 @@ public class WayConnectionTypeCalculatorTest {
 
     private RelationSorter sorter = new RelationSorter();
     private WayConnectionTypeCalculator wayConnectionTypeCalculator = new WayConnectionTypeCalculator();
-    private static DataSet testDataset;
-
-    @BeforeClass
-    public static void loadData() throws IllegalDataException, IOException {
-        Main.initApplicationPreferences();
-        Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
-        try (InputStream fis = new FileInputStream("data_nodist/relation_sort.osm")) {
-            testDataset = OsmReader.parseDataSet(fis, NullProgressMonitor.INSTANCE);
+    private DataSet testDataset;
+
+    /**
+     * Use Mercator projection
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().projection();
+
+    /**
+     * Load the test data set
+     * @throws IllegalDataException if an error was found while parsing the data
+     * @throws IOException in case of I/O error
+     */
+    @Before
+    public void loadData() throws IllegalDataException, IOException {
+        if (testDataset == null) {
+            try (InputStream fis = new FileInputStream("data_nodist/relation_sort.osm")) {
+                testDataset = OsmReader.parseDataSet(fis, NullProgressMonitor.INSTANCE);
+            }
         }
     }
 
diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanelTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanelTest.java
index 58fc137..3cff7a6 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanelTest.java
@@ -11,13 +11,15 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.validation.Severity;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ValidatorTreePanel} class.
@@ -27,10 +29,9 @@ public class ValidatorTreePanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Unit test of {@link ValidatorTreePanel#ValidatorTreePanel}.
@@ -43,7 +44,6 @@ public class ValidatorTreePanelTest {
                 new TestError(null, Severity.ERROR, "err", 0, new Node(1)),
                 new TestError(null, Severity.WARNING, "warn", 0, new Node(2)))));
         assertNotNull(vtp);
-        assertEquals(1, vtp.getUpdateCount());
         assertEquals(2, vtp.getErrors().size());
         vtp.setVisible(true);
         vtp.setVisible(false);
diff --git a/test/unit/org/openstreetmap/josm/gui/download/BookmarkSelectionTest.java b/test/unit/org/openstreetmap/josm/gui/download/BookmarkSelectionTest.java
index 3fb3e02..78768fc 100644
--- a/test/unit/org/openstreetmap/josm/gui/download/BookmarkSelectionTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/download/BookmarkSelectionTest.java
@@ -1,10 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.download;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link BookmarkSelection} class.
@@ -14,10 +16,9 @@ public class BookmarkSelectionTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test for {@link BookmarkSelection#BookmarkSelection}.
diff --git a/test/unit/org/openstreetmap/josm/gui/download/BoundingBoxSelectionTest.java b/test/unit/org/openstreetmap/josm/gui/download/BoundingBoxSelectionTest.java
index 5c213d7..2bf4257 100644
--- a/test/unit/org/openstreetmap/josm/gui/download/BoundingBoxSelectionTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/download/BoundingBoxSelectionTest.java
@@ -1,10 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.download;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link BoundingBoxSelection} class.
@@ -14,10 +16,9 @@ public class BoundingBoxSelectionTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test for {@link BoundingBoxSelection#BoundingBoxSelection}.
diff --git a/test/unit/org/openstreetmap/josm/gui/download/PlaceSelectionTest.java b/test/unit/org/openstreetmap/josm/gui/download/PlaceSelectionTest.java
index 322e0e1..331967d 100644
--- a/test/unit/org/openstreetmap/josm/gui/download/PlaceSelectionTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/download/PlaceSelectionTest.java
@@ -1,10 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.download;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link PlaceSelection} class.
@@ -14,10 +16,9 @@ public class PlaceSelectionTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test for {@link PlaceSelection#PlaceSelection}.
diff --git a/test/unit/org/openstreetmap/josm/gui/download/TileSelectionTest.java b/test/unit/org/openstreetmap/josm/gui/download/TileSelectionTest.java
index fd4407d..1737331 100644
--- a/test/unit/org/openstreetmap/josm/gui/download/TileSelectionTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/download/TileSelectionTest.java
@@ -1,10 +1,12 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.download;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link TileSelection} class.
@@ -14,10 +16,9 @@ public class TileSelectionTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test for {@link TileSelection#TileSelection}.
diff --git a/test/unit/org/openstreetmap/josm/gui/help/HelpBrowserTest.java b/test/unit/org/openstreetmap/josm/gui/help/HelpBrowserTest.java
index a39b41a..fa741e8 100644
--- a/test/unit/org/openstreetmap/josm/gui/help/HelpBrowserTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/help/HelpBrowserTest.java
@@ -4,11 +4,13 @@ package org.openstreetmap.josm.gui.help;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.LanguageInfo.LocaleType;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests of {@link HelpBrowser} class.
  */
@@ -21,10 +23,9 @@ public class HelpBrowserTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().platform();
 
     static IHelpBrowser newHelpBrowser() {
         return new IHelpBrowser() {
diff --git a/test/unit/org/openstreetmap/josm/gui/help/HelpContentReaderTest.java b/test/unit/org/openstreetmap/josm/gui/help/HelpContentReaderTest.java
index b428430..37357e5 100644
--- a/test/unit/org/openstreetmap/josm/gui/help/HelpContentReaderTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/help/HelpContentReaderTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.help;
 
 import static org.junit.Assert.assertFalse;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link HelpContentReader} class.
@@ -15,10 +17,9 @@ public class HelpContentReaderTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link HelpContentReader#fetchHelpTopicContent} - null case.
diff --git a/test/unit/org/openstreetmap/josm/gui/history/CoordinateInfoViewerTest.java b/test/unit/org/openstreetmap/josm/gui/history/CoordinateInfoViewerTest.java
index c17cf7c..8ecd220 100644
--- a/test/unit/org/openstreetmap/josm/gui/history/CoordinateInfoViewerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/history/CoordinateInfoViewerTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.history;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link CoordinateInfoViewer} class.
@@ -15,10 +17,9 @@ public class CoordinateInfoViewerTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test for {@link CoordinateInfoViewer#CoordinateInfoViewer} - {@code null} handling.
diff --git a/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserDialogTest.java b/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserDialogTest.java
index 097957d..bdf0d3b 100644
--- a/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserDialogTest.java
@@ -5,17 +5,19 @@ import static org.junit.Assert.assertEquals;
 
 import java.util.Date;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.history.HistoryDataSet;
 import org.openstreetmap.josm.data.osm.history.HistoryNode;
 import org.openstreetmap.josm.data.osm.history.HistoryRelation;
 import org.openstreetmap.josm.data.osm.history.HistoryWay;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.date.DateUtils;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests of {@link HistoryBrowserDialog} class.
  */
@@ -24,10 +26,9 @@ public class HistoryBrowserDialogTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test for {@link HistoryBrowserDialog#buildTitle}.
diff --git a/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserModelTest.java b/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserModelTest.java
index a466b2b..2310fc4 100644
--- a/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserModelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserModelTest.java
@@ -7,9 +7,8 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
@@ -19,6 +18,9 @@ import org.openstreetmap.josm.data.osm.history.HistoryDataSet;
 import org.openstreetmap.josm.data.osm.history.HistoryNode;
 import org.openstreetmap.josm.gui.history.HistoryBrowserModel.TagTableModel;
 import org.openstreetmap.josm.gui.history.HistoryBrowserModel.VersionTableModel;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link HistoryBrowserModel} class.
@@ -28,10 +30,9 @@ public class HistoryBrowserModelTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().devAPI();
 
     /**
      * Test for {@link HistoryBrowserModel#HistoryBrowserModel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/history/HistoryLoadTaskTest.java b/test/unit/org/openstreetmap/josm/gui/history/HistoryLoadTaskTest.java
index 3e1491c..835f722 100644
--- a/test/unit/org/openstreetmap/josm/gui/history/HistoryLoadTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/history/HistoryLoadTaskTest.java
@@ -6,9 +6,8 @@ import static org.junit.Assert.assertEquals;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
@@ -22,8 +21,11 @@ import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.OsmHistoryReader;
 import org.openstreetmap.josm.io.OsmServerHistoryReader;
 import org.openstreetmap.josm.io.OsmTransferException;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.xml.sax.SAXException;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests of {@link HistoryLoadTask} class.
  */
@@ -32,10 +34,9 @@ public class HistoryLoadTaskTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().devAPI();
 
     /**
      * Unit test of {@link HistoryLoadTask#getLoadingMessage}
diff --git a/test/unit/org/openstreetmap/josm/gui/history/NodeListViewerTest.java b/test/unit/org/openstreetmap/josm/gui/history/NodeListViewerTest.java
index 1d95e01..0125bd6 100644
--- a/test/unit/org/openstreetmap/josm/gui/history/NodeListViewerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/history/NodeListViewerTest.java
@@ -3,7 +3,11 @@ package org.openstreetmap.josm.gui.history;
 
 import static org.junit.Assert.assertNotNull;
 
+import org.junit.Rule;
 import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link NodeListViewer} class.
@@ -11,6 +15,13 @@ import org.junit.Test;
 public class NodeListViewerTest {
 
     /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
      * Test for {@link NodeListViewer#NodeListViewer} - {@code null} handling.
      */
     @Test(expected = IllegalArgumentException.class)
diff --git a/test/unit/org/openstreetmap/josm/gui/io/ActionFlagsTableCellTest.java b/test/unit/org/openstreetmap/josm/gui/io/ActionFlagsTableCellTest.java
index 54b70ee..18e2a02 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/ActionFlagsTableCellTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/ActionFlagsTableCellTest.java
@@ -9,12 +9,14 @@ import java.io.File;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.AbstractModifiableLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ActionFlagsTableCell} class.
@@ -23,10 +25,9 @@ public class ActionFlagsTableCellTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link ActionFlagsTableCell} class.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanelTest.java b/test/unit/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanelTest.java
index 8599073..252a067 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link BasicUploadSettingsPanel} class.
@@ -15,10 +17,9 @@ public class BasicUploadSettingsPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test of {@link BasicUploadSettingsPanel#BasicUploadSettingsPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/ChangesetCellRendererTest.java b/test/unit/org/openstreetmap/josm/gui/io/ChangesetCellRendererTest.java
index 1559f9a..ac0e63a 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/ChangesetCellRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/ChangesetCellRendererTest.java
@@ -5,10 +5,12 @@ import static org.junit.Assert.assertEquals;
 
 import javax.swing.JList;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Changeset;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChangesetCellRenderer} class.
@@ -17,10 +19,9 @@ public class ChangesetCellRendererTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test of {@link ChangesetCellRenderer} class.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/ChangesetManagementPanelTest.java b/test/unit/org/openstreetmap/josm/gui/io/ChangesetManagementPanelTest.java
index b059d1a..755f30e 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/ChangesetManagementPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/ChangesetManagementPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link ChangesetManagementPanel} class.
@@ -15,10 +17,9 @@ public class ChangesetManagementPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test of {@link ChangesetManagementPanel#ChangesetManagementPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/CredentialDialogTest.java b/test/unit/org/openstreetmap/josm/gui/io/CredentialDialogTest.java
index e0acefb..3c81578 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/CredentialDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/CredentialDialogTest.java
@@ -6,10 +6,12 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.gui.io.CredentialDialog.CredentialPanel;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link CredentialDialog} class.
@@ -19,10 +21,9 @@ public class CredentialDialogTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test of {@link CredentialDialog.CredentialPanel} class.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCellTest.java b/test/unit/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCellTest.java
index 9ed3761..2d37797 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCellTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCellTest.java
@@ -9,12 +9,14 @@ import java.io.File;
 
 import javax.swing.JTable;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.AbstractModifiableLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link LayerNameAndFilePathTableCell} class.
@@ -23,10 +25,9 @@ public class LayerNameAndFilePathTableCellTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test of {@link LayerNameAndFilePathTableCell} class.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/SaveLayerInfoTest.java b/test/unit/org/openstreetmap/josm/gui/io/SaveLayerInfoTest.java
index dfc8fd9..ddf7ba2 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/SaveLayerInfoTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/SaveLayerInfoTest.java
@@ -6,12 +6,12 @@ import static org.junit.Assert.assertNull;
 
 import java.io.File;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.AbstractModifiableLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
@@ -22,10 +22,9 @@ public class SaveLayerInfoTest {
     /**
      * Setup test.
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(false);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link SaveLayerInfo} class - null case.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/SaveLayerTaskTest.java b/test/unit/org/openstreetmap/josm/gui/io/SaveLayerTaskTest.java
new file mode 100644
index 0000000..9676b4c
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/io/SaveLayerTaskTest.java
@@ -0,0 +1,41 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.io;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link SaveLayerTask} class.
+ */
+public class SaveLayerTaskTest {
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Test of {@link SaveLayerTask} class - null case.
+     */
+    @Test(expected = IllegalArgumentException.class)
+    @SuppressFBWarnings(value = "NP_NULL_PARAM_DEREF_NONVIRTUAL")
+    public void testSaveLayerTaskNull() {
+        new SaveLayerTask(null, null);
+    }
+
+    /**
+     * Test of {@link SaveLayerTask} class - nominal case.
+     */
+    @Test
+    public void testSaveLayerTaskNominal() {
+        assertNotNull(new SaveLayerTask(new SaveLayerInfo(new OsmDataLayer(new DataSet(), "", null)), null));
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/gui/io/SaveLayersDialogTest.java b/test/unit/org/openstreetmap/josm/gui/io/SaveLayersDialogTest.java
index d4ab0c7..4eadf2a 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/SaveLayersDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/SaveLayersDialogTest.java
@@ -7,11 +7,13 @@ import static org.junit.Assert.assertTrue;
 import java.util.Collections;
 import java.util.List;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link SaveLayersDialog} class.
@@ -21,10 +23,9 @@ public class SaveLayersDialogTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link SaveLayersDialog#confirmSaveLayerInfosOK}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/TagSettingsPanelTest.java b/test/unit/org/openstreetmap/josm/gui/io/TagSettingsPanelTest.java
index d3e7d19..3dbcf76 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/TagSettingsPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/TagSettingsPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link TagSettingsPanel} class.
@@ -15,10 +17,9 @@ public class TagSettingsPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test of {@link TagSettingsPanel#TagSettingsPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/UploadAndSaveProgressRendererTest.java b/test/unit/org/openstreetmap/josm/gui/io/UploadAndSaveProgressRendererTest.java
index fe63b81..766d40c 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/UploadAndSaveProgressRendererTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/UploadAndSaveProgressRendererTest.java
@@ -8,10 +8,12 @@ import java.beans.PropertyChangeEvent;
 
 import javax.swing.JPanel;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.gui.io.SaveLayersModel.Mode;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link UploadAndSaveProgressRenderer} class.
@@ -21,10 +23,9 @@ public class UploadAndSaveProgressRendererTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test of {@link UploadAndSaveProgressRenderer#UploadAndSaveProgressRenderer}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/UploadDialogTest.java b/test/unit/org/openstreetmap/josm/gui/io/UploadDialogTest.java
index 451c667..3293493 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/UploadDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/UploadDialogTest.java
@@ -7,9 +7,11 @@ import static org.junit.Assert.assertTrue;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link UploadDialog} class.
@@ -19,10 +21,9 @@ public class UploadDialogTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     private static IUploadDialog newUploadDialog(final String comment, final String source) {
         return new IUploadDialog() {
diff --git a/test/unit/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanelTest.java b/test/unit/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanelTest.java
index 6d04aff..0739854 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link UploadParameterSummaryPanel} class.
@@ -15,10 +17,9 @@ public class UploadParameterSummaryPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
      * Test of {@link UploadParameterSummaryPanel#UploadParameterSummaryPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/UploadPrimitivesTaskTest.java b/test/unit/org/openstreetmap/josm/gui/io/UploadPrimitivesTaskTest.java
index a6ddf09..15f3338 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/UploadPrimitivesTaskTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/UploadPrimitivesTaskTest.java
@@ -3,12 +3,14 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link UploadPrimitivesTask} class.
@@ -18,10 +20,9 @@ public class UploadPrimitivesTaskTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link UploadPrimitivesTask#UploadPrimitivesTask}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanelTest.java b/test/unit/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanelTest.java
index 69c2b38..8062da1 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanelTest.java
@@ -3,13 +3,11 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.junit.Assert.assertEquals;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.io.OsmApi;
-import org.openstreetmap.josm.io.OsmApiInitializationException;
-import org.openstreetmap.josm.io.OsmTransferCanceledException;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link UploadStrategySelectionPanel} class.
@@ -19,15 +17,9 @@ public class UploadStrategySelectionPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-        try {
-            OsmApi.getOsmApi().initialize(null);
-        } catch (OsmTransferCanceledException | OsmApiInitializationException e) {
-            Main.error(e);
-        }
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().devAPI();
 
     /**
      * Test of {@link UploadStrategySelectionPanel#UploadStrategySelectionPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanelTest.java b/test/unit/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanelTest.java
index daa16ab..a4febad 100644
--- a/test/unit/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanelTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanelTest.java
@@ -3,9 +3,11 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link UploadedObjectsSummaryPanel} class.
@@ -15,10 +17,9 @@ public class UploadedObjectsSummaryPanelTest {
     /**
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Test of {@link UploadedObjectsSummaryPanel#UploadedObjectsSummaryPanel}.
diff --git a/test/unit/org/openstreetmap/josm/gui/layer/AbstractMapViewPaintableTest.java b/test/unit/org/openstreetmap/josm/gui/layer/AbstractMapViewPaintableTest.java
new file mode 100644
index 0000000..11e48e8
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/layer/AbstractMapViewPaintableTest.java
@@ -0,0 +1,56 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.layer;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.gui.layer.MapViewPaintable.PaintableInvalidationListener;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Test of the base {@link AbstractMapViewPaintable} class
+ * @author Michael Zangl
+ */
+public class AbstractMapViewPaintableTest {
+    /**
+     * No special test rules
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    private Layer testLayer;
+
+    /**
+     * Create test layer
+     */
+    @Before
+    public void setUp() {
+        testLayer = new LayerManagerTest.TestLayer();
+    }
+
+    /**
+     * Test {@link Layer#invalidate()}
+     */
+    @Test
+    public void testInvalidate() {
+        AtomicBoolean fired = new AtomicBoolean();
+        PaintableInvalidationListener listener = l -> fired.set(true);
+        testLayer.addInvalidationListener(listener);
+        assertFalse(fired.get());
+        testLayer.invalidate();
+        assertTrue(fired.get());
+
+        fired.set(false);
+        testLayer.removeInvalidationListener(listener);
+        testLayer.invalidate();
+        assertFalse(fired.get());
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java b/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java
index 1d8acb0..b151773 100644
--- a/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java
@@ -73,13 +73,13 @@ public class GpxLayerTest {
         GpxLayer layer = new GpxLayer(new GpxData(), "foo", false);
         assertEquals("foo", layer.getName());
         assertFalse(layer.isLocalFile());
-        assertEquals(Color.MAGENTA, layer.getColor(false));
+        assertEquals(Color.MAGENTA, layer.getColorProperty().get());
         assertEquals("<html>0 tracks, 0 routes, 0 waypoints<br>Length: < 0.01 m<br></html>", layer.getToolTipText());
 
         GpxLayer layer2 = new GpxLayer(new GpxData(), "bar", true);
         assertEquals("bar", layer2.getName());
         assertTrue(layer2.isLocalFile());
-        assertEquals(Color.MAGENTA, layer2.getColor(true));
+        assertEquals(Color.MAGENTA, layer2.getColorProperty().get());
         assertEquals("<html>0 tracks, 0 routes, 0 waypoints<br>Length: < 0.01 m<br></html>", layer2.getToolTipText());
 
         assertFalse(layer.isChanged());
diff --git a/test/unit/org/openstreetmap/josm/gui/layer/LayerTest.java b/test/unit/org/openstreetmap/josm/gui/layer/LayerTest.java
new file mode 100644
index 0000000..a9368d3
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/layer/LayerTest.java
@@ -0,0 +1,209 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.layer;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Color;
+import java.io.File;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.AbstractProperty;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Test of the base {@link Layer} class
+ * @author Michael Zangl
+ */
+public class LayerTest {
+    /**
+     * We need projection
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().projection();
+
+    private Layer testLayer;
+
+    /**
+     * Create test layer
+     */
+    @Before
+    public void setUp() {
+        testLayer = new LayerManagerTest.TestLayer();
+    }
+
+    /**
+     * Test {@link Layer#getColorProperty()}
+     */
+    @Test
+    public void testGetColorProperty() {
+        assertEquals(null, testLayer.getColorProperty());
+
+        AbstractProperty<Color> color = new LayerManagerTest.TestLayer() {
+            @Override
+            protected ColorProperty getBaseColorProperty() {
+                return new ColorProperty("x", Color.BLACK);
+            }
+        }.getColorProperty();
+
+        assertEquals(Color.BLACK, color.get());
+        assertEquals(Color.BLACK, color.getDefaultValue());
+        assertEquals("color.layer.test.layer", color.getKey());
+    }
+
+    /**
+     * Test of {@link Layer#isInfoResizable}
+     */
+    @Test
+    public void testIsInfoResizable() {
+        assertFalse(testLayer.isInfoResizable());
+    }
+
+    /**
+     * Test of {@link Layer#getAssociatedFile()} and {@link Layer#setAssociatedFile(java.io.File)}
+     */
+    @Test
+    public void testAssociatedFile() {
+        assertNull(testLayer.getAssociatedFile());
+
+        File file = new File("test");
+        testLayer.setAssociatedFile(file);
+        assertEquals(file, testLayer.getAssociatedFile());
+    }
+
+    /**
+     * Test {@link Layer#getName()}
+     */
+    @Test
+    public void testGetName() {
+        assertEquals("Test Layer", testLayer.getName());
+    }
+
+    /**
+     * Test {@link Layer#setName(String)}
+     */
+    @Test
+    public void testSetName() {
+        testLayer.setName("Test Layer2");
+        assertEquals("Test Layer2", testLayer.getName());
+
+        testLayer = new LayerManagerTest.TestLayer() {
+            @Override
+            public AbstractProperty<Color> getColorProperty() {
+                return new ColorProperty("test", Color.RED);
+            }
+        };
+
+        testLayer.setName("Test Layer2");
+        testLayer.setName(null);
+        assertEquals("", testLayer.getName());
+        testLayer.setName("Test Layer3");
+        assertEquals("Test Layer3", testLayer.getName());
+    }
+
+    /**
+     * Test {@link Layer#rename(String)} and {@link Layer#isRenamed()}
+     */
+    @Test
+    public void testRename() {
+        assertFalse(testLayer.isRenamed());
+        testLayer.rename("Test Layer2");
+        assertEquals("Test Layer2", testLayer.getName());
+        assertTrue(testLayer.isRenamed());
+    }
+
+    /**
+     * Test {@link Layer#isBackgroundLayer()} and {@link Layer#setBackgroundLayer(boolean)}
+     */
+    @Test
+    public void testBackgroundLayer() {
+        assertFalse(testLayer.isBackgroundLayer());
+        testLayer.setBackgroundLayer(true);
+        assertTrue(testLayer.isBackgroundLayer());
+    }
+
+    /**
+     * Test {@link Layer#isVisible()} and {@link Layer#setVisible(boolean)}
+     */
+    @Test
+    public void testVisible() {
+        assertTrue(testLayer.isVisible());
+        testLayer.setVisible(false);
+        assertFalse(testLayer.isVisible());
+        testLayer.setVisible(true);
+        assertTrue(testLayer.isVisible());
+    }
+
+    /**
+     * Test {@link Layer#toggleVisible()}
+     */
+    @Test
+    public void testToggleVisible() {
+        assertTrue(testLayer.isVisible());
+        testLayer.toggleVisible();
+        assertFalse(testLayer.isVisible());
+        testLayer.toggleVisible();
+        assertTrue(testLayer.isVisible());
+    }
+
+    /**
+     * Test {@link Layer#setOpacity(double)} and {@link Layer#getOpacity()}
+     */
+    @Test
+    public void testOpacity() {
+        assertEquals(1, testLayer.getOpacity(), 1e-3);
+
+        testLayer.setOpacity(0.5);
+        assertEquals(0.5, testLayer.getOpacity(), 1e-3);
+
+        testLayer.setOpacity(0);
+        assertFalse(testLayer.isVisible());
+
+        testLayer.setVisible(true);
+        assertTrue(testLayer.isVisible());
+        assertEquals(1, testLayer.getOpacity(), 1e-3);
+    }
+
+    /**
+     * Test {@link Layer#isProjectionSupported(org.openstreetmap.josm.data.projection.Projection)}
+     */
+    @Test
+    public void testIsProjectionSupported() {
+        assertFalse(testLayer.isProjectionSupported(null));
+        assertTrue(testLayer.isProjectionSupported(Main.getProjection()));
+    }
+
+    /**
+     * Test {@link Layer#nameSupportedProjections()}
+     */
+    @Test
+    public void testNameSupportedProjections() {
+        assertNotNull(testLayer.nameSupportedProjections());
+    }
+
+    /**
+     * Test {@link Layer#isSavable()}
+     */
+    @Test
+    public void testIsSavable() {
+        assertFalse(testLayer.isSavable());
+    }
+
+    /**
+     * Test {@link Layer#checkSaveConditions()}
+     */
+    @Test
+    public void testCheckSaveConditions() {
+        assertTrue(testLayer.checkSaveConditions());
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java b/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java
index 3311a9a..bc8c1d5 100644
--- a/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java
@@ -3,6 +3,7 @@ package org.openstreetmap.josm.gui.layer;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
@@ -190,10 +191,13 @@ public class OsmDataLayerTest {
     @Test
     public void testGetMenuEntries() {
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
+        boolean mode = ExpertToggleAction.isExpert();
         ExpertToggleAction.getInstance().actionPerformed(null);
-        assertEquals(13, layer.getMenuEntries().length);
+        assertNotEquals(mode, ExpertToggleAction.isExpert());
+        assertEquals(ExpertToggleAction.isExpert() ? 16 : 13, layer.getMenuEntries().length);
         ExpertToggleAction.getInstance().actionPerformed(null);
-        assertEquals(16, layer.getMenuEntries().length);
+        assertEquals(mode, ExpertToggleAction.isExpert());
+        assertEquals(ExpertToggleAction.isExpert() ? 16 : 13, layer.getMenuEntries().length);
     }
 
     /**
@@ -219,16 +223,6 @@ public class OsmDataLayerTest {
     }
 
     /**
-     * Unit test of {@link OsmDataLayer#isChanged}.
-     */
-    @Test
-    public void testIsChanged() {
-        DataSet ds = new DataSet();
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
-        assertTrue(layer.isChanged());
-    }
-
-    /**
      * Unit test of {@link OsmDataLayer#isModified}.
      */
     @Test
diff --git a/test/unit/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelperTest.java b/test/unit/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelperTest.java
index ed17db6..9e83236 100644
--- a/test/unit/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelperTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelperTest.java
@@ -3,6 +3,7 @@ package org.openstreetmap.josm.gui.layer.gpx;
 
 import static org.junit.Assert.assertEquals;
 
+import java.awt.Color;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -16,6 +17,7 @@ import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.io.GpxReaderTest;
 import org.openstreetmap.josm.tools.ColorHelper;
 import org.xml.sax.SAXException;
@@ -124,7 +126,7 @@ public class GpxDrawHelperTest {
      */
     static List<String> calculateColors(String fileName, String layerName, int n) throws IOException, SAXException {
         final GpxData data = GpxReaderTest.parseGpxData(fileName);
-        final GpxDrawHelper gdh = new GpxDrawHelper(data);
+        final GpxDrawHelper gdh = new GpxDrawHelper(data, new ColorProperty("x", Color.MAGENTA));
         gdh.readPreferences(layerName);
         gdh.calculateColors();
         final Iterator<WayPoint> wayPointIterator = data.tracks.iterator().next().getSegments().iterator().next().getWayPoints().iterator();
diff --git a/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java b/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java
index 19dfbb0..a5596eb 100644
--- a/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java
@@ -41,7 +41,7 @@ public class MarkerLayerTest {
         MarkerLayer layer = new MarkerLayer(new GpxData(), "foo", null, null);
 
         assertEquals("foo", layer.getName());
-        assertEquals(Color.magenta, layer.getColor(false));
+        assertEquals(Color.magenta, layer.getColorProperty().get());
         assertNotNull(layer.getIcon());
         assertEquals("0 markers", layer.getToolTipText());
         assertEquals("<html>foo consists of 0 markers</html>", layer.getInfoComponent());
@@ -58,7 +58,7 @@ public class MarkerLayerTest {
         layer = new MarkerLayer(gpx, "bar", null, null);
 
         assertEquals("bar", layer.getName());
-        assertEquals(Color.magenta, layer.getColor(false));
+        assertEquals(Color.magenta, layer.getColorProperty().get());
         assertNotNull(layer.getIcon());
         assertEquals("3 markers", layer.getToolTipText());
         assertEquals("<html>bar consists of 3 markers</html>", layer.getInfoComponent());
diff --git a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionTest.java b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionTest.java
index 2911db1..4fefb41 100644
--- a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionTest.java
@@ -12,9 +12,9 @@ import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmUtils;
 import org.openstreetmap.josm.gui.mappaint.Environment;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Op;
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.SimpleKeyValueCondition;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.ToTagConvertable;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.SimpleKeyValueCondition;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -53,7 +53,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueEq() {
-        Condition op = Condition.createKeyValueCondition("k1", "v1", Op.EQ, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("k1", "v1", Op.EQ, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -71,7 +71,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueEqAsKey() {
-        Condition op = Condition.createKeyValueCondition("k1", "k2", Op.EQ, Context.PRIMITIVE, true);
+        Condition op = ConditionFactory.createKeyValueCondition("k1", "k2", Op.EQ, Context.PRIMITIVE, true);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertFalse(op.applies(genEnv(node2)));
@@ -87,7 +87,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueNeq() {
-        Condition op = Condition.createKeyValueCondition("k1", "v1", Op.NEQ, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("k1", "v1", Op.NEQ, Context.PRIMITIVE, false);
         assertTrue(op.applies(genEnv(node0)));
         assertFalse(op.applies(genEnv(node1)));
         assertFalse(op.applies(genEnv(node2)));
@@ -100,7 +100,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueGreatherEq() {
-        Condition op = Condition.createKeyValueCondition("f1", "0.2", Op.GREATER_OR_EQUAL, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("f1", "0.2", Op.GREATER_OR_EQUAL, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -113,7 +113,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueGreather() {
-        Condition op = Condition.createKeyValueCondition("f1", "0.2", Op.GREATER, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("f1", "0.2", Op.GREATER, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertFalse(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -126,7 +126,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueLessEq() {
-        Condition op = Condition.createKeyValueCondition("f1", "0.2", Op.LESS_OR_EQUAL, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("f1", "0.2", Op.LESS_OR_EQUAL, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertFalse(op.applies(genEnv(node2)));
@@ -139,7 +139,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueLess() {
-        Condition op = Condition.createKeyValueCondition("f1", "0.2", Op.LESS, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("f1", "0.2", Op.LESS, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertFalse(op.applies(genEnv(node1)));
         assertFalse(op.applies(genEnv(node2)));
@@ -152,7 +152,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueRegex() {
-        Condition op = Condition.createKeyValueCondition("r1", "(ab){2}", Op.REGEX, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("r1", "(ab){2}", Op.REGEX, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertFalse(op.applies(genEnv(node2)));
@@ -165,7 +165,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueNregex() {
-        Condition op = Condition.createKeyValueCondition("r1", "(ab){2}", Op.NREGEX, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("r1", "(ab){2}", Op.NREGEX, Context.PRIMITIVE, false);
         assertTrue(op.applies(genEnv(node0)));
         assertFalse(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -178,7 +178,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueOneOf() {
-        Condition op = Condition.createKeyValueCondition("one", "a", Op.ONE_OF, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("one", "a", Op.ONE_OF, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -191,7 +191,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueBeginsWith() {
-        Condition op = Condition.createKeyValueCondition("c1", "xy", Op.BEGINS_WITH, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("c1", "xy", Op.BEGINS_WITH, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -204,7 +204,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueEndsWith() {
-        Condition op = Condition.createKeyValueCondition("c1", "xy", Op.ENDS_WITH, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("c1", "xy", Op.ENDS_WITH, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertFalse(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -217,7 +217,7 @@ public class ConditionTest {
      */
     @Test
     public void testKeyValueContains() {
-        Condition op = Condition.createKeyValueCondition("c1", "xy", Op.CONTAINS, Context.PRIMITIVE, false);
+        Condition op = ConditionFactory.createKeyValueCondition("c1", "xy", Op.CONTAINS, Context.PRIMITIVE, false);
         assertFalse(op.applies(genEnv(node0)));
         assertTrue(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
@@ -226,18 +226,18 @@ public class ConditionTest {
     }
 
     /**
-     * Test of {@link Condition#createRegexpKeyRegexpValueCondition(String, String, Op)}
+     * Test of {@link ConditionFactory#createRegexpKeyRegexpValueCondition(String, String, Op)}
      */
     @Test
     public void testRegexpKeyValueRegexpCondition() {
-        Condition op = Condition.createRegexpKeyRegexpValueCondition("^k", "\\da", Op.REGEX);
+        Condition op = ConditionFactory.createRegexpKeyRegexpValueCondition("^k", "\\da", Op.REGEX);
         assertFalse(op.applies(genEnv(node0)));
         assertFalse(op.applies(genEnv(node1)));
         assertTrue(op.applies(genEnv(node2)));
         assertFalse(op.applies(genEnv(node3)));
         assertTrue(op.applies(genEnv(node4)));
 
-        Condition notOp = Condition.createRegexpKeyRegexpValueCondition("^k", "\\da", Op.NREGEX);
+        Condition notOp = ConditionFactory.createRegexpKeyRegexpValueCondition("^k", "\\da", Op.NREGEX);
         assertTrue(notOp.applies(genEnv(node0)));
         assertTrue(notOp.applies(genEnv(node1)));
         assertFalse(notOp.applies(genEnv(node2)));
diff --git a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyConditionTest.groovy b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyConditionTest.groovy
index 71f14a0..edd17a2 100644
--- a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyConditionTest.groovy
+++ b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyConditionTest.groovy
@@ -12,6 +12,7 @@ import org.openstreetmap.josm.data.osm.Relation
 import org.openstreetmap.josm.data.osm.RelationMember
 import org.openstreetmap.josm.gui.mappaint.Environment
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyMatchType
 
 class KeyConditionTest {
 
@@ -46,27 +47,27 @@ class KeyConditionTest {
     public void create() {
 
         // ["a label"]
-        Condition c = Condition.createKeyCondition("a key", false, Condition.KeyMatchType.FALSE, Context.PRIMITIVE)
+        Condition c = ConditionFactory.createKeyCondition("a key", false, KeyMatchType.FALSE, Context.PRIMITIVE)
         // ["a label"?]
-        c = Condition.createKeyCondition("a key", false, Condition.KeyMatchType.TRUE, Context.PRIMITIVE)
+        c = ConditionFactory.createKeyCondition("a key", false, KeyMatchType.TRUE, Context.PRIMITIVE)
         // [!"a label"]
-        c = Condition.createKeyCondition("a key", true, Condition.KeyMatchType.FALSE, Context.PRIMITIVE)
+        c = ConditionFactory.createKeyCondition("a key", true, KeyMatchType.FALSE, Context.PRIMITIVE)
         // [!"a label"?]
-        c = Condition.createKeyCondition("a key", true, Condition.KeyMatchType.TRUE, Context.PRIMITIVE)
+        c = ConditionFactory.createKeyCondition("a key", true, KeyMatchType.TRUE, Context.PRIMITIVE)
 
         // ["a label"]
-        c = Condition.createKeyCondition("a key", false, null, Context.LINK)
+        c = ConditionFactory.createKeyCondition("a key", false, null, Context.LINK)
         // [!"a label"]
-        c = Condition.createKeyCondition("a key", true, null, Context.LINK)
+        c = ConditionFactory.createKeyCondition("a key", true, null, Context.LINK)
 
         shouldFail(MapCSSException) {
             // ["a label"?]
-           c = Condition.createKeyCondition("a key", false, Condition.KeyMatchType.TRUE, Context.LINK)
+           c = ConditionFactory.createKeyCondition("a key", false, KeyMatchType.TRUE, Context.LINK)
         }
 
         shouldFail(MapCSSException) {
             // [!"a label"?]
-            c = Condition.createKeyCondition("a key", true, Condition.KeyMatchType.TRUE, Context.LINK)
+            c = ConditionFactory.createKeyCondition("a key", true, KeyMatchType.TRUE, Context.LINK)
         }
     }
 
@@ -78,10 +79,10 @@ class KeyConditionTest {
 
         Environment e = new Environment(n).withParent(r).withIndex(0, r.membersCount).withLinkContext()
 
-        Condition cond = Condition.createKeyCondition("my_role", false, null, Context.LINK)
+        Condition cond = ConditionFactory.createKeyCondition("my_role", false, null, Context.LINK)
         assert cond.applies(e)
 
-        cond = Condition.createKeyCondition("my_role", true, null, Context.LINK)
+        cond = ConditionFactory.createKeyCondition("my_role", true, null, Context.LINK)
         assert !cond.applies(e)
     }
 
@@ -93,10 +94,10 @@ class KeyConditionTest {
 
         Environment e = new Environment(n).withParent(r).withIndex(0, r.membersCount).withLinkContext()
 
-        Condition cond = Condition.createKeyCondition("another_role", false, null, Context.LINK)
+        Condition cond = ConditionFactory.createKeyCondition("another_role", false, null, Context.LINK)
         assert !cond.applies(e)
 
-        cond = Condition.createKeyCondition("another_role", true, null, Context.LINK)
+        cond = ConditionFactory.createKeyCondition("another_role", true, null, Context.LINK)
         assert cond.applies(e)
     }
 }
diff --git a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyValueConditionTest.groovy b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyValueConditionTest.groovy
index 6727aa7..1fd348a 100644
--- a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyValueConditionTest.groovy
+++ b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/KeyValueConditionTest.groovy
@@ -11,7 +11,7 @@ import org.openstreetmap.josm.data.osm.Relation
 import org.openstreetmap.josm.data.osm.RelationMember
 import org.openstreetmap.josm.gui.mappaint.Environment
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context
-import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Op
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op
 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser
 
 
@@ -46,13 +46,13 @@ class KeyValueConditionTest {
 
     @Test
     public void create() {
-        Condition c = Condition.createKeyValueCondition("a key", "a value", Op.EQ, Context.PRIMITIVE, false)
+        Condition c = ConditionFactory.createKeyValueCondition("a key", "a value", Op.EQ, Context.PRIMITIVE, false)
 
-        c = Condition.createKeyValueCondition("role", "a role", Op.EQ, Context.LINK, false)
-        c = Condition.createKeyValueCondition("RoLe", "a role", Op.EQ, Context.LINK, false)
+        c = ConditionFactory.createKeyValueCondition("role", "a role", Op.EQ, Context.LINK, false)
+        c = ConditionFactory.createKeyValueCondition("RoLe", "a role", Op.EQ, Context.LINK, false)
 
         shouldFail(MapCSSException) {
-            c = Condition.createKeyValueCondition("an arbitry tag", "a role", Op.EQ, Context.LINK, false)
+            c = ConditionFactory.createKeyValueCondition("an arbitry tag", "a role", Op.EQ, Context.LINK, false)
         }
     }
 
@@ -64,10 +64,10 @@ class KeyValueConditionTest {
 
         Environment e = new Environment(n).withParent(r).withLinkContext().withIndex(0, r.membersCount)
 
-        Condition cond = new Condition.RoleCondition("my_role", Op.EQ)
+        Condition cond = new ConditionFactory.RoleCondition("my_role", Op.EQ)
         assert cond.applies(e)
 
-        cond = new Condition.RoleCondition("another_role", Op.EQ)
+        cond = new ConditionFactory.RoleCondition("another_role", Op.EQ)
         assert !cond.applies(e)
     }
 
@@ -79,10 +79,10 @@ class KeyValueConditionTest {
 
         Environment e = new Environment(n).withParent(r).withIndex(0, r.membersCount).withLinkContext()
 
-        Condition cond = Condition.createKeyValueCondition("role", "my_role", Op.NEQ, Context.LINK, false)
+        Condition cond = ConditionFactory.createKeyValueCondition("role", "my_role", Op.NEQ, Context.LINK, false)
         assert !cond.applies(e)
 
-        cond = Condition.createKeyValueCondition("role", "another_role", Op.NEQ, Context.LINK, false)
+        cond = ConditionFactory.createKeyValueCondition("role", "another_role", Op.NEQ, Context.LINK, false)
         assert cond.applies(e)
     }
 
diff --git a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.groovy b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.groovy
index 2370589..c804928 100644
--- a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.groovy
+++ b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.groovy
@@ -13,6 +13,13 @@ import org.openstreetmap.josm.data.osm.OsmUtils
 import org.openstreetmap.josm.data.osm.Way
 import org.openstreetmap.josm.gui.mappaint.Environment
 import org.openstreetmap.josm.gui.mappaint.MultiCascade
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.ClassCondition
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyCondition
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyMatchType
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyValueCondition
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.PseudoClassCondition
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.SimpleKeyValueCondition
 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser
 import org.openstreetmap.josm.tools.ColorHelper
 
@@ -49,10 +56,10 @@ class MapCSSParserTest {
     @Test
     public void testClassCondition() throws Exception {
         def conditions = ((Selector.GeneralSelector) getParser("way[name=X].highway:closed").selector()).conds
-        assert conditions.get(0) instanceof Condition.SimpleKeyValueCondition
+        assert conditions.get(0) instanceof SimpleKeyValueCondition
         assert conditions.get(0).applies(getEnvironment("name", "X"))
-        assert conditions.get(1) instanceof Condition.ClassCondition
-        assert conditions.get(2) instanceof Condition.PseudoClassCondition
+        assert conditions.get(1) instanceof ClassCondition
+        assert conditions.get(2) instanceof PseudoClassCondition
         assert !conditions.get(2).applies(getEnvironment("name", "X"))
     }
 
@@ -92,8 +99,8 @@ class MapCSSParserTest {
 
     @Test
     public void testEqualCondition() throws Exception {
-        def condition = (Condition.SimpleKeyValueCondition) getParser("[surface=paved]").condition(Condition.Context.PRIMITIVE)
-        assert condition instanceof Condition.SimpleKeyValueCondition
+        def condition = (SimpleKeyValueCondition) getParser("[surface=paved]").condition(Condition.Context.PRIMITIVE)
+        assert condition instanceof SimpleKeyValueCondition
         assert "surface".equals(condition.k)
         assert "paved".equals(condition.v)
         assert condition.applies(getEnvironment("surface", "paved"))
@@ -102,23 +109,23 @@ class MapCSSParserTest {
 
     @Test
     public void testNotEqualCondition() throws Exception {
-        def condition = (Condition.KeyValueCondition) getParser("[surface!=paved]").condition(Condition.Context.PRIMITIVE)
-        assert Condition.Op.NEQ.equals(condition.op)
+        def condition = (KeyValueCondition) getParser("[surface!=paved]").condition(Condition.Context.PRIMITIVE)
+        assert Op.NEQ.equals(condition.op)
         assert !condition.applies(getEnvironment("surface", "paved"))
         assert condition.applies(getEnvironment("surface", "unpaved"))
     }
 
     @Test
     public void testRegexCondition() throws Exception {
-        def condition = (Condition.KeyValueCondition) getParser("[surface=~/paved|unpaved/]").condition(Condition.Context.PRIMITIVE)
-        assert Condition.Op.REGEX.equals(condition.op)
+        def condition = (KeyValueCondition) getParser("[surface=~/paved|unpaved/]").condition(Condition.Context.PRIMITIVE)
+        assert Op.REGEX.equals(condition.op)
         assert condition.applies(getEnvironment("surface", "unpaved"))
         assert !condition.applies(getEnvironment("surface", "grass"))
     }
 
     @Test
     public void testRegexConditionParenthesis() throws Exception {
-        def condition = (Condition.KeyValueCondition) getParser("[name =~ /^\\(foo\\)/]").condition(Condition.Context.PRIMITIVE)
+        def condition = (KeyValueCondition) getParser("[name =~ /^\\(foo\\)/]").condition(Condition.Context.PRIMITIVE)
         assert condition.applies(getEnvironment("name", "(foo)"))
         assert !condition.applies(getEnvironment("name", "foo"))
         assert !condition.applies(getEnvironment("name", "((foo))"))
@@ -126,21 +133,21 @@ class MapCSSParserTest {
 
     @Test
     public void testNegatedRegexCondition() throws Exception {
-        def condition = (Condition.KeyValueCondition) getParser("[surface!~/paved|unpaved/]").condition(Condition.Context.PRIMITIVE)
-        assert Condition.Op.NREGEX.equals(condition.op)
+        def condition = (KeyValueCondition) getParser("[surface!~/paved|unpaved/]").condition(Condition.Context.PRIMITIVE)
+        assert Op.NREGEX.equals(condition.op)
         assert !condition.applies(getEnvironment("surface", "unpaved"))
         assert condition.applies(getEnvironment("surface", "grass"))
     }
 
     @Test
     public void testBeginsEndsWithCondition() throws Exception {
-        def condition = (Condition.KeyValueCondition) getParser('[foo ^= bar]').condition(Condition.Context.PRIMITIVE)
-        assert Condition.Op.BEGINS_WITH.equals(condition.op)
+        def condition = (KeyValueCondition) getParser('[foo ^= bar]').condition(Condition.Context.PRIMITIVE)
+        assert Op.BEGINS_WITH.equals(condition.op)
         assert condition.applies(getEnvironment("foo", "bar123"))
         assert !condition.applies(getEnvironment("foo", "123bar"))
         assert !condition.applies(getEnvironment("foo", "123bar123"))
-        condition = (Condition.KeyValueCondition) getParser('[foo $= bar]').condition(Condition.Context.PRIMITIVE)
-        assert Condition.Op.ENDS_WITH.equals(condition.op)
+        condition = (KeyValueCondition) getParser('[foo $= bar]').condition(Condition.Context.PRIMITIVE)
+        assert Op.ENDS_WITH.equals(condition.op)
         assert !condition.applies(getEnvironment("foo", "bar123"))
         assert condition.applies(getEnvironment("foo", "123bar"))
         assert !condition.applies(getEnvironment("foo", "123bar123"))
@@ -157,22 +164,22 @@ class MapCSSParserTest {
 
     @Test
     public void testStandardKeyCondition() throws Exception {
-        def c1 = (Condition.KeyCondition) getParser("[ highway ]").condition(Condition.Context.PRIMITIVE)
-        assert Condition.KeyMatchType.EQ.equals(c1.matchType)
+        def c1 = (KeyCondition) getParser("[ highway ]").condition(Condition.Context.PRIMITIVE)
+        assert KeyMatchType.EQ.equals(c1.matchType)
         assert c1.applies(getEnvironment("highway", "unclassified"))
         assert !c1.applies(getEnvironment("railway", "rail"))
-        def c2 = (Condition.KeyCondition) getParser("[\"/slash/\"]").condition(Condition.Context.PRIMITIVE)
-        assert Condition.KeyMatchType.EQ.equals(c2.matchType)
+        def c2 = (KeyCondition) getParser("[\"/slash/\"]").condition(Condition.Context.PRIMITIVE)
+        assert KeyMatchType.EQ.equals(c2.matchType)
         assert c2.applies(getEnvironment("/slash/", "yes"))
         assert !c2.applies(getEnvironment("\"slash\"", "no"))
     }
 
     @Test
     public void testYesNoKeyCondition() throws Exception {
-        def c1 = (Condition.KeyCondition) getParser("[oneway?]").condition(Condition.Context.PRIMITIVE)
-        def c2 = (Condition.KeyCondition) getParser("[oneway?!]").condition(Condition.Context.PRIMITIVE)
-        def c3 = (Condition.KeyCondition) getParser("[!oneway?]").condition(Condition.Context.PRIMITIVE)
-        def c4 = (Condition.KeyCondition) getParser("[!oneway?!]").condition(Condition.Context.PRIMITIVE)
+        def c1 = (KeyCondition) getParser("[oneway?]").condition(Condition.Context.PRIMITIVE)
+        def c2 = (KeyCondition) getParser("[oneway?!]").condition(Condition.Context.PRIMITIVE)
+        def c3 = (KeyCondition) getParser("[!oneway?]").condition(Condition.Context.PRIMITIVE)
+        def c4 = (KeyCondition) getParser("[!oneway?!]").condition(Condition.Context.PRIMITIVE)
         def yes = getEnvironment("oneway", "yes")
         def no = getEnvironment("oneway", "no")
         def none = getEnvironment("no-oneway", "foo")
@@ -192,8 +199,8 @@ class MapCSSParserTest {
 
     @Test
     public void testRegexKeyCondition() throws Exception {
-        def c1 = (Condition.KeyCondition) getParser("[/.*:(backward|forward)\$/]").condition(Condition.Context.PRIMITIVE)
-        assert Condition.KeyMatchType.REGEX.equals(c1.matchType)
+        def c1 = (KeyCondition) getParser("[/.*:(backward|forward)\$/]").condition(Condition.Context.PRIMITIVE)
+        assert KeyMatchType.REGEX.equals(c1.matchType)
         assert !c1.applies(getEnvironment("lanes", "3"))
         assert c1.applies(getEnvironment("lanes:forward", "3"))
         assert c1.applies(getEnvironment("lanes:backward", "3"))
@@ -213,14 +220,14 @@ class MapCSSParserTest {
 
     @Test
     public void testKeyKeyCondition() throws Exception {
-        def c1 = (Condition.KeyValueCondition) getParser("[foo = *bar]").condition(Condition.Context.PRIMITIVE)
+        def c1 = (KeyValueCondition) getParser("[foo = *bar]").condition(Condition.Context.PRIMITIVE)
         def w1 = new Way()
         w1.put("foo", "123")
         w1.put("bar", "456")
         assert !c1.applies(new Environment(w1))
         w1.put("bar", "123")
         assert c1.applies(new Environment(w1))
-        def c2 = (Condition.KeyValueCondition) getParser("[foo =~ */bar/]").condition(Condition.Context.PRIMITIVE)
+        def c2 = (KeyValueCondition) getParser("[foo =~ */bar/]").condition(Condition.Context.PRIMITIVE)
         def w2 = new Way(w1)
         w2.put("bar", "[0-9]{3}")
         assert c2.applies(new Environment(w2))
diff --git a/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java b/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java
index f766cde..a83f7f5 100644
--- a/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java
+++ b/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java
@@ -96,8 +96,8 @@ public class TaggingPresetPreferenceTestIT {
             if (message.contains(TaggingPreset.PRESET_ICON_ERROR_MSG_PREFIX)) {
                 error = true;
                 // ignore https://github.com/yopaseopor/traffic_signs_preset_JOSM because of far too frequent missing icons errors
-                // ignore https://github.com/molysgaard/OAM-JOSM not responding fast enough to our pull requests
-                if (!source.url.contains("yopaseopor/traffic_signs") && !source.url.contains("molysgaard/OAM-JOSM")) {
+                // ignore https://github.com/OsmHackTW/josm-presets/pull/4 until pull request is merged
+                if (!source.url.contains("yopaseopor/traffic_signs") && !source.url.contains("OsmHackTW/josm-presets")) {
                     allMessages.add(message);
                 }
             }
diff --git a/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java b/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java
index af79c85..903d0a4 100644
--- a/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java
+++ b/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java
@@ -2,15 +2,18 @@
 package org.openstreetmap.josm.io;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.FileInputStream;
 
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 
 /**
  * Unit tests of {@link GeoJSONWriter} class.
@@ -36,16 +39,10 @@ public class GeoJSONWriterTest {
         final DataSet ds = new DataSet();
         ds.addPrimitive(node);
         final OsmDataLayer layer = new OsmDataLayer(ds, "foo", null);
-        final GeoJSONWriter writer = new GeoJSONWriter(layer, ProjectionPreference.wgs84.getProjection());
+        final GeoJSONWriter writer = new GeoJSONWriter(layer);
         assertEquals(("" +
                 "{\n" +
                 "    'type':'FeatureCollection',\n" +
-                "    'crs':{\n" +
-                "        'type':'name',\n" +
-                "        'properties':{\n" +
-                "            'name':'EPSG:4326'\n" +
-                "        }\n" +
-                "    },\n" +
                 "    'generator':'JOSM',\n" +
                 "    'features':[\n" +
                 "        {\n" +
@@ -65,4 +62,18 @@ public class GeoJSONWriterTest {
                 "    ]\n" +
                 "}").replace("'", "\""), writer.write().trim());
     }
+
+    /**
+     * Unit test for multipolygon
+     * @throws Exception if an error occurs
+     */
+    @Test
+    public void testMultipolygon() throws Exception {
+        try (FileInputStream in = new FileInputStream(TestUtils.getTestDataRoot() + "multipolygon.osm")) {
+            DataSet ds = OsmReader.parseDataSet(in, null);
+            final OsmDataLayer layer = new OsmDataLayer(ds, "foo", null);
+            final GeoJSONWriter writer = new GeoJSONWriter(layer);
+            assertTrue(writer.write().contains("MultiPolygon"));
+        }
+    }
 }
diff --git a/test/unit/org/openstreetmap/josm/io/NmeaReaderTest.java b/test/unit/org/openstreetmap/josm/io/NmeaReaderTest.java
index f53e7ae..eca6abe 100644
--- a/test/unit/org/openstreetmap/josm/io/NmeaReaderTest.java
+++ b/test/unit/org/openstreetmap/josm/io/NmeaReaderTest.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.io;
 import static org.junit.Assert.assertEquals;
 
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
@@ -11,14 +12,17 @@ import java.util.TimeZone;
 
 import org.junit.Rule;
 import org.junit.Test;
+import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxConstants;
+import org.openstreetmap.josm.data.gpx.GpxData;
+import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.GpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
-import org.openstreetmap.josm.io.NmeaReader.NMEA_TYPE;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
+import org.xml.sax.SAXException;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import nl.jqno.equalsverifier.EqualsVerifier;
 
 /**
  * Unit tests of {@link NmeaReader} class.
@@ -32,14 +36,6 @@ public class NmeaReaderTest {
     public JOSMTestRules test = new JOSMTestRules();
 
     /**
-     * Unit test of methods {@link NMEA_TYPE#equals} and {@link NMEA_TYPE#hashCode}.
-     */
-    @Test
-    public void testEqualsContract() {
-        EqualsVerifier.forClass(NMEA_TYPE.class).verify();
-    }
-
-    /**
      * Tests reading a nmea file.
      * @throws Exception if any error occurs
      */
@@ -68,4 +64,54 @@ public class NmeaReaderTest {
         assertEquals(null, wayPoints.get(0).get(GpxConstants.PT_VDOP));
         assertEquals(null, wayPoints.get(0).get(GpxConstants.PT_PDOP));
     }
+
+    private static void compareWithReference(int ticket, String filename, int numCoor) throws IOException, SAXException {
+        GpxData gpx = GpxReaderTest.parseGpxData(TestUtils.getRegressionDataFile(ticket, filename+".gpx"));
+        NmeaReader in = new NmeaReader(new FileInputStream(TestUtils.getRegressionDataFile(ticket, filename+".nmea")));
+        assertEquals(numCoor, in.getNumberOfCoordinates());
+        assertEquals(0, in.getParserMalformed());
+        assertEquals(in.data.dataSources, gpx.dataSources);
+        assertEquals(1, gpx.tracks.size());
+        assertEquals(1, in.data.tracks.size());
+        GpxTrack gpxTrack = gpx.tracks.iterator().next();
+        GpxTrack nmeaTrack = in.data.tracks.iterator().next();
+        assertEquals(gpxTrack.getBounds(), nmeaTrack.getBounds());
+        assertEquals(1, gpxTrack.getSegments().size());
+        assertEquals(1, nmeaTrack.getSegments().size());
+        GpxTrackSegment gpxSeg = gpxTrack.getSegments().iterator().next();
+        GpxTrackSegment nmeaSeg = nmeaTrack.getSegments().iterator().next();
+        assertEquals(gpxSeg.getBounds(), nmeaSeg.getBounds());
+        assertEquals(numCoor, gpxSeg.getWayPoints().size());
+        assertEquals(numCoor, nmeaSeg.getWayPoints().size());
+        WayPoint gpxWpt = gpxSeg.getWayPoints().iterator().next();
+        WayPoint nmeaWpt = nmeaSeg.getWayPoints().iterator().next();
+        assertEquals(gpxWpt.getCoor().getRoundedToOsmPrecision(), nmeaWpt.getCoor().getRoundedToOsmPrecision());
+    }
+
+    /**
+     * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/1433">Bug #1433</a>.
+     * @throws Exception if an error occurs
+     */
+    @Test
+    public void testTicket1433() throws Exception {
+        compareWithReference(1433, "2008-08-14-16-04-58", 1241);
+    }
+
+    /**
+     * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/1853">Bug #1853</a>.
+     * @throws Exception if an error occurs
+     */
+    @Test
+    public void testTicket1853() throws Exception {
+        compareWithReference(1853, "PosData-20081216-115434", 1285);
+    }
+
+    /**
+     * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/2147">Bug #2147</a>.
+     * @throws Exception if an error occurs
+     */
+    @Test
+    public void testTicket2147() throws Exception {
+        compareWithReference(2147, "WG20080203171807.log", 487);
+    }
 }
diff --git a/test/unit/org/openstreetmap/josm/io/protocols/data/HandlerTest.java b/test/unit/org/openstreetmap/josm/io/protocols/data/HandlerTest.java
new file mode 100644
index 0000000..bf494a8
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/io/protocols/data/HandlerTest.java
@@ -0,0 +1,47 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io.protocols.data;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+/**
+ * Unit tests of {@link Handler} class.
+ */
+public class HandlerTest {
+
+    /**
+     * Use the test rules to remove any layers and reset state.
+     */
+    @Rule
+    public final JOSMTestRules rules = new JOSMTestRules();
+
+    /**
+     * Setup test.
+     */
+    @Before
+    public void setUp() {
+        Handler.install();
+    }
+
+    /**
+     * Reads a base-64 image.
+     * @throws IOException if any I/O error occurs
+     */
+    @Test
+    public void testBase64Image() throws IOException {
+        // Red dot image, taken from https://en.wikipedia.org/wiki/Data_URI_scheme#HTML
+        URLConnection connection = new Handler().openConnection(new URL("data:image/png;base64," +
+                "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4"+
+                "//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="));
+        connection.connect();
+        assertNotNull(connection.getInputStream());
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java b/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java
index a84ab86..17bdae2 100644
--- a/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java
+++ b/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java
@@ -2,7 +2,6 @@
 package org.openstreetmap.josm.io.remotecontrol;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -40,9 +39,10 @@ public class RemoteControlTest {
 
     /**
      * Starts Remote control before testing requests.
+     * @throws GeneralSecurityException if a security error occurs
      */
     @Before
-    public void setUp() {
+    public void setUp() throws GeneralSecurityException {
         JOSMFixture.createUnitTestFixture().init();
         RemoteControl.PROP_REMOTECONTROL_HTTPS_ENABLED.put(true);
         deleteKeystore();
@@ -69,8 +69,9 @@ public class RemoteControlTest {
      * Disable all HTTPS validation mechanisms as described
      * <a href="http://stackoverflow.com/a/2893932/2257172">here</a> and
      * <a href="http://stackoverflow.com/a/19542614/2257172">here</a>
+     * @throws GeneralSecurityException if a security error occurs
      */
-    public void disableCertificateValidation() {
+    public void disableCertificateValidation() throws GeneralSecurityException {
         // Create a trust manager that does not validate certificate chains
         TrustManager[] trustAllCerts = new TrustManager[] {
             new X509TrustManager() {
@@ -90,13 +91,9 @@ public class RemoteControlTest {
         };
 
         // Install the all-trusting trust manager
-        try {
-            SSLContext sc = SSLContext.getInstance("TLS");
-            sc.init(null, trustAllCerts, new SecureRandom());
-            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
-        } catch (GeneralSecurityException e) {
-            fail(e.getMessage());
-        }
+        SSLContext sc = SSLContext.getInstance("TLS");
+        sc.init(null, trustAllCerts, new SecureRandom());
+        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
 
         // Create all-trusting host name verifier
         HostnameVerifier allHostsValid = new HostnameVerifier() {
@@ -120,43 +117,37 @@ public class RemoteControlTest {
 
     /**
      * Tests that sending an HTTP request without command results in HTTP 400, with all available commands in error message.
+     * @throws Exception if an error occurs
      */
     @Test
-    public void testHttpListOfCommands() {
+    public void testHttpListOfCommands() throws Exception {
         testListOfCommands(httpBase);
     }
 
     /**
      * Tests that sending an HTTPS request without command results in HTTP 400, with all available commands in error message.
+     * @throws Exception if an error occurs
      */
     @Test
-    public void testHttpsListOfCommands() {
+    public void testHttpsListOfCommands() throws Exception {
         testListOfCommands(httpsBase);
     }
 
-    private void testListOfCommands(String url) {
-        try {
-            HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
-            connection.connect();
-            assertEquals(connection.getResponseCode(), HttpURLConnection.HTTP_BAD_REQUEST);
-            try (InputStream is = connection.getErrorStream()) {
-                // TODO this code should be refactored somewhere in Utils as it is used in several JOSM classes
-                StringBuilder responseBody = new StringBuilder();
-                try (BufferedReader in = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
-                    String s;
-                    while ((s = in.readLine()) != null) {
-                        responseBody.append(s);
-                        responseBody.append("\n");
-                    }
+    private void testListOfCommands(String url) throws IOException, ReflectiveOperationException {
+        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
+        connection.connect();
+        assertEquals(connection.getResponseCode(), HttpURLConnection.HTTP_BAD_REQUEST);
+        try (InputStream is = connection.getErrorStream()) {
+            // TODO this code should be refactored somewhere in Utils as it is used in several JOSM classes
+            StringBuilder responseBody = new StringBuilder();
+            try (BufferedReader in = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
+                String s;
+                while ((s = in.readLine()) != null) {
+                    responseBody.append(s);
+                    responseBody.append("\n");
                 }
-                assert responseBody.toString().contains(RequestProcessor.getUsageAsHtml());
-            } catch (ReflectiveOperationException e) {
-                e.printStackTrace();
-                fail(e.getMessage());
             }
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
+            assert responseBody.toString().contains(RequestProcessor.getUsageAsHtml());
         }
     }
 }
diff --git a/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java b/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
index f1c922a..95556c3 100644
--- a/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
+++ b/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
@@ -1,8 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.io.session;
 
-import static org.junit.Assert.fail;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
@@ -90,7 +88,7 @@ public class SessionWriterTest {
         ProjectionPreference.setProjection();
     }
 
-    private void testWrite(List<Layer> layers, final boolean zip) {
+    private void testWrite(List<Layer> layers, final boolean zip) throws IOException {
         Map<Layer, SessionLayerExporter> exporters = new HashMap<>();
         if (zip) {
             SessionWriter.registerSessionLayerExporter(OsmDataLayer.class, OsmHeadlessJozExporter.class);
@@ -106,9 +104,6 @@ public class SessionWriterTest {
         File file = new File(System.getProperty("java.io.tmpdir"), getClass().getName()+(zip ? ".joz" : ".jos"));
         try {
             sw.write(file);
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
         } finally {
             if (file.exists()) {
                 Utils.deleteFile(file);
@@ -147,75 +142,84 @@ public class SessionWriterTest {
 
     /**
      * Tests to write an empty .jos file.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteEmptyJos() {
+    public void testWriteEmptyJos() throws IOException {
         testWrite(Collections.<Layer>emptyList(), false);
     }
 
     /**
      * Tests to write an empty .joz file.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteEmptyJoz() {
+    public void testWriteEmptyJoz() throws IOException {
         testWrite(Collections.<Layer>emptyList(), true);
     }
 
     /**
      * Tests to write a .jos file containing OSM data.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteOsmJos() {
+    public void testWriteOsmJos() throws IOException {
         testWrite(Collections.<Layer>singletonList(createOsmLayer()), false);
     }
 
     /**
      * Tests to write a .joz file containing OSM data.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteOsmJoz() {
+    public void testWriteOsmJoz() throws IOException {
         testWrite(Collections.<Layer>singletonList(createOsmLayer()), true);
     }
 
     /**
      * Tests to write a .jos file containing GPX data.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteGpxJos() {
+    public void testWriteGpxJos() throws IOException {
         testWrite(Collections.<Layer>singletonList(createGpxLayer()), false);
     }
 
     /**
      * Tests to write a .joz file containing GPX data.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteGpxJoz() {
+    public void testWriteGpxJoz() throws IOException {
         testWrite(Collections.<Layer>singletonList(createGpxLayer()), true);
     }
 
     /**
      * Tests to write a .joz file containing GPX and marker data.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteGpxAndMarkerJoz() {
+    public void testWriteGpxAndMarkerJoz() throws IOException {
         GpxLayer gpx = createGpxLayer();
         testWrite(Arrays.asList(gpx, createMarkerLayer(gpx)), true);
     }
 
     /**
      * Tests to write a .joz file containing an imagery layer.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteImageryLayer() {
+    public void testWriteImageryLayer() throws IOException {
         final Layer layer = createImageryLayer();
         testWrite(Collections.singletonList(layer), true);
     }
 
     /**
      * Tests to write a .joz file containing a note layer.
+     * @throws IOException if an I/O error occurs
      */
     @Test
-    public void testWriteNoteLayer() {
+    public void testWriteNoteLayer() throws IOException {
         final Layer layer = createNoteLayer();
         testWrite(Collections.singletonList(layer), true);
     }
diff --git a/test/unit/org/openstreetmap/josm/testutils/DatasetFactory.java b/test/unit/org/openstreetmap/josm/testutils/DatasetFactory.java
new file mode 100644
index 0000000..5884904
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/testutils/DatasetFactory.java
@@ -0,0 +1,121 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.testutils;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * Convenience class allowing to manage primitives in the dataset. Useful especially for tests
+ */
+public class DatasetFactory {
+
+    private final DataSet ds;
+
+    /**
+     * Constructs a new {@code DatasetFactory} with a new dataset.
+     */
+    public DatasetFactory() {
+        this(new DataSet());
+    }
+
+    /**
+     * Constructs a new {@code DatasetFactory} with a given dataset.
+     * @param ds existing dataset to wrap
+     */
+    public DatasetFactory(DataSet ds) {
+        this.ds = ds;
+    }
+
+    /**
+     * Replies node with given id.
+     * @param id node id
+     * @return node with given id
+     */
+    public Node getNode(long id) {
+        return (Node) ds.getPrimitiveById(id, OsmPrimitiveType.NODE);
+    }
+
+    /**
+     * Replies way with given id.
+     * @param id way id
+     * @return way with given id
+     */
+    public Way getWay(long id) {
+        return (Way) ds.getPrimitiveById(id, OsmPrimitiveType.WAY);
+    }
+
+    /**
+     * Replies relation with given id.
+     * @param id relation id
+     * @return relation with given id
+     */
+    public Relation getRelation(long id) {
+        return (Relation) ds.getPrimitiveById(id, OsmPrimitiveType.RELATION);
+    }
+
+    /**
+     * Adds node with given id.
+     * @param id node id
+     * @return created node
+     */
+    public Node addNode(long id) {
+        return addNode(id, 0);
+    }
+
+    /**
+     * Adds way with given id.
+     * @param id way id
+     * @return created way
+     */
+    public Way addWay(long id) {
+        return addWay(id, 0);
+    }
+
+    /**
+     * Adds relation with given id.
+     * @param id relation id
+     * @return created relation
+     */
+    public Relation addRelation(long id) {
+        return addRelation(id, 0);
+    }
+
+    /**
+     * Adds node with given id and version.
+     * @param id node id
+     * @param version node version
+     * @return created node
+     */
+    public Node addNode(long id, int version) {
+        Node n = new Node(id, version);
+        ds.addPrimitive(n);
+        return n;
+    }
+
+    /**
+     * Adds way with given id and version.
+     * @param id way id
+     * @param version way version
+     * @return created way
+     */
+    public Way addWay(long id, int version) {
+        Way w = new Way(id, version);
+        ds.addPrimitive(w);
+        return w;
+    }
+
+    /**
+     * Adds relation with given id and version.
+     * @param id relation id
+     * @param version relation version
+     * @return created relation
+     */
+    public Relation addRelation(long id, int version) {
+        Relation e = new Relation(id, version);
+        ds.addPrimitive(e);
+        return e;
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java b/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java
index 634b625..3d7558a 100644
--- a/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java
+++ b/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java
@@ -19,6 +19,7 @@ import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.io.OsmApiInitializationException;
 import org.openstreetmap.josm.io.OsmTransferCanceledException;
 import org.openstreetmap.josm.tools.I18n;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.MemoryManagerTest;
 import org.openstreetmap.josm.tools.date.DateUtils;
 
@@ -181,7 +182,7 @@ public class JOSMTestRules implements TestRule {
         // All tests use the same timezone.
         TimeZone.setDefault(DateUtils.UTC);
         // Set log level to info
-        Main.logLevel = 3;
+        Logging.setLogLevel(Logging.LEVEL_INFO);
 
         // Set up i18n
         if (i18n != null) {
@@ -200,7 +201,7 @@ public class JOSMTestRules implements TestRule {
 
         // Add preferences
         if (usePreferences) {
-            Main.initApplicationPreferences();
+            Main.pref.resetToInitialState();
             Main.pref.enableSaveOnPut(false);
             // No pref init -> that would only create the preferences file.
             // We force the use of a wrong API server, just in case anyone attempts an upload
@@ -246,7 +247,7 @@ public class JOSMTestRules implements TestRule {
     private void cleanUpFromJosmFixture() {
         MemoryManagerTest.resetState(true);
         Main.getLayerManager().resetState();
-        Main.pref = null;
+        Main.pref.resetToInitialState();
         Main.platform = null;
         System.gc();
     }
@@ -267,7 +268,7 @@ public class JOSMTestRules implements TestRule {
         MemoryManagerTest.resetState(allowMemoryManagerLeaks);
 
         // TODO: Remove global listeners and other global state.
-        Main.pref = null;
+        Main.pref.resetToInitialState();;
         Main.platform = null;
         // Parts of JOSM uses weak references - destroy them.
         System.gc();
diff --git a/test/unit/org/openstreetmap/josm/tools/LoggingTest.java b/test/unit/org/openstreetmap/josm/tools/LoggingTest.java
new file mode 100644
index 0000000..22c8c4c
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/tools/LoggingTest.java
@@ -0,0 +1,287 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.function.Consumer;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author michael
+ *
+ */
+public class LoggingTest {
+
+    private LogRecord captured;
+    private final Handler handler = new Handler() {
+
+        @Override
+        public void publish(LogRecord record) {
+            captured = record;
+        }
+
+        @Override
+        public void flush() {
+        }
+
+        @Override
+        public void close() throws SecurityException {
+        }
+    };
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @Before
+    public void setUp() throws Exception {
+        captured = null;
+        Logging.getLogger().addHandler(handler);
+    }
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @After
+    public void tearDown() throws Exception {
+        Logging.getLogger().removeHandler(handler);
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#setLogLevel(java.util.logging.Level)}.
+     */
+    @Test
+    public void testSetLogLevel() {
+        Logging.setLogLevel(Logging.LEVEL_DEBUG);
+        assertEquals(Logging.LEVEL_DEBUG, Logging.getLogger().getLevel());
+        Logging.setLogLevel(Logging.LEVEL_WARN);
+        assertEquals(Logging.LEVEL_WARN, Logging.getLogger().getLevel());
+    }
+
+    private void testLogCaptured(Level level, String expected, Runnable printMessage) {
+        testLogCaptured(level, result -> assertEquals(expected, result), printMessage);
+    }
+
+    private void testLogCaptured(Level level, Consumer<String> expectedTester, Runnable printMessage) {
+        Logging.setLogLevel(level);
+        captured = null;
+        printMessage.run();
+
+        expectedTester.accept(captured.getMessage());
+        assertEquals(level, captured.getLevel());
+
+        captured = null;
+        Logging.setLogLevel(Level.OFF);
+        printMessage.run();
+        assertNull(captured);
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#error(java.lang.String)}.
+     */
+    @Test
+    public void testErrorString() {
+        testLogCaptured(Logging.LEVEL_ERROR, "test", () -> Logging.error("test"));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#error(java.lang.String, java.lang.Object[])}.
+     */
+    @Test
+    public void testErrorStringObjectArray() {
+        testLogCaptured(Logging.LEVEL_ERROR, "test x 1", () -> Logging.error("test {0} {1}", "x", 1));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#warn(java.lang.String)}.
+     */
+    @Test
+    public void testWarnString() {
+        testLogCaptured(Logging.LEVEL_WARN, "test", () -> Logging.warn("test"));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#warn(java.lang.String, java.lang.Object[])}.
+     */
+    @Test
+    public void testWarnStringObjectArray() {
+        testLogCaptured(Logging.LEVEL_WARN, "test x 1", () -> Logging.warn("test {0} {1}", "x", 1));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#info(java.lang.String)}.
+     */
+    @Test
+    public void testInfoString() {
+        testLogCaptured(Logging.LEVEL_INFO, "test", () -> Logging.info("test"));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#info(java.lang.String, java.lang.Object[])}.
+     */
+    @Test
+    public void testInfoStringObjectArray() {
+        testLogCaptured(Logging.LEVEL_INFO, "test x 1", () -> Logging.info("test {0} {1}", "x", 1));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#debug(java.lang.String)}.
+     */
+    @Test
+    public void testDebugString() {
+        testLogCaptured(Logging.LEVEL_DEBUG, "test", () -> Logging.debug("test"));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#debug(java.lang.String, java.lang.Object[])}.
+     */
+    @Test
+    public void testDebugStringObjectArray() {
+        testLogCaptured(Logging.LEVEL_DEBUG, "test x 1", () -> Logging.debug("test {0} {1}", "x", 1));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#trace(java.lang.String)}.
+     */
+    @Test
+    public void testTraceString() {
+        testLogCaptured(Logging.LEVEL_TRACE, "test", () -> Logging.trace("test"));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#trace(java.lang.String, java.lang.Object[])}.
+     */
+    @Test
+    public void testTraceStringObjectArray() {
+        testLogCaptured(Logging.LEVEL_TRACE, "test x 1", () -> Logging.trace("test {0} {1}", "x", 1));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#log(java.util.logging.Level, java.lang.Throwable)}.
+     */
+    @Test
+    public void testLogLevelThrowable() {
+        testLogCaptured(Logging.LEVEL_ERROR, "java.io.IOException: x", () -> Logging.log(Logging.LEVEL_ERROR, new IOException("x")));
+
+        testLogCaptured(Logging.LEVEL_TRACE, "java.io.IOException: x", () -> Logging.log(Logging.LEVEL_TRACE, new IOException("x")));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#log(java.util.logging.Level, java.lang.String, java.lang.Throwable)}.
+     */
+    @Test
+    public void testLogLevelStringThrowable() {
+        testLogCaptured(Logging.LEVEL_ERROR, "y: java.io.IOException: x", () -> Logging.log(Logging.LEVEL_ERROR, "y", new IOException("x")));
+
+        testLogCaptured(Logging.LEVEL_TRACE, "y: java.io.IOException: x", () -> Logging.log(Logging.LEVEL_TRACE, "y", new IOException("x")));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#logWithStackTrace(java.util.logging.Level, java.lang.Throwable)}.
+     */
+    @Test
+    public void testLogWithStackTraceLevelThrowable() {
+        Consumer<String> test = string -> {
+            assertTrue(string.startsWith("java.io.IOException: x"));
+            assertTrue(string.indexOf("testLogWithStackTraceLevelThrowable") >= 0);
+        };
+        testLogCaptured(Logging.LEVEL_ERROR, test, () -> Logging.logWithStackTrace(Logging.LEVEL_ERROR, new IOException("x")));
+        testLogCaptured(Logging.LEVEL_TRACE, test, () -> Logging.logWithStackTrace(Logging.LEVEL_TRACE, new IOException("x")));
+
+        testLogCaptured(Logging.LEVEL_TRACE, string -> assertTrue(string.startsWith("java.io.IOException\n")),
+                () -> Logging.logWithStackTrace(Logging.LEVEL_TRACE, new IOException()));
+
+        testLogCaptured(Logging.LEVEL_TRACE, string -> assertTrue(string.indexOf("Cause:") >= 0),
+                () -> Logging.logWithStackTrace(Logging.LEVEL_TRACE, new IOException(new IOException())));
+
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#logWithStackTrace(java.util.logging.Level, java.lang.String, java.lang.Throwable)}.
+     */
+    @Test
+    public void testLogWithStackTraceLevelStringThrowable() {
+        Consumer<String> test = string -> {
+            assertTrue(string.startsWith("y: java.io.IOException: x"));
+            assertTrue(string.indexOf("testLogWithStackTraceLevelStringThrowable") > 0);
+        };
+        testLogCaptured(Logging.LEVEL_ERROR, test, () -> Logging.logWithStackTrace(Logging.LEVEL_ERROR, "y", new IOException("x")));
+        testLogCaptured(Logging.LEVEL_TRACE, test, () -> Logging.logWithStackTrace(Logging.LEVEL_TRACE, "y", new IOException("x")));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#isLoggingEnabled(java.util.logging.Level)}.
+     */
+    @Test
+    public void testIsLoggingEnabled() {
+        Logging.setLogLevel(Logging.LEVEL_ERROR);
+        assertTrue(Logging.isLoggingEnabled(Logging.LEVEL_ERROR));
+        assertFalse(Logging.isLoggingEnabled(Logging.LEVEL_INFO));
+        assertFalse(Logging.isLoggingEnabled(Logging.LEVEL_TRACE));
+        Logging.setLogLevel(Logging.LEVEL_INFO);
+        assertTrue(Logging.isLoggingEnabled(Logging.LEVEL_ERROR));
+        assertTrue(Logging.isLoggingEnabled(Logging.LEVEL_INFO));
+        assertFalse(Logging.isLoggingEnabled(Logging.LEVEL_TRACE));
+        Logging.setLogLevel(Logging.LEVEL_TRACE);
+        assertTrue(Logging.isLoggingEnabled(Logging.LEVEL_ERROR));
+        assertTrue(Logging.isLoggingEnabled(Logging.LEVEL_INFO));
+        assertTrue(Logging.isLoggingEnabled(Logging.LEVEL_TRACE));
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#clearLastErrorAndWarnings()}.
+     */
+    @Test
+    public void testClearLastErrorAndWarnings() {
+        Logging.setLogLevel(Logging.LEVEL_WARN);
+        Logging.clearLastErrorAndWarnings();
+        Logging.error("x");
+        assertFalse(Logging.getLastErrorAndWarnings().isEmpty());
+        assertFalse(Logging.getLastErrorAndWarnings().isEmpty());
+        Logging.clearLastErrorAndWarnings();
+        assertTrue(Logging.getLastErrorAndWarnings().isEmpty());
+    }
+
+    /**
+     * Test method for {@link org.openstreetmap.josm.tools.Logging#getLastErrorAndWarnings()}.
+     */
+    @Test
+    public void testGetLastErrorAndWarnings() {
+        Logging.setLogLevel(Logging.LEVEL_WARN);
+        Logging.clearLastErrorAndWarnings();
+        Logging.warn("x");
+
+        assertEquals(1, Logging.getLastErrorAndWarnings().size());
+        assertEquals("W: x", Logging.getLastErrorAndWarnings().get(0));
+
+        Logging.setLogLevel(Logging.LEVEL_ERROR);
+        Logging.warn("x");
+
+        assertEquals(1, Logging.getLastErrorAndWarnings().size());
+
+        Logging.error("y\nz");
+
+        assertEquals(2, Logging.getLastErrorAndWarnings().size());
+        assertArrayEquals(new Object[] {"W: x", "E: y"}, Logging.getLastErrorAndWarnings().toArray());
+
+        // limit somewhere reasonable
+        for (int i = 3; i < 6; i++) {
+            Logging.error("x");
+            assertEquals(i, Logging.getLastErrorAndWarnings().size());
+        }
+        for (int i = 2; i < 100; i++) {
+            Logging.error("x");
+        }
+        assertTrue(Logging.getLastErrorAndWarnings().size() < 101);
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java b/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java
index 125042f..c831107 100644
--- a/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java
+++ b/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java
@@ -18,7 +18,7 @@ public class OverpassTurboQueryWizardTest {
      */
     @Rule
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public JOSMTestRules test = new JOSMTestRules();
+    public JOSMTestRules test = new JOSMTestRules().timeout(15000);
 
     /**
      * Test key=value.
diff --git a/test/unit/org/openstreetmap/josm/tools/PredicatesTest.java b/test/unit/org/openstreetmap/josm/tools/PredicatesTest.java
deleted file mode 100644
index d69d4f3..0000000
--- a/test/unit/org/openstreetmap/josm/tools/PredicatesTest.java
+++ /dev/null
@@ -1,222 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.tools;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Properties;
-import java.util.function.Predicate;
-import java.util.regex.Pattern;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
-
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-
-/**
- * This test tests the {@link Predicate}s created by the {@link Predicates} class.
- *
- * @author Michael Zangl
- * @deprecated to remove when {@code Predicates} class is removed
- */
- at Deprecated
-public class PredicatesTest {
-    /**
-     * Some of this depends on preferences.
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Deprecated
-    @Rule
-    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public JOSMTestRules test = new JOSMTestRules().preferences();
-
-    /**
-     * Test {@link Predicates#alwaysTrue()}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testAlwaysTrue() {
-        Predicate<Object> alwaysTrue = Predicates.alwaysTrue();
-        assertTrue(alwaysTrue.test(new Object()));
-        assertTrue(alwaysTrue.test(Boolean.TRUE));
-    }
-
-    /**
-     * Test {@link Predicates#alwaysFalse()}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testAlwaysFalse() {
-        Predicate<Object> alwaysFalse = Predicates.alwaysFalse();
-        assertFalse(alwaysFalse.test(new Object()));
-        assertFalse(alwaysFalse.test(Boolean.TRUE));
-    }
-
-    /**
-     * Test {@link Predicates#equalTo(Object)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testEqualTo() {
-        Integer testObject = Integer.valueOf(1);
-        Predicate<Integer> equalTo = Predicates.equalTo(testObject);
-        assertTrue(equalTo.test(testObject));
-        assertTrue(equalTo.test(Integer.valueOf(1)));
-
-        assertFalse(equalTo.test(Integer.valueOf(2)));
-        assertFalse(equalTo.test(null));
-    }
-
-    /**
-     * Test {@link Predicates#isOfClass(Class)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testIsOfClass() {
-        Predicate<Object> isOfClass = Predicates.<Object>isOfClass(Hashtable.class);
-        assertFalse(isOfClass.test(null));
-        assertFalse(isOfClass.test(new Object()));
-        assertFalse(isOfClass.test(new Properties()));
-        assertTrue(isOfClass.test(new Hashtable<>()));
-    }
-
-    /**
-     * Test {@link Predicates#isOfClass(Class)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testIsInstanceOf() {
-        Predicate<Object> isInstanceOf = Predicates.<Object>isInstanceOf(Hashtable.class);
-        assertFalse(isInstanceOf.test(null));
-        assertFalse(isInstanceOf.test(new Object()));
-        assertTrue(isInstanceOf.test(new Properties()));
-        assertTrue(isInstanceOf.test(new Hashtable<>()));
-    }
-
-    /**
-     * Test {@link Predicates#stringMatchesPattern(java.util.regex.Pattern)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testStringMatchesPattern() {
-        Pattern p = Pattern.compile("ab?c");
-        Predicate<String> stringMatchesPattern = Predicates.stringMatchesPattern(p);
-        assertFalse(stringMatchesPattern.test(""));
-        assertFalse(stringMatchesPattern.test("a"));
-        assertFalse(stringMatchesPattern.test("xabcx"));
-        assertTrue(stringMatchesPattern.test("ac"));
-        assertTrue(stringMatchesPattern.test("abc"));
-    }
-
-    /**
-     * Test {@link Predicates#stringContainsPattern(java.util.regex.Pattern)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testStringContainsPattern() {
-        Pattern p = Pattern.compile("ab?c");
-        Predicate<String> stringContainsPattern = Predicates.stringContainsPattern(p);
-        assertFalse(stringContainsPattern.test(""));
-        assertFalse(stringContainsPattern.test("a"));
-        assertTrue(stringContainsPattern.test("xabcx"));
-        assertTrue(stringContainsPattern.test("ac"));
-        assertTrue(stringContainsPattern.test("abc"));
-        assertTrue(stringContainsPattern.test("xx\nabc\nx"));
-    }
-
-    /**
-     * Test {@link Predicates#stringContains(String)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testStringContains() {
-        Predicate<String> stringContains = Predicates.stringContains("abc");
-        assertFalse(stringContains.test(""));
-        assertFalse(stringContains.test("a"));
-        assertTrue(stringContains.test("xabcx"));
-        assertFalse(stringContains.test("ac"));
-        assertTrue(stringContains.test("abc"));
-    }
-
-    /**
-     * Test {@link Predicates#hasTag(String, String...)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testHasTag() {
-        Predicate<OsmPrimitive> hasTag = Predicates.hasTag("key", "value");
-        Node n1 = new Node();
-        assertFalse(hasTag.test(n1));
-        n1.put("Key", "x");
-        assertFalse(hasTag.test(n1));
-        n1.put("key", "x");
-        assertFalse(hasTag.test(n1));
-        n1.put("key", "value");
-        assertTrue(hasTag.test(n1));
-    }
-
-    /**
-     * Test {@link Predicates#hasKey(String)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testHasKey() {
-        Predicate<OsmPrimitive> hasKey = Predicates.hasKey("key");
-        Node n1 = new Node();
-        assertFalse(hasKey.test(n1));
-        n1.put("Key", "x");
-        assertFalse(hasKey.test(n1));
-        n1.put("key", "x");
-        assertTrue(hasKey.test(n1));
-    }
-
-    /**
-     * Test {@link Predicates#inCollection(java.util.Collection)}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testInCollection() {
-        List<String> list = Arrays.asList("a", "b", "c");
-        Predicate<String> inCollection = Predicates.inCollection(list);
-        assertTrue(inCollection.test("a"));
-        assertTrue(inCollection.test("c"));
-        assertFalse(inCollection.test("d"));
-        assertFalse(inCollection.test(null));
-
-        List<String> list2 = Arrays.asList("a", "b", "c", null);
-        Predicate<String> inCollection2 = Predicates.inCollection(list2);
-        assertTrue(inCollection2.test("a"));
-        assertTrue(inCollection2.test("c"));
-        assertFalse(inCollection2.test("d"));
-        assertTrue(inCollection2.test(null));
-    }
-
-    /**
-     * Test {@link Predicates#isNull()}
-     * @deprecated to remove when {@code Predicates} class is removed
-     */
-    @Test
-    @Deprecated
-    public void testIsNull() {
-        Predicate<Object> isNull = Predicates.isNull();
-        assertTrue(isNull.test(null));
-        assertFalse(isNull.test(Integer.valueOf(2)));
-    }
-}
diff --git a/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandlerTest.java b/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandlerTest.java
index f479d0b..b77da96 100644
--- a/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandlerTest.java
+++ b/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandlerTest.java
@@ -1,39 +1,34 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.tools.bugreport;
 
-import static org.junit.Assert.assertFalse;
+import java.util.concurrent.CountDownLatch;
 
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Unit tests of {@link BugReportExceptionHandler} class.
  */
 public class BugReportExceptionHandlerTest {
-
-    /**
-     * Setup tests.
-     */
-    @Before
-    public void setUp() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
-
     /**
-     * Unit test for {@link BugReportExceptionHandler.BugReporterThread#askForBugReport} method.
+     * No dependencies
      */
-    @Test
-    public void testAskForBugReport() {
-        BugReportExceptionHandler.BugReporterThread.askForBugReport(new Exception("testAskForBugReport"));
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
      * Unit test for {@link BugReportExceptionHandler#handleException} method.
+     * @throws InterruptedException if the current thread is interrupted while waiting
      */
     @Test
-    public void testHandleException() {
+    public void testHandleException() throws InterruptedException {
+        CountDownLatch latch = new CountDownLatch(1);
+        BugReportQueue.getInstance().addBugReportHandler(e -> {latch.countDown(); return false;});
         BugReportExceptionHandler.handleException(new Exception("testHandleException"));
-        assertFalse(BugReportExceptionHandler.exceptionHandlingInProgress());
+        latch.await();
     }
 }
diff --git a/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportTest.java b/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportTest.java
index ab9cf76..40fb56b 100644
--- a/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportTest.java
+++ b/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportTest.java
@@ -2,15 +2,66 @@
 package org.openstreetmap.josm.tools.bugreport;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
 
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import org.junit.Rule;
 import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
  * Tests the bug report class.
  * @author Michael Zangl
- * @since 10285
  */
 public class BugReportTest {
+    /**
+     * Preferences for the report text
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Test {@link BugReport#getReportText()}
+     */
+    @Test
+    public void testReportText() {
+        ReportedException e = interceptInChildMethod(new IOException("test-exception-message"));
+        e.put("test-key", "test-value");
+        String text = new BugReport(e).getReportText();
+
+        assertTrue(text.contains("test-exception-message"));
+        assertTrue(text.contains("interceptInChildMethod"));
+        assertTrue(text.contains("testReportText")); // stack trace
+        assertTrue(text.contains("test-key: test-value"));
+    }
+
+    /**
+     * Test {@link BugReport#intercept(Throwable)}
+     */
+    @Test
+    public void testIntercept() {
+        IOException base = new IOException("test");
+        ReportedException intercepted = interceptInChildMethod(base);
+        assertEquals(intercepted.getCause(), base);
+
+        StringWriter out = new StringWriter();
+        intercepted.printReportDataTo(new PrintWriter(out));
+
+        assertTrue(out.toString().contains("interceptInChildMethod")); // calling method.
+
+        assertSame(intercepted, BugReport.intercept(intercepted));
+    }
+
+    private ReportedException interceptInChildMethod(IOException base) {
+        return BugReport.intercept(base);
+    }
 
     /**
      * Test {@link BugReport#getCallingMethod(int)}
@@ -19,6 +70,7 @@ public class BugReportTest {
     public void testGetCallingMethod() {
         assertEquals("BugReportTest#testGetCallingMethod", BugReport.getCallingMethod(1));
         assertEquals("BugReportTest#testGetCallingMethod", testGetCallingMethod2());
+        assertEquals("?", BugReport.getCallingMethod(100));
     }
 
     private String testGetCallingMethod2() {
diff --git a/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateParserTest.java b/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateParserTest.java
index 56fb1a7..ec69f6c 100644
--- a/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateParserTest.java
+++ b/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateParserTest.java
@@ -10,10 +10,10 @@ import org.junit.Test;
 import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.actions.search.SearchCompiler;
 import org.openstreetmap.josm.actions.search.SearchCompiler.Match;
-import org.openstreetmap.josm.data.osm.DatasetFactory;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
+import org.openstreetmap.josm.testutils.DatasetFactory;
 import org.unitils.reflectionassert.ReflectionAssert;
 
 /**
diff --git a/tools/checkstyle/josm_filters.xml b/tools/checkstyle/josm_filters.xml
index dfe1bb2..c2ccd43 100644
--- a/tools/checkstyle/josm_filters.xml
+++ b/tools/checkstyle/josm_filters.xml
@@ -3,6 +3,28 @@
      "-//Puppy Crawl//DTD Suppressions 1.0//EN"
      "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
 <suppressions>
+  <suppress checks="." files="\.classpath" />
+  <suppress checks="." files="\.project" />
+  <suppress checks="." files="[\\/]build[\\/]" />
+  <suppress checks="." files="[\\/]build2[\\/]" />
+  <suppress checks="." files="[\\/]data_nodist[\\/]" />
+  <suppress checks="." files="[\\/]dist[\\/]" />
+  <suppress checks="." files="[\\/]eclipse[\\/]" />
+  <suppress checks="." files="[\\/]foobar[\\/]" />
+  <suppress checks="." files="[\\/]images[\\/]" />
+  <suppress checks="." files="[\\/]images_nodist[\\/]" />
+  <suppress checks="." files="[\\/]linux[\\/]" />
+  <suppress checks="." files="[\\/]macosx[\\/]" />
+  <suppress checks="." files="[\\/]netbeans[\\/]" />
+  <suppress checks="." files="[\\/]patches[\\/]" />
+  <suppress checks="." files="[\\/]styles_nodist[\\/]" />
+  <suppress checks="." files="[\\/]taginfo-img[\\/]" />
+  <suppress checks="." files="[\\/]taginfo_.*\.json" />
+  <suppress checks="." files="[\\/]test[\\/]config[\\/]" />
+  <suppress checks="." files="[\\/]test[\\/]data[\\/]" />
+  <suppress checks="." files="[\\/]test[\\/]lib[\\/]" />
+  <suppress checks="." files="[\\/]tools[\\/]" />
+  <suppress checks="." files="[\\/]windows[\\/]" />
   <suppress checks="HeaderCheck" files="Ellipsoid\.java" />
   <suppress checks="HeaderCheck" files="NTV2GridShift\.java" />
   <suppress checks="HeaderCheck" files="NTV2GridShiftFile\.java" />
diff --git a/tools/japicc/japi-compliance-checker.pl b/tools/japicc/japi-compliance-checker.pl
new file mode 100644
index 0000000..a9fc6c1
--- /dev/null
+++ b/tools/japicc/japi-compliance-checker.pl
@@ -0,0 +1,9095 @@
+#!/usr/bin/perl
+###########################################################################
+# Java API Compliance Checker (JAPICC) 1.8
+# A tool for checking backward compatibility of a Java library API
+#
+# Written by Andrey Ponomarenko
+#
+# Copyright (C) 2011 Institute for System Programming, RAS
+# Copyright (C) 2011-2016 Andrey Ponomarenko's ABI Laboratory
+#
+# PLATFORMS
+# =========
+#  Linux, FreeBSD, Mac OS X, MS Windows
+#
+# REQUIREMENTS
+# ============
+#  Linux, FreeBSD, Mac OS X
+#    - JDK or OpenJDK - development files (javap, javac)
+#    - Perl 5 (5.8 or newer)
+#
+#  MS Windows
+#    - JDK or OpenJDK (javap, javac)
+#    - Active Perl 5 (5.8 or newer)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License or the GNU Lesser
+# General Public License as published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# and the GNU Lesser General Public License along with this program.
+# If not, see <http://www.gnu.org/licenses/>.
+###########################################################################
+use Getopt::Long;
+Getopt::Long::Configure ("posix_default", "no_ignore_case", "permute");
+use File::Path qw(mkpath rmtree);
+use File::Temp qw(tempdir);
+use File::Copy qw(copy);
+use File::Spec::Functions qw(abs2rel);
+use Cwd qw(abs_path cwd);
+use Data::Dumper;
+use Digest::MD5 qw(md5_hex);
+use Config;
+
+my $TOOL_VERSION = "1.8";
+my $API_DUMP_VERSION = "2.0";
+my $API_DUMP_MAJOR = majorVersion($API_DUMP_VERSION);
+
+my ($Help, $ShowVersion, %Descriptor, $TargetLibraryName, $CheckSeparately,
+$TestSystem, $DumpAPI, $ClassListPath, $ClientPath, $StrictCompat,
+$DumpVersion, $BinaryOnly, $TargetTitle, %TargetVersion, $SourceOnly,
+$ShortMode, $KeepInternal, $OutputReportPath, $BinaryReportPath,
+$SourceReportPath, $Debug, $Quick, $SortDump, $SkipDeprecated, $SkipClassesList,
+$ShowAccess, $AffectLimit, $JdkPath, $SkipInternalPackages, $HideTemplates,
+$HidePackages, $ShowPackages, $Minimal, $AnnotationsListPath,
+$SkipPackagesList, $OutputDumpPath, $AllAffected, $Compact,
+$SkipAnnotationsListPath, $ExternCss, $ExternJs, $SkipInternalTypes,
+$AddedAnnotations, $RemovedAnnotations, $CountMethods, %DepDump, $OldStyle);
+
+my $CmdName = get_filename($0);
+my $OSgroup = get_OSgroup();
+my $ORIG_DIR = cwd();
+my $TMP_DIR = tempdir(CLEANUP=>1);
+my $ARG_MAX = get_ARG_MAX();
+my $REPRODUCIBLE = 1;
+my $MD5_LEN = 8;
+
+my %OS_Archive = (
+    "windows"=>"zip",
+    "default"=>"tar.gz"
+);
+
+my %ERROR_CODE = (
+    # Compatible verdict
+    "Compatible"=>0,
+    "Success"=>0,
+    # Incompatible verdict
+    "Incompatible"=>1,
+    # Undifferentiated error code
+    "Error"=>2,
+    # System command is not found
+    "Not_Found"=>3,
+    # Cannot access input files
+    "Access_Error"=>4,
+    # Invalid input API dump
+    "Invalid_Dump"=>7,
+    # Incompatible version of API dump
+    "Dump_Version"=>8,
+    # Cannot find a module
+    "Module_Error"=>9
+);
+
+my %HomePage = (
+    "Dev"=>"https://github.com/lvc/japi-compliance-checker",
+    "Wiki"=>"http://ispras.linuxbase.org/index.php/Java_API_Compliance_Checker"
+);
+
+my $ShortUsage = "Java API Compliance Checker (JAPICC) $TOOL_VERSION
+A tool for checking backward compatibility of a Java library API
+Copyright (C) 2016 Andrey Ponomarenko's ABI Laboratory
+License: GNU LGPL or GNU GPL
+
+Usage: $CmdName [options]
+Example: $CmdName OLD.jar NEW.jar
+
+More info: $CmdName --help";
+
+if($#ARGV==-1)
+{
+    printMsg("INFO", $ShortUsage);
+    exit(0);
+}
+
+GetOptions("h|help!" => \$Help,
+  "v|version!" => \$ShowVersion,
+  "dumpversion!" => \$DumpVersion,
+# general options
+  "l|lib|library=s" => \$TargetLibraryName,
+  "d1|old|o=s" => \$Descriptor{1}{"Path"},
+  "d2|new|n=s" => \$Descriptor{2}{"Path"},
+# extra options
+  "client|app=s" => \$ClientPath,
+  "binary|bin!" => \$BinaryOnly,
+  "source|src!" => \$SourceOnly,
+  "v1|version1|vnum=s" => \$TargetVersion{1},
+  "v2|version2=s" => \$TargetVersion{2},
+  "s|strict!" => \$StrictCompat,
+  "keep-internal!" => \$KeepInternal,
+  "skip-internal-packages|skip-internal=s" => \$SkipInternalPackages,
+  "skip-internal-types=s" => \$SkipInternalTypes,
+  "dump|dump-api=s" => \$DumpAPI,
+  "classes-list=s" => \$ClassListPath,
+  "annotations-list=s" => \$AnnotationsListPath,
+  "skip-annotations-list=s" => \$SkipAnnotationsListPath,
+  "skip-deprecated!" => \$SkipDeprecated,
+  "skip-classes=s" => \$SkipClassesList,
+  "skip-packages=s" => \$SkipPackagesList,
+  "short" => \$ShortMode,
+  "dump-path=s" => \$OutputDumpPath,
+  "report-path=s" => \$OutputReportPath,
+  "bin-report-path=s" => \$BinaryReportPath,
+  "src-report-path=s" => \$SourceReportPath,
+  "quick!" => \$Quick,
+  "sort!" => \$SortDump,
+  "show-access!" => \$ShowAccess,
+  "limit-affected=s" => \$AffectLimit,
+  "hide-templates!" => \$HideTemplates,
+  "show-packages!" => \$ShowPackages,
+  "compact!" => \$Compact,
+  "added-annotations!" => \$AddedAnnotations,
+  "removed-annotations!" => \$RemovedAnnotations,
+  "count-methods=s" => \$CountMethods,
+  "dep1=s" => \$DepDump{1},
+  "dep2=s" => \$DepDump{2},
+  "old-style!" => \$OldStyle,
+# other options
+  "test!" => \$TestSystem,
+  "debug!" => \$Debug,
+  "title=s" => \$TargetTitle,
+  "jdk-path=s" => \$JdkPath,
+  "external-css=s" => \$ExternCss,
+  "external-js=s" => \$ExternJs,
+# deprecated
+  "minimal!" => \$Minimal,
+  "hide-packages!" => \$HidePackages,
+# private
+  "all-affected!" => \$AllAffected
+) or ERR_MESSAGE();
+
+if(@ARGV)
+{ 
+    if($#ARGV==1)
+    { # japi-compliance-checker OLD.jar NEW.jar
+        $Descriptor{1}{"Path"} = $ARGV[0];
+        $Descriptor{2}{"Path"} = $ARGV[1];
+    }
+    else {
+        ERR_MESSAGE();
+    }
+}
+
+sub ERR_MESSAGE()
+{
+    printMsg("INFO", "\n".$ShortUsage);
+    exit($ERROR_CODE{"Error"});
+}
+
+my $AR_EXT = getAR_EXT($OSgroup);
+
+my $HelpMessage="
+NAME:
+  Java API Compliance Checker ($CmdName)
+  Check backward compatibility of a Java library API
+
+DESCRIPTION:
+  Java API Compliance Checker (JAPICC) is a tool for checking backward
+  binary/source compatibility of a Java library API. The tool checks classes
+  declarations of old and new versions and analyzes changes that may break
+  compatibility: removed class members, added abstract methods, etc. Breakage
+  of the binary compatibility may result in crashing or incorrect behavior of
+  existing clients built with an old version of a library if they run with a
+  new one. Breakage of the source compatibility may result in recompilation
+  errors with a new library version.
+
+  JAPICC is intended for library developers and operating system maintainers
+  who are interested in ensuring backward compatibility (i.e. allow old clients
+  to run or to be recompiled with a new version of a library).
+
+  This tool is free software: you can redistribute it and/or modify it
+  under the terms of the GNU LGPL or GNU GPL.
+
+USAGE:
+  $CmdName [options]
+
+EXAMPLE:
+  $CmdName OLD.jar NEW.jar
+    OR
+  $CmdName -lib NAME -old OLD.xml -new NEW.xml
+  OLD.xml and NEW.xml are XML-descriptors:
+
+    <version>
+        1.0
+    </version>
+    
+    <archives>
+        /path1/to/JAR(s)/
+        /path2/to/JAR(s)/
+        ...
+    </archives>
+
+INFORMATION OPTIONS:
+  -h|-help
+      Print this help.
+
+  -v|-version
+      Print version information.
+
+  -dumpversion
+      Print the tool version ($TOOL_VERSION) and don't do anything else.
+
+GENERAL OPTIONS:
+  -l|-lib|-library NAME
+      Library name (without version).
+
+  -d1|-old|-o PATH
+      Descriptor of 1st (old) library version.
+      It may be one of the following:
+      
+         1. Java ARchive (*.jar)
+         2. XML-descriptor (VERSION.xml file):
+
+              <version>
+                  1.0
+              </version>
+              
+              <archives>
+                  /path1/to/JAR(s)/
+                  /path2/to/JAR(s)/
+                   ...
+              </archives>
+
+                 ...
+         
+         3. API dump generated by -dump option
+
+      If you are using 1, 4-6 descriptor types then you should
+      specify version numbers with -v1 and -v2 options too.
+
+      If you are using *.jar as a descriptor then the tool will try to
+      get implementation version from MANIFEST.MF file.
+
+  -d2|-new|-n PATH
+      Descriptor of 2nd (new) library version.
+
+EXTRA OPTIONS:
+  -client|-app PATH
+      This option allows to specify the client Java ARchive that should be
+      checked for portability to the new library version.
+      
+  -binary|-bin
+      Show \"Binary\" compatibility problems only.
+      Generate report to \"bin_compat_report.html\".
+      
+  -source|-src
+      Show \"Source\" compatibility problems only.
+      Generate report to \"src_compat_report.html\".
+      
+  -v1|-version1 NUM
+      Specify 1st API version outside the descriptor. This option is needed
+      if you have prefered an alternative descriptor type (see -d1 option).
+      
+      In general case you should specify it in the XML descriptor:
+          <version>
+              VERSION
+          </version>
+
+  -v2|-version2 NUM
+      Specify 2nd library version outside the descriptor.
+
+  -vnum NUM
+      Specify the library version in the generated API dump.
+
+  -s|-strict
+      Treat all API compatibility warnings as problems.
+
+  -keep-internal
+      Do not skip checking of these packages:
+        *impl*
+        *internal*
+        *examples*
+  
+  -skip-internal-packages PATTERN
+      Do not check packages matched by the pattern.
+  
+  -skip-internal-types PATTERN
+      Do not check types (classes and interfaces) matched by the pattern.
+  
+  -dump|-dump-api PATH
+      Dump library API to gzipped TXT format file. You can transfer it
+      anywhere and pass instead of the descriptor. Also it may be used
+      for debugging the tool. Compatible dump versions: $API_DUMP_MAJOR.0<=V<=$API_DUMP_VERSION
+      
+  -classes-list PATH
+      This option allows to specify a file with a list
+      of classes that should be checked, other classes will not be checked.
+  
+  -annotations-list PATH
+      Specifies a file with a list of annotations. The tool will check only
+      classes annotated by the annotations from the list. Other classes
+      will not be checked.
+  
+  -skip-annotations-list PATH
+      Skip checking of classes annotated by the annotations in the list.
+      
+  -skip-deprecated
+      Skip analysis of deprecated methods and classes.
+      
+  -skip-classes PATH
+      This option allows to specify a file with a list
+      of classes that should not be checked.
+      
+  -skip-packages PATH
+      This option allows to specify a file with a list
+      of packages that should not be checked.
+      
+  -short
+      Do not list added/removed methods.
+  
+  -dump-path PATH
+      Specify a *.api.$AR_EXT or *.api file path where to generate an API dump.
+      Default: 
+          abi_dumps/LIB_NAME/LIB_NAME_VERSION.api.$AR_EXT
+
+  -report-path PATH
+      Path to compatibility report.
+      Default: 
+          compat_reports/LIB_NAME/V1_to_V2/compat_report.html
+
+  -bin-report-path PATH
+      Path to \"Binary\" compatibility report.
+      Default: 
+          compat_reports/LIB_NAME/V1_to_V2/bin_compat_report.html
+
+  -src-report-path PATH
+      Path to \"Source\" compatibility report.
+      Default: 
+          compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html
+
+  -quick
+      Quick analysis.
+      Disabled:
+        - analysis of method parameter names
+        - analysis of class field values
+        - analysis of usage of added abstract methods
+        - distinction of deprecated methods and classes
+
+  -sort
+      Enable sorting of data in API dumps.
+      
+  -show-access
+      Show access level of non-public methods listed in the report.
+      
+  -hide-templates
+      Hide template parameters in the report.
+  
+  -hide-packages
+  -minimal
+      Do nothing.
+  
+  -show-packages
+      Show package names in the report.
+      
+  -limit-affected LIMIT
+      The maximum number of affected methods listed under the description
+      of the changed type in the report.
+  
+  -compact
+      Try to simplify formatting and reduce size of the report (for a big
+      set of changes).
+  
+  -added-annotations
+      Apply filters by annotations only to new version of the library.
+  
+  -removed-annotations
+      Apply filters by annotations only to old version of the library.
+  
+  -count-methods PATH
+      Count total public methods in the API dump.
+  
+  -dep1 PATH
+  -dep2 PATH
+      Path to the API dump of the required dependency archive. It will
+      be used to resolve overwritten methods and more.
+  
+  -old-style
+      Generate old-style report.
+
+OTHER OPTIONS:
+  -test
+      Run internal tests. Create two incompatible versions of a sample library
+      and run the tool to check them for compatibility. This option allows to
+      check if the tool works correctly in the current environment.
+
+  -debug
+      Debugging mode. Print debug info on the screen. Save intermediate
+      analysis stages in the debug directory:
+          debug/LIB_NAME/VER/
+
+      Also consider using -dump option for debugging the tool.
+
+  -title NAME
+      Change library name in the report title to NAME. By default
+      will be displayed a name specified by -l option.
+
+  -jdk-path PATH
+      Path to the JDK install tree (e.g. /usr/lib/jvm/java-7-openjdk-amd64).
+
+  -external-css PATH
+      Generate CSS styles file to PATH. This helps to save space when
+      generating thousands of reports.
+
+  -external-js PATH
+      Generate JS script file to PATH.
+
+REPORT:
+    Compatibility report will be generated to:
+        compat_reports/LIB_NAME/V1_to_V2/compat_report.html
+
+EXIT CODES:
+    0 - Compatible. The tool has run without any errors.
+    non-zero - Incompatible or the tool has run with errors.
+
+MORE INFORMATION:
+    ".$HomePage{"Wiki"}."
+    ".$HomePage{"Dev"}."\n\n";
+
+sub HELP_MESSAGE()
+{ # -help
+    printMsg("INFO", $HelpMessage."\n");
+}
+
+my %TypeProblems_Kind=(
+    "Binary"=>{
+        "NonAbstract_Class_Added_Abstract_Method"=>"High",
+        "Abstract_Class_Added_Abstract_Method"=>"Safe",
+        "Abstract_Class_Added_Abstract_Method_Invoked_By_Others"=>"Medium",
+        "Class_Removed_Abstract_Method"=>"High",
+        "Interface_Added_Abstract_Method"=>"Safe",
+        "Interface_Added_Abstract_Method_Invoked_By_Others"=>"Medium",
+        "Interface_Removed_Abstract_Method"=>"High",
+        "Removed_Class"=>"High",
+        "Removed_Interface"=>"High",
+        "Class_Method_Became_Abstract"=>"High",
+        "Class_Method_Became_NonAbstract"=>"Low",
+        "Interface_Method_Became_NonDefault"=>"High",
+        "Interface_Method_Became_Default"=>"Safe",
+        "Added_Super_Class"=>"Low",
+        "Abstract_Class_Added_Super_Abstract_Class"=>"Safe",
+        "Abstract_Class_Added_Super_Abstract_Class_Invoked_By_Others"=>"Medium",
+        "Removed_Super_Class"=>"Medium",
+        "Changed_Super_Class"=>"Medium",
+        "Abstract_Class_Added_Super_Interface"=>"Safe",
+        "Abstract_Class_Added_Super_Interface_Invoked_By_Others"=>"Medium",
+        "Abstract_Class_Added_Super_Interface_With_Implemented_Methods"=>"Safe",
+        "Class_Removed_Super_Interface"=>"High",
+        "Interface_Added_Super_Interface"=>"Safe",
+        "Interface_Added_Super_Interface_Used_By_Others"=>"Medium",
+        "Interface_Added_Super_Constant_Interface"=>"Low",
+        "Interface_Added_Super_Interface_With_Implemented_Methods"=>"Safe",
+        "Interface_Removed_Super_Interface"=>"High",
+        "Interface_Removed_Super_Constant_Interface"=>"Safe",
+        "Class_Became_Interface"=>"High",
+        "Interface_Became_Class"=>"High",
+        "Class_Became_Final"=>"High",
+        "Class_Became_Abstract"=>"High",
+        "Class_Added_Field"=>"Safe",
+        "Interface_Added_Field"=>"Safe",
+        "Removed_NonConstant_Field"=>"High",
+        "Removed_Constant_Field"=>"Low",
+        "Renamed_Field"=>"High",
+        "Renamed_Constant_Field"=>"Low",
+        "Changed_Field_Type"=>"High",
+        "Changed_Field_Access"=>"High",
+        "Changed_Final_Field_Value"=>"Medium",
+        "Changed_Final_Version_Field_Value"=>"Low",
+        "Field_Became_Final"=>"Medium",
+        "Field_Became_NonFinal"=>"Low",
+        "NonConstant_Field_Became_Static"=>"High",
+        "NonConstant_Field_Became_NonStatic"=>"High",
+        "Class_Overridden_Method"=>"Low",
+        "Class_Method_Moved_Up_Hierarchy"=>"Low"
+    },
+    "Source"=>{
+        "NonAbstract_Class_Added_Abstract_Method"=>"High",
+        "Abstract_Class_Added_Abstract_Method"=>"High",
+        "Abstract_Class_Added_Abstract_Method_Invoked_By_Others"=>"High",
+        "Interface_Added_Abstract_Method"=>"High",
+        "Interface_Added_Abstract_Method_Invoked_By_Others"=>"High",
+        "Class_Removed_Abstract_Method"=>"High",
+        "Interface_Removed_Abstract_Method"=>"High",
+        "Removed_Class"=>"High",
+        "Removed_Interface"=>"High",
+        "Class_Method_Became_Abstract"=>"High",
+        "Class_Method_Became_NonAbstract"=>"Safe",
+        "Interface_Method_Became_NonDefault"=>"High",
+        "Interface_Method_Became_Default"=>"Safe",
+        "Added_Super_Class"=>"Low",
+        "Abstract_Class_Added_Super_Abstract_Class"=>"High",
+        "Abstract_Class_Added_Super_Abstract_Class_Invoked_By_Others"=>"High",
+        "Removed_Super_Class"=>"Medium",
+        "Changed_Super_Class"=>"Medium",
+        "Abstract_Class_Added_Super_Interface"=>"High",
+        "Abstract_Class_Added_Super_Interface_Invoked_By_Others"=>"High",
+        "Abstract_Class_Added_Super_Interface_With_Implemented_Methods"=>"Safe",
+        "Class_Removed_Super_Interface"=>"High",
+        "Interface_Added_Super_Interface"=>"High",
+        "Interface_Added_Super_Interface_Used_By_Others"=>"High",
+        "Interface_Added_Super_Constant_Interface"=>"Low",
+        "Interface_Added_Super_Interface_With_Implemented_Methods"=>"Safe",
+        "Interface_Removed_Super_Interface"=>"High",
+        "Interface_Removed_Super_Constant_Interface"=>"High",
+        "Class_Became_Interface"=>"High",
+        "Interface_Became_Class"=>"High",
+        "Class_Became_Final"=>"High",
+        "Class_Became_Abstract"=>"High",
+        "Class_Added_Field"=>"Safe",
+        "Interface_Added_Field"=>"Safe",
+        "Removed_NonConstant_Field"=>"High",
+        "Removed_Constant_Field"=>"High",
+        "Renamed_Field"=>"High",
+        "Renamed_Constant_Field"=>"High",
+        "Changed_Field_Type"=>"High",
+        "Changed_Field_Access"=>"High",
+        "Field_Became_Final"=>"Medium",
+        "Constant_Field_Became_NonStatic"=>"High",
+        "NonConstant_Field_Became_NonStatic"=>"High",
+        "Removed_Annotation"=>"High"
+    }
+);
+
+my %MethodProblems_Kind=(
+    "Binary"=>{
+        "Added_Method"=>"Safe",
+        "Removed_Method"=>"High",
+        "Method_Became_Static"=>"High",
+        "Method_Became_NonStatic"=>"High",
+        "NonStatic_Method_Became_Final"=>"Medium",
+        "Changed_Method_Access"=>"High",
+        "Method_Became_Synchronized"=>"Low",
+        "Method_Became_NonSynchronized"=>"Low",
+        "Method_Became_Abstract"=>"High",
+        "Method_Became_NonAbstract"=>"Low",
+        "Method_Became_NonDefault"=>"High",
+        "Method_Became_Default"=>"Safe",
+        "NonAbstract_Method_Added_Checked_Exception"=>"Low",
+        "NonAbstract_Method_Removed_Checked_Exception"=>"Low",
+        "Added_Unchecked_Exception"=>"Low",
+        "Removed_Unchecked_Exception"=>"Low",
+        "Variable_Arity_To_Array"=>"Low",# not implemented yet
+        "Changed_Method_Return_From_Void"=>"High"
+    },
+    "Source"=>{
+        "Added_Method"=>"Safe",
+        "Removed_Method"=>"High",
+        "Method_Became_Static"=>"Low",
+        "Method_Became_NonStatic"=>"High",
+        "Static_Method_Became_Final"=>"Medium",
+        "NonStatic_Method_Became_Final"=>"Medium",
+        "Changed_Method_Access"=>"High",
+        "Method_Became_Abstract"=>"High",
+        "Method_Became_NonAbstract"=>"Safe",
+        "Method_Became_NonDefault"=>"High",
+        "Method_Became_Default"=>"Safe",
+        "Abstract_Method_Added_Checked_Exception"=>"Medium",
+        "NonAbstract_Method_Added_Checked_Exception"=>"Medium",
+        "Abstract_Method_Removed_Checked_Exception"=>"Medium",
+        "NonAbstract_Method_Removed_Checked_Exception"=>"Medium"
+    }
+);
+
+my %KnownRuntimeExceptions= map {$_=>1} (
+# To separate checked- and unchecked- exceptions
+    "java.lang.AnnotationTypeMismatchException",
+    "java.lang.ArithmeticException",
+    "java.lang.ArrayStoreException",
+    "java.lang.BufferOverflowException",
+    "java.lang.BufferUnderflowException",
+    "java.lang.CannotRedoException",
+    "java.lang.CannotUndoException",
+    "java.lang.ClassCastException",
+    "java.lang.CMMException",
+    "java.lang.ConcurrentModificationException",
+    "java.lang.DataBindingException",
+    "java.lang.DOMException",
+    "java.lang.EmptyStackException",
+    "java.lang.EnumConstantNotPresentException",
+    "java.lang.EventException",
+    "java.lang.IllegalArgumentException",
+    "java.lang.IllegalMonitorStateException",
+    "java.lang.IllegalPathStateException",
+    "java.lang.IllegalStateException",
+    "java.lang.ImagingOpException",
+    "java.lang.IncompleteAnnotationException",
+    "java.lang.IndexOutOfBoundsException",
+    "java.lang.JMRuntimeException",
+    "java.lang.LSException",
+    "java.lang.MalformedParameterizedTypeException",
+    "java.lang.MirroredTypeException",
+    "java.lang.MirroredTypesException",
+    "java.lang.MissingResourceException",
+    "java.lang.NegativeArraySizeException",
+    "java.lang.NoSuchElementException",
+    "java.lang.NoSuchMechanismException",
+    "java.lang.NullPointerException",
+    "java.lang.ProfileDataException",
+    "java.lang.ProviderException",
+    "java.lang.RasterFormatException",
+    "java.lang.RejectedExecutionException",
+    "java.lang.SecurityException",
+    "java.lang.SystemException",
+    "java.lang.TypeConstraintException",
+    "java.lang.TypeNotPresentException",
+    "java.lang.UndeclaredThrowableException",
+    "java.lang.UnknownAnnotationValueException",
+    "java.lang.UnknownElementException",
+    "java.lang.UnknownEntityException",
+    "java.lang.UnknownTypeException",
+    "java.lang.UnmodifiableSetException",
+    "java.lang.UnsupportedOperationException",
+    "java.lang.WebServiceException",
+    "java.lang.WrongMethodTypeException"
+);
+
+my %Slash_Type=(
+    "default"=>"/",
+    "windows"=>"\\"
+);
+
+my $SLASH = $Slash_Type{$OSgroup}?$Slash_Type{$OSgroup}:$Slash_Type{"default"};
+
+my %OS_AddPath=(
+# this data needed if tool can't detect it automatically
+"macos"=>{
+    "bin"=>{"/Developer/usr/bin"=>1}},
+"beos"=>{
+    "bin"=>{"/boot/common/bin"=>1,"/boot/system/bin"=>1,"/boot/develop/abi"=>1}}
+);
+
+#Global variables
+my %RESULT;
+my $ExtractCounter = 0;
+my %Cache;
+my $TOP_REF = "<a class='top_ref' href='#Top'>to the top</a>";
+my %DEBUG_PATH;
+
+#Types
+my %TypeInfo;
+my $TYPE_ID = 0;
+my %CheckedTypes;
+my %TName_Tid;
+my %Class_Constructed;
+
+#Classes
+my %ClassList_User;
+my %UsedMethods_Client;
+my %UsedFields_Client;
+my %UsedClasses_Client;
+my %LibArchives;
+my %Class_Methods;
+my %Class_AbstractMethods;
+my %Class_Fields;
+my %MethodUsed;
+my %ClassMethod_AddedUsed;
+# my %FieldUsed;
+
+#java.lang.Object
+my %JavaObjectMethod = (
+    
+    "java/lang/Object.clone:()Ljava/lang/Object;" => 1,
+    "java/lang/Object.equals:(Ljava/lang/Object;)Z" => 1,
+    "java/lang/Object.finalize:()V" => 1,
+    "java/lang/Object.getClass:()Ljava/lang/Class;" => 1,
+    "java/lang/Object.hashCode:()I" => 1,
+    "java/lang/Object.notify:()V" => 1,
+    "java/lang/Object.notifyAll:()V" => 1,
+    "java/lang/Object.toString:()Ljava/lang/String;" => 1,
+    "java/lang/Object.wait:()V" => 1,
+    "java/lang/Object.wait:(J)V" => 1,
+    "java/lang/Object.wait:(JI)V" => 1
+);
+
+#Annotations
+my %AnnotationList_User;
+my %SkipAnnotationList_User;
+
+#Methods
+my %CheckedMethods;
+my %tr_name;
+
+#Merging
+my %MethodInfo;
+my $Version;
+my %AddedMethod_Abstract;
+my %RemovedMethod_Abstract;
+my %ChangedReturnFromVoid;
+my %SkipClasses;
+my %SkipPackages;
+my %KeepPackages;
+my %SkippedPackage;
+
+#Report
+my %TypeChanges;
+
+#Recursion locks
+my @RecurSymlink;
+my @RecurTypes;
+
+#System
+my %SystemPaths;
+my %DefaultBinPaths;
+
+#Problem descriptions
+my %CompatProblems;
+my %TotalAffected;
+
+#Speedup
+my %TypeProblemsIndex;
+
+#Rerort
+my $ContentID = 1;
+my $ContentSpanStart = "<span class=\"section\" onclick=\"sC(this, 'CONTENT_ID')\">\n";
+my $ContentSpanStart_Affected = "<span class=\"sect_aff\" onclick=\"sC(this, 'CONTENT_ID')\">\n";
+my $ContentSpanEnd = "</span>\n";
+my $ContentDivStart = "<div id=\"CONTENT_ID\" style=\"display:none;\">\n";
+my $ContentDivEnd = "</div>\n";
+my $Content_Counter = 0;
+
+#Modes
+my $JoinReport = 1;
+my $DoubleReport = 0;
+
+sub get_CmdPath($)
+{
+    my $Name = $_[0];
+    return "" if(not $Name);
+    if(defined $Cache{"get_CmdPath"}{$Name}) {
+        return $Cache{"get_CmdPath"}{$Name};
+    }
+    my $Path = search_Cmd($Name);
+    if(not $Path and $OSgroup eq "windows")
+    { # search for *.exe file
+        $Path=search_Cmd($Name.".exe");
+    }
+    if (not $Path) {
+        $Path=search_Cmd_Path($Name);
+    }
+    if($Path=~/\s/) {
+        $Path = "\"".$Path."\"";
+    }
+    return ($Cache{"get_CmdPath"}{$Name} = $Path);
+}
+
+sub search_Cmd($)
+{
+    my $Name = $_[0];
+    return "" if(not $Name);
+    if(defined $Cache{"search_Cmd"}{$Name}) {
+        return $Cache{"search_Cmd"}{$Name};
+    }
+    if(defined $JdkPath)
+    {
+        if(-x $JdkPath."/".$Name) {
+            return ($Cache{"search_Cmd"}{$Name} = $JdkPath."/".$Name);
+        }
+        
+        if(-x $JdkPath."/bin/".$Name) {
+            return ($Cache{"search_Cmd"}{$Name} = $JdkPath."/bin/".$Name);
+        }
+    }
+    if(my $DefaultPath = get_CmdPath_Default($Name)) {
+        return ($Cache{"search_Cmd"}{$Name} = $DefaultPath);
+    }
+    return ($Cache{"search_Cmd"}{$Name} = "");
+}
+
+sub search_Cmd_Path($)
+{
+    my $Name = $_[0];
+    return "" if(not $Name);
+    
+    if(defined $Cache{"search_Cmd_Path"}{$Name}) {
+        return $Cache{"search_Cmd_Path"}{$Name};
+    }
+    
+    if(defined $SystemPaths{"bin"})
+    {
+        foreach my $Path (sort {length($a)<=>length($b)} keys(%{$SystemPaths{"bin"}}))
+        {
+            if(-f $Path."/".$Name or -f $Path."/".$Name.".exe") {
+                return ($Cache{"search_Cmd_Path"}{$Name} = joinPath($Path,$Name));
+            }
+        }
+    }
+
+    return ($Cache{"search_Cmd_Path"}{$Name} = "");
+}
+
+sub get_CmdPath_Default($)
+{ # search in PATH
+    return "" if(not $_[0]);
+    if(defined $Cache{"get_CmdPath_Default"}{$_[0]}) {
+        return $Cache{"get_CmdPath_Default"}{$_[0]};
+    }
+    return ($Cache{"get_CmdPath_Default"}{$_[0]} = get_CmdPath_Default_I($_[0]));
+}
+
+sub get_CmdPath_Default_I($)
+{ # search in PATH
+    my $Name = $_[0];
+    if($Name=~/find/)
+    { # special case: search for "find" utility
+        if(`find \"$TMP_DIR\" -maxdepth 0 2>\"$TMP_DIR/null\"`) {
+            return "find";
+        }
+    }
+    if(get_version($Name)) {
+        return $Name;
+    }
+    if($OSgroup eq "windows")
+    {
+        if(`$Name /? 2>\"$TMP_DIR/null\"`) {
+            return $Name;
+        }
+    }
+    if($Name!~/which/)
+    {
+        if(my $WhichCmd = get_CmdPath("which"))
+        {
+            if(`$WhichCmd $Name 2>\"$TMP_DIR/null\"`) {
+                return $Name;
+            }
+        }
+    }
+    foreach my $Path (sort {length($a)<=>length($b)} keys(%DefaultBinPaths))
+    {
+        if(-f $Path."/".$Name) {
+            return joinPath($Path,$Name);
+        }
+    }
+    return "";
+}
+
+sub showPos($)
+{
+    my $Number = $_[0];
+    if(not $Number) {
+        $Number = 1;
+    }
+    else {
+        $Number = int($Number)+1;
+    }
+    if($Number>3) {
+        return $Number."th";
+    }
+    elsif($Number==1) {
+        return "1st";
+    }
+    elsif($Number==2) {
+        return "2nd";
+    }
+    elsif($Number==3) {
+        return "3rd";
+    }
+    else {
+        return $Number;
+    }
+}
+
+sub getAR_EXT($)
+{
+    my $Target = $_[0];
+    if(my $Ext = $OS_Archive{$Target}) {
+        return $Ext;
+    }
+    return $OS_Archive{"default"};
+}
+
+sub readDescriptor($$)
+{
+    my ($LibVersion, $Content) = @_;
+    return if(not $LibVersion);
+    my $DName = $DumpAPI?"descriptor":"descriptor \"d$LibVersion\"";
+    if(not $Content) {
+        exitStatus("Error", "$DName is empty");
+    }
+    if($Content!~/\</) {
+        exitStatus("Error", "descriptor should be one of the following:\n  Java ARchive, XML descriptor, gzipped API dump or directory with Java ARchives.");
+    }
+    $Content=~s/\/\*(.|\n)+?\*\///g;
+    $Content=~s/<\!--(.|\n)+?-->//g;
+    $Descriptor{$LibVersion}{"Version"} = parseTag(\$Content, "version");
+    $Descriptor{$LibVersion}{"Version"} = $TargetVersion{$LibVersion} if($TargetVersion{$LibVersion});
+    if($Descriptor{$LibVersion}{"Version"} eq "") {
+        exitStatus("Error", "version in the $DName is not specified (<version> section)");
+    }
+    
+    my $DArchives = parseTag(\$Content, "archives");
+    if(not $DArchives){
+        exitStatus("Error", "Java ARchives in the $DName are not specified (<archive> section)");
+    }
+    else
+    {# append the descriptor Java ARchives list
+        if($Descriptor{$LibVersion}{"Archives"}) {
+            $Descriptor{$LibVersion}{"Archives"} .= "\n".$DArchives;
+        }
+        else {
+            $Descriptor{$LibVersion}{"Archives"} = $DArchives;
+        }
+        foreach my $Path (split(/\s*\n\s*/, $DArchives))
+        {
+            if(not -e $Path) {
+                exitStatus("Access_Error", "can't access \'$Path\'");
+            }
+        }
+    }
+    foreach my $Package (split(/\s*\n\s*/, parseTag(\$Content, "skip_packages"))) {
+        $SkipPackages{$LibVersion}{$Package} = 1;
+    }
+    foreach my $Package (split(/\s*\n\s*/, parseTag(\$Content, "packages"))) {
+        $KeepPackages{$LibVersion}{$Package} = 1;
+    }
+}
+
+sub parseTag($$)
+{
+    my ($CodeRef, $Tag) = @_;
+    return "" if(not $CodeRef or not ${$CodeRef} or not $Tag);
+    if(${$CodeRef}=~s/\<\Q$Tag\E\>((.|\n)+?)\<\/\Q$Tag\E\>//)
+    {
+        my $Content = $1;
+        $Content=~s/(\A\s+|\s+\Z)//g;
+        return $Content;
+    }
+    else {
+        return "";
+    }
+}
+
+sub ignore_path($$)
+{
+    my ($Path, $Prefix) = @_;
+    return 1 if(not $Path or not -e $Path
+    or not $Prefix or not -e $Prefix);
+    return 1 if($Path=~/\~\Z/);# skipping system backup files
+    # skipping hidden .svn, .git, .bzr, .hg and CVS directories
+    return 1 if(cut_path_prefix($Path, $Prefix)=~/(\A|[\/\\]+)(\.(svn|git|bzr|hg)|CVS)([\/\\]+|\Z)/);
+    return 0;
+}
+
+sub cut_path_prefix($$)
+{
+    my ($Path, $Prefix) = @_;
+    $Prefix=~s/[\/\\]+\Z//;
+    $Path=~s/\A\Q$Prefix\E([\/\\]+|\Z)//;
+    return $Path;
+}
+
+sub get_filename($)
+{ # much faster than basename() from File::Basename module
+    if(defined $Cache{"get_filename"}{$_[0]}) {
+        return $Cache{"get_filename"}{$_[0]};
+    }
+    if($_[0] and $_[0]=~/([^\/\\]+)[\/\\]*\Z/) {
+        return ($Cache{"get_filename"}{$_[0]}=$1);
+    }
+    return ($Cache{"get_filename"}{$_[0]}="");
+}
+
+sub get_dirname($)
+{ # much faster than dirname() from File::Basename module
+    if(defined $Cache{"get_dirname"}{$_[0]}) {
+        return $Cache{"get_dirname"}{$_[0]};
+    }
+    if($_[0] and $_[0]=~/\A(.*?)[\/\\]+[^\/\\]*[\/\\]*\Z/) {
+        return ($Cache{"get_dirname"}{$_[0]}=$1);
+    }
+    return ($Cache{"get_dirname"}{$_[0]}="");
+}
+
+sub separate_path($) {
+    return (get_dirname($_[0]), get_filename($_[0]));
+}
+
+sub joinPath($$)
+{
+    return join($SLASH, @_);
+}
+
+sub get_abs_path($)
+{ # abs_path() should NOT be called for absolute inputs
+  # because it can change them
+    my $Path = $_[0];
+    if(not is_abs($Path)) {
+        $Path = abs_path($Path);
+    }
+    return $Path;
+}
+
+sub is_abs($) {
+    return ($_[0]=~/\A(\/|\w+:[\/\\])/);
+}
+
+sub cmd_find($$$$)
+{
+    my ($Path, $Type, $Name, $MaxDepth) = @_;
+    return () if(not $Path or not -e $Path);
+    if($OSgroup eq "windows")
+    {
+        my $DirCmd = get_CmdPath("dir");
+        if(not $DirCmd) {
+            exitStatus("Not_Found", "can't find \"dir\" command");
+        }
+        $Path=~s/[\\]+\Z//;
+        $Path = get_abs_path($Path);
+        my $Cmd = $DirCmd." \"$Path\" /B /O";
+        if($MaxDepth!=1) {
+            $Cmd .= " /S";
+        }
+        if($Type eq "d") {
+            $Cmd .= " /AD";
+        }
+        my @Files = ();
+        if($Name)
+        { # FIXME: how to search file names in MS shell?
+            $Name=~s/\*/.*/g if($Name!~/\]/);
+            foreach my $File (split(/\n/, `$Cmd`))
+            {
+                if($File=~/$Name\Z/i) {
+                    push(@Files, $File);    
+                }
+            }
+        }
+        else {
+            @Files = split(/\n/, `$Cmd 2>\"$TMP_DIR/null\"`);
+        }
+        my @AbsPaths = ();
+        foreach my $File (@Files)
+        {
+            if(not is_abs($File)) {
+                $File = joinPath($Path, $File);
+            }
+            if($Type eq "f" and not -f $File)
+            { # skip dirs
+                next;
+            }
+            push(@AbsPaths, $File);
+        }
+        if($Type eq "d") {
+            push(@AbsPaths, $Path);
+        }
+        return @AbsPaths;
+    }
+    else
+    {
+        my $FindCmd = get_CmdPath("find");
+        if(not $FindCmd) {
+            exitStatus("Not_Found", "can't find a \"find\" command");
+        }
+        $Path = get_abs_path($Path);
+        if(-d $Path and -l $Path
+        and $Path!~/\/\Z/)
+        { # for directories that are symlinks
+            $Path.="/";
+        }
+        my $Cmd = $FindCmd." \"$Path\"";
+        if($MaxDepth) {
+            $Cmd .= " -maxdepth $MaxDepth";
+        }
+        if($Type) {
+            $Cmd .= " -type $Type";
+        }
+        if($Name)
+        {
+            if($Name=~/\]/) {
+                $Cmd .= " -regex \"$Name\"";
+            }
+            else {
+                $Cmd .= " -name \"$Name\"";
+            }
+        }
+        return split(/\n/, `$Cmd 2>\"$TMP_DIR/null\"`);
+    }
+}
+
+sub path_format($$)
+{ # forward slash to pass into MinGW GCC
+    my ($Path, $Fmt) = @_;
+    if($Fmt eq "windows")
+    {
+        $Path=~s/\//\\/g;
+        $Path=lc($Path);
+    }
+    else {
+        $Path=~s/\\/\//g;
+    }
+    return $Path;
+}
+
+sub unpackDump($)
+{
+    my $Path = $_[0];
+    return "" if(not $Path or not -e $Path);
+    
+    if(isDumpFile($Path)) {
+        return $Path;
+    }
+    
+    $Path = get_abs_path($Path);
+    $Path = path_format($Path, $OSgroup);
+    my ($Dir, $FileName) = separate_path($Path);
+    my $UnpackDir = $TMP_DIR."/unpack";
+    if(-d $UnpackDir) {
+        rmtree($UnpackDir);
+    }
+    mkpath($UnpackDir);
+    if($FileName=~s/\Q.zip\E\Z//g)
+    { # *.zip
+        my $UnzipCmd = get_CmdPath("unzip");
+        if(not $UnzipCmd) {
+            exitStatus("Not_Found", "can't find \"unzip\" command");
+        }
+        chdir($UnpackDir);
+        system("$UnzipCmd \"$Path\" >contents.txt");
+        if($?) {
+            exitStatus("Error", "can't extract \'$Path\'");
+        }
+        chdir($ORIG_DIR);
+        my @Contents = ();
+        foreach (split("\n", readFile("$UnpackDir/contents.txt")))
+        {
+            if(/inflating:\s*([^\s]+)/) {
+                push(@Contents, $1);
+            }
+        }
+        if(not @Contents) {
+            exitStatus("Error", "can't extract \'$Path\'");
+        }
+        return joinPath($UnpackDir, $Contents[0]);
+    }
+    elsif($FileName=~s/\Q.tar.gz\E\Z//g)
+    { # *.tar.gz
+        if($OSgroup eq "windows")
+        { # -xvzf option is not implemented in tar.exe (2003)
+          # use "gzip.exe -k -d -f" + "tar.exe -xvf" instead
+            my $TarCmd = get_CmdPath("tar");
+            if(not $TarCmd) {
+                exitStatus("Not_Found", "can't find \"tar\" command");
+            }
+            my $GzipCmd = get_CmdPath("gzip");
+            if(not $GzipCmd) {
+                exitStatus("Not_Found", "can't find \"gzip\" command");
+            }
+            chdir($UnpackDir);
+            qx/$GzipCmd -k -d -f "$Path"/; # keep input files (-k)
+            if($?) {
+                exitStatus("Error", "can't extract \'$Path\'");
+            }
+            my @Contents = qx/$TarCmd -xvf "$Dir\\$FileName.tar"/;
+            if($? or not @Contents) {
+                exitStatus("Error", "can't extract \'$Path\'");
+            }
+            chdir($ORIG_DIR);
+            unlink($Dir."/".$FileName.".tar");
+            chomp $Contents[0];
+            return joinPath($UnpackDir, $Contents[0]);
+        }
+        else
+        { # Linux, Unix, OS X
+            my $TarCmd = get_CmdPath("tar");
+            if(not $TarCmd) {
+                exitStatus("Not_Found", "can't find \"tar\" command");
+            }
+            chdir($UnpackDir);
+            my @Contents = qx/$TarCmd -xvzf "$Path" 2>&1/;
+            if($? or not @Contents) {
+                exitStatus("Error", "can't extract \'$Path\'");
+            }
+            chdir($ORIG_DIR);
+            $Contents[0]=~s/^x //; # OS X
+            chomp $Contents[0];
+            return joinPath($UnpackDir, $Contents[0]);
+        }
+    }
+}
+
+sub mergeClasses()
+{
+    my %ReportedRemoved = undef;
+    
+    foreach my $ClassName (keys(%{$Class_Methods{1}}))
+    {
+        next if(not $ClassName);
+        my $Type1_Id = $TName_Tid{1}{$ClassName};
+        my %Type1 = get_Type($Type1_Id, 1);
+        
+        if($Type1{"Type"}!~/class|interface/) {
+            next;
+        }
+        
+        if(defined $Type1{"Access"}
+        and $Type1{"Access"}=~/private/) {
+            next;
+        }
+        
+        if(not classFilter(\%Type1, 1, 0)) {
+            next;
+        }
+        
+        my $Type2_Id = $TName_Tid{2}{$ClassName};
+        if(not $Type2_Id)
+        { # classes and interfaces with public methods
+            foreach my $Method (keys(%{$Class_Methods{1}{$ClassName}}))
+            {
+                if(not methodFilter($Method, 1)) {
+                    next;
+                }
+                
+                $CheckedTypes{$ClassName} = 1;
+                $CheckedMethods{$Method} = 1;
+                
+                if($Type1{"Type"} eq "class")
+                {
+                    %{$CompatProblems{$Method}{"Removed_Class"}{"this"}} = (
+                        "Type_Name"=>$ClassName,
+                        "Target"=>$ClassName  );
+                }
+                else
+                {
+                    %{$CompatProblems{$Method}{"Removed_Interface"}{"this"}} = (
+                        "Type_Name"=>$ClassName,
+                        "Target"=>$ClassName  );
+                }
+                
+                $ReportedRemoved{$ClassName} = 1;
+            }
+        }
+    }
+    
+    foreach my $Class_Id (keys(%{$TypeInfo{1}}))
+    {
+        my %Class1 = get_Type($Class_Id, 1);
+        
+        if($Class1{"Type"}!~/class|interface/) {
+            next;
+        }
+        
+        if(defined $Class1{"Access"}
+        and $Class1{"Access"}=~/private/) {
+            next;
+        }
+        
+        if(not classFilter(\%Class1, 1, 1)) {
+            next;
+        }
+        
+        my $ClassName = $Class1{"Name"};
+        
+        if(my $Class2_Id = $TName_Tid{2}{$ClassName})
+        { # classes and interfaces with public static fields
+            if(not defined $Class_Methods{1}{$ClassName})
+            {
+                my %Class2 = get_Type($Class2_Id, 2);
+                
+                foreach my $Field (keys(%{$Class1{"Fields"}}))
+                {
+                    my $FieldInfo = $Class1{"Fields"}{$Field};
+                    
+                    my $FAccess = $FieldInfo->{"Access"};
+                    if($FAccess=~/private/) {
+                        next;
+                    }
+                    
+                    if($FieldInfo->{"Static"})
+                    {
+                        $CheckedTypes{$ClassName} = 1;
+                        
+                        if(not defined $Class2{"Fields"}{$Field})
+                        {
+                            %{$CompatProblems{".client_method"}{"Removed_NonConstant_Field"}{$Field}}=(
+                                "Target"=>$Field,
+                                "Type_Name"=>$ClassName,
+                                "Type_Type"=>$Class1{"Type"},
+                                "Field_Type"=>get_TypeName($FieldInfo->{"Type"}, 1)  );
+                        }
+                    }
+                }
+            }
+        }
+        else
+        { # removed
+            if(defined $Class1{"Annotation"})
+            {
+                %{$CompatProblems{".client_method"}{"Removed_Annotation"}{"this"}} = (
+                    "Type_Name"=>$ClassName,
+                    "Target"=>$ClassName  );
+            }
+            
+            if(not defined $Class_Methods{1}{$ClassName})
+            {
+                # classes and interfaces with public static fields
+                if(not defined $ReportedRemoved{$ClassName})
+                {
+                    foreach my $Field (keys(%{$Class1{"Fields"}}))
+                    {
+                        my $FieldInfo = $Class1{"Fields"}{$Field};
+                        
+                        my $FAccess = $FieldInfo->{"Access"};
+                        if($FAccess=~/private/) {
+                            next;
+                        }
+                        
+                        if($FieldInfo->{"Static"})
+                        {
+                            $CheckedTypes{$ClassName} = 1;
+                            
+                            if($Class1{"Type"} eq "class")
+                            {
+                                %{$CompatProblems{".client_method"}{"Removed_Class"}{"this"}} = (
+                                    "Type_Name"=>$ClassName,
+                                    "Target"=>$ClassName  );
+                            }
+                            else
+                            {
+                                %{$CompatProblems{".client_method"}{"Removed_Interface"}{"this"}} = (
+                                    "Type_Name"=>$ClassName,
+                                    "Target"=>$ClassName  );
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+sub findFieldPair($$)
+{
+    my ($Field_Pos, $Pair_Type) = @_;
+    foreach my $Pair_Name (sort keys(%{$Pair_Type->{"Fields"}}))
+    {
+        if(defined $Pair_Type->{"Fields"}{$Pair_Name})
+        {
+            if($Pair_Type->{"Fields"}{$Pair_Name}{"Pos"} eq $Field_Pos) {
+                return $Pair_Name;
+            }
+        }
+    }
+    return "lost";
+}
+
+my %Severity_Val=(
+    "High"=>3,
+    "Medium"=>2,
+    "Low"=>1,
+    "Safe"=>-1
+);
+
+sub isRecurType($$)
+{
+    foreach (@RecurTypes)
+    {
+        if($_->{"Tid1"} eq $_[0]
+        and $_->{"Tid2"} eq $_[1])
+        {
+            return 1;
+        }
+    }
+    return 0;
+}
+
+sub pushType($$)
+{
+    my %TypeDescriptor=(
+        "Tid1"  => $_[0],
+        "Tid2"  => $_[1]  );
+    push(@RecurTypes, \%TypeDescriptor);
+}
+
+sub get_SFormat($)
+{
+    my $Name = $_[0];
+    $Name=~s/\./\//g;
+    return $Name;
+}
+
+sub get_PFormat($)
+{
+    my $Name = $_[0];
+    $Name=~s/\//./g;
+    return $Name;
+}
+
+sub get_ConstantValue($$)
+{
+    my ($Value, $ValueType) = @_;
+    return "" if(not $Value);
+    if($Value eq "\@EMPTY_STRING\@") {
+        return "\"\"";
+    }
+    elsif($ValueType eq "java.lang.String") {
+        return "\"".$Value."\"";
+    }
+    else {
+        return $Value;
+    }
+}
+
+sub getInvoked($)
+{
+    my $TName = $_[0];
+    
+    if(my @Invoked = sort keys(%{$ClassMethod_AddedUsed{$TName}}))
+    {
+        my $MFirst = $Invoked[0];
+        my $MSignature = unmangle($MFirst);
+        $MSignature=~s/\A.+\.(\w+\()/$1/g; # short name
+        my $InvokedBy = $ClassMethod_AddedUsed{$TName}{$MFirst};
+        return ($MSignature, $InvokedBy);
+    }
+    
+    return ();
+}
+
+sub mergeTypes($$)
+{
+    my ($Type1_Id, $Type2_Id) = @_;
+    return {} if(not $Type1_Id or not $Type2_Id);
+    
+    if(defined $Cache{"mergeTypes"}{$Type1_Id}{$Type2_Id})
+    { # already merged
+        return $Cache{"mergeTypes"}{$Type1_Id}{$Type2_Id};
+    }
+    
+    my %Type1 = get_Type($Type1_Id, 1);
+    my %Type2 = get_Type($Type2_Id, 2);
+    if(isRecurType($Type1_Id, $Type2_Id))
+    { # do not follow to recursive declarations
+        return {};
+    }
+    return {} if(not $Type1{"Name"} or not $Type2{"Name"});
+    return {} if(not $Type1{"Archive"} or not $Type2{"Archive"});
+    return {} if($Type1{"Name"} ne $Type2{"Name"});
+    
+    if(not classFilter(\%Type1, 1, 0)) {
+        return {};
+    }
+    
+    $CheckedTypes{$Type1{"Name"}} = 1;
+    
+    my %SubProblems = ();
+    
+    if($Type1{"BaseType"} and $Type2{"BaseType"})
+    { # check base type (arrays)
+        return mergeTypes($Type1{"BaseType"}, $Type2{"BaseType"});
+    }
+    
+    if($Type2{"Type"}!~/(class|interface)/) {
+        return {};
+    }
+    
+    if($Type1{"Type"} eq "class" and not $Class_Constructed{1}{$Type1_Id})
+    { # class cannot be constructed or inherited by clients
+        return {};
+    }
+    
+    if($Type1{"Type"} eq "class"
+    and $Type2{"Type"} eq "interface")
+    {
+        %{$SubProblems{"Class_Became_Interface"}{""}}=(
+            "Type_Name"=>$Type1{"Name"}  );
+        
+        return ($Cache{"mergeTypes"}{$Type1_Id}{$Type2_Id} = \%SubProblems);
+    }
+    if($Type1{"Type"} eq "interface"
+    and $Type2{"Type"} eq "class")
+    {
+        %{$SubProblems{"Interface_Became_Class"}{""}}=(
+            "Type_Name"=>$Type1{"Name"}  );
+        
+        return ($Cache{"mergeTypes"}{$Type1_Id}{$Type2_Id} = \%SubProblems);
+    }
+    if(not $Type1{"Final"}
+    and $Type2{"Final"})
+    {
+        %{$SubProblems{"Class_Became_Final"}{""}}=(
+            "Type_Name"=>$Type1{"Name"},
+            "Target"=>$Type1{"Name"}  );
+    }
+    if(not $Type1{"Abstract"}
+    and $Type2{"Abstract"})
+    {
+        %{$SubProblems{"Class_Became_Abstract"}{""}}=(
+            "Type_Name"=>$Type1{"Name"}  );
+    }
+    
+    pushType($Type1_Id, $Type2_Id);
+    
+    foreach my $AddedMethod (keys(%{$AddedMethod_Abstract{$Type1{"Name"}}}))
+    {
+        if($Type1{"Type"} eq "class")
+        {
+            if($Type1{"Abstract"})
+            {
+                if(my @InvokedBy = sort keys(%{$MethodUsed{2}{$AddedMethod}}))
+                {
+                    %{$SubProblems{"Abstract_Class_Added_Abstract_Method_Invoked_By_Others"}{get_SFormat($AddedMethod)}} = (
+                        "Type_Name"=>$Type1{"Name"},
+                        "Type_Type"=>$Type1{"Type"},
+                        "Target"=>$AddedMethod,
+                        "InvokedBy"=>$InvokedBy[0]  );
+                }
+                else
+                {
+                    %{$SubProblems{"Abstract_Class_Added_Abstract_Method"}{get_SFormat($AddedMethod)}} = (
+                        "Type_Name"=>$Type1{"Name"},
+                        "Type_Type"=>$Type1{"Type"},
+                        "Target"=>$AddedMethod  );
+                }
+            }
+            else
+            {
+                %{$SubProblems{"NonAbstract_Class_Added_Abstract_Method"}{get_SFormat($AddedMethod)}} = (
+                    "Type_Name"=>$Type1{"Name"},
+                    "Type_Type"=>$Type1{"Type"},
+                    "Target"=>$AddedMethod  );
+            }
+        }
+        else
+        {
+            if(my @InvokedBy = sort keys(%{$MethodUsed{2}{$AddedMethod}}))
+            {
+                %{$SubProblems{"Interface_Added_Abstract_Method_Invoked_By_Others"}{get_SFormat($AddedMethod)}} = (
+                    "Type_Name"=>$Type1{"Name"},
+                    "Type_Type"=>$Type1{"Type"},
+                    "Target"=>$AddedMethod,
+                    "InvokedBy"=>$InvokedBy[0]  );
+            }
+            else
+            {
+                %{$SubProblems{"Interface_Added_Abstract_Method"}{get_SFormat($AddedMethod)}} = (
+                    "Type_Name"=>$Type1{"Name"},
+                    "Type_Type"=>$Type1{"Type"},
+                    "Target"=>$AddedMethod  );
+            }
+        }
+    }
+    foreach my $RemovedMethod (keys(%{$RemovedMethod_Abstract{$Type1{"Name"}}}))
+    {
+        if($Type1{"Type"} eq "class")
+        {
+            %{$SubProblems{"Class_Removed_Abstract_Method"}{get_SFormat($RemovedMethod)}} = (
+                "Type_Name"=>$Type1{"Name"},
+                "Type_Type"=>$Type1{"Type"},
+                "Target"=>$RemovedMethod  );
+        }
+        else
+        {
+            %{$SubProblems{"Interface_Removed_Abstract_Method"}{get_SFormat($RemovedMethod)}} = (
+                "Type_Name"=>$Type1{"Name"},
+                "Type_Type"=>$Type1{"Type"},
+                "Target"=>$RemovedMethod  );
+        }
+    }
+    if($Type1{"Type"} eq "class"
+    and $Type2{"Type"} eq "class")
+    {
+        my %SuperClass1 = get_Type($Type1{"SuperClass"}, 1);
+        my %SuperClass2 = get_Type($Type2{"SuperClass"}, 2);
+        if($SuperClass2{"Name"} ne $SuperClass1{"Name"})
+        {
+            if($SuperClass1{"Name"} eq "java.lang.Object"
+            or not $SuperClass1{"Name"})
+            {
+              # Java 6: java.lang.Object
+              # Java 7: none
+                if($SuperClass2{"Name"} ne "java.lang.Object")
+                {
+                    if($SuperClass2{"Abstract"}
+                    and $Type1{"Abstract"} and $Type2{"Abstract"}
+                    and keys(%{$Class_AbstractMethods{2}{$SuperClass2{"Name"}}}))
+                    {
+                        if(my ($Invoked, $InvokedBy) = getInvoked($Type1{"Name"}))
+                        {
+                            %{$SubProblems{"Abstract_Class_Added_Super_Abstract_Class_Invoked_By_Others"}{""}} = (
+                                "Type_Name"=>$Type1{"Name"},
+                                "Target"=>$SuperClass2{"Name"},
+                                "Invoked"=>$Invoked,
+                                "InvokedBy"=>$InvokedBy  );
+                        }
+                        else
+                        {
+                            %{$SubProblems{"Abstract_Class_Added_Super_Abstract_Class"}{""}} = (
+                                "Type_Name"=>$Type1{"Name"},
+                                "Target"=>$SuperClass2{"Name"}  );
+                        }
+                    }
+                    else
+                    {
+                        %{$SubProblems{"Added_Super_Class"}{""}} = (
+                            "Type_Name"=>$Type1{"Name"},
+                            "Target"=>$SuperClass2{"Name"}  );
+                    }
+                }
+            }
+            elsif($SuperClass2{"Name"} eq "java.lang.Object"
+            or not $SuperClass2{"Name"})
+            {
+              # Java 6: java.lang.Object
+              # Java 7: none
+                if($SuperClass1{"Name"} ne "java.lang.Object")
+                {
+                    %{$SubProblems{"Removed_Super_Class"}{""}} = (
+                        "Type_Name"=>$Type1{"Name"},
+                        "Target"=>$SuperClass1{"Name"}  );
+                }
+            }
+            else
+            {
+                %{$SubProblems{"Changed_Super_Class"}{""}} = (
+                    "Type_Name"=>$Type1{"Name"},
+                    "Target"=>$SuperClass1{"Name"},
+                    "Old_Value"=>$SuperClass1{"Name"},
+                    "New_Value"=>$SuperClass2{"Name"}  );
+            }
+        }
+    }
+    my %SuperInterfaces_Old = map {get_TypeName($_, 1) => 1} keys(%{$Type1{"SuperInterface"}});
+    my %SuperInterfaces_New = map {get_TypeName($_, 2) => 1} keys(%{$Type2{"SuperInterface"}});
+    foreach my $SuperInterface (keys(%SuperInterfaces_New))
+    {
+        if(not $SuperInterfaces_Old{$SuperInterface})
+        {
+            my $HaveMethods = keys(%{$Class_AbstractMethods{2}{$SuperInterface}});
+            my $HaveFields = keys(%{$Class_Fields{2}{$SuperInterface}});
+            
+            if($Type1{"Type"} eq "interface")
+            {
+                if($HaveMethods
+                or $SuperInterface=~/\Ajava\./)
+                {
+                    if($HaveMethods and checkDefaultImpl(2, $SuperInterface, $Type2{"Name"}))
+                    {
+                        %{$SubProblems{"Interface_Added_Super_Interface_With_Implemented_Methods"}{get_SFormat($SuperInterface)}} = (
+                            "Type_Name"=>$Type1{"Name"},
+                            "Target"=>$SuperInterface  );
+                    }
+                    else
+                    {
+                        if(my ($Invoked, $InvokedBy) = getInvoked($Type1{"Name"}))
+                        {
+                            %{$SubProblems{"Interface_Added_Super_Interface_Used_By_Others"}{get_SFormat($SuperInterface)}} = (
+                                "Type_Name"=>$Type1{"Name"},
+                                "Target"=>$SuperInterface,
+                                "Invoked"=>$Invoked,
+                                "InvokedBy"=>$InvokedBy  );
+                        }
+                        else
+                        {
+                            %{$SubProblems{"Interface_Added_Super_Interface"}{get_SFormat($SuperInterface)}} = (
+                                "Type_Name"=>$Type1{"Name"},
+                                "Target"=>$SuperInterface  );
+                        }
+                    }
+                }
+                elsif($HaveFields)
+                {
+                    %{$SubProblems{"Interface_Added_Super_Constant_Interface"}{get_SFormat($SuperInterface)}} = (
+                        "Type_Name"=>$Type2{"Name"},
+                        "Target"=>$SuperInterface  );
+                }
+                else
+                {
+                    # empty interface
+                }
+            }
+            else
+            {
+                if($Type1{"Abstract"} and $Type2{"Abstract"})
+                {
+                    if($HaveMethods and checkDefaultImpl(2, $SuperInterface, $Type2{"Name"}))
+                    {
+                        %{$SubProblems{"Abstract_Class_Added_Super_Interface_With_Implemented_Methods"}{get_SFormat($SuperInterface)}} = (
+                            "Type_Name"=>$Type1{"Name"},
+                            "Target"=>$SuperInterface  );
+                    }
+                    else
+                    {
+                        if(my ($Invoked, $InvokedBy) = getInvoked($Type1{"Name"}))
+                        {
+                            %{$SubProblems{"Abstract_Class_Added_Super_Interface_Invoked_By_Others"}{get_SFormat($SuperInterface)}} = (
+                                "Type_Name"=>$Type1{"Name"},
+                                "Target"=>$SuperInterface,
+                                "Invoked"=>$Invoked,
+                                "InvokedBy"=>$InvokedBy  );
+                        }
+                        else
+                        {
+                            %{$SubProblems{"Abstract_Class_Added_Super_Interface"}{get_SFormat($SuperInterface)}} = (
+                                "Type_Name"=>$Type1{"Name"},
+                                "Target"=>$SuperInterface  );
+                        }
+                    }
+                }
+            }
+        }
+    }
+    foreach my $SuperInterface (keys(%SuperInterfaces_Old))
+    {
+        if(not $SuperInterfaces_New{$SuperInterface})
+        {
+            my $HaveMethods = keys(%{$Class_AbstractMethods{1}{$SuperInterface}});
+            my $HaveFields = keys(%{$Class_Fields{1}{$SuperInterface}});
+            
+            if($Type1{"Type"} eq "interface")
+            {
+                if($HaveMethods
+                or $SuperInterface=~/\Ajava\./)
+                {
+                    %{$SubProblems{"Interface_Removed_Super_Interface"}{get_SFormat($SuperInterface)}} = (
+                        "Type_Name"=>$Type1{"Name"},
+                        "Type_Type"=>"interface",
+                        "Target"=>$SuperInterface  );
+                }
+                elsif($HaveFields)
+                {
+                    %{$SubProblems{"Interface_Removed_Super_Constant_Interface"}{get_SFormat($SuperInterface)}} = (
+                        "Type_Name"=>$Type1{"Name"},
+                        "Target"=>$SuperInterface  );
+                }
+                else {
+                    # empty interface
+                }
+            }
+            else
+            {
+                %{$SubProblems{"Class_Removed_Super_Interface"}{get_SFormat($SuperInterface)}} = (
+                    "Type_Name"=>$Type1{"Name"},
+                    "Type_Type"=>"class",
+                    "Target"=>$SuperInterface  );
+            }
+        }
+    }
+    
+    foreach my $Field_Name (sort keys(%{$Type1{"Fields"}}))
+    {# check older fields
+        my $Access1 = $Type1{"Fields"}{$Field_Name}{"Access"};
+        if($Access1=~/private/) {
+            next;
+        }
+        
+        my $Field_Pos1 = $Type1{"Fields"}{$Field_Name}{"Pos"};
+        my $FieldType1_Id = $Type1{"Fields"}{$Field_Name}{"Type"};
+        my %FieldType1 = get_Type($FieldType1_Id, 1);
+        
+        if(not $Type2{"Fields"}{$Field_Name})
+        {# removed fields
+            my $StraightPair_Name = findFieldPair($Field_Pos1, \%Type2);
+            if($StraightPair_Name ne "lost" and not $Type1{"Fields"}{$StraightPair_Name}
+            and $FieldType1{"Name"} eq get_TypeName($Type2{"Fields"}{$StraightPair_Name}{"Type"}, 2))
+            {
+                if(my $Constant = get_ConstantValue($Type1{"Fields"}{$Field_Name}{"Value"}, $FieldType1{"Name"}))
+                {
+                    %{$SubProblems{"Renamed_Constant_Field"}{$Field_Name}}=(
+                        "Target"=>$Field_Name,
+                        "Type_Name"=>$Type1{"Name"},
+                        "Old_Value"=>$Field_Name,
+                        "New_Value"=>$StraightPair_Name,
+                        "Field_Type"=>$FieldType1{"Name"},
+                        "Field_Value"=>$Constant  );
+                }
+                else
+                {
+                    %{$SubProblems{"Renamed_Field"}{$Field_Name}}=(
+                        "Target"=>$Field_Name,
+                        "Type_Name"=>$Type1{"Name"},
+                        "Old_Value"=>$Field_Name,
+                        "New_Value"=>$StraightPair_Name,
+                        "Field_Type"=>$FieldType1{"Name"}  );
+                }
+            }
+            else
+            {
+                if(my $Constant = get_ConstantValue($Type1{"Fields"}{$Field_Name}{"Value"}, $FieldType1{"Name"}))
+                { # has a compile-time constant value
+                    %{$SubProblems{"Removed_Constant_Field"}{$Field_Name}}=(
+                        "Target"=>$Field_Name,
+                        "Type_Name"=>$Type1{"Name"},
+                        "Field_Value"=>$Constant,
+                        "Field_Type"=>$FieldType1{"Name"},
+                        "Type_Type"=>$Type1{"Type"}  );
+                }
+                else
+                {
+                    %{$SubProblems{"Removed_NonConstant_Field"}{$Field_Name}}=(
+                        "Target"=>$Field_Name,
+                        "Type_Name"=>$Type1{"Name"},
+                        "Type_Type"=>$Type1{"Type"},
+                        "Field_Type"=>$FieldType1{"Name"}  );
+                }
+            }
+            next;
+        }
+        my $FieldType2_Id = $Type2{"Fields"}{$Field_Name}{"Type"};
+        my %FieldType2 = get_Type($FieldType2_Id, 2);
+        
+        if(not $Type1{"Fields"}{$Field_Name}{"Static"}
+        and $Type2{"Fields"}{$Field_Name}{"Static"})
+        {
+            if(not $Type1{"Fields"}{$Field_Name}{"Value"})
+            {
+                %{$SubProblems{"NonConstant_Field_Became_Static"}{$Field_Name}}=(
+                    "Target"=>$Field_Name,
+                    "Field_Type"=>$FieldType1{"Name"},
+                    "Type_Name"=>$Type1{"Name"}  );
+            }
+        }
+        elsif($Type1{"Fields"}{$Field_Name}{"Static"}
+        and not $Type2{"Fields"}{$Field_Name}{"Static"})
+        {
+            if($Type1{"Fields"}{$Field_Name}{"Value"})
+            {
+                %{$SubProblems{"Constant_Field_Became_NonStatic"}{$Field_Name}}=(
+                    "Target"=>$Field_Name,
+                    "Field_Type"=>$FieldType1{"Name"},
+                    "Type_Name"=>$Type1{"Name"}  );
+            }
+            else
+            {
+                %{$SubProblems{"NonConstant_Field_Became_NonStatic"}{$Field_Name}}=(
+                    "Target"=>$Field_Name,
+                    "Field_Type"=>$FieldType1{"Name"},
+                    "Type_Name"=>$Type1{"Name"}  );
+            }
+        }
+        if(not $Type1{"Fields"}{$Field_Name}{"Final"}
+        and $Type2{"Fields"}{$Field_Name}{"Final"})
+        {
+            %{$SubProblems{"Field_Became_Final"}{$Field_Name}}=(
+                "Target"=>$Field_Name,
+                "Field_Type"=>$FieldType1{"Name"},
+                "Type_Name"=>$Type1{"Name"}  );
+        }
+        elsif($Type1{"Fields"}{$Field_Name}{"Final"}
+        and not $Type2{"Fields"}{$Field_Name}{"Final"})
+        {
+            %{$SubProblems{"Field_Became_NonFinal"}{$Field_Name}}=(
+                "Target"=>$Field_Name,
+                "Field_Type"=>$FieldType1{"Name"},
+                "Type_Name"=>$Type1{"Name"}  );
+        }
+        my $Access2 = $Type2{"Fields"}{$Field_Name}{"Access"};
+        if($Access1 eq "public" and $Access2=~/protected|private/
+        or $Access1 eq "protected" and $Access2=~/private/)
+        {
+            %{$SubProblems{"Changed_Field_Access"}{$Field_Name}}=(
+                "Target"=>$Field_Name,
+                "Type_Name"=>$Type1{"Name"},
+                "Old_Value"=>$Access1,
+                "New_Value"=>$Access2  );
+        }
+        
+        my $Value1 = get_ConstantValue($Type1{"Fields"}{$Field_Name}{"Value"}, $FieldType1{"Name"});
+        my $Value2 = get_ConstantValue($Type2{"Fields"}{$Field_Name}{"Value"}, $FieldType2{"Name"});
+        
+        if($Value1 ne $Value2)
+        {
+            if($Value1 and $Value2)
+            {
+                if($Type1{"Fields"}{$Field_Name}{"Final"}
+                and $Type2{"Fields"}{$Field_Name}{"Final"})
+                {
+                    if($Field_Name=~/(\A|_)(VERSION|VERNUM|BUILDNUMBER|BUILD)(_|\Z)/i)
+                    {
+                        %{$SubProblems{"Changed_Final_Version_Field_Value"}{$Field_Name}}=(
+                            "Target"=>$Field_Name,
+                            "Field_Type"=>$FieldType1{"Name"},
+                            "Type_Name"=>$Type1{"Name"},
+                            "Old_Value"=>$Value1,
+                            "New_Value"=>$Value2  );
+                    }
+                    else
+                    {
+                        %{$SubProblems{"Changed_Final_Field_Value"}{$Field_Name}}=(
+                            "Target"=>$Field_Name,
+                            "Field_Type"=>$FieldType1{"Name"},
+                            "Type_Name"=>$Type1{"Name"},
+                            "Old_Value"=>$Value1,
+                            "New_Value"=>$Value2  );
+                    }
+                }
+            }
+        }
+        
+        my %Sub_SubChanges = detectTypeChange($FieldType1_Id, $FieldType2_Id, "Field");
+        foreach my $Sub_SubProblemType (keys(%Sub_SubChanges))
+        {
+            %{$SubProblems{$Sub_SubProblemType}{$Field_Name}}=(
+                "Target"=>$Field_Name,
+                "Type_Name"=>$Type1{"Name"});
+            
+            foreach my $Attr (keys(%{$Sub_SubChanges{$Sub_SubProblemType}}))
+            {
+                $SubProblems{$Sub_SubProblemType}{$Field_Name}{$Attr} = $Sub_SubChanges{$Sub_SubProblemType}{$Attr};
+            }
+        }
+        
+        if($FieldType1_Id and $FieldType2_Id)
+        { # check field type change
+            my $Sub_SubProblems = mergeTypes($FieldType1_Id, $FieldType2_Id);
+            my %DupProblems = ();
+            
+            foreach my $Sub_SubProblemType (sort keys(%{$Sub_SubProblems}))
+            {
+                foreach my $Sub_SubLocation (sort {length($a)<=>length($b)} sort keys(%{$Sub_SubProblems->{$Sub_SubProblemType}}))
+                {
+                    if(not defined $AllAffected)
+                    {
+                        if(defined $DupProblems{$Sub_SubProblems->{$Sub_SubProblemType}{$Sub_SubLocation}}) {
+                            next;
+                        }
+                    }
+                    
+                    my $NewLocation = ($Sub_SubLocation)?$Field_Name.".".$Sub_SubLocation:$Field_Name;
+                    $SubProblems{$Sub_SubProblemType}{$NewLocation} = $Sub_SubProblems->{$Sub_SubProblemType}{$Sub_SubLocation};
+                    
+                    if(not defined $AllAffected)
+                    {
+                        $DupProblems{$Sub_SubProblems->{$Sub_SubProblemType}{$Sub_SubLocation}} = 1;
+                    }
+                }
+            }
+            %DupProblems = ();
+        }
+    }
+    
+    foreach my $Field_Name (sort keys(%{$Type2{"Fields"}}))
+    { # check added fields
+        if($Type2{"Fields"}{$Field_Name}{"Access"}=~/private/) {
+            next;
+        }
+        my $FieldPos2 = $Type2{"Fields"}{$Field_Name}{"Pos"};
+        my $FieldType2_Id = $Type2{"Fields"}{$Field_Name}{"Type"};
+        my %FieldType2 = get_Type($FieldType2_Id, 2);
+        
+        if(not $Type1{"Fields"}{$Field_Name})
+        {# added fields
+            my $StraightPair_Name = findFieldPair($FieldPos2, \%Type1);
+            if($StraightPair_Name ne "lost" and not $Type2{"Fields"}{$StraightPair_Name}
+            and get_TypeName($Type1{"Fields"}{$StraightPair_Name}{"Type"}, 1) eq $FieldType2{"Name"})
+            {
+                # Already reported as "Renamed_Field" or "Renamed_Constant_Field"
+            }
+            else
+            {
+                if($Type1{"Type"} eq "interface")
+                {
+                    %{$SubProblems{"Interface_Added_Field"}{$Field_Name}}=(
+                        "Target"=>$Field_Name,
+                        "Type_Name"=>$Type1{"Name"}  );
+                }
+                else
+                {
+                    %{$SubProblems{"Class_Added_Field"}{$Field_Name}}=(
+                        "Target"=>$Field_Name,
+                        "Type_Name"=>$Type1{"Name"}  );
+                }
+            }
+        }
+    }
+    
+    pop(@RecurTypes);
+    return ($Cache{"mergeTypes"}{$Type1_Id}{$Type2_Id} = \%SubProblems);
+}
+
+sub checkDefaultImpl($$$)
+{ # Check if all abstract methods of the super class have
+  # default implementations in the class
+    my ($LibVersion, $SuperClassName, $ClassName) = @_;
+    
+    foreach my $Method (keys(%{$Class_AbstractMethods{$LibVersion}{$SuperClassName}}))
+    {
+        if(my $Overridden = findMethod_Class($Method, $ClassName, $LibVersion))
+        {
+            if($MethodInfo{$LibVersion}{$Overridden}{"Abstract"}) {
+                return 0;
+            }
+        }
+        else {
+            return 0;
+        }
+    }
+    
+    return 1;
+}
+
+sub unmangle($)
+{
+    my $Name = $_[0];
+    $Name=~s!/!.!g;
+    $Name=~s!:\(!(!g;
+    $Name=~s!\).+\Z!)!g;
+    if($Name=~/\A(.+)\((.+)\)/)
+    {
+        my ($ShortName, $MangledParams) = ($1, $2);
+        my @UnmangledParams = ();
+        my ($IsArray, $Shift, $Pos, $CurParam) = (0, 0, 0, "");
+        while($Pos<length($MangledParams))
+        {
+            my $Symbol = substr($MangledParams, $Pos, 1);
+            if($Symbol eq "[")
+            { # array
+                $IsArray = 1;
+                $Pos+=1;
+            }
+            elsif($Symbol eq "L")
+            { # class
+                if(substr($MangledParams, $Pos+1)=~/\A(.+?);/) {
+                    $CurParam = $1;
+                    $Shift = length($CurParam)+2;
+                }
+                if($IsArray) {
+                    $CurParam .= "[]";
+                }
+                $Pos+=$Shift;
+                push(@UnmangledParams, $CurParam);
+                ($IsArray, $Shift, $CurParam) = (0, 0, "")
+            }
+            else
+            {
+                if($Symbol eq "C") {
+                    $CurParam = "char";
+                }
+                elsif($Symbol eq "B") {
+                    $CurParam = "byte";
+                }
+                elsif($Symbol eq "S") {
+                    $CurParam = "short";
+                }
+                elsif($Symbol eq "S") {
+                    $CurParam = "short";
+                }
+                elsif($Symbol eq "I") {
+                    $CurParam = "int";
+                }
+                elsif($Symbol eq "F") {
+                    $CurParam = "float";
+                }
+                elsif($Symbol eq "J") {
+                    $CurParam = "long";
+                }
+                elsif($Symbol eq "D") {
+                    $CurParam = "double";
+                }
+                else {
+                    printMsg("INFO", "WARNING: unmangling error");
+                }
+                if($IsArray) {
+                    $CurParam .= "[]";
+                }
+                $Pos+=1;
+                push(@UnmangledParams, $CurParam);
+                ($IsArray, $Shift, $CurParam) = (0, 0, "")
+            }
+        }
+        return $ShortName."(".join(", ", @UnmangledParams).")";
+    }
+    else {
+        return $Name;
+    }
+}
+
+sub get_TypeName($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    return $TypeInfo{$LibVersion}{$TypeId}{"Name"};
+}
+
+sub get_ShortName($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    my $TypeName = $TypeInfo{$LibVersion}{$TypeId}{"Name"};
+    $TypeName=~s/\A.*\.//g;
+    return $TypeName;
+}
+
+sub get_TypeType($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    return $TypeInfo{$LibVersion}{$TypeId}{"Type"};
+}
+
+sub get_TypeHeader($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    return $TypeInfo{$LibVersion}{$TypeId}{"Header"};
+}
+
+sub get_BaseType($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    return "" if(not $TypeId);
+    if(defined $Cache{"get_BaseType"}{$TypeId}{$LibVersion}) {
+        return %{$Cache{"get_BaseType"}{$TypeId}{$LibVersion}};
+    }
+    return "" if(not $TypeInfo{$LibVersion}{$TypeId});
+    my %Type = %{$TypeInfo{$LibVersion}{$TypeId}};
+    return %Type if(not $Type{"BaseType"});
+    %Type = get_BaseType($Type{"BaseType"}, $LibVersion);
+    $Cache{"get_BaseType"}{$TypeId}{$LibVersion} = \%Type;
+    return %Type;
+}
+
+sub get_OneStep_BaseType($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    return "" if(not $TypeId);
+    return "" if(not $TypeInfo{$LibVersion}{$TypeId});
+    my %Type = %{$TypeInfo{$LibVersion}{$TypeId}};
+    return %Type if(not $Type{"BaseType"});
+    return get_Type($Type{"BaseType"}, $LibVersion);
+}
+
+sub get_Type($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    return "" if(not $TypeId);
+    return "" if(not $TypeInfo{$LibVersion}{$TypeId});
+    return %{$TypeInfo{$LibVersion}{$TypeId}};
+}
+
+sub classFilter($$$)
+{
+    my ($Class, $LibVersion, $ClassContext) = @_;
+    
+    if(defined $Class->{"Dep"}) {
+        return 0;
+    }
+    
+    my $CName = $Class->{"Name"};
+    my $Package = $Class->{"Package"};
+    
+    if(defined $ClassListPath
+    and not defined $ClassList_User{$CName})
+    { # user defined classes
+        return 0;
+    }
+    
+    if(defined $SkipClassesList
+    and defined $SkipClasses{$CName})
+    { # user defined classes
+        return 0;
+    }
+    
+    if(skipPackage($Package, $LibVersion))
+    { # internal packages
+        return 0;
+    }
+    
+    if(skipType($CName))
+    { # internal types
+        return 0;
+    }
+    
+    if($ClassContext)
+    {
+        my @Ann = ();
+        
+        if(defined $Class->{"Annotations"}) {
+            @Ann = keys(%{$Class->{"Annotations"}});
+        }
+        
+        if(not annotationFilter(\@Ann, $LibVersion)) {
+            return 0;
+        }
+        
+        if($ClientPath)
+        {
+            if(not defined $UsedClasses_Client{$CName}) {
+                return 0;
+            }
+        }
+    }
+    
+    return 1;
+}
+
+sub annotationFilter($$)
+{
+    my ($Ann, $LibVersion) = @_;
+    
+    if(not defined $CountMethods)
+    {
+        if(defined $AddedAnnotations and $LibVersion==1) {
+            return 1;
+        }
+        
+        if(defined $RemovedAnnotations and $LibVersion==2) {
+            return 1;
+        }
+    }
+    
+    if($SkipAnnotationsListPath)
+    {
+        foreach my $Aid (@{$Ann})
+        {
+            my $AName = $TypeInfo{$LibVersion}{$Aid}{"Name"};
+            
+            if(defined $SkipAnnotationList_User{$AName}) {
+                return 0;
+            }
+        }
+    }
+    
+    if($AnnotationsListPath)
+    {
+        my $Annotated = 0;
+        
+        foreach my $Aid (@{$Ann})
+        {
+            my $AName = $TypeInfo{$LibVersion}{$Aid}{"Name"};
+            
+            if(defined $AnnotationList_User{$AName})
+            {
+                $Annotated = 1;
+                last;
+            }
+        }
+        
+        if(not $Annotated) {
+            return 0;
+        }
+    }
+    
+    return 1;
+}
+
+sub methodFilter($$)
+{
+    my ($Method, $LibVersion) = @_;
+    
+    if(defined $MethodInfo{$LibVersion}{$Method}{"Dep"}) {
+        return 0;
+    }
+    
+    if($MethodInfo{$LibVersion}{$Method}{"Access"}=~/private/)
+    { # non-public
+        return 0;
+    }
+    
+    my $ClassId = $MethodInfo{$LibVersion}{$Method}{"Class"};
+    my %Class = get_Type($ClassId, $LibVersion);
+    
+    if($Class{"Access"}=~/private/)
+    { # skip private classes
+        return 0;
+    }
+    
+    my $Package = $MethodInfo{$LibVersion}{$Method}{"Package"};
+    
+    my @Ann = ();
+    
+    if(defined $Class{"Annotations"}) {
+        @Ann = (@Ann, keys(%{$Class{"Annotations"}}));
+    }
+    
+    if(defined $MethodInfo{$LibVersion}{$Method}{"Annotations"}) {
+        @Ann = (@Ann, keys(%{$MethodInfo{$LibVersion}{$Method}{"Annotations"}}));
+    }
+    
+    if(not annotationFilter(\@Ann, $LibVersion)) {
+        return 0;
+    }
+    
+    if($ClientPath)
+    { # user defined application
+        if(not defined $UsedMethods_Client{$Method}
+        and not defined $UsedClasses_Client{$Class{"Name"}}) {
+            return 0;
+        }
+    }
+    
+    if(skipPackage($Package, $LibVersion))
+    { # internal packages
+        return 0;
+    }
+    
+    if(not classFilter(\%Class, $LibVersion, 0)) {
+        return 0;
+    }
+    
+    if(defined $SkipDeprecated)
+    {
+        if($Class{"Deprecated"})
+        { # deprecated class
+            return 0;
+        }
+        if($MethodInfo{$LibVersion}{$Method}{"Deprecated"})
+        { # deprecated method
+            return 0;
+        }
+    }
+    
+    return 1;
+}
+
+sub skipType($)
+{
+    my $TName = $_[0];
+    
+    if(defined $SkipInternalTypes)
+    {
+        if($TName=~/($SkipInternalTypes)/) {
+            return 1;
+        }
+    }
+    
+    return 0;
+}
+
+sub skipPackage($$)
+{
+    my ($Package, $LibVersion) = @_;
+    return 0 if(not $Package);
+    
+    if(defined $SkipInternalPackages)
+    {
+        if($Package=~/($SkipInternalPackages)/) {
+            return 1;
+        }
+    }
+    
+    if(defined $SkipPackages{$LibVersion})
+    {
+        foreach my $SkipPackage (keys(%{$SkipPackages{$LibVersion}}))
+        {
+            if($Package=~/\A\Q$SkipPackage\E(\.|\Z)/)
+            { # user skipped packages
+                return 1;
+            }
+        }
+    }
+    
+    if(not defined $KeepInternal)
+    {
+        my $Note = (not keys %SkippedPackage)?" (use --keep-internal option to check them)":"";
+        
+        if($Package=~/(\A|\.)(internal|impl|examples)(\.|\Z)/)
+        { # internal packages
+            if(not $SkippedPackage{$LibVersion}{$2})
+            {
+                $SkippedPackage{$LibVersion}{$2} = 1;
+                printMsg("WARNING", "skip \"$2\" packages".$Note);
+            }
+            return 1;
+        }
+    }
+    
+    if(defined $KeepPackages{$LibVersion}
+    and my @Keeped = keys(%{$KeepPackages{$LibVersion}}))
+    {
+        my $UserKeeped = 0;
+        foreach my $KeepPackage (@Keeped)
+        {
+            if($Package=~/\A\Q$KeepPackage\E(\.|\Z)/)
+            { # user keeped packages
+                $UserKeeped = 1;
+                last;
+            }
+        }
+        if(not $UserKeeped) {
+            return 1;
+        }
+    }
+    
+    return 0;
+}
+
+sub get_MSuffix($)
+{
+    my $Method = $_[0];
+    if($Method=~/(\(.*\))/) {
+        return $1;
+    }
+    return "";
+}
+
+sub get_MShort($)
+{
+    my $Method = $_[0];
+    if($Method=~/([^\.]+)\:\(/) {
+        return $1;
+    }
+    return "";
+}
+
+sub findMethod($$$$)
+{
+    my ($Method, $MethodVersion, $ClassName, $ClassVersion) = @_;
+    my $ClassId = $TName_Tid{$ClassVersion}{$ClassName};
+    
+    if($ClassId)
+    {
+        my @Search = ();
+        if(get_TypeType($ClassId, $ClassVersion) eq "class")
+        {
+            if(my $SuperClassId = $TypeInfo{$ClassVersion}{$ClassId}{"SuperClass"}) {
+                push(@Search, $SuperClassId);
+            }
+        }
+        
+        if(not defined $MethodInfo{$MethodVersion}{$Method}
+        or $MethodInfo{$MethodVersion}{$Method}{"Abstract"})
+        {
+            if(my @SuperInterfaces = sort keys(%{$TypeInfo{$ClassVersion}{$ClassId}{"SuperInterface"}})) {
+                push(@Search, @SuperInterfaces);
+            }
+        }
+        
+        foreach my $SuperId (@Search)
+        {
+            if($SuperId eq $ClassId) {
+                next;
+            }
+            
+            my $SuperName = get_TypeName($SuperId, $ClassVersion);
+            
+            if(my $MethodInClass = findMethod_Class($Method, $SuperName, $ClassVersion)) {
+                return $MethodInClass;
+            }
+            elsif(my $MethodInSuperClasses = findMethod($Method, $MethodVersion, $SuperName, $ClassVersion)) {
+                return $MethodInSuperClasses;
+            }
+        }
+    }
+    
+    my $TargetSuffix = get_MSuffix($Method);
+    my $TargetShortName = get_MShort($Method);
+    
+    # search in java.lang.Object
+    foreach my $C (keys(%JavaObjectMethod))
+    {
+        if($TargetSuffix eq get_MSuffix($C))
+        {
+            if($TargetShortName eq get_MShort($C)) {
+                return $C;
+            }
+        }
+    }
+    
+    return undef;
+}
+
+sub findMethod_Class($$$)
+{
+    my ($Method, $ClassName, $ClassVersion) = @_;
+    my $TargetSuffix = get_MSuffix($Method);
+    my $TargetShortName = get_MShort($Method);
+    
+    if(not defined $Class_Methods{$ClassVersion}{$ClassName}) {
+        return undef;
+    }
+    
+    foreach my $Candidate (sort keys(%{$Class_Methods{$ClassVersion}{$ClassName}}))
+    { # search for method with the same parameters suffix
+        next if($MethodInfo{$ClassVersion}{$Candidate}{"Constructor"});
+        if($TargetSuffix eq get_MSuffix($Candidate))
+        {
+            if($TargetShortName eq get_MShort($Candidate)) {
+                return $Candidate;
+            }
+        }
+    }
+    
+    return undef;
+}
+
+sub prepareMethods($)
+{
+    my $LibVersion = $_[0];
+    foreach my $Method (keys(%{$MethodInfo{$LibVersion}}))
+    {
+        if($MethodInfo{$LibVersion}{$Method}{"Access"}!~/private/)
+        {
+            if($MethodInfo{$LibVersion}{$Method}{"Constructor"}) {
+                registerUsage($MethodInfo{$LibVersion}{$Method}{"Class"}, $LibVersion);
+            }
+            else {
+                registerUsage($MethodInfo{$LibVersion}{$Method}{"Return"}, $LibVersion);
+            }
+        }
+    }
+}
+
+sub mergeMethods()
+{
+    foreach my $Method (sort keys(%{$MethodInfo{1}}))
+    { # compare methods
+        next if(not defined $MethodInfo{2}{$Method});
+        
+        if(not $MethodInfo{1}{$Method}{"Archive"}
+        or not $MethodInfo{2}{$Method}{"Archive"}) {
+            next;
+        }
+        
+        if(not methodFilter($Method, 1)) {
+            next;
+        }
+        
+        my $ClassId1 = $MethodInfo{1}{$Method}{"Class"};
+        my %Class1 = get_Type($ClassId1, 1);
+        
+        $CheckedTypes{$Class1{"Name"}} = 1;
+        $CheckedMethods{$Method} = 1;
+        
+        my %Class2 = get_Type($MethodInfo{2}{$Method}{"Class"}, 2);
+        if(not $MethodInfo{1}{$Method}{"Static"}
+        and $Class1{"Type"} eq "class" and not $Class_Constructed{1}{$ClassId1})
+        { # class cannot be constructed or inherited by clients
+          # non-static method cannot be called
+            next;
+        }
+        # checking attributes
+        if(not $MethodInfo{1}{$Method}{"Static"}
+        and $MethodInfo{2}{$Method}{"Static"}) {
+            %{$CompatProblems{$Method}{"Method_Became_Static"}{""}} = ();
+        }
+        elsif($MethodInfo{1}{$Method}{"Static"}
+        and not $MethodInfo{2}{$Method}{"Static"}) {
+            %{$CompatProblems{$Method}{"Method_Became_NonStatic"}{""}} = ();
+        }
+        if(not $MethodInfo{1}{$Method}{"Synchronized"}
+        and $MethodInfo{2}{$Method}{"Synchronized"}) {
+            %{$CompatProblems{$Method}{"Method_Became_Synchronized"}{""}} = ();
+        }
+        elsif($MethodInfo{1}{$Method}{"Synchronized"}
+        and not $MethodInfo{2}{$Method}{"Synchronized"}) {
+            %{$CompatProblems{$Method}{"Method_Became_NonSynchronized"}{""}} = ();
+        }
+        if(not $MethodInfo{1}{$Method}{"Final"}
+        and $MethodInfo{2}{$Method}{"Final"})
+        {
+            if($MethodInfo{1}{$Method}{"Static"}) {
+                %{$CompatProblems{$Method}{"Static_Method_Became_Final"}{""}} = ();
+            }
+            else {
+                %{$CompatProblems{$Method}{"NonStatic_Method_Became_Final"}{""}} = ();
+            }
+        }
+        my $Access1 = $MethodInfo{1}{$Method}{"Access"};
+        my $Access2 = $MethodInfo{2}{$Method}{"Access"};
+        if($Access1 eq "public" and $Access2=~/protected|private/
+        or $Access1 eq "protected" and $Access2=~/private/)
+        {
+            %{$CompatProblems{$Method}{"Changed_Method_Access"}{""}} = (
+                "Old_Value"=>$Access1,
+                "New_Value"=>$Access2  );
+        }
+        if($Class1{"Type"} eq "class"
+        and $Class2{"Type"} eq "class")
+        {
+            if(not $MethodInfo{1}{$Method}{"Abstract"}
+            and $MethodInfo{2}{$Method}{"Abstract"})
+            {
+                %{$CompatProblems{$Method}{"Method_Became_Abstract"}{""}} = ();
+                %{$CompatProblems{$Method}{"Class_Method_Became_Abstract"}{"this.".get_SFormat($Method)}} = (
+                    "Type_Name"=>$Class1{"Name"},
+                    "Target"=>$Method  );
+            }
+            elsif($MethodInfo{1}{$Method}{"Abstract"}
+            and not $MethodInfo{2}{$Method}{"Abstract"})
+            {
+                %{$CompatProblems{$Method}{"Method_Became_NonAbstract"}{""}} = ();
+                %{$CompatProblems{$Method}{"Class_Method_Became_NonAbstract"}{"this.".get_SFormat($Method)}} = (
+                    "Type_Name"=>$Class1{"Name"},
+                    "Target"=>$Method  );
+            }
+        }
+        elsif($Class1{"Type"} eq "interface"
+        and $Class2{"Type"} eq "interface")
+        {
+            if(not $MethodInfo{1}{$Method}{"Abstract"}
+            and $MethodInfo{2}{$Method}{"Abstract"})
+            {
+                %{$CompatProblems{$Method}{"Method_Became_NonDefault"}{""}} = ();
+                %{$CompatProblems{$Method}{"Interface_Method_Became_NonDefault"}{"this.".get_SFormat($Method)}} = (
+                    "Type_Name"=>$Class1{"Name"},
+                    "Target"=>$Method  );
+            }
+            elsif($MethodInfo{1}{$Method}{"Abstract"}
+            and not $MethodInfo{2}{$Method}{"Abstract"})
+            {
+                %{$CompatProblems{$Method}{"Method_Became_Default"}{""}} = ();
+                %{$CompatProblems{$Method}{"Interface_Method_Became_Default"}{"this.".get_SFormat($Method)}} = (
+                    "Type_Name"=>$Class1{"Name"},
+                    "Target"=>$Method  );
+            }
+        }
+        
+        my %Exceptions_Old = map {get_TypeName($_, 1) => $_} keys(%{$MethodInfo{1}{$Method}{"Exceptions"}});
+        my %Exceptions_New = map {get_TypeName($_, 2) => $_} keys(%{$MethodInfo{2}{$Method}{"Exceptions"}});
+        foreach my $Exception (keys(%Exceptions_Old))
+        {
+            if(not $Exceptions_New{$Exception})
+            {
+                my %ExceptionType = get_Type($Exceptions_Old{$Exception}, 1);
+                my $SuperClass = $ExceptionType{"SuperClass"};
+                if($KnownRuntimeExceptions{$Exception}
+                or defined $SuperClass and get_TypeName($SuperClass, 1) eq "java.lang.RuntimeException")
+                {
+                    if(not $MethodInfo{1}{$Method}{"Abstract"}
+                    and not $MethodInfo{2}{$Method}{"Abstract"})
+                    {
+                        %{$CompatProblems{$Method}{"Removed_Unchecked_Exception"}{"this.".get_SFormat($Exception)}} = (
+                            "Type_Name"=>$Class1{"Name"},
+                            "Target"=>$Exception  );
+                    }
+                }
+                else
+                {
+                    if($MethodInfo{1}{$Method}{"Abstract"}
+                    and $MethodInfo{2}{$Method}{"Abstract"})
+                    {
+                        %{$CompatProblems{$Method}{"Abstract_Method_Removed_Checked_Exception"}{"this.".get_SFormat($Exception)}} = (
+                            "Type_Name"=>$Class1{"Name"},
+                            "Target"=>$Exception  );
+                    }
+                    else
+                    {
+                        %{$CompatProblems{$Method}{"NonAbstract_Method_Removed_Checked_Exception"}{"this.".get_SFormat($Exception)}} = (
+                            "Type_Name"=>$Class1{"Name"},
+                            "Target"=>$Exception  );
+                    }
+                }
+            }
+        }
+        foreach my $Exception (keys(%Exceptions_New))
+        {
+            if(not $Exceptions_Old{$Exception})
+            {
+                my %ExceptionType = get_Type($Exceptions_New{$Exception}, 2);
+                my $SuperClass = $ExceptionType{"SuperClass"};
+                if($KnownRuntimeExceptions{$Exception}
+                or defined $SuperClass and get_TypeName($SuperClass, 2) eq "java.lang.RuntimeException")
+                {
+                    if(not $MethodInfo{1}{$Method}{"Abstract"}
+                    and not $MethodInfo{2}{$Method}{"Abstract"})
+                    {
+                        %{$CompatProblems{$Method}{"Added_Unchecked_Exception"}{"this.".get_SFormat($Exception)}} = (
+                            "Type_Name"=>$Class1{"Name"},
+                            "Target"=>$Exception  );
+                    }
+                }
+                else
+                {
+                    if($MethodInfo{1}{$Method}{"Abstract"}
+                    and $MethodInfo{2}{$Method}{"Abstract"})
+                    {
+                        %{$CompatProblems{$Method}{"Abstract_Method_Added_Checked_Exception"}{"this.".get_SFormat($Exception)}} = (
+                            "Type_Name"=>$Class1{"Name"},
+                            "Target"=>$Exception  );
+                    }
+                    else
+                    {
+                        %{$CompatProblems{$Method}{"NonAbstract_Method_Added_Checked_Exception"}{"this.".get_SFormat($Exception)}} = (
+                            "Type_Name"=>$Class1{"Name"},
+                            "Target"=>$Exception  );
+                    }
+                }
+            }
+        }
+        
+        if(defined $MethodInfo{1}{$Method}{"Param"})
+        {
+            foreach my $ParamPos (sort {int($a) <=> int($b)} keys(%{$MethodInfo{1}{$Method}{"Param"}}))
+            { # checking parameters
+                mergeParameters($Method, $ParamPos, $ParamPos);
+            }
+        }
+        
+        # check object type
+        my $ObjectType1_Id = $MethodInfo{1}{$Method}{"Class"};
+        my $ObjectType2_Id = $MethodInfo{2}{$Method}{"Class"};
+        if($ObjectType1_Id and $ObjectType2_Id)
+        {
+            my $SubProblems = mergeTypes($ObjectType1_Id, $ObjectType2_Id);
+            foreach my $SubProblemType (keys(%{$SubProblems}))
+            {
+                foreach my $SubLocation (keys(%{$SubProblems->{$SubProblemType}}))
+                {
+                    my $NewLocation = ($SubLocation)?"this.".$SubLocation:"this";
+                    $CompatProblems{$Method}{$SubProblemType}{$NewLocation} = $SubProblems->{$SubProblemType}{$SubLocation};
+                }
+            }
+        }
+        # check return type
+        my $ReturnType1_Id = $MethodInfo{1}{$Method}{"Return"};
+        my $ReturnType2_Id = $MethodInfo{2}{$Method}{"Return"};
+        if($ReturnType1_Id and $ReturnType2_Id)
+        {
+            my $SubProblems = mergeTypes($ReturnType1_Id, $ReturnType2_Id);
+            foreach my $SubProblemType (keys(%{$SubProblems}))
+            {
+                foreach my $SubLocation (keys(%{$SubProblems->{$SubProblemType}}))
+                {
+                    my $NewLocation = ($SubLocation)?"retval.".$SubLocation:"retval";
+                    $CompatProblems{$Method}{$SubProblemType}{$NewLocation} = $SubProblems->{$SubProblemType}{$SubLocation};
+                }
+            }
+        }
+    }
+}
+
+sub mergeParameters($$$)
+{
+    my ($Method, $ParamPos1, $ParamPos2) = @_;
+    if(not $Method or not defined $MethodInfo{1}{$Method}{"Param"}
+    or not defined $MethodInfo{2}{$Method}{"Param"}) {
+        return;
+    }
+    
+    my $ParamType1_Id = $MethodInfo{1}{$Method}{"Param"}{$ParamPos1}{"Type"};
+    my $ParamType2_Id = $MethodInfo{2}{$Method}{"Param"}{$ParamPos2}{"Type"};
+    
+    if(not $ParamType1_Id or not $ParamType2_Id) {
+        return;
+    }
+    
+    my $Parameter_Name = $MethodInfo{1}{$Method}{"Param"}{$ParamPos1}{"Name"};
+    my $Parameter_Location = ($Parameter_Name)?$Parameter_Name:showPos($ParamPos1)." Parameter";
+    
+    # checking type declaration changes
+    my $SubProblems = mergeTypes($ParamType1_Id, $ParamType2_Id);
+    foreach my $SubProblemType (keys(%{$SubProblems}))
+    {
+        foreach my $SubLocation (keys(%{$SubProblems->{$SubProblemType}}))
+        {
+            my $NewLocation = ($SubLocation)?$Parameter_Location.".".$SubLocation:$Parameter_Location;
+            $CompatProblems{$Method}{$SubProblemType}{$NewLocation} = $SubProblems->{$SubProblemType}{$SubLocation};
+        }
+    }
+}
+
+sub detectTypeChange($$$)
+{
+    my ($Type1_Id, $Type2_Id, $Prefix) = @_;
+    my %LocalProblems = ();
+    my %Type1 = get_Type($Type1_Id, 1);
+    my %Type2 = get_Type($Type2_Id, 2);
+    my %Type1_Base = ($Type1{"Type"} eq "array")?get_OneStep_BaseType($Type1_Id, 1):get_BaseType($Type1_Id, 1);
+    my %Type2_Base = ($Type2{"Type"} eq "array")?get_OneStep_BaseType($Type2_Id, 2):get_BaseType($Type2_Id, 2);
+    return () if(not $Type1{"Name"} or not $Type2{"Name"});
+    return () if(not $Type1_Base{"Name"} or not $Type2_Base{"Name"});
+    if($Type1_Base{"Name"} ne $Type2_Base{"Name"} and $Type1{"Name"} eq $Type2{"Name"})
+    {# base type change
+        %{$LocalProblems{"Changed_".$Prefix."_BaseType"}}=(
+            "Old_Value"=>$Type1_Base{"Name"},
+            "New_Value"=>$Type2_Base{"Name"} );
+    }
+    elsif($Type1{"Name"} ne $Type2{"Name"})
+    {# type change
+        %{$LocalProblems{"Changed_".$Prefix."_Type"}}=(
+            "Old_Value"=>$Type1{"Name"},
+            "New_Value"=>$Type2{"Name"} );
+    }
+    return %LocalProblems;
+}
+
+sub htmlSpecChars($)
+{
+    my $Str = $_[0];
+    if(not defined $Str
+    or $Str eq "") {
+        return "";
+    }
+    $Str=~s/\&([^#]|\Z)/&$1/g;
+    $Str=~s/</</g;
+    $Str=~s/\-\>/->/g; # −
+    $Str=~s/>/>/g;
+    $Str=~s/([^ ])( )([^ ])/$1\@ALONE_SP\@$3/g;
+    $Str=~s/ / /g; #  
+    $Str=~s/\@ALONE_SP\@/ /g;
+    $Str=~s/\n/<br\/>/g;
+    $Str=~s/\"/"/g;
+    $Str=~s/\'/'/g;
+    return $Str;
+}
+
+sub black_Name($$)
+{
+    my ($M, $V) = @_;
+    return "<span class='iname_b'>".highLight_Signature($M, $V)."</span>";
+}
+
+sub black_Name_S($)
+{
+    my $Name = $_[0];
+    $Name=~s!\A(\w+)!<span class='iname_b'>$1</span> !g;
+    return $Name;
+}
+
+sub highLight_Signature($$)
+{
+    my ($M, $V) = @_;
+    return get_Signature($M, $V, "Class|HTML|Italic");
+}
+
+sub highLight_Signature_Italic_Color($$)
+{
+    my ($M, $V) = @_;
+    return get_Signature($M, $V, "Full|HTML|Italic|Color");
+}
+
+sub get_Signature($$$)
+{
+    my ($Method, $LibVersion, $Kind) = @_;
+    if(defined $Cache{"get_Signature"}{$LibVersion}{$Method}{$Kind}) {
+        return $Cache{"get_Signature"}{$LibVersion}{$Method}{$Kind};
+    }
+    
+    # settings
+    my ($Full, $Html, $Simple, $Italic, $Color,
+    $ShowParams, $ShowClass, $ShowAttr, $Target) = (0, 0, 0, 0, 0, 0, 0, 0, undef);
+    
+    if($Kind=~/Full/) {
+        $Full = 1;
+    }
+    if($Kind=~/HTML/) {
+        $Html = 1;
+    }
+    if($Kind=~/Simple/) {
+        $Simple = 1;
+    }
+    if($Kind=~/Italic/) {
+        $Italic = 1;
+    }
+    if($Kind=~/Color/) {
+        $Color = 1;
+    }
+    if($Kind=~/Target=(\d+)/) {
+        $Target = $1;
+    }
+    if($Kind=~/Param/) {
+        $ShowParams = 1;
+    }
+    if($Kind=~/Class/) {
+        $ShowClass = 1;
+    }
+    if($Kind=~/Attr/) {
+        $ShowAttr = 1;
+    }
+    
+    if(not defined $MethodInfo{$LibVersion}{$Method}{"ShortName"})
+    { # from java.lang.Object
+        if($Html or $Simple) {
+            return htmlSpecChars($Method);
+        }
+        else
+        {
+            return $Method;
+        }
+    }
+    
+    my $Signature = $MethodInfo{$LibVersion}{$Method}{"ShortName"};
+    if($Full or $ShowClass)
+    {
+        my $Class = get_TypeName($MethodInfo{$LibVersion}{$Method}{"Class"}, $LibVersion);
+        
+        if($HideTemplates) {
+            $Class=~s/<.*>//g;
+        }
+        
+        if($Html) {
+            $Class = htmlSpecChars($Class);
+        }
+        
+        $Signature = $Class.".".$Signature;
+    }
+    my @Params = ();
+    
+    if(defined $MethodInfo{$LibVersion}{$Method}{"Param"})
+    {
+        foreach my $PPos (sort {int($a)<=>int($b)}
+        keys(%{$MethodInfo{$LibVersion}{$Method}{"Param"}}))
+        {
+            my $PTid = $MethodInfo{$LibVersion}{$Method}{"Param"}{$PPos}{"Type"};
+            if(my $PTName = get_TypeName($PTid, $LibVersion))
+            {
+                if($HideTemplates) {
+                    $PTName=~s/<.*>//g;
+                }
+                
+                if(not $ShowPackages) {
+                    $PTName=~s/(\A|\<\s*|\,\s*)[a-z0-9\.]+\./$1/g;
+                }
+                
+                if($Html) {
+                    $PTName = htmlSpecChars($PTName);
+                }
+                
+                if($Full or $ShowParams)
+                {
+                    my $PName = $MethodInfo{$LibVersion}{$Method}{"Param"}{$PPos}{"Name"};
+                    
+                    if($Simple) {
+                        $PName = "<i>$PName</i>";
+                    }
+                    elsif($Html)
+                    {
+                        my $Style = "param";
+                        
+                        if(defined $Target
+                        and $Target==$PPos) {
+                            $PName = "<span class='focus_p'>$PName</span>";
+                        }
+                        elsif($Color) {
+                            $PName = "<span class='color_p'>$PName</span>";
+                        }
+                        else {
+                            $PName = "<i>$PName</i>";
+                        }
+                    }
+                    
+                    push(@Params, $PTName." ".$PName);
+                }
+                else {
+                    push(@Params, $PTName);
+                }
+            }
+        }
+    }
+    
+    if($Simple) {
+        $Signature = "<b>".$Signature."</b>";
+    }
+    
+    if($Html and not $Simple)
+    {
+        $Signature .= " ";
+        $Signature .= "<span class='sym_p'>";
+        if(@Params)
+        {
+            foreach my $Pos (0 .. $#Params)
+            {
+                my $Name = "";
+                
+                if($Pos==0) {
+                    $Name .= "( ";
+                }
+                
+                $Name .= $Params[$Pos];
+                
+                $Name = "<span>".$Name."</span>";
+                
+                if($Pos==$#Params) {
+                    $Name .= " )";
+                }
+                else {
+                    $Name .= ", ";
+                }
+                
+                $Signature .= $Name;
+            }
+        }
+        else {
+            $Signature .= "( )";
+        }
+        $Signature .= "</span>";
+    }
+    else
+    {
+        if(@Params) {
+            $Signature .= " ( ".join(", ", @Params)." )";
+        }
+        else {
+            $Signature .= " ( )";
+        }
+    }
+    
+    if($Full or $ShowAttr)
+    {
+        if($MethodInfo{$LibVersion}{$Method}{"Static"}) {
+            $Signature .= " [static]";
+        }
+        elsif($MethodInfo{$LibVersion}{$Method}{"Abstract"}) {
+            $Signature .= " [abstract]";
+        }
+    }
+    
+    if($Full)
+    {
+        if($ShowAccess)
+        {
+            if(my $Access = $MethodInfo{$LibVersion}{$Method}{"Access"})
+            {
+                if($Access ne "public") {
+                    $Signature .= " [".$Access."]";
+                }
+            }
+        }
+        
+        if(my $ReturnId = $MethodInfo{$LibVersion}{$Method}{"Return"})
+        {
+            my $RName = get_TypeName($ReturnId, $LibVersion);
+            
+            if($HideTemplates) {
+                $RName=~s/<.*>//g;
+            }
+            
+            if(not $ShowPackages) {
+                $RName=~s/(\A|\<\s*|\,\s*)[a-z0-9\.]+\./$1/g;
+            }
+            
+            if($Simple) {
+                $Signature .= " <b>:</b> ".htmlSpecChars($RName);
+            }
+            elsif($Html) {
+                $Signature .= "<span class='sym_p nowrap'>  <b>:</b>  ".htmlSpecChars($RName)."</span>";
+            }
+            else {
+                $Signature .= " : ".$RName;
+            }
+        }
+        
+        if(not $SkipDeprecated)
+        {
+            if($MethodInfo{$LibVersion}{$Method}{"Deprecated"}) {
+                $Signature .= " *DEPRECATED*";
+            }
+        }
+    }
+    
+    $Signature=~s/java\.lang\.//g;
+    
+    if($Html)
+    {
+        if(not $SkipDeprecated) {
+            $Signature=~s!(\*deprecated\*)!<span class='deprecated'>$1</span>!ig;
+        }
+        
+        $Signature=~s!(\[static\]|\[abstract\]|\[public\]|\[private\]|\[protected\])!<span class='attr'>$1</span>!g;
+    }
+    
+    if($Simple) {
+        $Signature=~s/\[\]/\[ \]/g;
+    }
+    elsif($Html)
+    {
+        $Signature=~s!\[\]![ ]!g;
+        $Signature=~s!operator=!operator =!g;
+    }
+    
+    return ($Cache{"get_Signature"}{$LibVersion}{$Method}{$Kind} = $Signature);
+}
+
+sub checkJavaCompiler($)
+{ # check javac: compile simple program
+    my $Cmd = $_[0];
+    
+    if(not $Cmd) {
+        return;
+    }
+    
+    writeFile($TMP_DIR."/test_javac/Simple.java",
+    "public class Simple {
+        public Integer f;
+        public void method(Integer p) { };
+    }");
+    chdir($TMP_DIR."/test_javac");
+    system("$Cmd Simple.java 2>errors.txt");
+    chdir($ORIG_DIR);
+    if($?)
+    {
+        my $Msg = "something is going wrong with the Java compiler (javac):\n";
+        my $Err = readFile($TMP_DIR."/test_javac/errors.txt");
+        $Msg .= $Err;
+        if($Err=~/elf\/start\.S/ and $Err=~/undefined\s+reference\s+to/)
+        { # /usr/lib/gcc/i586-suse-linux/4.5/../../../crt1.o: In function _start:
+          # /usr/src/packages/BUILD/glibc-2.11.3/csu/../sysdeps/i386/elf/start.S:115: undefined reference to main
+            $Msg .= "\nDid you install a JDK-devel package?";
+        }
+        exitStatus("Error", $Msg);
+    }
+}
+
+sub runTests($$$$)
+{
+    my ($TestsPath, $PackageName, $Path_v1, $Path_v2) = @_;
+    # compile with old version of package
+    my $JavacCmd = get_CmdPath("javac");
+    if(not $JavacCmd) {
+        exitStatus("Not_Found", "can't find \"javac\" compiler");
+    }
+    my $JavaCmd = get_CmdPath("java");
+    if(not $JavaCmd) {
+        exitStatus("Not_Found", "can't find \"java\" command");
+    }
+    mkpath($TestsPath."/$PackageName/");
+    foreach my $ClassPath (cmd_find($Path_v1,"","*\.class",""))
+    {# create a compile-time package copy
+        copy($ClassPath, $TestsPath."/$PackageName/");
+    }
+    chdir($TestsPath);
+    system($JavacCmd." -g *.java");
+    chdir($ORIG_DIR);
+    foreach my $TestSrc (cmd_find($TestsPath,"","*\.java",""))
+    { # remove test source
+        unlink($TestSrc);
+    }
+    
+    my $PkgPath = $TestsPath."/".$PackageName;
+    if(-d $PkgPath) {
+        rmtree($PkgPath);
+    }
+    mkpath($PkgPath);
+    foreach my $ClassPath (cmd_find($Path_v2,"","*\.class",""))
+    {# create a run-time package copy
+        copy($ClassPath, $PkgPath."/");
+    }
+    my $TEST_REPORT = "";
+    foreach my $TestPath (cmd_find($TestsPath,"","*\.class",1))
+    {# run tests
+        my $Name = get_filename($TestPath);
+        $Name=~s/\.class\Z//g;
+        chdir($TestsPath);
+        system($JavaCmd." $Name >result.txt 2>&1");
+        chdir($ORIG_DIR);
+        my $Result = readFile($TestsPath."/result.txt");
+        unlink($TestsPath."/result.txt");
+        $TEST_REPORT .= "TEST CASE: $Name\n";
+        if($Result) {
+            $TEST_REPORT .= "RESULT: FAILED\n";
+            $TEST_REPORT .= "OUTPUT:\n$Result\n";
+        }
+        else {
+            $TEST_REPORT .= "RESULT: SUCCESS\n";
+        }
+        $TEST_REPORT .= "\n";
+    }
+    writeFile("$TestsPath/Journal.txt", $TEST_REPORT);
+    
+    if(-d $PkgPath) {
+        rmtree($PkgPath);
+    }
+}
+
+sub compileJavaLib($$$)
+{
+    my ($LibName, $BuildRoot1, $BuildRoot2) = @_;
+    my $JavacCmd = get_CmdPath("javac");
+    if(not $JavacCmd) {
+        exitStatus("Not_Found", "can't find \"javac\" compiler");
+    }
+    checkJavaCompiler($JavacCmd);
+    my $JarCmd = get_CmdPath("jar");
+    if(not $JarCmd) {
+        exitStatus("Not_Found", "can't find \"jar\" command");
+    }
+    writeFile("$BuildRoot1/MANIFEST.MF", "Implementation-Version: 1.0\n");
+    # space before value, new line
+    writeFile("$BuildRoot2/MANIFEST.MF", "Implementation-Version: 2.0\n");
+    my (%SrcDir1, %SrcDir2) = ();
+    foreach my $Path (cmd_find($BuildRoot1,"f","*.java","")) {
+        $SrcDir1{get_dirname($Path)} = 1;
+    }
+    foreach my $Path (cmd_find($BuildRoot2,"f","*.java","")) {
+        $SrcDir2{get_dirname($Path)} = 1;
+    }
+    # build classes v.1
+    foreach my $Dir (keys(%SrcDir1))
+    {
+        chdir($Dir);
+        system("$JavacCmd -g *.java");
+        chdir($ORIG_DIR);
+        if($?) {
+            exitStatus("Error", "can't compile classes v.1");
+        }
+    }
+    # create java archive v.1
+    chdir($BuildRoot1);
+    system("$JarCmd -cmf MANIFEST.MF $LibName.jar TestPackage");
+    chdir($ORIG_DIR);
+    
+    # build classes v.2
+    foreach my $Dir (keys(%SrcDir2))
+    {
+        chdir($Dir);
+        system("$JavacCmd -g *.java");
+        chdir($ORIG_DIR);
+        if($?) {
+            exitStatus("Error", "can't compile classes v.2");
+        }
+    }
+    # create java archive v.2
+    chdir($BuildRoot2);
+    system("$JarCmd -cmf MANIFEST.MF $LibName.jar TestPackage");
+    chdir($ORIG_DIR);
+    
+    foreach my $SrcPath (cmd_find($BuildRoot1,"","*\.java","")) {
+        unlink($SrcPath);
+    }
+    foreach my $SrcPath (cmd_find($BuildRoot2,"","*\.java","")) {
+        unlink($SrcPath);
+    }
+    return 1;
+}
+
+sub readLineNum($$)
+{
+    my ($Path, $Num) = @_;
+    return "" if(not $Path or not -f $Path);
+    open (FILE, $Path);
+    foreach (1 ... $Num) {
+        <FILE>;
+    }
+    my $Line = <FILE>;
+    close(FILE);
+    return $Line;
+}
+
+sub readAttributes($$)
+{
+    my ($Path, $Num) = @_;
+    return () if(not $Path or not -f $Path);
+    my %Attributes = ();
+    if(readLineNum($Path, $Num)=~/<!--\s+(.+)\s+-->/)
+    {
+        foreach my $AttrVal (split(/;/, $1))
+        {
+            if($AttrVal=~/(.+):(.+)/)
+            {
+                my ($Name, $Value) = ($1, $2);
+                $Attributes{$Name} = $Value;
+            }
+        }
+    }
+    return \%Attributes;
+}
+
+sub runChecker($$$)
+{
+    my ($LibName, $Path1, $Path2) = @_;
+    writeFile("$LibName/v1.xml", "
+        <version>
+            1.0
+        </version>
+        <archives>
+            ".get_abs_path($Path1)."
+        </archives>");
+    writeFile("$LibName/v2.xml", "
+        <version>
+            2.0
+        </version>
+        <archives>
+            ".get_abs_path($Path2)."
+        </archives>");
+    my $Cmd = "perl $0 -l $LibName $LibName/v1.xml $LibName/v2.xml";
+    if($Quick) {
+        $Cmd .= " -quick";
+    }
+    if(defined $SkipDeprecated) {
+        $Cmd .= " -skip-deprecated";
+    }
+    if(defined $OldStyle) {
+        $Cmd .= " -old-style";
+    }
+    writeFile($TMP_DIR."/skip-annotations.list", "TestPackage.Beta");
+    $Cmd .= " -skip-annotations-list ".$TMP_DIR."/skip-annotations.list";
+    if($Debug)
+    {
+        $Cmd .= " -debug";
+        printMsg("INFO", "running $Cmd");
+    }
+    system($Cmd);
+    my $Report = "compat_reports/$LibName/1.0_to_2.0/compat_report.html";
+    # Binary
+    my $BReport = readAttributes($Report, 0);
+    my $NProblems = $BReport->{"type_problems_high"}+$BReport->{"type_problems_medium"};
+    $NProblems += $BReport->{"method_problems_high"}+$BReport->{"method_problems_medium"};
+    $NProblems += $BReport->{"removed"};
+    # Source
+    my $SReport = readAttributes($Report, 1);
+    $NProblems += $SReport->{"type_problems_high"}+$SReport->{"type_problems_medium"};
+    $NProblems += $SReport->{"method_problems_high"}+$SReport->{"method_problems_medium"};
+    $NProblems += $SReport->{"removed"};
+    if($NProblems>=100) {
+        printMsg("INFO", "test result: SUCCESS ($NProblems breaks found)\n");
+    }
+    else {
+        printMsg("ERROR", "test result: FAILED ($NProblems breaks found)\n");
+    }
+}
+
+sub writeFile($$)
+{
+    my ($Path, $Content) = @_;
+    return if(not $Path);
+    if(my $Dir = get_dirname($Path)) {
+        mkpath($Dir);
+    }
+    open (FILE, ">".$Path) || die ("can't open file \'$Path\': $!\n");
+    print FILE $Content;
+    close(FILE);
+}
+
+sub readFile($)
+{
+    my $Path = $_[0];
+    return "" if(not $Path or not -f $Path);
+    open (FILE, $Path);
+    my $Content = join("", <FILE>);
+    close(FILE);
+    $Content=~s/\r//g;
+    return $Content;
+}
+
+sub appendFile($$)
+{
+    my ($Path, $Content) = @_;
+    return if(not $Path);
+    if(my $Dir = get_dirname($Path)) {
+        mkpath($Dir);
+    }
+    open(FILE, ">>".$Path) || die ("can't open file \'$Path\': $!\n");
+    print FILE $Content;
+    close(FILE);
+}
+
+sub get_Report_Header($)
+{
+    my $Level = $_[0];
+    my $Report_Header = "<h1>";
+    if($Level eq "Source") {
+        $Report_Header .= "Source compatibility";
+    }
+    elsif($Level eq "Binary") {
+        $Report_Header .= "Binary compatibility";
+    }
+    else {
+        $Report_Header .= "API compatibility";
+    }
+    $Report_Header .= " report for the <span style='color:Blue;'>$TargetTitle</span> library between <span style='color:Red;'>".$Descriptor{1}{"Version"}."</span> and <span style='color:Red;'>".$Descriptor{2}{"Version"}."</span> versions";
+    if($ClientPath) {
+        $Report_Header .= " (concerning portability of the client: <span style='color:Blue;'>".get_filename($ClientPath)."</span>)";
+    }
+    $Report_Header .= "</h1>\n";
+    return $Report_Header;
+}
+
+sub get_SourceInfo()
+{
+    my $CheckedArchives = "<a name='Checked_Archives'></a>";
+    if($OldStyle) {
+        $CheckedArchives .= "<h2>Java ARchives (".keys(%{$LibArchives{1}}).")</h2>";
+    }
+    else {
+        $CheckedArchives .= "<h2>Java ARchives <span class='gray'> ".keys(%{$LibArchives{1}})." </span></h2>";
+    }
+    $CheckedArchives .= "\n<hr/><div class='jar_list'>\n";
+    foreach my $ArchivePath (sort {lc($a) cmp lc($b)}  keys(%{$LibArchives{1}})) {
+        $CheckedArchives .= get_filename($ArchivePath)."<br/>\n";
+    }
+    $CheckedArchives .= "</div><br/>$TOP_REF<br/>\n";
+    return $CheckedArchives;
+}
+
+sub get_TypeProblems_Count($$)
+{
+    my ($TargetSeverity, $Level) = @_;
+    my $Type_Problems_Count = 0;
+    
+    foreach my $Type_Name (sort keys(%{$TypeChanges{$Level}}))
+    {
+        my %Kinds_Target = ();
+        foreach my $Kind (sort keys(%{$TypeChanges{$Level}{$Type_Name}}))
+        {
+            if($TypeProblems_Kind{$Level}{$Kind} ne $TargetSeverity) {
+                next;
+            }
+            foreach my $Location (sort keys(%{$TypeChanges{$Level}{$Type_Name}{$Kind}}))
+            {
+                my $Target = $TypeChanges{$Level}{$Type_Name}{$Kind}{$Location}{"Target"};
+                
+                if($Kinds_Target{$Kind}{$Target}) {
+                    next;
+                }
+                
+                $Kinds_Target{$Kind}{$Target} = 1;
+                $Type_Problems_Count += 1;
+            }
+        }
+    }
+    
+    return $Type_Problems_Count;
+}
+
+sub show_number($)
+{
+    if($_[0])
+    {
+        my $Num = cut_off_number($_[0], 2, 0);
+        if($Num eq "0")
+        {
+            foreach my $P (3 .. 7)
+            {
+                $Num = cut_off_number($_[0], $P, 1);
+                if($Num ne "0") {
+                    last;
+                }
+            }
+        }
+        if($Num eq "0") {
+            $Num = $_[0];
+        }
+        return $Num;
+    }
+    return $_[0];
+}
+
+sub cut_off_number($$$)
+{
+    my ($num, $digs_to_cut, $z) = @_;
+    if($num!~/\./)
+    {
+        $num .= ".";
+        foreach (1 .. $digs_to_cut-1) {
+            $num .= "0";
+        }
+    }
+    elsif($num=~/\.(.+)\Z/ and length($1)<$digs_to_cut-1)
+    {
+        foreach (1 .. $digs_to_cut - 1 - length($1)) {
+            $num .= "0";
+        }
+    }
+    elsif($num=~/\d+\.(\d){$digs_to_cut,}/) {
+      $num=sprintf("%.".($digs_to_cut-1)."f", $num);
+    }
+    $num=~s/\.[0]+\Z//g;
+    if($z) {
+        $num=~s/(\.[1-9]+)[0]+\Z/$1/g;
+    }
+    return $num;
+}
+
+sub get_Summary($)
+{
+    my $Level = $_[0];
+    my ($Added, $Removed, $M_Problems_High, $M_Problems_Medium, $M_Problems_Low,
+    $T_Problems_High, $T_Problems_Medium, $T_Problems_Low, $M_Other, $T_Other) = (0,0,0,0,0,0,0,0,0,0);
+    
+    %{$RESULT{$Level}} = (
+        "Problems"=>0,
+        "Warnings"=>0,
+        "Affected"=>0 );
+    
+    foreach my $Method (sort keys(%CompatProblems))
+    {
+        foreach my $Kind (sort keys(%{$CompatProblems{$Method}}))
+        {
+            if(my $Severity = $MethodProblems_Kind{$Level}{$Kind})
+            {
+                foreach my $Location (sort keys(%{$CompatProblems{$Method}{$Kind}}))
+                {
+                    if($Kind eq "Added_Method")
+                    {
+                        if($Level eq "Source")
+                        {
+                            if($ChangedReturnFromVoid{$Method}) {
+                                next;
+                            }
+                        }
+                        $Added+=1;
+                    }
+                    elsif($Kind eq "Removed_Method")
+                    {
+                        if($Level eq "Source")
+                        {
+                            if($ChangedReturnFromVoid{$Method}) {
+                                next;
+                            }
+                        }
+                        $Removed+=1;
+                        $TotalAffected{$Level}{$Method} = $Severity;
+                    }
+                    else
+                    {
+                        if($Severity eq "Safe") {
+                            $M_Other += 1;
+                        }
+                        elsif($Severity eq "High") {
+                            $M_Problems_High+=1;
+                        }
+                        elsif($Severity eq "Medium") {
+                            $M_Problems_Medium+=1;
+                        }
+                        elsif($Severity eq "Low") {
+                            $M_Problems_Low+=1;
+                        }
+                        if(($Severity ne "Low" or $StrictCompat)
+                        and $Severity ne "Safe") {
+                            $TotalAffected{$Level}{$Method} = $Severity;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    
+    my %MethodTypeIndex = ();
+    
+    foreach my $Method (sort keys(%CompatProblems))
+    {
+        my @Kinds = sort keys(%{$CompatProblems{$Method}});
+        foreach my $Kind (@Kinds)
+        {
+            if(my $Severity = $TypeProblems_Kind{$Level}{$Kind})
+            {
+                my @Locs = sort {length($a)<=>length($b)} sort keys(%{$CompatProblems{$Method}{$Kind}});
+                foreach my $Location (@Locs)
+                {
+                    my $Type_Name = $CompatProblems{$Method}{$Kind}{$Location}{"Type_Name"};
+                    my $Target = $CompatProblems{$Method}{$Kind}{$Location}{"Target"};
+                    
+                    if(defined $MethodTypeIndex{$Method}{$Type_Name}{$Kind}{$Target})
+                    { # one location for one type and target
+                        next;
+                    }
+                    $MethodTypeIndex{$Method}{$Type_Name}{$Kind}{$Target} = 1;
+                    $TypeChanges{$Level}{$Type_Name}{$Kind}{$Location} = $CompatProblems{$Method}{$Kind}{$Location};
+                    
+                    if(($Severity ne "Low" or $StrictCompat)
+                    and $Severity ne "Safe")
+                    {
+                        if(my $Sev = $TotalAffected{$Level}{$Method})
+                        {
+                            if($Severity_Val{$Severity}>$Severity_Val{$Sev}) {
+                                $TotalAffected{$Level}{$Method} = $Severity;
+                            }
+                        }
+                        else {
+                            $TotalAffected{$Level}{$Method} = $Severity;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    
+    %MethodTypeIndex = (); # clear memory
+    
+    
+    $T_Problems_High = get_TypeProblems_Count("High", $Level);
+    $T_Problems_Medium = get_TypeProblems_Count("Medium", $Level);
+    $T_Problems_Low = get_TypeProblems_Count("Low", $Level);
+    $T_Other = get_TypeProblems_Count("Safe", $Level);
+    
+    my $SCount = keys(%CheckedMethods)-$Added;
+    if($SCount)
+    {
+        my %Weight = (
+            "High" => 100,
+            "Medium" => 50,
+            "Low" => 25
+        );
+        foreach (keys(%{$TotalAffected{$Level}})) {
+            $RESULT{$Level}{"Affected"}+=$Weight{$TotalAffected{$Level}{$_}};
+        }
+        $RESULT{$Level}{"Affected"} = $RESULT{$Level}{"Affected"}/$SCount;
+    }
+    else {
+        $RESULT{$Level}{"Affected"} = 0;
+    }
+    $RESULT{$Level}{"Affected"} = show_number($RESULT{$Level}{"Affected"});
+    if($RESULT{$Level}{"Affected"}>=100) {
+        $RESULT{$Level}{"Affected"} = 100;
+    }
+    
+    my ($TestInfo, $TestResults, $Problem_Summary) = ();
+    
+    # test info
+    $TestInfo .= "<h2>Test Info</h2><hr/>\n";
+    $TestInfo .= "<table class='summary'>\n";
+    $TestInfo .= "<tr><th>Library Name</th><td>$TargetTitle</td></tr>\n";
+    $TestInfo .= "<tr><th>Version #1</th><td>".$Descriptor{1}{"Version"}."</td></tr>\n";
+    $TestInfo .= "<tr><th>Version #2</th><td>".$Descriptor{2}{"Version"}."</td></tr>\n";
+    
+    if($JoinReport)
+    {
+        if($Level eq "Binary") {
+            $TestInfo .= "<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>\n"; # Run-time
+        }
+        if($Level eq "Source") {
+            $TestInfo .= "<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>\n"; # Build-time
+        }
+    }
+    $TestInfo .= "</table>\n";
+    
+    # test results
+    $TestResults .= "<h2>Test Results</h2><hr/>";
+    $TestResults .= "<table class='summary'>";
+    
+    my $Checked_Archives_Link = "0";
+    $Checked_Archives_Link = "<a href='#Checked_Archives' style='color:Blue;'>".keys(%{$LibArchives{1}})."</a>" if(keys(%{$LibArchives{1}})>0);
+    
+    $TestResults .= "<tr><th>Total JARs</th><td>$Checked_Archives_Link</td></tr>\n";
+    $TestResults .= "<tr><th>Total Methods / Classes</th><td>".keys(%CheckedMethods)." / ".keys(%CheckedTypes)."</td></tr>\n";
+    
+    $RESULT{$Level}{"Problems"} += $Removed+$M_Problems_High+$T_Problems_High+$T_Problems_Medium+$M_Problems_Medium;
+    if($StrictCompat) {
+        $RESULT{$Level}{"Problems"}+=$T_Problems_Low+$M_Problems_Low;
+    }
+    else {
+        $RESULT{$Level}{"Warnings"}+=$T_Problems_Low+$M_Problems_Low;
+    }
+    
+    my $META_DATA = "kind:".lc($Level).";";
+    $META_DATA .= $RESULT{$Level}{"Problems"}?"verdict:incompatible;":"verdict:compatible;";
+    $TestResults .= "<tr><th>Compatibility</th>\n";
+    
+    my $BC_Rate = show_number(100 - $RESULT{$Level}{"Affected"});
+    
+    if($RESULT{$Level}{"Problems"})
+    {
+        my $Cl = "incompatible";
+        if($BC_Rate>=90) {
+            $Cl = "warning";
+        }
+        elsif($BC_Rate>=80) {
+            $Cl = "almost_compatible";
+        }
+        
+        $TestResults .= "<td class=\'$Cl\'>".$BC_Rate."%</td>\n";
+    }
+    else
+    {
+        $TestResults .= "<td class=\'compatible\'>100%</td>\n";
+    }
+    
+    $TestResults .= "</tr>\n";
+    $TestResults .= "</table>\n";
+    
+    $META_DATA .= "affected:".$RESULT{$Level}{"Affected"}.";";# in percents
+    
+    # Problem Summary
+    $Problem_Summary .= "<h2>Problem Summary</h2><hr/>";
+    $Problem_Summary .= "<table class='summary'>";
+    $Problem_Summary .= "<tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr>";
+    
+    my $Added_Link = "0";
+    if($Added>0)
+    {
+        if($ShortMode) {
+            $Added_Link = $Added;
+        }
+        else
+        {
+            if($JoinReport) {
+                $Added_Link = "<a href='#".$Level."_Added' style='color:Blue;'>$Added</a>";
+            }
+            else {
+                $Added_Link = "<a href='#Added' style='color:Blue;'>$Added</a>";
+            }
+        }
+    }
+    $META_DATA .= "added:$Added;";
+    $Problem_Summary .= "<tr><th>Added Methods</th><td>-</td><td".getStyle("M", "Added", $Added).">$Added_Link</td></tr>";
+    
+    my $Removed_Link = "0";
+    if($Removed>0)
+    {
+        if($ShortMode) {
+            $Removed_Link = $Removed;
+        }
+        else
+        {
+            if($JoinReport) {
+                $Removed_Link = "<a href='#".$Level."_Removed' style='color:Blue;'>$Removed</a>"
+            }
+            else {
+                $Removed_Link = "<a href='#Removed' style='color:Blue;'>$Removed</a>"
+            }
+        }
+    }
+    $META_DATA .= "removed:$Removed;";
+    $Problem_Summary .= "<tr><th>Removed Methods</th>";
+    $Problem_Summary .= "<td>High</td><td".getStyle("M", "Removed", $Removed).">$Removed_Link</td></tr>";
+    
+    my $TH_Link = "0";
+    $TH_Link = "<a href='#".get_Anchor("Type", $Level, "High")."' style='color:Blue;'>$T_Problems_High</a>" if($T_Problems_High>0);
+    $META_DATA .= "type_problems_high:$T_Problems_High;";
+    $Problem_Summary .= "<tr><th rowspan='3'>Problems with<br/>Data Types</th>";
+    $Problem_Summary .= "<td>High</td><td".getStyle("T", "High", $T_Problems_High).">$TH_Link</td></tr>";
+    
+    my $TM_Link = "0";
+    $TM_Link = "<a href='#".get_Anchor("Type", $Level, "Medium")."' style='color:Blue;'>$T_Problems_Medium</a>" if($T_Problems_Medium>0);
+    $META_DATA .= "type_problems_medium:$T_Problems_Medium;";
+    $Problem_Summary .= "<tr><td>Medium</td><td".getStyle("T", "Medium", $T_Problems_Medium).">$TM_Link</td></tr>";
+    
+    my $TL_Link = "0";
+    $TL_Link = "<a href='#".get_Anchor("Type", $Level, "Low")."' style='color:Blue;'>$T_Problems_Low</a>" if($T_Problems_Low>0);
+    $META_DATA .= "type_problems_low:$T_Problems_Low;";
+    $Problem_Summary .= "<tr><td>Low</td><td".getStyle("T", "Low", $T_Problems_Low).">$TL_Link</td></tr>";
+    
+    my $MH_Link = "0";
+    $MH_Link = "<a href='#".get_Anchor("Method", $Level, "High")."' style='color:Blue;'>$M_Problems_High</a>" if($M_Problems_High>0);
+    $META_DATA .= "method_problems_high:$M_Problems_High;";
+    $Problem_Summary .= "<tr><th rowspan='3'>Problems with<br/>Methods</th>";
+    $Problem_Summary .= "<td>High</td><td".getStyle("M", "High", $M_Problems_High).">$MH_Link</td></tr>";
+    
+    my $MM_Link = "0";
+    $MM_Link = "<a href='#".get_Anchor("Method", $Level, "Medium")."' style='color:Blue;'>$M_Problems_Medium</a>" if($M_Problems_Medium>0);
+    $META_DATA .= "method_problems_medium:$M_Problems_Medium;";
+    $Problem_Summary .= "<tr><td>Medium</td><td".getStyle("M", "Medium", $M_Problems_Medium).">$MM_Link</td></tr>";
+    
+    my $ML_Link = "0";
+    $ML_Link = "<a href='#".get_Anchor("Method", $Level, "Low")."' style='color:Blue;'>$M_Problems_Low</a>" if($M_Problems_Low>0);
+    $META_DATA .= "method_problems_low:$M_Problems_Low;";
+    $Problem_Summary .= "<tr><td>Low</td><td".getStyle("M", "Low", $M_Problems_Low).">$ML_Link</td></tr>";
+    
+    # Safe Changes
+    if($T_Other)
+    {
+        my $TS_Link = "<a href='#".get_Anchor("Type", $Level, "Safe")."' style='color:Blue;'>$T_Other</a>";
+        $Problem_Summary .= "<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td".getStyle("T", "Safe", $T_Other).">$TS_Link</td></tr>\n";
+    }
+    
+    if($M_Other)
+    {
+        my $MS_Link = "<a href='#".get_Anchor("Method", $Level, "Safe")."' style='color:Blue;'>$M_Other</a>";
+        $Problem_Summary .= "<tr><th>Other Changes<br/>in Methods</th><td>-</td><td".getStyle("M", "Safe", $M_Other).">$MS_Link</td></tr>\n";
+    }
+    $META_DATA .= "checked_methods:".keys(%CheckedMethods).";";
+    $META_DATA .= "checked_types:".keys(%CheckedTypes).";";
+    $META_DATA .= "tool_version:$TOOL_VERSION";
+    $Problem_Summary .= "</table>\n";
+    return ($TestInfo.$TestResults.$Problem_Summary, $META_DATA);
+}
+
+sub getStyle($$$)
+{
+    my ($Subj, $Act, $Num) = @_;
+    my %Style = (
+        "Added"=>"new",
+        "Removed"=>"failed",
+        "Safe"=>"passed",
+        "Low"=>"warning",
+        "Medium"=>"failed",
+        "High"=>"failed"
+    );
+    
+    if($Num>0) {
+        return " class='".$Style{$Act}."'";
+    }
+    
+    return "";
+}
+
+sub get_Anchor($$$)
+{
+    my ($Kind, $Level, $Severity) = @_;
+    if($JoinReport)
+    {
+        if($Severity eq "Safe") {
+            return "Other_".$Level."_Changes_In_".$Kind."s";
+        }
+        else {
+            return $Kind."_".$Level."_Problems_".$Severity;
+        }
+    }
+    else
+    {
+        if($Severity eq "Safe") {
+            return "Other_Changes_In_".$Kind."s";
+        }
+        else {
+            return $Kind."_Problems_".$Severity;
+        }
+    }
+}
+
+sub get_Report_Added($)
+{
+    if($ShortMode) {
+        return "";
+    }
+    
+    my $Level = $_[0];
+    my ($ADDED_METHODS, %MethodAddedInArchiveClass);
+    foreach my $Method (sort keys(%CompatProblems))
+    {
+        foreach my $Kind (sort keys(%{$CompatProblems{$Method}}))
+        {
+            if($Kind eq "Added_Method")
+            {
+                my $ArchiveName = $MethodInfo{2}{$Method}{"Archive"};
+                my $ClassName = get_ShortName($MethodInfo{2}{$Method}{"Class"}, 2);
+                if($Level eq "Source")
+                {
+                    if($ChangedReturnFromVoid{$Method}) {
+                        next;
+                    }
+                }
+                $MethodAddedInArchiveClass{$ArchiveName}{$ClassName}{$Method} = 1;
+            }
+        }
+    }
+    my $Added_Number = 0;
+    foreach my $ArchiveName (sort {lc($a) cmp lc($b)} keys(%MethodAddedInArchiveClass))
+    {
+        foreach my $ClassName (sort {lc($a) cmp lc($b)} keys(%{$MethodAddedInArchiveClass{$ArchiveName}}))
+        {
+            my %NameSpace_Method = ();
+            foreach my $Method (keys(%{$MethodAddedInArchiveClass{$ArchiveName}{$ClassName}})) {
+                $NameSpace_Method{$MethodInfo{2}{$Method}{"Package"}}{$Method} = 1;
+            }
+            
+            my $ShowClass = $ClassName;
+            $ShowClass=~s/<.*>//g;
+            
+            foreach my $NameSpace (sort keys(%NameSpace_Method))
+            {
+                $ADDED_METHODS .= "<span class='jar'>$ArchiveName</span>, <span class='cname'>".htmlSpecChars($ShowClass).".class</span><br/>\n";
+                
+                if($NameSpace) {
+                    $ADDED_METHODS .= "<span class='pkg_t'>package</span> <span class='pkg'>$NameSpace</span><br/>\n";
+                }
+                
+                if($Compact) {
+                    $ADDED_METHODS .= "<div class='symbols'>";
+                }
+                
+                my @SortedMethods = sort {lc($MethodInfo{2}{$a}{"Signature"}) cmp lc($MethodInfo{2}{$b}{"Signature"})} keys(%{$NameSpace_Method{$NameSpace}});
+                foreach my $Method (@SortedMethods)
+                {
+                    $Added_Number += 1;
+                    
+                    my $Signature = undef;
+                    
+                    if($Compact) {
+                        $Signature = get_Signature($Method, 2, "Full|HTML|Simple");
+                    }
+                    else {
+                        $Signature = highLight_Signature_Italic_Color($Method, 2);
+                    }
+                    
+                    if($NameSpace) {
+                        $Signature=~s/(\W|\A)\Q$NameSpace\E\.(\w)/$1$2/g;
+                    }
+                    
+                    if($Compact) {
+                        $ADDED_METHODS .= " ".$Signature."<br/>\n";
+                    }
+                    else {
+                        $ADDED_METHODS .= insertIDs($ContentSpanStart.$Signature.$ContentSpanEnd."<br/>\n".$ContentDivStart."<span class='mngl'>[mangled: <b>".htmlSpecChars($Method)."</b>]</span><br/><br/>".$ContentDivEnd."\n");
+                    }
+                }
+                
+                if($Compact) {
+                    $ADDED_METHODS .= "</div>";
+                }
+                
+                $ADDED_METHODS .= "<br/>\n";
+            }
+            
+        }
+    }
+    if($ADDED_METHODS)
+    {
+        my $Anchor = "<a name='Added'></a>";
+        if($JoinReport) {
+            $Anchor = "<a name='".$Level."_Added'></a>";
+        }
+        if($OldStyle) {
+            $ADDED_METHODS = "<h2>Added Methods ($Added_Number)</h2><hr/>\n".$ADDED_METHODS;
+        }
+        else {
+            $ADDED_METHODS = "<h2>Added Methods <span".getStyle("M", "Added", $Added_Number)."> $Added_Number </span></h2><hr/>\n".$ADDED_METHODS;
+        }
+        $ADDED_METHODS = $Anchor.$ADDED_METHODS.$TOP_REF."<br/>\n";
+    }
+    return $ADDED_METHODS;
+}
+
+sub get_Report_Removed($)
+{
+    if($ShortMode) {
+        return "";
+    }
+    
+    my $Level = $_[0];
+    my ($REMOVED_METHODS, %MethodRemovedFromArchiveClass);
+    foreach my $Method (sort keys(%CompatProblems))
+    {
+        foreach my $Kind (sort keys(%{$CompatProblems{$Method}}))
+        {
+            if($Kind eq "Removed_Method")
+            {
+                if($Level eq "Source")
+                {
+                    if($ChangedReturnFromVoid{$Method}) {
+                        next;
+                    }
+                }
+                my $ArchiveName = $MethodInfo{1}{$Method}{"Archive"};
+                my $ClassName = get_ShortName($MethodInfo{1}{$Method}{"Class"}, 1);
+                $MethodRemovedFromArchiveClass{$ArchiveName}{$ClassName}{$Method} = 1;
+            }
+        }
+    }
+    my $Removed_Number = 0;
+    foreach my $ArchiveName (sort {lc($a) cmp lc($b)} keys(%MethodRemovedFromArchiveClass))
+    {
+        foreach my $ClassName (sort {lc($a) cmp lc($b)} keys(%{$MethodRemovedFromArchiveClass{$ArchiveName}}))
+        {
+            my %NameSpace_Method = ();
+            foreach my $Method (keys(%{$MethodRemovedFromArchiveClass{$ArchiveName}{$ClassName}}))
+            {
+                $NameSpace_Method{$MethodInfo{1}{$Method}{"Package"}}{$Method} = 1;
+            }
+            
+            my $ShowClass = $ClassName;
+            $ShowClass=~s/<.*>//g;
+            
+            foreach my $NameSpace (sort keys(%NameSpace_Method))
+            {
+                $REMOVED_METHODS .= "<span class='jar'>$ArchiveName</span>, <span class='cname'>".htmlSpecChars($ShowClass).".class</span><br/>\n";
+                
+                if($NameSpace) {
+                    $REMOVED_METHODS .= "<span class='pkg_t'>package</span> <span class='pkg'>$NameSpace</span><br/>\n";
+                }
+                
+                if($Compact) {
+                    $REMOVED_METHODS .= "<div class='symbols'>";
+                }
+                
+                my @SortedMethods = sort {lc($MethodInfo{1}{$a}{"Signature"}) cmp lc($MethodInfo{1}{$b}{"Signature"})} keys(%{$NameSpace_Method{$NameSpace}});
+                foreach my $Method (@SortedMethods)
+                {
+                    $Removed_Number += 1;
+                    
+                    my $Signature = undef;
+                    
+                    if($Compact) {
+                        $Signature = get_Signature($Method, 1, "Full|HTML|Simple");
+                    }
+                    else {
+                        $Signature = highLight_Signature_Italic_Color($Method, 1);
+                    }
+                    
+                    if($NameSpace) {
+                        $Signature=~s/(\W|\A)\Q$NameSpace\E\.(\w)/$1$2/g;
+                    }
+                    
+                    if($Compact) {
+                        $REMOVED_METHODS .= " ".$Signature."<br/>\n";
+                    }
+                    else {
+                        $REMOVED_METHODS .= insertIDs($ContentSpanStart.$Signature.$ContentSpanEnd."<br/>\n".$ContentDivStart."<span class='mngl'>[mangled: <b>".htmlSpecChars($Method)."</b>]</span><br/><br/>".$ContentDivEnd."\n");
+                    }
+                }
+                
+                if($Compact) {
+                    $REMOVED_METHODS .= "</div>";
+                }
+                
+                $REMOVED_METHODS .= "<br/>\n";
+            }
+        }
+    }
+    if($REMOVED_METHODS)
+    {
+        my $Anchor = "<a name='Removed'></a><a name='Withdrawn'></a>";
+        if($JoinReport) {
+            $Anchor = "<a name='".$Level."_Removed'></a><a name='".$Level."_Withdrawn'></a>";
+        }
+        if($OldStyle) {
+            $REMOVED_METHODS = "<h2>Removed Methods ($Removed_Number)</h2><hr/>\n".$REMOVED_METHODS;
+        }
+        else {
+            $REMOVED_METHODS = "<h2>Removed Methods <span".getStyle("M", "Removed", $Removed_Number)."> $Removed_Number </span></h2><hr/>\n".$REMOVED_METHODS;
+        }
+        $REMOVED_METHODS = $Anchor.$REMOVED_METHODS.$TOP_REF."<br/>\n";
+    }
+    return $REMOVED_METHODS;
+}
+
+sub get_Report_MethodProblems($$)
+{
+    my ($TargetSeverity, $Level) = @_;
+    my $METHOD_PROBLEMS = "";
+    my (%ReportMap, %MethodChanges) = ();
+    
+    foreach my $Method (sort keys(%CompatProblems))
+    {
+        my $ArchiveName = $MethodInfo{1}{$Method}{"Archive"};
+        my $ClassName = get_ShortName($MethodInfo{1}{$Method}{"Class"}, 1);
+        
+        foreach my $Kind (sort keys(%{$CompatProblems{$Method}}))
+        {
+            if($Kind eq "Added_Method"
+            or $Kind eq "Removed_Method") {
+                next;
+            }
+            
+            if(my $Severity = $MethodProblems_Kind{$Level}{$Kind})
+            {
+                if($Severity ne $TargetSeverity) {
+                    next;
+                }
+                
+                $MethodChanges{$Method}{$Kind} = $CompatProblems{$Method}{$Kind};
+                $ReportMap{$ArchiveName}{$ClassName}{$Method} = 1;
+            }
+        }
+    }
+    my $ProblemsNum = 0;
+    foreach my $ArchiveName (sort {lc($a) cmp lc($b)} keys(%ReportMap))
+    {
+        foreach my $ClassName (sort {lc($a) cmp lc($b)} keys(%{$ReportMap{$ArchiveName}}))
+        {
+            my %NameSpace_Method = ();
+            foreach my $Method (keys(%{$ReportMap{$ArchiveName}{$ClassName}})) {
+                $NameSpace_Method{$MethodInfo{1}{$Method}{"Package"}}{$Method} = 1;
+            }
+            
+            my $ShowClass = $ClassName;
+            $ShowClass=~s/<.*>//g;
+            
+            foreach my $NameSpace (sort keys(%NameSpace_Method))
+            {
+                $METHOD_PROBLEMS .= "<span class='jar'>$ArchiveName</span>, <span class='cname'>".htmlSpecChars($ShowClass).".class</span><br/>\n";
+                if($NameSpace) {
+                    $METHOD_PROBLEMS .= "<span class='pkg_t'>package</span> <span class='pkg'>$NameSpace</span><br/>\n";
+                }
+                
+                my @SortedMethods = sort {lc($MethodInfo{1}{$a}{"Signature"}) cmp lc($MethodInfo{1}{$b}{"Signature"})} keys(%{$NameSpace_Method{$NameSpace}});
+                foreach my $Method (@SortedMethods)
+                {
+                    my $ShortSignature = get_Signature($Method, 1, "Short");
+                    my $ClassName_Full = get_TypeName($MethodInfo{1}{$Method}{"Class"}, 1);
+                    my $METHOD_REPORT = "";
+                    my $ProblemNum = 1;
+                    foreach my $Kind (sort keys(%{$MethodChanges{$Method}}))
+                    {
+                        foreach my $Location (sort keys(%{$MethodChanges{$Method}{$Kind}}))
+                        {
+                            my %Problems = %{$MethodChanges{$Method}{$Kind}{$Location}};
+                            
+                            my $Target = $Problems{"Target"};
+                            
+                            my ($Change, $Effect) = ("", "");
+                            my $Old_Value = htmlSpecChars($Problems{"Old_Value"});
+                            my $New_Value = htmlSpecChars($Problems{"New_Value"});
+                            
+                            if($Kind eq "Method_Became_Static")
+                            {
+                                $Change = "Method became <b>static</b>.\n";
+                                $Effect = "A client program may be interrupted by <b>NoSuchMethodError</b> exception.";
+                            }
+                            elsif($Kind eq "Method_Became_NonStatic")
+                            {
+                                $Change = "Method became <b>non-static</b>.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program may be interrupted by <b>NoSuchMethodError</b> exception.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: non-static method ".htmlSpecChars($ShortSignature)." cannot be referenced from a static context.";
+                                }
+                            }
+                            elsif($Kind eq "Changed_Method_Return_From_Void")
+                            {
+                                $Change = "Return value type has been changed from <b>void</b> to <b>".htmlSpecChars($New_Value)."</b>.\n";
+                                $Effect = "This method has been removed because the return type is part of the method signature.";
+                            }
+                            elsif($Kind eq "Static_Method_Became_Final")
+                            {# Source Only
+                                $Change = "Method became <b>final</b>.\n";
+                                $Effect = "Recompilation of a client program may be terminated with the message: ".htmlSpecChars($ShortSignature)." in client class C cannot override ".htmlSpecChars($ShortSignature)." in ".htmlSpecChars($ClassName_Full)."; overridden method is final.";
+                            }
+                            elsif($Kind eq "NonStatic_Method_Became_Final")
+                            {
+                                $Change = "Method became <b>final</b>.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program trying to reimplement this method may be interrupted by <b>VerifyError</b> exception.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: ".htmlSpecChars($ShortSignature)." in client class C cannot override ".htmlSpecChars($ShortSignature)." in ".htmlSpecChars($ClassName_Full)."; overridden method is final.";
+                                }
+                            }
+                            elsif($Kind eq "Method_Became_Abstract")
+                            {
+                                $Change = "Method became <b>abstract</b>.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program trying to create an instance of the method's class may be interrupted by <b>InstantiationError</b> exception.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: A client class C is not abstract and does not override abstract method ".htmlSpecChars($ShortSignature)." in ".htmlSpecChars($ClassName_Full).".";
+                                }
+                            }
+                            elsif($Kind eq "Method_Became_NonAbstract")
+                            {
+                                $Change = "Method became <b>non-abstract</b>.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program may change behavior.";
+                                }
+                                else {
+                                    $Effect = "No effect.";
+                                }
+                            }
+                            elsif($Kind eq "Method_Became_Default")
+                            {
+                                $Change = "Method became <b>default</b>.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "No effect.";
+                                }
+                                else {
+                                    $Effect = "No effect.";
+                                }
+                            }
+                            elsif($Kind eq "Method_Became_NonDefault")
+                            {
+                                $Change = "Method became <b>non-default</b>.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program trying to create an instance of a class may be interrupted by <b>AbstractMethodError</b> exception.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: A client class C is not abstract and does not override abstract method ".htmlSpecChars($ShortSignature)." in ".htmlSpecChars($ClassName_Full).".";
+                                }
+                            }
+                            elsif($Kind eq "Method_Became_Synchronized")
+                            {
+                                $Change = "Method became <b>synchronized</b>.\n";
+                                $Effect = "A multi-threaded client program may change behavior.";
+                            }
+                            elsif($Kind eq "Method_Became_NonSynchronized")
+                            {
+                                $Change = "Method became <b>non-synchronized</b>.\n";
+                                $Effect = "A multi-threaded client program may change behavior.";
+                            }
+                            elsif($Kind eq "Changed_Method_Access")
+                            {
+                                $Change = "Access level has been changed from <span class='nowrap'><b>".htmlSpecChars($Old_Value)."</b></span> to <span class='nowrap'><b>".htmlSpecChars($New_Value)."</b></span>.";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program may be interrupted by <b>IllegalAccessError</b> exception.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: ".htmlSpecChars($ShortSignature)." has $New_Value access in ".htmlSpecChars($ClassName_Full).".";
+                                }
+                            }
+                            elsif($Kind eq "Abstract_Method_Added_Checked_Exception")
+                            {# Source Only
+                                $Change = "Added <b>".htmlSpecChars($Target)."</b> exception thrown.\n";
+                                $Effect = "Recompilation of a client program may be terminated with the message: unreported exception ".htmlSpecChars($Target)." must be caught or declared to be thrown.";
+                            }
+                            elsif($Kind eq "NonAbstract_Method_Added_Checked_Exception")
+                            {
+                                $Change = "Added <b>".htmlSpecChars($Target)."</b> exception thrown.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program may be interrupted by added exception.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: unreported exception ".htmlSpecChars($Target)." must be caught or declared to be thrown.";
+                                }
+                            }
+                            elsif($Kind eq "Abstract_Method_Removed_Checked_Exception")
+                            {# Source Only
+                                $Change = "Removed <b>".htmlSpecChars($Target)."</b> exception thrown.\n";
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot override ".htmlSpecChars($ShortSignature)." in ".htmlSpecChars($ClassName_Full)."; overridden method does not throw ".htmlSpecChars($Target).".";
+                            }
+                            elsif($Kind eq "NonAbstract_Method_Removed_Checked_Exception")
+                            {
+                                $Change = "Removed <b>".htmlSpecChars($Target)."</b> exception thrown.\n";
+                                if($Level eq "Binary") {
+                                    $Effect = "A client program may change behavior because the removed exception will not be thrown any more and client will not catch and handle it.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: cannot override ".htmlSpecChars($ShortSignature)." in ".htmlSpecChars($ClassName_Full)."; overridden method does not throw ".htmlSpecChars($Target).".";
+                                }
+                            }
+                            elsif($Kind eq "Added_Unchecked_Exception")
+                            {# Binary Only
+                                $Change = "Added <b>".htmlSpecChars($Target)."</b> exception thrown.\n";
+                                $Effect = "A client program may be interrupted by added exception.";
+                            }
+                            elsif($Kind eq "Removed_Unchecked_Exception")
+                            {# Binary Only
+                                $Change = "Removed <b>".htmlSpecChars($Target)."</b> exception thrown.\n";
+                                $Effect = "A client program may change behavior because the removed exception will not be thrown any more and client will not catch and handle it.";
+                            }
+                            if($Change)
+                            {
+                                $METHOD_REPORT .= "<tr><th>$ProblemNum</th><td>".$Change."</td><td>".$Effect."</td></tr>\n";
+                                $ProblemNum += 1;
+                                $ProblemsNum += 1;
+                            }
+                        }
+                    }
+                    $ProblemNum -= 1;
+                    if($METHOD_REPORT)
+                    {
+                        my $ShowMethod = highLight_Signature_Italic_Color($Method, 1);
+                        if($NameSpace)
+                        {
+                            $METHOD_REPORT = cut_Namespace($METHOD_REPORT, $NameSpace);
+                            $ShowMethod = cut_Namespace($ShowMethod, $NameSpace);
+                        }
+                        
+                        $METHOD_PROBLEMS .= $ContentSpanStart."<span class='ext'>[+]</span> ".$ShowMethod;
+                        if($OldStyle) {
+                            $METHOD_PROBLEMS .= " ($ProblemNum)";
+                        }
+                        else {
+                            $METHOD_PROBLEMS .= " <span".getStyle("M", $TargetSeverity, $ProblemNum)."> $ProblemNum </span>";
+                        }
+                        $METHOD_PROBLEMS .= $ContentSpanEnd."<br/>\n";
+                        $METHOD_PROBLEMS .= $ContentDivStart;
+                        
+                        if(not $Compact) {
+                            $METHOD_PROBLEMS .= "<span class='mngl'>   [mangled: <b>".htmlSpecChars($Method)."</b>]</span><br/>\n";
+                        }
+                        
+                        $METHOD_PROBLEMS .= "<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr>$METHOD_REPORT</table><br/>$ContentDivEnd\n";
+                        
+                    }
+                }
+                
+                $METHOD_PROBLEMS .= "<br/>";
+            }
+        }
+    }
+    if($METHOD_PROBLEMS)
+    {
+        $METHOD_PROBLEMS = insertIDs($METHOD_PROBLEMS);
+        
+        my $Title = "Problems with Methods, $TargetSeverity Severity";
+        if($TargetSeverity eq "Safe")
+        { # Safe Changes
+            $Title = "Other Changes in Methods";
+        }
+        if($OldStyle) {
+            $METHOD_PROBLEMS = "<h2>$Title ($ProblemsNum)</h2><hr/>\n".$METHOD_PROBLEMS;
+        }
+        else {
+            $METHOD_PROBLEMS = "<h2>$Title <span".getStyle("M", $TargetSeverity, $ProblemsNum)."> $ProblemsNum </span></h2><hr/>\n".$METHOD_PROBLEMS;
+        }
+        $METHOD_PROBLEMS = "<a name='".get_Anchor("Method", $Level, $TargetSeverity)."'></a>\n".$METHOD_PROBLEMS;
+        $METHOD_PROBLEMS .= $TOP_REF."<br/>\n";
+    }
+    return $METHOD_PROBLEMS;
+}
+
+sub get_Report_TypeProblems($$)
+{
+    my ($TargetSeverity, $Level) = @_;
+    my $TYPE_PROBLEMS = "";
+    my %ReportMap = ();
+    my %TypeChanges_Sev = ();
+    
+    foreach my $TypeName (keys(%{$TypeChanges{$Level}}))
+    {
+        my $ArchiveName = $TypeInfo{1}{$TName_Tid{1}{$TypeName}}{"Archive"};
+        
+        foreach my $Kind (keys(%{$TypeChanges{$Level}{$TypeName}}))
+        {
+            my $Severity = $TypeProblems_Kind{$Level}{$Kind};
+            
+            if($Severity ne $TargetSeverity) {
+                next;
+            }
+            
+            foreach my $Location (keys(%{$TypeChanges{$Level}{$TypeName}{$Kind}}))
+            {
+                $ReportMap{$ArchiveName}{$TypeName} = 1;
+                $TypeChanges_Sev{$TypeName}{$Kind}{$Location} = $TypeChanges{$Level}{$TypeName}{$Kind}{$Location};
+            }
+        }
+    }
+    
+    my $ProblemsNum = 0;
+    foreach my $ArchiveName (sort {lc($a) cmp lc($b)} keys(%ReportMap))
+    {
+        my ($HEADER_REPORT, %NameSpace_Type) = ();
+        foreach my $TypeName (keys(%{$ReportMap{$ArchiveName}}))
+        {
+            $NameSpace_Type{$TypeInfo{1}{$TName_Tid{1}{$TypeName}}{"Package"}}{$TypeName} = 1;
+        }
+        foreach my $NameSpace (sort keys(%NameSpace_Type))
+        {
+            $TYPE_PROBLEMS .= "<span class='jar'>$ArchiveName</span><br/>\n";
+            if($NameSpace) {
+                $TYPE_PROBLEMS .= "<span class='pkg_t'>package</span> <span class='pkg'>".$NameSpace."</span><br/>\n";
+            }
+            
+            my @SortedTypes = sort {lc($a) cmp lc($b)} keys(%{$NameSpace_Type{$NameSpace}});
+            foreach my $TypeName (@SortedTypes)
+            {
+                my $TypeId = $TName_Tid{1}{$TypeName};
+                my $ProblemNum = 1;
+                my $TYPE_REPORT = "";
+                my (%Kinds_Locations, %Kinds_Target) = ();
+                foreach my $Kind (sort keys(%{$TypeChanges_Sev{$TypeName}}))
+                {
+                    foreach my $Location (sort keys(%{$TypeChanges_Sev{$TypeName}{$Kind}}))
+                    {
+                        $Kinds_Locations{$Kind}{$Location} = 1;
+                        
+                        my $Target = $TypeChanges_Sev{$TypeName}{$Kind}{$Location}{"Target"};
+                        if($Kinds_Target{$Kind}{$Target}) {
+                            next;
+                        }
+                        $Kinds_Target{$Kind}{$Target} = 1;
+                        
+                        my ($Change, $Effect) = ("", "");
+                        my %Problems = %{$TypeChanges_Sev{$TypeName}{$Kind}{$Location}};
+                        
+                        my $Old_Value = $Problems{"Old_Value"};
+                        my $New_Value = $Problems{"New_Value"};
+                        my $Field_Type = $Problems{"Field_Type"};
+                        my $Field_Value = $Problems{"Field_Value"};
+                        my $Type_Type = $Problems{"Type_Type"};
+                        
+                        if($Kind eq "NonAbstract_Class_Added_Abstract_Method")
+                        {
+                            $Change = "Abstract method ".black_Name($Target, 2)." has been added to this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "This class became <b>abstract</b> and a client program may be interrupted by <b>InstantiationError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method <b>".htmlSpecChars(get_Signature($Target, 2, "Short"))."</b> in <b>".htmlSpecChars(get_TypeName($MethodInfo{2}{$Target}{"Class"}, 2))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Abstract_Class_Added_Abstract_Method")
+                        {
+                            $Change = "Abstract method ".black_Name($Target, 2)." has been added to this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method <b>".htmlSpecChars(get_Signature($Target, 2, "Short"))."</b> in <b>".htmlSpecChars(get_TypeName($MethodInfo{2}{$Target}{"Class"}, 2))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Abstract_Class_Added_Abstract_Method_Invoked_By_Others")
+                        {
+                            $Change = "Abstract method ".black_Name($Target, 2)." has been added to this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>AbstractMethodError</b> exception. Added abstract method is called in 2nd library version by the method ".black_Name($Problems{"InvokedBy"}, 1)." and may not be implemented by old clients.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method <b>".htmlSpecChars(get_Signature($Target, 2, "Short"))."</b> in <b>".htmlSpecChars(get_TypeName($MethodInfo{2}{$Target}{"Class"}, 2))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Class_Removed_Abstract_Method"
+                        or $Kind eq "Interface_Removed_Abstract_Method")
+                        {
+                            $Change = "Abstract method ".black_Name($Target, 1)." has been removed from this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>NoSuchMethodError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find method <b>".htmlSpecChars(get_Signature($Target, 1, "Short"))."</b> in $Type_Type <b>".htmlSpecChars(get_TypeName($MethodInfo{1}{$Target}{"Class"}, 1))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Added_Abstract_Method")
+                        {
+                            $Change = "Abstract method ".black_Name($Target, 2)." has been added to this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method <b>".htmlSpecChars(get_Signature($Target, 2, "Short"))."</b> in <b>".htmlSpecChars(get_TypeName($MethodInfo{2}{$Target}{"Class"}, 2))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Added_Abstract_Method_Invoked_By_Others")
+                        {
+                            $Change = "Abstract method ".black_Name($Target, 2)." has been added to this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>AbstractMethodError</b> exception. Added abstract method is called in 2nd library version by the method ".black_Name($Problems{"InvokedBy"}, 1)." and may not be implemented by old clients.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method <b>".htmlSpecChars(get_Signature($Target, 2, "Short"))."</b> in <b>".htmlSpecChars(get_TypeName($MethodInfo{2}{$Target}{"Class"}, 2))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Class_Method_Became_Abstract")
+                        {
+                            $Change = "Method ".black_Name($Target, 1)." became <b>abstract</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>InstantiationError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method <b>".htmlSpecChars(get_Signature($Target, 1, "Short"))."</b> in <b>".htmlSpecChars(get_TypeName($MethodInfo{1}{$Target}{"Class"}, 1))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Class_Method_Became_NonAbstract")
+                        {
+                            $Change = "Abstract method ".black_Name($Target, 1)." became <b>non-abstract</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "Some methods in this class may change behavior.";
+                            }
+                            else {
+                                $Effect = "No effect.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Method_Became_NonDefault")
+                        {
+                            $Change = "Method ".black_Name($Target, 1)." became <b>non-default</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>AbstractMethodError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method <b>".htmlSpecChars(get_Signature($Target, 1, "Short"))."</b> in <b>".htmlSpecChars(get_TypeName($MethodInfo{1}{$Target}{"Class"}, 1))."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Method_Became_Default")
+                        {
+                            $Change = "Method ".black_Name($Target, 1)." became <b>default</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "No effect.";
+                            }
+                        }
+                        elsif($Kind eq "Class_Overridden_Method")
+                        {
+                            $Change = "Method ".black_Name($Old_Value, 2)." has been overridden by ".black_Name($New_Value, 2);
+                            $Effect = "Method ".black_Name($New_Value, 2)." will be called instead of ".black_Name($Old_Value, 2)." in a client program.";
+                        }
+                        elsif($Kind eq "Class_Method_Moved_Up_Hierarchy")
+                        {
+                            $Change = "Method ".black_Name($Old_Value, 1)." has been moved up type hierarchy to ".black_Name($New_Value, 2);
+                            $Effect = "Method ".black_Name($New_Value, 2)." will be called instead of ".black_Name($Old_Value, 1)." in a client program.";
+                        }
+                        elsif($Kind eq "Abstract_Class_Added_Super_Interface")
+                        {
+                            $Change = "Added super-interface <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary")
+                            {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method in <b>".htmlSpecChars($Target)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Abstract_Class_Added_Super_Interface_Invoked_By_Others")
+                        {
+                            $Change = "Added super-interface <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "If abstract methods from an added super-interface must be implemented by client then it may be interrupted by <b>AbstractMethodError</b> exception.<br/><br/>Abstract method ".black_Name_S(htmlSpecChars($Problems{"Invoked"}))." from the added super-interface is called by the method ".black_Name($Problems{"InvokedBy"}, 2)." in 2nd library version and may not be implemented by old clients.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method in <b>".htmlSpecChars($Target)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Abstract_Class_Added_Super_Interface_With_Implemented_Methods")
+                        {
+                            $Change = "Added super-interface <b>".htmlSpecChars($Target)."</b>.";
+                            $Effect = "No effect.";
+                        }
+                        elsif($Kind eq "Interface_Added_Super_Interface")
+                        {
+                            $Change = "Added super-interface <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method in <b>".htmlSpecChars($Target)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Added_Super_Interface_Used_By_Others")
+                        {
+                            $Change = "Added super-interface <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary")
+                            {
+                                $Effect = "If abstract methods from an added super-interface must be implemented by client then it may be interrupted by <b>AbstractMethodError</b> exception.<br/><br/>Abstract method ".black_Name_S(htmlSpecChars($Problems{"Invoked"}))." from the added super-interface is called by the method ".black_Name($Problems{"InvokedBy"}, 2)." in 2nd library version and may not be implemented by old clients.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method in <b>".htmlSpecChars($Target)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Added_Super_Interface_With_Implemented_Methods")
+                        {
+                            $Change = "Added super-interface <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "No effect.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Added_Super_Constant_Interface")
+                        {
+                            $Change = "Added super-interface <b>".htmlSpecChars($Target)."</b> containing constants only.";
+                            if($Level eq "Binary") {
+                                $Effect = "A static field from a super-interface of a client class may hide a field (with the same name) inherited from a super-class and cause <b>IncompatibleClassChangeError</b> exception.";
+                            }
+                            else {
+                                $Effect = "A static field from a super-interface of a client class may hide a field (with the same name) inherited from a super-class. Recompilation of a client class may be terminated with the message: reference to variable is ambiguous.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Removed_Super_Interface"
+                        or $Kind eq "Class_Removed_Super_Interface")
+                        {
+                            $Change = "Removed super-interface <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>NoSuchMethodError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find method in $Type_Type <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Removed_Super_Constant_Interface")
+                        {
+                            $Change = "Removed super-interface <b>".htmlSpecChars($Target)."</b> containing constants only.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find variable in $Type_Type <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Added_Super_Class")
+                        {
+                            $Change = "Added super-class <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A static field from a super-interface of a client class may hide a field (with the same name) inherited from new super-class and cause <b>IncompatibleClassChangeError</b> exception.";
+                            }
+                            else {
+                                $Effect = "A static field from a super-interface of a client class may hide a field (with the same name) inherited from new super-class. Recompilation of a client class may be terminated with the message: reference to variable is ambiguous.";
+                            }
+                        }
+                        elsif($Kind eq "Abstract_Class_Added_Super_Abstract_Class")
+                        {
+                            $Change = "Added abstract super-class <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method in <b>".htmlSpecChars($Target)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Abstract_Class_Added_Super_Abstract_Class_Invoked_By_Others")
+                        {
+                            $Change = "Added abstract super-class <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "If abstract methods from an added super-class must be implemented by client then it may be interrupted by <b>AbstractMethodError</b> exception.<br/><br/>Abstract method ".black_Name_S(htmlSpecChars($Problems{"Invoked"}))." from the added abstract super-class is called by the method ".black_Name($Problems{"InvokedBy"}, 2)." in 2nd library version and may not be implemented by old clients.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method in <b>".htmlSpecChars($Target)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Removed_Super_Class")
+                        {
+                            $Change = "Removed super-class <b>".htmlSpecChars($Target)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "Access of a client program to the fields or methods of the old super-class may be interrupted by <b>NoSuchFieldError</b> or <b>NoSuchMethodError</b> exceptions.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find variable (or method) in <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Changed_Super_Class")
+                        {
+                            $Change = "Superclass has been changed from <b>".htmlSpecChars($Old_Value)."</b> to <b>".htmlSpecChars($New_Value)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "1) Access of a client program to the fields or methods of the old super-class may be interrupted by <b>NoSuchFieldError</b> or <b>NoSuchMethodError</b> exceptions.<br/>2) A static field from a super-interface of a client class may hide a field (with the same name) inherited from new super-class and cause <b>IncompatibleClassChangeError</b> exception.";
+                            }
+                            else {
+                                $Effect = "1) Recompilation of a client program may be terminated with the message: cannot find variable (or method) in <b>".htmlSpecChars($TypeName)."</b>.<br/>2) A static field from a super-interface of a client class may hide a field (with the same name) inherited from new super-class. Recompilation of a client class may be terminated with the message: reference to variable is ambiguous.";
+                            }
+                        }
+                        elsif($Kind eq "Class_Added_Field")
+                        {
+                            $Change = "Field <b>$Target</b> has been added to this class.";
+                            if($Level eq "Binary")
+                            {
+                                $Effect = "No effect.";
+                                # $Effect .= "<br/><b>NOTE</b>: A static field from a super-interface of a client class may hide an added field (with the same name) inherited from the super-class of a client class and cause <b>IncompatibleClassChangeError</b> exception.";
+                            }
+                            else
+                            {
+                                $Effect = "No effect.";
+                                # $Effect .= "<br/><b>NOTE</b>: A static field from a super-interface of a client class may hide an added field (with the same name) inherited from the super-class of a client class. Recompilation of a client class may be terminated with the message: reference to <b>$Target</b> is ambiguous.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Added_Field")
+                        {
+                            $Change = "Field <b>$Target</b> has been added to this interface.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.<br/><b>NOTE</b>: An added static field from a super-interface of a client class may hide a field (with the same name) inherited from the super-class of a client class and cause <b>IncompatibleClassChangeError</b> exception.";
+                            }
+                            else {
+                                $Effect = "No effect.<br/><b>NOTE</b>: An added static field from a super-interface of a client class may hide a field (with the same name) inherited from the super-class of a client class. Recompilation of a client class may be terminated with the message: reference to <b>$Target</b> is ambiguous.";
+                            }
+                        }
+                        elsif($Kind eq "Renamed_Field")
+                        {
+                            $Change = "Field <b>$Target</b> has been renamed to <b>".htmlSpecChars($New_Value)."</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>NoSuchFieldError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find variable <b>$Target</b> in <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Renamed_Constant_Field")
+                        {
+                            if($Level eq "Binary") {
+                                $Change = "Field <b>$Target</b> (".htmlSpecChars($Field_Type).") with the compile-time constant value <b>$Field_Value</b> has been renamed to <b>".htmlSpecChars($New_Value)."</b>.";
+                                $Effect = "A client program may change behavior.";
+                            }
+                            else {
+                                $Change = "Field <b>$Target</b> has been renamed to <b>".htmlSpecChars($New_Value)."</b>.";
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find variable <b>$Target</b> in <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Removed_NonConstant_Field")
+                        {
+                            $Change = "Field <b>$Target</b> of type ".htmlSpecChars($Field_Type)." has been removed from this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>NoSuchFieldError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find variable <b>$Target</b> in <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Removed_Constant_Field")
+                        {
+                            $Change = "Field <b>$Target</b> (".htmlSpecChars($Field_Type).") with the compile-time constant value <b>$Field_Value</b> has been removed from this $Type_Type.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may change behavior.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find variable <b>$Target</b> in <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Changed_Field_Type")
+                        {
+                            $Change = "Type of field <b>$Target</b> has been changed from <span class='nowrap'><b>".htmlSpecChars($Old_Value)."</b></span> to <span class='nowrap'><b>".htmlSpecChars($New_Value)."</b></span>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>NoSuchFieldError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: incompatible types, found: <b>".htmlSpecChars($Old_Value)."</b>, required: <b>".htmlSpecChars($New_Value)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Changed_Field_Access")
+                        {
+                            $Change = "Access level of field <b>$Target</b> has been changed from <span class='nowrap'><b>$Old_Value</b></span> to <span class='nowrap'><b>$New_Value</b></span>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>IllegalAccessError</b> exception.";
+                            }
+                            else
+                            {
+                                if($New_Value eq "package-private") {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: <b>$Target</b> is not public in <b>".htmlSpecChars($TypeName)."</b>; cannot be accessed from outside package.";
+                                }
+                                else {
+                                    $Effect = "Recompilation of a client program may be terminated with the message: <b>$Target</b> has <b>$New_Value</b> access in <b>".htmlSpecChars($TypeName)."</b>.";
+                                }
+                            }
+                        }
+                        elsif($Kind eq "Changed_Final_Field_Value")
+                        { # Binary Only
+                            $Change = "Value of final field <b>$Target</b> (<b>$Field_Type</b>) has been changed from <span class='nowrap'><b>".htmlSpecChars($Old_Value)."</b></span> to <span class='nowrap'><b>".htmlSpecChars($New_Value)."</b></span>.";
+                            $Effect = "Old value of the field will be inlined to the client code at compile-time and will be used instead of a new one.";
+                        }
+                        elsif($Kind eq "Changed_Final_Version_Field_Value")
+                        { # Binary Only
+                            $Change = "Value of final field <b>$Target</b> (<b>$Field_Type</b>) has been changed from <span class='nowrap'><b>".htmlSpecChars($Old_Value)."</b></span> to <span class='nowrap'><b>".htmlSpecChars($New_Value)."</b></span>.";
+                            $Effect = "Old value of the field will be inlined to the client code at compile-time and will be used instead of a new one.";
+                        }
+                        elsif($Kind eq "Field_Became_Final")
+                        {
+                            $Change = "Field <b>$Target</b> became <b>final</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>IllegalAccessError</b> exception when attempt to assign new values to the field.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot assign a value to final variable $Target.";
+                            }
+                        }
+                        elsif($Kind eq "Field_Became_NonFinal")
+                        { # Binary Only
+                            $Change = "Field <b>$Target</b> became <b>non-final</b>.";
+                            $Effect = "Old value of the field will be inlined to the client code at compile-time and will be used instead of a new one.";
+                        }
+                        elsif($Kind eq "NonConstant_Field_Became_Static")
+                        { # Binary Only
+                            $Change = "Non-final field <b>$Target</b> became <b>static</b>.";
+                            $Effect = "A client program may be interrupted by <b>IncompatibleClassChangeError</b> exception.";
+                        }
+                        elsif($Kind eq "NonConstant_Field_Became_NonStatic")
+                        {
+                            if($Level eq "Binary") {
+                                $Change = "Non-constant field <b>$Target</b> became <b>non-static</b>.";
+                                $Effect = "A client program may be interrupted by <b>IncompatibleClassChangeError</b> exception.";
+                            }
+                            else {
+                                $Change = "Field <b>$Target</b> became <b>non-static</b>.";
+                                $Effect = "Recompilation of a client program may be terminated with the message: non-static variable <b>$Target</b> cannot be referenced from a static context.";
+                            }
+                        }
+                        elsif($Kind eq "Constant_Field_Became_NonStatic")
+                        { # Source Only
+                            $Change = "Field <b>$Target</b> became <b>non-static</b>.";
+                            $Effect = "Recompilation of a client program may be terminated with the message: non-static variable <b>$Target</b> cannot be referenced from a static context.";
+                        }
+                        elsif($Kind eq "Class_Became_Interface")
+                        {
+                            $Change = "This <b>class</b> became <b>interface</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>IncompatibleClassChangeError</b> or <b>InstantiationError</b> exception dependent on the usage of this class.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: <b>".htmlSpecChars($TypeName)."</b> is abstract; cannot be instantiated.";
+                            }
+                        }
+                        elsif($Kind eq "Interface_Became_Class")
+                        {
+                            $Change = "This <b>interface</b> became <b>class</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>IncompatibleClassChangeError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: interface expected.";
+                            }
+                        }
+                        elsif($Kind eq "Class_Became_Final")
+                        {
+                            $Change = "This class became <b>final</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>VerifyError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot inherit from final <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Class_Became_Abstract")
+                        {
+                            $Change = "This class became <b>abstract</b>.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>InstantiationError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: <b>".htmlSpecChars($TypeName)."</b> is abstract; cannot be instantiated.";
+                            }
+                        }
+                        elsif($Kind eq "Removed_Class")
+                        {
+                            $Change = "This class has been removed.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>NoClassDefFoundError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find class <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Removed_Interface")
+                        {
+                            $Change = "This interface has been removed.";
+                            if($Level eq "Binary") {
+                                $Effect = "A client program may be interrupted by <b>NoClassDefFoundError</b> exception.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the message: cannot find class <b>".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        elsif($Kind eq "Removed_Annotation")
+                        {
+                            $Change = "This annotation type has been removed.";
+                            if($Level eq "Binary") {
+                                $Effect = "No effect.";
+                            }
+                            else {
+                                $Effect = "Recompilation of a client program may be terminated with the error message: cannot find symbol <b>\@".htmlSpecChars($TypeName)."</b>.";
+                            }
+                        }
+                        if($Change)
+                        {
+                            $TYPE_REPORT .= "<tr><th>$ProblemNum</th><td>".$Change."</td><td>".$Effect."</td></tr>\n";
+                            $ProblemNum += 1;
+                            $ProblemsNum += 1;
+                            $Kinds_Locations{$Kind}{$Location} = 1;
+                        }
+                    }
+                }
+                $ProblemNum -= 1;
+                if($TYPE_REPORT)
+                {
+                    my $Affected = "";
+                    if(not defined $TypeInfo{1}{$TypeId}{"Annotation"}) {
+                        $Affected = getAffectedMethods($Level, $TypeName, \%Kinds_Locations);
+                    }
+                    
+                    my $ShowType = $TypeName;
+                    if($NameSpace)
+                    {
+                        $TYPE_REPORT = cut_Namespace($TYPE_REPORT, $NameSpace);
+                        $ShowType = cut_Namespace($ShowType, $NameSpace);
+                        $Affected = cut_Namespace($Affected, $NameSpace);
+                    }
+                    
+                    $TYPE_PROBLEMS .= $ContentSpanStart."<span class='ext'>[+]</span> ".htmlSpecChars($ShowType);
+                    if($OldStyle) {
+                        $TYPE_PROBLEMS .= " ($ProblemNum)";
+                    }
+                    else {
+                        $TYPE_PROBLEMS .= " <span".getStyle("T", $TargetSeverity, $ProblemNum)."> $ProblemNum </span>";
+                    }
+                    $TYPE_PROBLEMS .= $ContentSpanEnd."<br/>\n";
+                    $TYPE_PROBLEMS .= $ContentDivStart."<table class='ptable'><tr>";
+                    $TYPE_PROBLEMS .= "<th width='2%'></th><th width='47%'>Change</th><th>Effect</th>";
+                    $TYPE_PROBLEMS .= "</tr>$TYPE_REPORT</table>".$Affected."<br/><br/>$ContentDivEnd\n";
+                }
+            }
+            
+            $TYPE_PROBLEMS .= "<br/>";
+        }
+    }
+    if($TYPE_PROBLEMS)
+    {
+        $TYPE_PROBLEMS = insertIDs($TYPE_PROBLEMS);
+        
+        my $Title = "Problems with Data Types, $TargetSeverity Severity";
+        if($TargetSeverity eq "Safe")
+        { # Safe Changes
+            $Title = "Other Changes in Data Types";
+        }
+        if($OldStyle) {
+            $TYPE_PROBLEMS = "<h2>$Title ($ProblemsNum)</h2><hr/>\n".$TYPE_PROBLEMS;
+        }
+        else {
+            $TYPE_PROBLEMS = "<h2>$Title <span".getStyle("T", $TargetSeverity, $ProblemsNum)."> $ProblemsNum </span></h2><hr/>\n".$TYPE_PROBLEMS;
+        }
+        $TYPE_PROBLEMS = "<a name='".get_Anchor("Type", $Level, $TargetSeverity)."'></a>\n".$TYPE_PROBLEMS;
+        $TYPE_PROBLEMS .= $TOP_REF."<br/>\n";
+    }
+    return $TYPE_PROBLEMS;
+}
+
+sub cut_Namespace($$)
+{
+    my ($N, $Ns) = @_;
+    $N=~s/(\W|\A)\Q$Ns\E\.(\w)/$1$2/g;
+    return $N;
+}
+
+sub getAffectedMethods($$$)
+{
+    my ($Level, $Target_TypeName, $Kinds_Locations) = @_;
+    
+    my $LIMIT = 10;
+    if(defined $AffectLimit) {
+        $LIMIT = $AffectLimit;
+    }
+    
+    my @Kinds = sort keys(%{$Kinds_Locations});
+    my %KLocs = ();
+    foreach my $Kind (@Kinds)
+    {
+        my @Locs = sort {$a=~/retval/ cmp $b=~/retval/} sort {length($a)<=>length($b)} sort keys(%{$Kinds_Locations->{$Kind}});
+        $KLocs{$Kind} = \@Locs;
+    }
+    
+    my %SymLocKind = ();
+    foreach my $Method (sort keys(%{$TypeProblemsIndex{$Target_TypeName}}))
+    {
+        if($Method eq ".client_method") {
+            next;
+        }
+        
+        foreach my $Kind (@Kinds)
+        {
+            foreach my $Loc (@{$KLocs{$Kind}})
+            {
+                if(not defined $CompatProblems{$Method}{$Kind}{$Loc}) {
+                    next;
+                }
+                
+                my $Type_Name = $CompatProblems{$Method}{$Kind}{$Loc}{"Type_Name"};
+                if($Type_Name ne $Target_TypeName) {
+                    next;
+                }
+                
+                $SymLocKind{$Method}{$Loc}{$Kind} = 1;
+                last;
+            }
+        }
+    }
+    
+    %KLocs = (); # clear
+    
+    if(not keys(%SymLocKind)) {
+        return "";
+    }
+    
+    my %SymSel = ();
+    my $Num = 0;
+    foreach my $Method (sort keys(%SymLocKind))
+    {
+        LOOP: foreach my $Loc (sort {$a=~/retval/ cmp $b=~/retval/} sort {length($a)<=>length($b)} sort keys(%{$SymLocKind{$Method}}))
+        {
+            foreach my $Kind (sort keys(%{$SymLocKind{$Method}{$Loc}}))
+            {
+                $SymSel{$Method}{"Loc"} = $Loc;
+                $SymSel{$Method}{"Kind"} = $Kind;
+                last LOOP;
+            }
+        }
+        
+        $Num += 1;
+        
+        if($Num>=$LIMIT) {
+            last;
+        }
+    }
+    
+    my $Affected = "";
+    
+    foreach my $Method (sort {lc($a) cmp lc($b)} keys(%SymSel))
+    {
+        my $Kind = $SymSel{$Method}{"Kind"};
+        my $Loc = $SymSel{$Method}{"Loc"};
+        
+        my $Desc = getAffectDesc($Method, $Kind, $Loc, $Level);
+        my $PName = getParamName($Loc);
+        my $Pos = getParamPos($PName, $Method, 1);
+        
+        $Affected .= "<span class='iname_a'>".get_Signature($Method, 1, "HTML|Italic|Param|Class|Target=".$Pos)."</span><br/>";
+        $Affected .= "<div class='affect'>".$Desc."</div>\n";
+    }
+    
+    if(keys(%SymLocKind)>$LIMIT) {
+        $Affected .= " <b>...</b>\n<br/>\n"; # and others ...
+    }
+    
+    $Affected = "<div class='affected'>".$Affected."</div>";
+    if($Affected)
+    {
+        my $Num = keys(%SymLocKind);
+        my $Per = show_number($Num*100/keys(%CheckedMethods));
+        $Affected =  $ContentDivStart.$Affected.$ContentDivEnd;
+        $Affected =  $ContentSpanStart_Affected."[+] affected methods: $Num ($Per\%)".$ContentSpanEnd.$Affected;
+    }
+    
+    return ($Affected);
+}
+
+sub getAffectDesc($$$$)
+{
+    my ($Method, $Kind, $Location, $Level) = @_;
+    my %Affect = %{$CompatProblems{$Method}{$Kind}{$Location}};
+    my $New_Value = $Affect{"New_Value"};
+    my $Type_Name = $Affect{"Type_Name"};
+    my @Sentence_Parts = ();
+    
+    $Location=~s/\.[^.]+?\Z//;
+    
+    my %TypeAttr = get_Type($MethodInfo{1}{$Method}{"Class"}, 1);
+    my $Type_Type = $TypeAttr{"Type"};
+    
+    my $ABSTRACT_M = $MethodInfo{1}{$Method}{"Abstract"}?" abstract":"";
+    my $ABSTRACT_C = $TypeAttr{"Abstract"}?" abstract":"";
+    my $METHOD_TYPE = $MethodInfo{1}{$Method}{"Constructor"}?"constructor":"method";
+    
+    if($Kind eq "Class_Overridden_Method" or $Kind eq "Class_Method_Moved_Up_Hierarchy") {
+        return "Method '".highLight_Signature($New_Value, 2)."' will be called instead of this method in a client program.";
+    }
+    elsif($TypeProblems_Kind{$Level}{$Kind})
+    {
+        my %MInfo = %{$MethodInfo{1}{$Method}};
+        
+        if($Location eq "this") {
+            return "This$ABSTRACT_M $METHOD_TYPE is from \'".htmlSpecChars($Type_Name)."\'$ABSTRACT_C $Type_Type.";
+        }
+        
+        my $TypeID = undef;
+        
+        if($Location=~/retval/)
+        { # return value
+            if($Location=~/\./) {
+                push(@Sentence_Parts, "Field \'".htmlSpecChars($Location)."\' in return value");
+            }
+            else {
+                push(@Sentence_Parts, "Return value");
+            }
+            
+            $TypeID = $MInfo{"Return"};
+        }
+        elsif($Location=~/this/)
+        { # "this" reference
+            push(@Sentence_Parts, "Field \'".htmlSpecChars($Location)."\' in the object");
+            
+            $TypeID = $MInfo{"Class"};
+        }
+        else
+        { # parameters
+            my $PName = getParamName($Location);
+            my $PPos = getParamPos($PName, $Method, 1);
+            
+            if($Location=~/\./) {
+                push(@Sentence_Parts, "Field \'".htmlSpecChars($Location)."\' in ".showPos($PPos)." parameter");
+            }
+            else {
+                push(@Sentence_Parts, showPos($PPos)." parameter");
+            }
+            if($PName) {
+                push(@Sentence_Parts, "\'$PName\'");
+            }
+            
+            if(defined $MInfo{"Param"}) {
+                $TypeID = $MInfo{"Param"}{$PPos}{"Type"};
+            }
+        }
+        push(@Sentence_Parts, " of this$ABSTRACT_M method");
+        
+        my $Location_T = $Location;
+        $Location_T=~s/\A\w+(\.|\Z)//; # location in type
+        
+        my $TypeID_Problem = $TypeID;
+        if($Location_T) {
+            $TypeID_Problem = getFieldType($Location_T, $TypeID, 1);
+        }
+        
+        if($TypeInfo{1}{$TypeID_Problem}{"Name"} eq $Type_Name) {
+            push(@Sentence_Parts, "has type \'".htmlSpecChars($Type_Name)."\'.");
+        }
+        else {
+            push(@Sentence_Parts, "has base type \'".htmlSpecChars($Type_Name)."\'.");
+        }
+    }
+    return join(" ", @Sentence_Parts);
+}
+
+sub getParamPos($$$)
+{
+    my ($Name, $Method, $LibVersion) = @_;
+    
+    if(defined $MethodInfo{$LibVersion}{$Method}
+    and defined $MethodInfo{$LibVersion}{$Method}{"Param"})
+    {
+        my $Info = $MethodInfo{$LibVersion}{$Method};
+        foreach (keys(%{$Info->{"Param"}}))
+        {
+            if($Info->{"Param"}{$_}{"Name"} eq $Name)
+            {
+                return $_;
+            }
+        }
+    }
+    
+    return undef;
+}
+
+sub getParamName($)
+{
+    my $Loc = $_[0];
+    $Loc=~s/\..*//g;
+    return $Loc;
+}
+
+sub getFieldType($$$)
+{
+    my ($Location, $TypeId, $LibVersion) = @_;
+    
+    my @Fields = split(/\./, $Location);
+    
+    foreach my $Name (@Fields)
+    {
+        my %Info = get_BaseType($TypeId, $LibVersion);
+        
+        foreach my $N (keys(%{$Info{"Fields"}}))
+        {
+            if($N eq $Name)
+            {
+                $TypeId = $Info{"Fields"}{$N}{"Type"};
+                last;
+            }
+        }
+    }
+    
+    return $TypeId;
+}
+
+sub writeReport($$)
+{
+    my ($Level, $Report) = @_;
+    my $RPath = getReportPath($Level);
+    writeFile($RPath, $Report);
+}
+
+sub getRelPath($$)
+{
+    my ($A, $B) = @_;
+    return abs2rel($A, get_dirname($B));
+}
+
+sub createReport()
+{
+    if($JoinReport)
+    { # --stdout
+        writeReport("Join", getReport("Join"));
+    }
+    elsif($DoubleReport)
+    { # default
+        writeReport("Binary", getReport("Binary"));
+        writeReport("Source", getReport("Source"));
+    }
+    elsif($BinaryOnly)
+    { # --binary
+        writeReport("Binary", getReport("Binary"));
+    }
+    elsif($SourceOnly)
+    { # --source
+        writeReport("Source", getReport("Source"));
+    }
+}
+
+sub getCssStyles()
+{
+    my $CssStyles = "
+    body {
+        font-family:Arial, sans-serif;
+        background-color:White;
+        color:Black;
+    }
+    hr {
+        color:Black;
+        background-color:Black;
+        height:1px;
+        border:0;
+    }
+    h1 {
+        margin-bottom:0px;
+        padding-bottom:0px;
+        font-size:1.625em;
+    }
+    h2 {
+        margin-bottom:0px;
+        padding-bottom:0px;
+        font-size:1.25em;
+        white-space:nowrap;
+    }
+    div.symbols {
+        color:#003E69;
+    }
+    div.symbols i {
+        color:Brown;
+    }
+    span.section {
+        font-weight:bold;
+        cursor:pointer;
+        color:#003E69;
+        white-space:nowrap;
+        margin-left:5px;
+    }
+    span:hover.section {
+        color:#336699;
+    }
+    span.sect_aff {
+        cursor:pointer;
+        margin-left:7px;
+        padding-left:15px;
+        font-size:0.875em;
+        color:#cc3300;
+    }
+    span.ext {
+        font-weight:100;
+    }
+    span.jar {
+        color:#cc3300;
+        font-size:0.875em;
+        font-weight:bold;
+    }
+    div.jar_list {
+        padding-left:5px;
+        font-size:0.94em;
+    }
+    span.pkg_t {
+        color:#408080;
+        font-size:0.875em;
+    }
+    span.pkg {
+        color:#408080;
+        font-size:0.875em;
+        font-weight:bold;
+    }
+    span.cname {
+        color:Green;
+        font-size:0.875em;
+        font-weight:bold;
+    }
+    span.iname_b {
+        font-weight:bold;
+        font-size:1.1em;
+    }
+    span.iname_a {
+        color:#333333;
+        font-weight:bold;
+        font-size:0.94em;
+    }
+    span.sym_p {
+        font-weight:normal;
+        white-space:normal;
+    }
+    span.sym_p span {
+        white-space:nowrap;
+    }
+    span.attr {
+        color:Black;
+        font-weight:100;
+    }
+    span.deprecated {
+        color:Red;
+        font-weight:bold;
+        font-family:Monaco, monospace;
+    }
+    div.affect {
+        padding-left:15px;
+        padding-bottom:10px;
+        font-size:0.87em;
+        font-style:italic;
+        line-height:0.75em;
+    }
+    div.affected {
+        padding-left:30px;
+        padding-top:10px;
+    }
+    table.ptable {
+        border-collapse:collapse;
+        border:1px outset black;
+        line-height:1em;
+        margin-left:15px;
+        margin-top:3px;
+        margin-bottom:3px;
+        width:900px;
+    }
+    table.ptable td {
+        border:1px solid Gray;
+        padding: 3px;
+        font-size:0.875em;
+        text-align:left;
+        vertical-align:top;
+    }
+    table.ptable th {
+        background-color:#eeeeee;
+        font-weight:bold;
+        color:#333333;
+        font-family:Verdana, Arial;
+        font-size:0.875em;
+        border:1px solid Gray;
+        text-align:center;
+        vertical-align:top;
+        white-space:nowrap;
+        padding: 3px;
+    }
+    table.summary {
+        border-collapse:collapse;
+        border:1px outset black;
+    }
+    table.summary th {
+        background-color:#eeeeee;
+        font-weight:100;
+        text-align:left;
+        font-size:0.94em;
+        white-space:nowrap;
+        border:1px inset Gray;
+        padding: 3px;
+    }
+    table.summary td {
+        text-align:right;
+        white-space:nowrap;
+        border:1px inset Gray;
+        padding: 3px 5px 3px 10px;
+    }
+    span.mngl {
+        padding-left:15px;
+        font-size:0.875em;
+        cursor:text;
+        color:#444444;
+    }
+    span.color_p {
+        font-style:italic;
+        color:Brown;
+    }
+    span.param {
+        font-style:italic;
+    }
+    span.focus_p {
+        font-style:italic;
+        background-color:#DCDCDC;
+    }
+    span.nowrap {
+        white-space:nowrap;
+    }
+    .passed {
+        background-color:#CCFFCC;
+        font-weight:100;
+    }
+    .warning {
+        background-color:#F4F4AF;
+        font-weight:100;
+    }
+    .failed {
+        background-color:#FFCCCC;
+        font-weight:100;
+    }
+    .new {
+        background-color:#C6DEFF;
+        font-weight:100;
+    }
+    
+    .compatible {
+        background-color:#CCFFCC;
+        font-weight:100;
+    }
+    .almost_compatible {
+        background-color:#FFDAA3;
+        font-weight:100;
+    }
+    .incompatible {
+        background-color:#FFCCCC;
+        font-weight:100;
+    }
+    .gray {
+        background-color:#DCDCDC;
+        font-weight:100;
+    }
+    
+    .top_ref {
+        font-size:0.69em;
+    }
+    .footer {
+        font-size:0.75em;
+    }";
+    
+    if($JoinReport or $ExternCss)
+    {
+        $CssStyles .= "
+    .tabset {
+        float:left;
+    }
+    a.tab {
+        border:1px solid Black;
+        float:left;
+        margin:0px 5px -1px 0px;
+        padding:3px 5px 3px 5px;
+        position:relative;
+        font-size:0.875em;
+        background-color:#DDD;
+        text-decoration:none;
+        color:Black;
+    }
+    a.disabled:hover
+    {
+        color:Black;
+        background:#EEE;
+    }
+    a.active:hover
+    {
+        color:Black;
+        background:White;
+    }
+    a.active {
+        border-bottom-color:White;
+        background-color:White;
+    }
+    div.tab {
+        border-top:1px solid Black;
+        padding:0px;
+        width:100%;
+        clear:both;
+    }";
+    }
+    
+    return $CssStyles;
+}
+
+sub getJsScript()
+{
+    my $JScripts = "
+    function sC(header, id)
+    {
+        e = document.getElementById(id);
+        if(e.style.display == 'none')
+        {
+            e.style.display = 'block';
+            e.style.visibility = 'visible';
+            header.innerHTML = header.innerHTML.replace(/\\\[[^0-9 ]\\\]/gi,\"[−]\");
+        }
+        else
+        {
+            e.style.display = 'none';
+            e.style.visibility = 'hidden';
+            header.innerHTML = header.innerHTML.replace(/\\\[[^0-9 ]\\\]/gi,\"[+]\");
+        }
+    }";
+    
+    if($JoinReport or $ExternJs)
+    {
+        $JScripts .= "
+    function initTabs()
+    {
+        var url = window.location.href;
+        if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
+        {
+            var tab1 = document.getElementById('BinaryID');
+            var tab2 = document.getElementById('SourceID');
+            tab1.className='tab disabled';
+            tab2.className='tab active';
+        }
+        var sets = document.getElementsByTagName('div');
+        for (var i = 0; i < sets.length; i++)
+        {
+            if (sets[i].className.indexOf('tabset') != -1)
+            {
+                var tabs = [];
+                var links = sets[i].getElementsByTagName('a');
+                for (var j = 0; j < links.length; j++)
+                {
+                    if (links[j].className.indexOf('tab') != -1)
+                    {
+                        tabs.push(links[j]);
+                        links[j].tabs = tabs;
+                        var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
+                        //reset all tabs on start
+                        if (tab)
+                        {
+                            if (links[j].className.indexOf('active')!=-1) {
+                                tab.style.display = 'block';
+                            }
+                            else {
+                                tab.style.display = 'none';
+                            }
+                        }
+                        links[j].onclick = function()
+                        {
+                            var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
+                            if (tab)
+                            {
+                                //reset all tabs before change
+                                for (var k = 0; k < this.tabs.length; k++)
+                                {
+                                    document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
+                                    this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
+                                }
+                                this.className = 'tab active';
+                                tab.style.display = 'block';
+                                // window.location.hash = this.id.replace('ID', '');
+                                return false;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        if(url.indexOf('#')!=-1) {
+            location.href=location.href;
+        }
+    }
+    if (window.addEventListener) window.addEventListener('load', initTabs, false);
+    else if (window.attachEvent) window.attachEvent('onload', initTabs);";
+    }
+    
+    return $JScripts;
+}
+
+sub getReport($)
+{
+    my $Level = $_[0];
+    
+    my $CssStyles = getCssStyles();
+    my $JScripts = getJsScript();
+    
+    if(defined $ExternCss)
+    {
+        $CssStyles=~s/\n    /\n/g;
+        writeFile($ExternCss, $CssStyles);
+    }
+    
+    if(defined $ExternJs)
+    {
+        $JScripts=~s/\n    /\n/g;
+        writeFile($ExternJs, $JScripts);
+    }
+    
+    if($Level eq "Join")
+    {
+        my $Title = "$TargetTitle: ".$Descriptor{1}{"Version"}." to ".$Descriptor{2}{"Version"}." compatibility report";
+        my $Keywords = "$TargetTitle, compatibility";
+        my $Description = "Compatibility report for the $TargetTitle library between ".$Descriptor{1}{"Version"}." and ".$Descriptor{2}{"Version"}." versions";
+        my ($BSummary, $BMetaData) = get_Summary("Binary");
+        my ($SSummary, $SMetaData) = get_Summary("Source");
+        my $Report = "<!-\- $BMetaData -\->\n<!-\- $SMetaData -\->\n".composeHTML_Head($Level, $Title, $Keywords, $Description, $CssStyles, $JScripts)."<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a>";
+        $Report .= get_Report_Header("Join")."
+        <br/><div class='tabset'>
+        <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
+        <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
+        </div>";
+        $Report .= "<div id='BinaryTab' class='tab'>\n$BSummary\n".get_Report_Added("Binary").get_Report_Removed("Binary").get_Report_Problems("High", "Binary").get_Report_Problems("Medium", "Binary").get_Report_Problems("Low", "Binary").get_Report_Problems("Safe", "Binary").get_SourceInfo()."<br/><br/><br/></div>";
+        $Report .= "<div id='SourceTab' class='tab'>\n$SSummary\n".get_Report_Added("Source").get_Report_Removed("Source").get_Report_Problems("High", "Source").get_Report_Problems("Medium", "Source").get_Report_Problems("Low", "Source").get_Report_Problems("Safe", "Source").get_SourceInfo()."<br/><br/><br/></div>";
+        $Report .= getReportFooter();
+        $Report .= "\n</body></html>";
+        return $Report;
+    }
+    else
+    {
+        my ($Summary, $MetaData) = get_Summary($Level);
+        my $Title = "$TargetTitle: ".$Descriptor{1}{"Version"}." to ".$Descriptor{2}{"Version"}." ".lc($Level)." compatibility report";
+        my $Keywords = "$TargetTitle, ".lc($Level).", compatibility";
+        my $Description = "$Level compatibility report for the $TargetTitle library between ".$Descriptor{1}{"Version"}." and ".$Descriptor{2}{"Version"}." versions";
+        
+        my $Report = "<!-\- $MetaData -\->\n".composeHTML_Head($Level, $Title, $Keywords, $Description, $CssStyles, $JScripts)."<body><a name='Top'></a>";
+        $Report .= get_Report_Header($Level)."\n".$Summary."\n";
+        $Report .= get_Report_Added($Level).get_Report_Removed($Level);
+        $Report .= get_Report_Problems("High", $Level).get_Report_Problems("Medium", $Level).get_Report_Problems("Low", $Level).get_Report_Problems("Safe", $Level);
+        $Report .= get_SourceInfo()."<br/><br/><br/>\n";
+        $Report .= getReportFooter();
+        $Report .= "\n</body></html>";
+        return $Report;
+    }
+}
+
+sub getReportFooter()
+{
+    my $Footer = "";
+    $Footer .= "<hr/>";
+    $Footer .= "<div class='footer' align='right'><i>Generated by ";
+    $Footer .= "<a href='".$HomePage{"Dev"}."'>Java API Compliance Checker</a> $TOOL_VERSION  ";
+    $Footer .= "</i></div>";
+    $Footer .= "<br/>";
+    return $Footer;
+}
+
+sub get_Report_Problems($$)
+{
+    my ($Priority, $Level) = @_;
+    my $Report = get_Report_TypeProblems($Priority, $Level);
+    if(my $MProblems = get_Report_MethodProblems($Priority, $Level)) {
+        $Report .= $MProblems;
+    }
+    if($Report)
+    {
+        if($JoinReport)
+        {
+            if($Priority eq "Safe") {
+                $Report = "<a name=\'Other_".$Level."_Changes\'></a>".$Report;
+            }
+            else {
+                $Report = "<a name=\'".$Priority."_Risk_".$Level."_Problems\'></a>".$Report;
+            }
+        }
+        else
+        {
+            if($Priority eq "Safe") {
+                $Report = "<a name=\'Other_Changes\'></a>".$Report;
+            }
+            else {
+                $Report = "<a name=\'".$Priority."_Risk_Problems\'></a>".$Report;
+            }
+        }
+    }
+    return $Report;
+}
+
+sub composeHTML_Head($$$$$$)
+{
+    my ($Level, $Title, $Keywords, $Description, $Styles, $Scripts) = @_;
+    
+    my $Head = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
+    $Head .= "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
+    $Head .= "<head>\n";
+    $Head .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
+    $Head .= "<meta name=\"keywords\" content=\"$Keywords\" />\n";
+    $Head .= "<meta name=\"description\" content=\"$Description\" />\n";
+    
+    my $RPath = getReportPath($Level);
+    
+    if(defined $ExternCss) {
+        $Head .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"".getRelPath($ExternCss, $RPath)."\" />\n";
+    }
+    
+    if(defined $ExternJs) {
+        $Head .= "<script type=\"text/javascript\" src=\"".getRelPath($ExternJs, $RPath)."\"></script>\n";
+    }
+    
+    $Head .= "<title>$Title</title>\n";
+    
+    if(not defined $ExternCss) {
+        $Head .= "<style type=\"text/css\">\n$Styles\n</style>\n";
+    }
+    
+    if(not defined $ExternJs) {
+        $Head .= "<script type=\"text/javascript\" language=\"JavaScript\">\n<!--\n$Scripts\n-->\n</script>\n";
+    }
+    
+    $Head .= "</head>\n";
+    
+    $Head=~s/\n    /\n/g;
+    
+    return $Head;
+}
+
+sub insertIDs($)
+{
+    my $Text = $_[0];
+    while($Text=~/CONTENT_ID/)
+    {
+        if(int($Content_Counter)%2)
+        {
+            $ContentID -= 1;
+        }
+        $Text=~s/CONTENT_ID/c_$ContentID/;
+        $ContentID += 1;
+        $Content_Counter += 1;
+    }
+    return $Text;
+}
+
+sub readArchives($)
+{
+    my $LibVersion = $_[0];
+    my @ArchivePaths = getArchives($LibVersion);
+    if($#ArchivePaths==-1) {
+        exitStatus("Error", "Java ARchives are not found in ".$Descriptor{$LibVersion}{"Version"});
+    }
+    printMsg("INFO", "reading classes ".$Descriptor{$LibVersion}{"Version"}." ...");
+    $TYPE_ID = 0;
+    
+    foreach my $ArchivePath (sort {length($a)<=>length($b)} @ArchivePaths) {
+        readArchive($LibVersion, $ArchivePath);
+    }
+    foreach my $TName (keys(%{$TName_Tid{$LibVersion}}))
+    {
+        my $Tid = $TName_Tid{$LibVersion}{$TName};
+        if(not $TypeInfo{$LibVersion}{$Tid}{"Type"})
+        {
+            if($TName=~/\A(void|boolean|char|byte|short|int|float|long|double)\Z/) {
+                $TypeInfo{$LibVersion}{$Tid}{"Type"} = "primitive";
+            }
+            else {
+                $TypeInfo{$LibVersion}{$Tid}{"Type"} = "class";
+            }
+        }
+    }
+    
+    foreach my $Method (keys(%{$MethodInfo{$LibVersion}}))
+    {
+        $MethodInfo{$LibVersion}{$Method}{"Signature"} = get_Signature($Method, $LibVersion, "Full");
+        $tr_name{$Method} = get_TypeName($MethodInfo{$LibVersion}{$Method}{"Class"}, $LibVersion).".".get_Signature($Method, $LibVersion, "Short");
+    }
+}
+
+sub testSystem()
+{
+    printMsg("INFO", "\nverifying detectable Java library changes");
+    
+    my $LibName = "libsample_java";
+    if(-d $LibName) {
+        rmtree($LibName);
+    }
+    
+    my $PackageName = "TestPackage";
+    my $Path_v1 = "$LibName/$PackageName.v1/$PackageName";
+    mkpath($Path_v1);
+    
+    my $Path_v2 = "$LibName/$PackageName.v2/$PackageName";
+    mkpath($Path_v2);
+    
+    my $TestsPath = "$LibName/Tests";
+    mkpath($TestsPath);
+    
+    # FirstCheckedException
+    my $FirstCheckedException = "package $PackageName;
+    public class FirstCheckedException extends Exception {
+    }";
+    writeFile($Path_v1."/FirstCheckedException.java", $FirstCheckedException);
+    writeFile($Path_v2."/FirstCheckedException.java", $FirstCheckedException);
+    
+    # SecondCheckedException
+    my $SecondCheckedException = "package $PackageName;
+    public class SecondCheckedException extends Exception {
+    }";
+    writeFile($Path_v1."/SecondCheckedException.java", $SecondCheckedException);
+    writeFile($Path_v2."/SecondCheckedException.java", $SecondCheckedException);
+    
+    # FirstUncheckedException
+    my $FirstUncheckedException = "package $PackageName;
+    public class FirstUncheckedException extends RuntimeException {
+    }";
+    writeFile($Path_v1."/FirstUncheckedException.java", $FirstUncheckedException);
+    writeFile($Path_v2."/FirstUncheckedException.java", $FirstUncheckedException);
+    
+    # SecondUncheckedException
+    my $SecondUncheckedException = "package $PackageName;
+    public class SecondUncheckedException extends RuntimeException {
+    }";
+    writeFile($Path_v1."/SecondUncheckedException.java", $SecondUncheckedException);
+    writeFile($Path_v2."/SecondUncheckedException.java", $SecondUncheckedException);
+    
+    # BaseAbstractClass
+    my $BaseAbstractClass = "package $PackageName;
+    public abstract class BaseAbstractClass {
+        public Integer field;
+        public Integer someMethod(Integer param) { return param; }
+        public abstract Integer abstractMethod(Integer param);
+    }";
+    writeFile($Path_v1."/BaseAbstractClass.java", $BaseAbstractClass);
+    writeFile($Path_v2."/BaseAbstractClass.java", $BaseAbstractClass);
+    
+    # Removed_Annotation
+    writeFile($Path_v1."/RemovedAnnotation.java",
+    "package $PackageName;
+    public \@interface RemovedAnnotation {
+    }");
+    
+    # Beta Annotation
+    writeFile($Path_v1."/Beta.java",
+    "package $PackageName;
+    public \@interface Beta {
+    }");
+    
+    writeFile($Path_v2."/Beta.java",
+    "package $PackageName;
+    public \@interface Beta {
+    }");
+    
+    # BaseClass
+    my $BaseClass = "package $PackageName;
+    public class BaseClass {
+        public Integer field;
+        public Integer method(Integer param) { return param; }
+    }";
+    writeFile($Path_v1."/BaseClass.java", $BaseClass);
+    writeFile($Path_v2."/BaseClass.java", $BaseClass);
+    
+    # BaseClass2
+    my $BaseClass2 = "package $PackageName;
+    public class BaseClass2 {
+        public Integer field2;
+        public Integer method2(Integer param) { return param; }
+    }";
+    writeFile($Path_v1."/BaseClass2.java", $BaseClass2);
+    writeFile($Path_v2."/BaseClass2.java", $BaseClass2);
+    
+    # BaseInterface
+    my $BaseInterface = "package $PackageName;
+    public interface BaseInterface {
+        public Integer field = 100;
+        public Integer method(Integer param);
+    }";
+    writeFile($Path_v1."/BaseInterface.java", $BaseInterface);
+    writeFile($Path_v2."/BaseInterface.java", $BaseInterface);
+    
+    # BaseInterface2
+    my $BaseInterface2 = "package $PackageName;
+    public interface BaseInterface2 {
+        public Integer field2 = 100;
+        public Integer method2(Integer param);
+    }";
+    writeFile($Path_v1."/BaseInterface2.java", $BaseInterface2);
+    writeFile($Path_v2."/BaseInterface2.java", $BaseInterface2);
+    
+    # BaseConstantInterface
+    my $BaseConstantInterface = "package $PackageName;
+    public interface BaseConstantInterface {
+        public Integer CONSTANT = 10;
+        public Integer CONSTANT2 = 100;
+    }";
+    writeFile($Path_v1."/BaseConstantInterface.java", $BaseConstantInterface);
+    writeFile($Path_v2."/BaseConstantInterface.java", $BaseConstantInterface);
+    
+    # Removed_Method (Beta method)
+    writeFile($Path_v1."/RemovedBetaMethod.java",
+    "package $PackageName;
+    public class RemovedBetaMethod
+    {
+        \@Beta
+        public Integer someMethod() {
+            return 0;
+        }
+    }");
+    writeFile($Path_v2."/RemovedBetaMethod.java",
+    "package $PackageName;
+    public class RemovedBetaMethod {
+    }");
+    
+    # Removed_Method (from Beta class)
+    writeFile($Path_v1."/RemovedMethodFromBetaClass.java",
+    "package $PackageName;
+    \@Beta
+    public class RemovedMethodFromBetaClass
+    {
+        public Integer someMethod() {
+            return 0;
+        }
+    }");
+    writeFile($Path_v2."/RemovedMethodFromBetaClass.java",
+    "package $PackageName;
+    \@Beta
+    public class RemovedMethodFromBetaClass {
+    }");
+    
+    # Removed_Class (Beta)
+    writeFile($Path_v1."/RemovedBetaClass.java",
+    "package $PackageName;
+    \@Beta
+    public class RemovedBetaClass
+    {
+        public Integer someMethod() {
+            return 0;
+        }
+    }");
+    
+    # Abstract_Method_Added_Checked_Exception
+    writeFile($Path_v1."/AbstractMethodAddedCheckedException.java",
+    "package $PackageName;
+    public abstract class AbstractMethodAddedCheckedException {
+        public abstract Integer someMethod() throws FirstCheckedException;
+    }");
+    writeFile($Path_v2."/AbstractMethodAddedCheckedException.java",
+    "package $PackageName;
+    public abstract class AbstractMethodAddedCheckedException {
+        public abstract Integer someMethod() throws FirstCheckedException, SecondCheckedException;
+    }");
+    
+    # Abstract_Method_Removed_Checked_Exception
+    writeFile($Path_v1."/AbstractMethodRemovedCheckedException.java",
+    "package $PackageName;
+    public abstract class AbstractMethodRemovedCheckedException {
+        public abstract Integer someMethod() throws FirstCheckedException, SecondCheckedException;
+    }");
+    writeFile($Path_v2."/AbstractMethodRemovedCheckedException.java",
+    "package $PackageName;
+    public abstract class AbstractMethodRemovedCheckedException {
+        public abstract Integer someMethod() throws FirstCheckedException;
+    }");
+    
+    # NonAbstract_Method_Added_Checked_Exception
+    writeFile($Path_v1."/NonAbstractMethodAddedCheckedException.java",
+    "package $PackageName;
+    public class NonAbstractMethodAddedCheckedException {
+        public Integer someMethod() throws FirstCheckedException {
+            return 10;
+        }
+    }");
+    writeFile($Path_v2."/NonAbstractMethodAddedCheckedException.java",
+    "package $PackageName;
+    public class NonAbstractMethodAddedCheckedException {
+        public Integer someMethod() throws FirstCheckedException, SecondCheckedException {
+            return 10;
+        }
+    }");
+    
+    # NonAbstract_Method_Removed_Checked_Exception
+    writeFile($Path_v1."/NonAbstractMethodRemovedCheckedException.java",
+    "package $PackageName;
+    public class NonAbstractMethodRemovedCheckedException {
+        public Integer someMethod() throws FirstCheckedException, SecondCheckedException {
+            return 10;
+        }
+    }");
+    writeFile($Path_v2."/NonAbstractMethodRemovedCheckedException.java",
+    "package $PackageName;
+    public class NonAbstractMethodRemovedCheckedException {
+        public Integer someMethod() throws FirstCheckedException {
+            return 10;
+        }
+    }");
+    
+    # Added_Unchecked_Exception
+    writeFile($Path_v1."/AddedUncheckedException.java",
+    "package $PackageName;
+    public class AddedUncheckedException {
+        public Integer someMethod() throws FirstUncheckedException {
+            return 10;
+        }
+    }");
+    writeFile($Path_v2."/AddedUncheckedException.java",
+    "package $PackageName;
+    public class AddedUncheckedException {
+        public Integer someMethod() throws FirstUncheckedException, SecondUncheckedException, NullPointerException {
+            return 10;
+        }
+    }");
+    
+    # Removed_Unchecked_Exception
+    writeFile($Path_v1."/RemovedUncheckedException.java",
+    "package $PackageName;
+    public class RemovedUncheckedException {
+        public Integer someMethod() throws FirstUncheckedException, SecondUncheckedException, NullPointerException {
+            return 10;
+        }
+    }");
+    writeFile($Path_v2."/RemovedUncheckedException.java",
+    "package $PackageName;
+    public class RemovedUncheckedException {
+        public Integer someMethod() throws FirstUncheckedException {
+            return 10;
+        }
+    }");
+    
+    # Changed_Method_Return_From_Void
+    writeFile($Path_v1."/ChangedMethodReturnFromVoid.java",
+    "package $PackageName;
+    public class ChangedMethodReturnFromVoid {
+        public void changedMethod(Integer param1, String[] param2) { }
+    }");
+    writeFile($Path_v2."/ChangedMethodReturnFromVoid.java",
+    "package $PackageName;
+    public class ChangedMethodReturnFromVoid {
+        public Integer changedMethod(Integer param1, String[] param2){
+            return param1;
+        }
+    }");
+    
+    # Added_Method
+    writeFile($Path_v1."/AddedMethod.java",
+    "package $PackageName;
+    public class AddedMethod {
+        public Integer field = 100;
+    }");
+    writeFile($Path_v2."/AddedMethod.java",
+    "package $PackageName;
+    public class AddedMethod {
+        public Integer field = 100;
+        public Integer addedMethod(Integer param1, String[] param2) { return param1; }
+        public static String[] addedStaticMethod(String[] param) { return param; }
+    }");
+    
+    # Added_Method (Constructor)
+    writeFile($Path_v1."/AddedConstructor.java",
+    "package $PackageName;
+    public class AddedConstructor {
+        public Integer field = 100;
+    }");
+    writeFile($Path_v2."/AddedConstructor.java",
+    "package $PackageName;
+    public class AddedConstructor {
+        public Integer field = 100;
+        public AddedConstructor() { }
+        public AddedConstructor(Integer x, String y) { }
+    }");
+    
+    # Class_Added_Field
+    writeFile($Path_v1."/ClassAddedField.java",
+    "package $PackageName;
+    public class ClassAddedField {
+        public Integer otherField;
+    }");
+    writeFile($Path_v2."/ClassAddedField.java",
+    "package $PackageName;
+    public class ClassAddedField {
+        public Integer addedField;
+        public Integer otherField;
+    }");
+    
+    # Interface_Added_Field
+    writeFile($Path_v1."/InterfaceAddedField.java",
+    "package $PackageName;
+    public interface InterfaceAddedField {
+        public Integer method();
+    }");
+    writeFile($Path_v2."/InterfaceAddedField.java",
+    "package $PackageName;
+    public interface InterfaceAddedField {
+        public Integer addedField = 100;
+        public Integer method();
+    }");
+    
+    # Removed_NonConstant_Field (Class)
+    writeFile($Path_v1."/ClassRemovedField.java",
+    "package $PackageName;
+    public class ClassRemovedField {
+        public Integer removedField;
+        public Integer otherField;
+    }");
+    writeFile($Path_v2."/ClassRemovedField.java",
+    "package $PackageName;
+    public class ClassRemovedField {
+        public Integer otherField;
+    }");
+    
+    writeFile($TestsPath."/Test_ClassRemovedField.java",
+    "import $PackageName.*;
+    public class Test_ClassRemovedField {
+        public static void main(String[] args) {
+            ClassRemovedField X = new ClassRemovedField();
+            Integer Copy = X.removedField;
+        }
+    }");
+    
+    writeFile($TestsPath."/Test_RemovedAnnotation.java",
+    "import $PackageName.*;
+    public class Test_RemovedAnnotation {
+        public static void main(String[] args) {
+            testMethod();
+        }
+        
+        \@RemovedAnnotation
+        static void testMethod() {
+        }
+    }");
+    
+    # Removed_Constant_Field (Interface)
+    writeFile($Path_v1."/InterfaceRemovedConstantField.java",
+    "package $PackageName;
+    public interface InterfaceRemovedConstantField {
+        public String someMethod();
+        public int removedField_Int = 1000;
+        public String removedField_Str = \"Value\";
+    }");
+    writeFile($Path_v2."/InterfaceRemovedConstantField.java",
+    "package $PackageName;
+    public interface InterfaceRemovedConstantField {
+        public String someMethod();
+    }");
+    
+    # Removed_NonConstant_Field (Interface)
+    writeFile($Path_v1."/InterfaceRemovedField.java",
+    "package $PackageName;
+    public interface InterfaceRemovedField {
+        public String someMethod();
+        public BaseClass removedField = new BaseClass();
+    }");
+    writeFile($Path_v2."/InterfaceRemovedField.java",
+    "package $PackageName;
+    public interface InterfaceRemovedField {
+        public String someMethod();
+    }");
+    
+    # Renamed_Field
+    writeFile($Path_v1."/RenamedField.java",
+    "package $PackageName;
+    public class RenamedField {
+        public String oldName;
+    }");
+    writeFile($Path_v2."/RenamedField.java",
+    "package $PackageName;
+    public class RenamedField {
+        public String newName;
+    }");
+    
+    # Renamed_Constant_Field
+    writeFile($Path_v1."/RenamedConstantField.java",
+    "package $PackageName;
+    public class RenamedConstantField {
+        public final String oldName = \"Value\";
+    }");
+    writeFile($Path_v2."/RenamedConstantField.java",
+    "package $PackageName;
+    public class RenamedConstantField {
+        public final String newName = \"Value\";
+    }");
+    
+    # Changed_Field_Type
+    writeFile($Path_v1."/ChangedFieldType.java",
+    "package $PackageName;
+    public class ChangedFieldType {
+        public String fieldName;
+    }");
+    writeFile($Path_v2."/ChangedFieldType.java",
+    "package $PackageName;
+    public class ChangedFieldType {
+        public Integer fieldName;
+    }");
+    
+    # Changed_Field_Access
+    writeFile($Path_v1."/ChangedFieldAccess.java",
+    "package $PackageName;
+    public class ChangedFieldAccess {
+        public String fieldName;
+    }");
+    writeFile($Path_v2."/ChangedFieldAccess.java",
+    "package $PackageName;
+    public class ChangedFieldAccess {
+        private String fieldName;
+    }");
+    
+    # Changed_Final_Field_Value
+    writeFile($Path_v1."/ChangedFinalFieldValue.java",
+    "package $PackageName;
+    public class ChangedFinalFieldValue {
+        public final int field = 1;
+        public final String field2 = \" \";
+    }");
+    writeFile($Path_v2."/ChangedFinalFieldValue.java",
+    "package $PackageName;
+    public class ChangedFinalFieldValue {
+        public final int field = 2;
+        public final String field2 = \"newValue\";
+    }");
+    
+    # NonConstant_Field_Became_Static
+    writeFile($Path_v1."/NonConstantFieldBecameStatic.java",
+    "package $PackageName;
+    public class NonConstantFieldBecameStatic {
+        public String fieldName;
+    }");
+    writeFile($Path_v2."/NonConstantFieldBecameStatic.java",
+    "package $PackageName;
+    public class NonConstantFieldBecameStatic {
+        public static String fieldName;
+    }");
+    
+    # NonConstant_Field_Became_NonStatic
+    writeFile($Path_v1."/NonConstantFieldBecameNonStatic.java",
+    "package $PackageName;
+    public class NonConstantFieldBecameNonStatic {
+        public static String fieldName;
+    }");
+    writeFile($Path_v2."/NonConstantFieldBecameNonStatic.java",
+    "package $PackageName;
+    public class NonConstantFieldBecameNonStatic {
+        public String fieldName;
+    }");
+    
+    # Constant_Field_Became_NonStatic
+    writeFile($Path_v1."/ConstantFieldBecameNonStatic.java",
+    "package $PackageName;
+    public class ConstantFieldBecameNonStatic {
+        public final static String fieldName = \"Value\";
+    }");
+    writeFile($Path_v2."/ConstantFieldBecameNonStatic.java",
+    "package $PackageName;
+    public class ConstantFieldBecameNonStatic {
+        public final String fieldName = \"Value\";
+    }");
+    
+    # Field_Became_Final
+    writeFile($Path_v1."/FieldBecameFinal.java",
+    "package $PackageName;
+    public class FieldBecameFinal {
+        public String fieldName;
+    }");
+    writeFile($Path_v2."/FieldBecameFinal.java",
+    "package $PackageName;
+    public class FieldBecameFinal {
+        public final String fieldName = \"Value\";
+    }");
+    
+    # Field_Became_NonFinal
+    writeFile($Path_v1."/FieldBecameNonFinal.java",
+    "package $PackageName;
+    public class FieldBecameNonFinal {
+        public final String fieldName = \"Value\";
+    }");
+    writeFile($Path_v2."/FieldBecameNonFinal.java",
+    "package $PackageName;
+    public class FieldBecameNonFinal {
+        public String fieldName;
+    }");
+    
+    # Removed_Method
+    writeFile($Path_v1."/RemovedMethod.java",
+    "package $PackageName;
+    public class RemovedMethod {
+        public Integer field = 100;
+        public Integer removedMethod(Integer param1, String param2) { return param1; }
+        public static Integer removedStaticMethod(Integer param) { return param; }
+    }");
+    writeFile($Path_v2."/RemovedMethod.java",
+    "package $PackageName;
+    public class RemovedMethod {
+        public Integer field = 100;
+    }");
+    
+    # Removed_Method (move up to java.lang.Object)
+    writeFile($Path_v1."/MoveUpToJavaLangObject.java",
+    "package $PackageName;
+    public class MoveUpToJavaLangObject extends java.lang.Object {
+        public int hashCode() { return 0; }
+    }");
+    writeFile($Path_v2."/MoveUpToJavaLangObject.java",
+    "package $PackageName;
+    public class MoveUpToJavaLangObject extends java.lang.Object {
+    }");
+    
+    writeFile($TestsPath."/Test_MoveUpToJavaLangObject.java",
+    "import $PackageName.*;
+    public class Test_MoveUpToJavaLangObject {
+        public static void main(String[] args) {
+            MoveUpToJavaLangObject X = new MoveUpToJavaLangObject();
+            int R = X.hashCode();
+        }
+    }");
+    
+    # Removed_Method (Deprecated)
+    writeFile($Path_v1."/RemovedDeprecatedMethod.java",
+    "package $PackageName;
+    public class RemovedDeprecatedMethod {
+        public Integer field = 100;
+        public Integer otherMethod(Integer param) { return param; }
+        \@Deprecated
+        public Integer removedMethod(Integer param1, String param2) { return param1; }
+    }");
+    writeFile($Path_v2."/RemovedDeprecatedMethod.java",
+    "package $PackageName;
+    public class RemovedDeprecatedMethod {
+        public Integer field = 100;
+        public Integer otherMethod(Integer param) { return param; }
+    }");
+    
+    # Interface_Removed_Abstract_Method
+    writeFile($Path_v1."/InterfaceRemovedAbstractMethod.java",
+    "package $PackageName;
+    public interface InterfaceRemovedAbstractMethod extends BaseInterface, BaseInterface2 {
+        public void removedMethod(Integer param1, java.io.ObjectOutput param2);
+        public void someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceRemovedAbstractMethod.java",
+    "package $PackageName;
+    public interface InterfaceRemovedAbstractMethod extends BaseInterface, BaseInterface2 {
+        public void someMethod(Integer param);
+    }");
+    
+    # Interface_Added_Abstract_Method
+    writeFile($Path_v1."/InterfaceAddedAbstractMethod.java",
+    "package $PackageName;
+    public interface InterfaceAddedAbstractMethod extends BaseInterface, BaseInterface2 {
+        public void someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceAddedAbstractMethod.java",
+    "package $PackageName;
+    public interface InterfaceAddedAbstractMethod extends BaseInterface, BaseInterface2 {
+        public void someMethod(Integer param);
+        public Integer addedMethod(Integer param);
+    }");
+    
+    # Interface_Added_Default_Method
+    writeFile($Path_v1."/InterfaceAddedDefaultMethod.java",
+    "package $PackageName;
+    public interface InterfaceAddedDefaultMethod {
+        public void someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceAddedDefaultMethod.java",
+    "package $PackageName;
+    public interface InterfaceAddedDefaultMethod {
+        public void someMethod(Integer param);
+        default Integer addedMethod(Integer param) { return 0; }
+    }");
+    
+    # Method_Became_NonDefault
+    writeFile($Path_v1."/MethodBecameNonDefault.java",
+    "package $PackageName;
+    public interface MethodBecameNonDefault {
+        default Integer someMethod(Integer param) { return 0; }
+    }");
+    writeFile($Path_v2."/MethodBecameNonDefault.java",
+    "package $PackageName;
+    public interface MethodBecameNonDefault {
+        public Integer someMethod(Integer param);
+    }");
+    
+    writeFile($TestsPath."/Test_MethodBecameNonDefault.java",
+    "import $PackageName.*;
+    class Class_MethodBecameNonDefault implements MethodBecameNonDefault {
+    };
+    
+    public class Test_MethodBecameNonDefault
+    {
+        public static void main(String[] args)
+        {
+            Class_MethodBecameNonDefault Obj = new Class_MethodBecameNonDefault();
+            Integer Res = Obj.someMethod(0);
+        }
+    }");
+    
+    # Variable_Arity_To_Array
+    writeFile($Path_v1."/VariableArityToArray.java",
+    "package $PackageName;
+    public class VariableArityToArray {
+        public void someMethod(Integer x, String... y) { };
+    }");
+    writeFile($Path_v2."/VariableArityToArray.java",
+    "package $PackageName;
+    public class VariableArityToArray {
+        public void someMethod(Integer x, String[] y) { };
+    }");
+    
+    # Class_Became_Interface
+    writeFile($Path_v1."/ClassBecameInterface.java",
+    "package $PackageName;
+    public class ClassBecameInterface extends BaseClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/ClassBecameInterface.java",
+    "package $PackageName;
+    public interface ClassBecameInterface extends BaseInterface, BaseInterface2 {
+        public Integer someMethod(Integer param);
+    }");
+    
+    # Added_Super_Class
+    writeFile($Path_v1."/AddedSuperClass.java",
+    "package $PackageName;
+    public class AddedSuperClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/AddedSuperClass.java",
+    "package $PackageName;
+    public class AddedSuperClass extends BaseClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    
+    # Abstract_Class_Added_Super_Abstract_Class
+    writeFile($Path_v1."/AbstractClassAddedSuperAbstractClass.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedSuperAbstractClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/AbstractClassAddedSuperAbstractClass.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedSuperAbstractClass extends BaseAbstractClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    
+    # Removed_Super_Class
+    writeFile($Path_v1."/RemovedSuperClass.java",
+    "package $PackageName;
+    public class RemovedSuperClass extends BaseClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/RemovedSuperClass.java",
+    "package $PackageName;
+    public class RemovedSuperClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    
+    # Changed_Super_Class
+    writeFile($Path_v1."/ChangedSuperClass.java",
+    "package $PackageName;
+    public class ChangedSuperClass extends BaseClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/ChangedSuperClass.java",
+    "package $PackageName;
+    public class ChangedSuperClass extends BaseClass2 {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    
+    # Abstract_Class_Added_Super_Interface
+    writeFile($Path_v1."/AbstractClassAddedSuperInterface.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedSuperInterface implements BaseInterface {
+        public Integer method(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/AbstractClassAddedSuperInterface.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedSuperInterface implements BaseInterface, BaseInterface2 {
+        public Integer method(Integer param) {
+            return param;
+        }
+    }");
+    
+    # Abstract_Class_Added_Super_Interface_With_Implemented_Methods
+    writeFile($Path_v1."/AbstractClassAddedSuperInterfaceWithImplementedMethods.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedSuperInterfaceWithImplementedMethods implements BaseInterface {
+        public Integer method(Integer param) {
+            return param;
+        }
+        public Integer method2(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/AbstractClassAddedSuperInterfaceWithImplementedMethods.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedSuperInterfaceWithImplementedMethods implements BaseInterface, BaseInterface2 {
+        public Integer method(Integer param) {
+            return param;
+        }
+        public Integer method2(Integer param) {
+            return param;
+        }
+    }");
+    
+    # Class_Removed_Super_Interface
+    writeFile($Path_v1."/ClassRemovedSuperInterface.java",
+    "package $PackageName;
+    public class ClassRemovedSuperInterface implements BaseInterface, BaseInterface2 {
+        public Integer method(Integer param) {
+            return param;
+        }
+        public Integer method2(Integer param) {
+            return param;
+        }
+    }");
+    writeFile($Path_v2."/ClassRemovedSuperInterface.java",
+    "package $PackageName;
+    public class ClassRemovedSuperInterface implements BaseInterface {
+        public Integer method(Integer param) {
+            return param;
+        }
+        public Integer method2(Integer param) {
+            return param;
+        }
+    }");
+    
+    writeFile($TestsPath."/Test_ClassRemovedSuperInterface.java",
+    "import $PackageName.*;
+    public class Test_ClassRemovedSuperInterface
+    {
+        public static void main(String[] args)
+        {
+            ClassRemovedSuperInterface Obj = new ClassRemovedSuperInterface();
+            Integer Res = Obj.method2(0);
+        }
+    }");
+    
+    # Interface_Added_Super_Interface
+    writeFile($Path_v1."/InterfaceAddedSuperInterface.java",
+    "package $PackageName;
+    public interface InterfaceAddedSuperInterface extends BaseInterface {
+        public Integer someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceAddedSuperInterface.java",
+    "package $PackageName;
+    public interface InterfaceAddedSuperInterface extends BaseInterface, BaseInterface2 {
+        public Integer someMethod(Integer param);
+    }");
+    
+    # Interface_Added_Super_Constant_Interface
+    writeFile($Path_v1."/InterfaceAddedSuperConstantInterface.java",
+    "package $PackageName;
+    public interface InterfaceAddedSuperConstantInterface extends BaseInterface {
+        public Integer someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceAddedSuperConstantInterface.java",
+    "package $PackageName;
+    public interface InterfaceAddedSuperConstantInterface extends BaseInterface, BaseConstantInterface {
+        public Integer someMethod(Integer param);
+    }");
+    
+    # Interface_Removed_Super_Interface
+    writeFile($Path_v1."/InterfaceRemovedSuperInterface.java",
+    "package $PackageName;
+    public interface InterfaceRemovedSuperInterface extends BaseInterface, BaseInterface2 {
+        public Integer someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceRemovedSuperInterface.java",
+    "package $PackageName;
+    public interface InterfaceRemovedSuperInterface extends BaseInterface {
+        public Integer someMethod(Integer param);
+    }");
+    
+    # Interface_Removed_Super_Constant_Interface
+    writeFile($Path_v1."/InterfaceRemovedSuperConstantInterface.java",
+    "package $PackageName;
+    public interface InterfaceRemovedSuperConstantInterface extends BaseInterface, BaseConstantInterface {
+        public Integer someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceRemovedSuperConstantInterface.java",
+    "package $PackageName;
+    public interface InterfaceRemovedSuperConstantInterface extends BaseInterface {
+        public Integer someMethod(Integer param);
+    }");
+    
+    # Interface_Became_Class
+    writeFile($Path_v1."/InterfaceBecameClass.java",
+    "package $PackageName;
+    public interface InterfaceBecameClass extends BaseInterface, BaseInterface2 {
+        public Integer someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceBecameClass.java",
+    "package $PackageName;
+    public class InterfaceBecameClass extends BaseClass {
+        public Integer someMethod(Integer param) {
+            return param;
+        }
+    }");
+    
+    # Removed_Class
+    writeFile($Path_v1."/RemovedClass.java",
+    "package $PackageName;
+    public class RemovedClass extends BaseClass {
+        public Integer someMethod(Integer param){
+            return param;
+        }
+    }");
+    
+    # Removed_Class (w/o methods)
+    writeFile($Path_v1."/RemovedFieldClass.java",
+    "package $PackageName;
+    public class RemovedFieldClass {
+        public Integer field;
+    }");
+    
+    writeFile($TestsPath."/Test_RemovedFieldClass.java",
+    "import $PackageName.*;
+    public class Test_RemovedFieldClass extends RemovedFieldClass
+    {
+        public static void main(String[] args)
+        {
+            RemovedFieldClass X = new RemovedFieldClass();
+            Integer Copy = X.field;
+        }
+    }");
+    
+    # Removed_Class (with static fields, private constructor)
+    writeFile($Path_v1."/RemovedClassWithStaticField.java",
+    "package $PackageName;
+    public class RemovedClassWithStaticField
+    {
+        private RemovedClassWithStaticField(){}
+        public static Integer cnt = 0;
+    }");
+    
+    writeFile($TestsPath."/Test_RemovedClassWithStaticField.java",
+    "import $PackageName.*;
+    public class Test_RemovedClassWithStaticField
+    {
+        public static void main(String[] args)
+        {
+            Integer Copy = RemovedClassWithStaticField.cnt;
+        }
+    }");
+    
+    # Removed_Field (static field, private constructor)
+    writeFile($Path_v1."/RemovedStaticFieldFromClassWithPrivateCtor.java",
+    "package $PackageName;
+    public class RemovedStaticFieldFromClassWithPrivateCtor
+    {
+        private RemovedStaticFieldFromClassWithPrivateCtor(){}
+        public static Integer cnt = 0;
+    }");
+    
+    writeFile($Path_v2."/RemovedStaticFieldFromClassWithPrivateCtor.java",
+    "package $PackageName;
+    public class RemovedStaticFieldFromClassWithPrivateCtor
+    {
+        private RemovedStaticFieldFromClassWithPrivateCtor(){}
+    }");
+    
+    writeFile($TestsPath."/Test_RemovedStaticFieldFromClassWithPrivateCtor.java",
+    "import $PackageName.*;
+    public class Test_RemovedStaticFieldFromClassWithPrivateCtor
+    {
+        public static void main(String[] args)
+        {
+            Integer Copy = RemovedStaticFieldFromClassWithPrivateCtor.cnt;
+        }
+    }");
+    
+    # Removed_Constant_Field
+    writeFile($Path_v1."/ClassRemovedStaticConstantField.java",
+    "package $PackageName;
+    public class ClassRemovedStaticConstantField
+    {
+        public static int removedField_Int = 1000;
+        public static String removedField_Str = \"Value\";
+    }");
+    writeFile($Path_v2."/ClassRemovedStaticConstantField.java",
+    "package $PackageName;
+    public class ClassRemovedStaticConstantField {
+    }");
+    
+    writeFile($TestsPath."/Test_ClassRemovedStaticConstantField.java",
+    "import $PackageName.*;
+    public class Test_ClassRemovedStaticConstantField
+    {
+        public static void main(String[] args)
+        {
+            Integer Copy = ClassRemovedStaticConstantField.removedField_Int;
+        }
+    }");
+    
+    # Removed_Class (Deprecated)
+    writeFile($Path_v1."/RemovedDeprecatedClass.java",
+    "package $PackageName;
+    \@Deprecated
+    public class RemovedDeprecatedClass {
+        public Integer someMethod(Integer param){
+            return param;
+        }
+    }");
+    
+    # Removed_Interface
+    writeFile($Path_v1."/RemovedInterface.java",
+    "package $PackageName;
+    public interface RemovedInterface extends BaseInterface, BaseInterface2 {
+        public Integer someMethod(Integer param);
+    }");
+    
+    # NonAbstract_Class_Added_Abstract_Method
+    writeFile($Path_v1."/NonAbstractClassAddedAbstractMethod.java",
+    "package $PackageName;
+    public class NonAbstractClassAddedAbstractMethod {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+    }");
+    writeFile($Path_v2."/NonAbstractClassAddedAbstractMethod.java",
+    "package $PackageName;
+    public abstract class NonAbstractClassAddedAbstractMethod {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public abstract Integer addedMethod(Integer param);
+    }");
+    
+    # Abstract_Class_Added_Abstract_Method
+    writeFile($Path_v1."/AbstractClassAddedAbstractMethod.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedAbstractMethod {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+    }");
+    writeFile($Path_v2."/AbstractClassAddedAbstractMethod.java",
+    "package $PackageName;
+    public abstract class AbstractClassAddedAbstractMethod {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public abstract Integer addedMethod(Integer param);
+    }");
+    
+    # Class_Became_Abstract
+    writeFile($Path_v1."/ClassBecameAbstract.java",
+    "package $PackageName;
+    public class ClassBecameAbstract {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+    }");
+    writeFile($Path_v2."/ClassBecameAbstract.java",
+    "package $PackageName;
+    public abstract class ClassBecameAbstract {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public abstract Integer addedMethod(Integer param);
+    }");
+    
+    # Class_Became_Final
+    writeFile($Path_v1."/ClassBecameFinal.java",
+    "package $PackageName;
+    public class ClassBecameFinal {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+    }");
+    writeFile($Path_v2."/ClassBecameFinal.java",
+    "package $PackageName;
+    public final class ClassBecameFinal {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+    }");
+    
+    # Class_Removed_Abstract_Method
+    writeFile($Path_v1."/ClassRemovedAbstractMethod.java",
+    "package $PackageName;
+    public abstract class ClassRemovedAbstractMethod {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public abstract Integer removedMethod(Integer param);
+    }");
+    writeFile($Path_v2."/ClassRemovedAbstractMethod.java",
+    "package $PackageName;
+    public abstract class ClassRemovedAbstractMethod {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+    }");
+    
+    # Class_Method_Became_Abstract
+    writeFile($Path_v1."/ClassMethodBecameAbstract.java",
+    "package $PackageName;
+    public abstract class ClassMethodBecameAbstract {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public Integer someMethod(Integer param){
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/ClassMethodBecameAbstract.java",
+    "package $PackageName;
+    public abstract class ClassMethodBecameAbstract {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public abstract Integer someMethod(Integer param);
+    }");
+    
+    # Class_Method_Became_NonAbstract
+    writeFile($Path_v1."/ClassMethodBecameNonAbstract.java",
+    "package $PackageName;
+    public abstract class ClassMethodBecameNonAbstract {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public abstract Integer someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/ClassMethodBecameNonAbstract.java",
+    "package $PackageName;
+    public abstract class ClassMethodBecameNonAbstract {
+        public Integer someMethod(Integer param1, String[] param2) {
+            return param1;
+        };
+        public Integer someMethod(Integer param){
+            return param;
+        };
+    }");
+    
+    # Method_Became_Static
+    writeFile($Path_v1."/MethodBecameStatic.java",
+    "package $PackageName;
+    public class MethodBecameStatic {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/MethodBecameStatic.java",
+    "package $PackageName;
+    public class MethodBecameStatic {
+        public static Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # Method_Became_NonStatic
+    writeFile($Path_v1."/MethodBecameNonStatic.java",
+    "package $PackageName;
+    public class MethodBecameNonStatic {
+        public static Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/MethodBecameNonStatic.java",
+    "package $PackageName;
+    public class MethodBecameNonStatic {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # Static_Method_Became_Final
+    writeFile($Path_v1."/StaticMethodBecameFinal.java",
+    "package $PackageName;
+    public class StaticMethodBecameFinal {
+        public static Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/StaticMethodBecameFinal.java",
+    "package $PackageName;
+    public class StaticMethodBecameFinal {
+        public static final Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # NonStatic_Method_Became_Final
+    writeFile($Path_v1."/NonStaticMethodBecameFinal.java",
+    "package $PackageName;
+    public class NonStaticMethodBecameFinal {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/NonStaticMethodBecameFinal.java",
+    "package $PackageName;
+    public class NonStaticMethodBecameFinal {
+        public final Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # Method_Became_Abstract
+    writeFile($Path_v1."/MethodBecameAbstract.java",
+    "package $PackageName;
+    public abstract class MethodBecameAbstract {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/MethodBecameAbstract.java",
+    "package $PackageName;
+    public abstract class MethodBecameAbstract {
+        public abstract Integer someMethod(Integer param);
+    }");
+    
+    # Method_Became_NonAbstract
+    writeFile($Path_v1."/MethodBecameNonAbstract.java",
+    "package $PackageName;
+    public abstract class MethodBecameNonAbstract {
+        public abstract Integer someMethod(Integer param);
+    }");
+    writeFile($Path_v2."/MethodBecameNonAbstract.java",
+    "package $PackageName;
+    public abstract class MethodBecameNonAbstract {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # Changed_Method_Access
+    writeFile($Path_v1."/ChangedMethodAccess.java",
+    "package $PackageName;
+    public class ChangedMethodAccess {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/ChangedMethodAccess.java",
+    "package $PackageName;
+    public class ChangedMethodAccess {
+        protected Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # Method_Became_Synchronized
+    writeFile($Path_v1."/MethodBecameSynchronized.java",
+    "package $PackageName;
+    public class MethodBecameSynchronized {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/MethodBecameSynchronized.java",
+    "package $PackageName;
+    public class MethodBecameSynchronized {
+        public synchronized Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # Method_Became_NonSynchronized
+    writeFile($Path_v1."/MethodBecameNonSynchronized.java",
+    "package $PackageName;
+    public class MethodBecameNonSynchronized {
+        public synchronized Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    writeFile($Path_v2."/MethodBecameNonSynchronized.java",
+    "package $PackageName;
+    public class MethodBecameNonSynchronized {
+        public Integer someMethod(Integer param) {
+            return param;
+        };
+    }");
+    
+    # Class_Overridden_Method
+    writeFile($Path_v1."/OverriddenMethod.java",
+    "package $PackageName;
+    public class OverriddenMethod extends BaseClass {
+        public Integer someMethod(Integer param) { return param; }
+    }");
+    writeFile($Path_v2."/OverriddenMethod.java",
+    "package $PackageName;
+    public class OverriddenMethod extends BaseClass {
+        public Integer someMethod(Integer param) { return param; }
+        public Integer method(Integer param) { return 2*param; }
+    }");
+    
+    # Class_Method_Moved_Up_Hierarchy
+    writeFile($Path_v1."/ClassMethodMovedUpHierarchy.java",
+    "package $PackageName;
+    public class ClassMethodMovedUpHierarchy extends BaseClass {
+        public Integer someMethod(Integer param) { return param; }
+        public Integer method(Integer param) { return 2*param; }
+    }");
+    writeFile($Path_v2."/ClassMethodMovedUpHierarchy.java",
+    "package $PackageName;
+    public class ClassMethodMovedUpHierarchy extends BaseClass {
+        public Integer someMethod(Integer param) { return param; }
+    }");
+    
+    # Class_Method_Moved_Up_Hierarchy (Interface Method) - should not be reported
+    writeFile($Path_v1."/InterfaceMethodMovedUpHierarchy.java",
+    "package $PackageName;
+    public interface InterfaceMethodMovedUpHierarchy extends BaseInterface {
+        public Integer method(Integer param);
+        public Integer method2(Integer param);
+    }");
+    writeFile($Path_v2."/InterfaceMethodMovedUpHierarchy.java",
+    "package $PackageName;
+    public interface InterfaceMethodMovedUpHierarchy extends BaseInterface {
+        public Integer method2(Integer param);
+    }");
+    
+    # Class_Method_Moved_Up_Hierarchy (Abstract Method) - should not be reported
+    writeFile($Path_v1."/AbstractMethodMovedUpHierarchy.java",
+    "package $PackageName;
+    public abstract class AbstractMethodMovedUpHierarchy implements BaseInterface {
+        public abstract Integer method(Integer param);
+        public abstract Integer method2(Integer param);
+    }");
+    writeFile($Path_v2."/AbstractMethodMovedUpHierarchy.java",
+    "package $PackageName;
+    public abstract class AbstractMethodMovedUpHierarchy implements BaseInterface {
+        public abstract Integer method2(Integer param);
+    }");
+    
+    # Use
+    writeFile($Path_v1."/Use.java",
+    "package $PackageName;
+    public class Use
+    {
+        public FieldBecameFinal field;
+        public void someMethod(FieldBecameFinal[] param) { };
+        public void someMethod(Use param) { };
+        public Integer someMethod(AbstractClassAddedSuperAbstractClass param) {
+            return 0;
+        }
+        public Integer someMethod(AbstractClassAddedAbstractMethod param) {
+            return 0;
+        }
+        public Integer someMethod(InterfaceAddedAbstractMethod param) {
+            return 0;
+        }
+        public Integer someMethod(InterfaceAddedSuperInterface param) {
+            return 0;
+        }
+        public Integer someMethod(AbstractClassAddedSuperInterface param) {
+            return 0;
+        }
+        public Integer someMethod(AbstractClassAddedSuperInterfaceWithImplementedMethods param) {
+            return 0;
+        }
+    }");
+    writeFile($Path_v2."/Use.java",
+    "package $PackageName;
+    public class Use
+    {
+        public FieldBecameFinal field;
+        public void someMethod(FieldBecameFinal[] param) { };
+        public void someMethod(Use param) { };
+        public Integer someMethod(AbstractClassAddedSuperAbstractClass param) {
+            return param.abstractMethod(100)+param.field;
+        }
+        public Integer someMethod(AbstractClassAddedAbstractMethod param) {
+            return param.addedMethod(100);
+        }
+        public Integer someMethod(InterfaceAddedAbstractMethod param) {
+            return param.addedMethod(100);
+        }
+        public Integer someMethod(InterfaceAddedSuperInterface param) {
+            return param.method2(100);
+        }
+        public Integer someMethod(AbstractClassAddedSuperInterface param) {
+            return param.method2(100);
+        }
+        public Integer someMethod(AbstractClassAddedSuperInterfaceWithImplementedMethods param) {
+            return param.method2(100);
+        }
+    }");
+    
+    # Added_Package
+    writeFile($Path_v2."/AddedPackage/AddedPackageClass.java",
+    "package $PackageName.AddedPackage;
+    public class AddedPackageClass {
+        public Integer field;
+        public void someMethod(Integer param) { };
+    }");
+    
+    # Removed_Package
+    writeFile($Path_v1."/RemovedPackage/RemovedPackageClass.java",
+    "package $PackageName.RemovedPackage;
+    public class RemovedPackageClass {
+        public Integer field;
+        public void someMethod(Integer param) { };
+    }");
+    my $BuildRoot1 = get_dirname($Path_v1);
+    my $BuildRoot2 = get_dirname($Path_v2);
+    if(compileJavaLib($LibName, $BuildRoot1, $BuildRoot2))
+    {
+        runTests($TestsPath, $PackageName, $BuildRoot1, $BuildRoot2);
+        runChecker($LibName, $BuildRoot1, $BuildRoot2);
+    }
+}
+
+sub readArchive($$)
+{ # 1, 2 - library, 0 - client
+    my ($LibVersion, $Path) = @_;
+    return if(not $Path or not -e $Path);
+    
+    if($LibVersion)
+    {
+        my $ArchiveName = get_filename($Path);
+        $LibArchives{$LibVersion}{$ArchiveName} = 1;
+    }
+    
+    $Path = get_abs_path($Path);
+    my $JarCmd = get_CmdPath("jar");
+    if(not $JarCmd) {
+        exitStatus("Not_Found", "can't find \"jar\" command");
+    }
+    my $ExtractPath = joinPath($TMP_DIR, $ExtractCounter);
+    if(-d $ExtractPath) {
+        rmtree($ExtractPath);
+    }
+    mkpath($ExtractPath);
+    chdir($ExtractPath);
+    system($JarCmd." -xf \"$Path\"");
+    if($?) {
+        exitStatus("Error", "can't extract \'$Path\'");
+    }
+    chdir($ORIG_DIR);
+    my @Classes = ();
+    foreach my $ClassPath (cmd_find($ExtractPath,"","*\.class",""))
+    {
+        if($OSgroup ne "windows") {
+            $ClassPath=~s/\.class\Z//g;
+        }
+        
+        my $ClassName = get_filename($ClassPath);
+        if($ClassName=~/\$\d/) {
+            next;
+        }
+        $ClassPath = cut_path_prefix($ClassPath, $ExtractPath); # javap decompiler accepts relative paths only
+        
+        my $ClassDir = get_dirname($ClassPath);
+        if($ClassDir=~/\./)
+        { # jaxb-osgi.jar/1.0/org/apache
+            next;
+        }
+        
+        my $Package = get_PFormat($ClassDir);
+        if($LibVersion)
+        {
+            if(skipPackage($Package, $LibVersion))
+            { # internal packages
+                next;
+            }
+        }
+        
+        $ClassName=~s/\$/./g; # real name for GlyphView$GlyphPainter is GlyphView.GlyphPainter
+        push(@Classes, $ClassPath);
+    }
+    
+    if($#Classes!=-1)
+    {
+        foreach my $PartRef (divideArray(\@Classes))
+        {
+            if($LibVersion) {
+                readClasses($PartRef, $LibVersion, get_filename($Path));
+            }
+            else {
+                readClasses_Usage($PartRef);
+            }
+        }
+    }
+    
+    $ExtractCounter+=1;
+    
+    if($LibVersion)
+    {
+        foreach my $SubArchive (cmd_find($ExtractPath,"","*\.jar",""))
+        { # recursive step
+            readArchive($LibVersion, $SubArchive);
+        }
+    }
+    
+    rmtree($ExtractPath);
+}
+
+sub native_path($)
+{
+    my $Path = $_[0];
+    if($OSgroup eq "windows") {
+        $Path=~s/[\/\\]+/\\/g;
+    }
+    return $Path;
+}
+
+sub divideArray($)
+{
+    my $ArrRef = $_[0];
+    return () if(not $ArrRef);
+    my @Array = @{$ArrRef};
+    return () if($#{$ArrRef}==-1);
+    
+    my @Res = ();
+    my $Sub = [];
+    my $Len = 0;
+    
+    foreach my $Pos (0 .. $#{$ArrRef})
+    {
+        my $Arg = $ArrRef->[$Pos];
+        my $Arg_L = length($Arg) + 1; # space
+        if($Len < $ARG_MAX - 250)
+        {
+            push(@{$Sub}, $Arg);
+            $Len += $Arg_L;
+        }
+        else
+        {
+            push(@Res, $Sub);
+            
+            $Sub = [$Arg];
+            $Len = $Arg_L;
+        }
+    }
+    
+    if($#{$Sub}!=-1) {
+        push(@Res, $Sub);
+    }
+    
+    return @Res;
+}
+
+sub registerType($$)
+{
+    my ($TName, $LibVersion) = @_;
+    
+    if(not $TName) {
+        return 0;
+    }
+    
+    $TName=~s/#/./g;
+    if($TName_Tid{$LibVersion}{$TName}) {
+        return $TName_Tid{$LibVersion}{$TName};
+    }
+    
+    if(not $TName_Tid{$LibVersion}{$TName})
+    {
+        my $ID = undef;
+        if($REPRODUCIBLE) {
+            $ID = getMd5($TName);
+        }
+        else {
+            $ID = ++$TYPE_ID;
+        }
+        $TName_Tid{$LibVersion}{$TName} = "$ID";
+    }
+    
+    my $Tid = $TName_Tid{$LibVersion}{$TName};
+    $TypeInfo{$LibVersion}{$Tid}{"Name"} = $TName;
+    if($TName=~/(.+)\[\]\Z/)
+    {
+        if(my $BaseTypeId = registerType($1, $LibVersion))
+        {
+            $TypeInfo{$LibVersion}{$Tid}{"BaseType"} = $BaseTypeId;
+            $TypeInfo{$LibVersion}{$Tid}{"Type"} = "array";
+        }
+    }
+    
+    return $Tid;
+}
+
+sub readClasses_Usage($)
+{
+    my $Paths = $_[0];
+    return () if(not $Paths);
+    
+    my $JavapCmd = get_CmdPath("javap");
+    if(not $JavapCmd) {
+        exitStatus("Not_Found", "can't find \"javap\" command");
+    }
+    
+    my $Input = join(" ", @{$Paths});
+    if($OSgroup ne "windows")
+    { # on unix ensure that the system does not try and interpret the $, by escaping it
+        $Input=~s/\$/\\\$/g;
+    }
+    
+    chdir($TMP_DIR."/".$ExtractCounter);
+    open(CONTENT, "$JavapCmd -c -private $Input 2>\"$TMP_DIR/warn\" |");
+    while(<CONTENT>)
+    {
+        if(/\/\/\s*(Method|InterfaceMethod)\s+(.+)\Z/)
+        {
+            my $M = $2;
+            $UsedMethods_Client{$M} = 1;
+            
+            if($M=~/\A(.*)+\.\w+\:\(/)
+            {
+                my $C = $1;
+                $C=~s/\//./g;
+                $UsedClasses_Client{$C} = 1;
+            }
+        }
+        elsif(/\/\/\s*Field\s+(.+)\Z/)
+        {
+            my $FieldName = $1;
+            if(/\s+(putfield|getfield|getstatic|putstatic)\s+/) {
+                $UsedFields_Client{$FieldName} = $1;
+            }
+        }
+        elsif(/ ([^\s]+) [^: ]+\(([^()]+)\)/)
+        {
+            my ($Ret, $Params) = ($1, $2);
+            
+            $Ret=~s/\[\]//g; # quals
+            $UsedClasses_Client{$Ret} = 1;
+            
+            foreach my $Param (split(/\s*,\s*/, $Params))
+            {
+                $Param=~s/\[\]//g; # quals
+                $UsedClasses_Client{$Param} = 1;
+            }
+        }
+        elsif(/ class /)
+        {
+            if(/extends ([^\s{]+)/)
+            {
+                foreach my $Class (split(/\s*,\s*/, $1)) {
+                    $UsedClasses_Client{$Class} = 1;
+                }
+            }
+            
+            if(/implements ([^\s{]+)/)
+            {
+                foreach my $Interface (split(/\s*,\s*/, $1)) {
+                    $UsedClasses_Client{$Interface} = 1;
+                }
+            }
+        }
+    }
+    close(CONTENT);
+    chdir($ORIG_DIR);
+}
+
+sub readClasses($$$)
+{
+    my ($Paths, $LibVersion, $ArchiveName) = @_;
+    return if(not $Paths or not $LibVersion or not $ArchiveName);
+    
+    my $JavapCmd = get_CmdPath("javap");
+    if(not $JavapCmd) {
+        exitStatus("Not_Found", "can't find \"javap\" command");
+    }
+    
+    my $Input = join(" ", @{$Paths});
+    if($OSgroup ne "windows")
+    { # on unix ensure that the system does not try and interpret the $, by escaping it
+        $Input=~s/\$/\\\$/g;
+    }
+    
+    my $Output = $TMP_DIR."/class-dump.txt";
+    if(-e $Output) {
+        unlink($Output);
+    }
+    
+    my $Cmd = "$JavapCmd -s -private";
+    if(not $Quick) {
+        $Cmd .= " -c -verbose";
+    }
+    
+    chdir($TMP_DIR."/".$ExtractCounter);
+    system($Cmd." ".$Input." >\"$Output\" 2>\"$TMP_DIR/warn\"");
+    chdir($ORIG_DIR);
+    
+    if(not -e $Output) {
+        exitStatus("Error", "internal error in parser, try to reduce ARG_MAX");
+    }
+    if($Debug) {
+        appendFile($DEBUG_PATH{$LibVersion}."/class-dump.txt", readFile($Output));
+    }
+    
+    # ! private info should be processed
+    open(CONTENT, "$TMP_DIR/class-dump.txt");
+    my @Content = <CONTENT>;
+    close(CONTENT);
+    
+    my (%TypeAttr, $CurrentMethod, $CurrentPackage, $CurrentClass) = ();
+    my ($InParamTable, $InExceptionTable, $InCode) = (0, 0, 0);
+    
+    my $InAnnotations = undef;
+    my $InAnnotations_Class = undef;
+    my $InAnnotations_Method = undef;
+    my %AnnotationName = ();
+    my %AnnotationNum = (); # support for Java 7
+    
+    my ($ParamPos, $FieldPos, $LineNum) = (0, 0, 0);
+    while($LineNum<=$#Content)
+    {
+        my $LINE = $Content[$LineNum++];
+        my $LINE_N = $Content[$LineNum];
+        
+        if($LINE=~/\A\s*(?:const|AnnotationDefault|Compiled|Source|Constant)/) {
+            next;
+        }
+        
+        if($LINE=~/\sof\s|\sline \d+:|\[\s*class|= \[|\$[\d\$\(:\.;]| class\$|[\.\/]\$|\._\d|\$eq/)
+        { # artificial methods and code
+            next;
+        }
+        
+        if($LINE=~/ (\w+\$|)\w+\$\w+[\(:]/) {
+            next;
+        }
+        
+        # $LINE=~s/ \$(\w)/ $1/g;
+        # $LINE_N=~s/ \$(\w)/ $1/g;
+        
+        if(not $InParamTable)
+        {
+            if($LINE=~/ \$/) {
+                next;
+            }
+        }
+        
+        $LINE=~s/\$([\> ]|\Z)/$1/g;
+        $LINE_N=~s/\$([\> ]|\Z)/$1/g;
+        
+        if($LINE eq "\n" or $LINE eq "}\n")
+        {
+            $CurrentMethod = undef;
+            $InCode = 0;
+            $InAnnotations_Method = 0;
+            $InParamTable = 0;
+        }
+        
+        if($LINE eq "}\n") {
+            $InAnnotations_Class = 1;
+        }
+        
+        if($LINE=~/\A\s*#(\d+)/)
+        { # Constant pool
+            my $CNum = $1;
+            if($LINE=~/\s+([^ ]+?);/)
+            {
+                my $AName = $1;
+                $AName=~s/\AL//;
+                $AName=~s/\$/./g;
+                $AName=~s/\//./g;
+                
+                $AnnotationName{$CNum} = $AName;
+                
+                if(defined $AnnotationNum{$CNum})
+                { # support for Java 7
+                    if($InAnnotations_Class) {
+                        $TypeAttr{"Annotations"}{registerType($AName, $LibVersion)} = 1;
+                    }
+                    delete($AnnotationNum{$CNum});
+                }
+            }
+            
+            next;
+        }
+        
+        # Java 7: templates
+        if(index($LINE, "<")!=-1)
+        { # <T extends java.lang.Object>
+          # <KEYIN extends java.lang.Object ...
+            if($LINE=~/<[A-Z\d\?]+ /i)
+            {
+                while($LINE=~/<([A-Z\d\?]+ .*?)>( |\Z)/i)
+                {
+                    my $Str = $1;
+                    my @Prms = ();
+                    foreach my $P (separate_Params($Str, 0, 0))
+                    {
+                        $P=~s/\A([A-Z\d\?]+) .*\Z/$1/ig;
+                        push(@Prms, $P);
+                    }
+                    my $Str_N = join(", ", @Prms);
+                    $LINE=~s/\Q$Str\E/$Str_N/g;
+                }
+            }
+        }
+        
+        $LINE=~s/\s*,\s*/,/g;
+        $LINE=~s/\$/#/g;
+        
+        if(index($LINE, "LocalVariableTable")!=-1) {
+            $InParamTable += 1;
+        }
+        elsif($LINE=~/Exception\s+table/) {
+            $InExceptionTable = 1;
+        }
+        elsif($LINE=~/\A\s*Code:/)
+        {
+            $InCode += 1;
+            $InAnnotations = undef;
+        }
+        elsif($LINE=~/\A\s*\d+:\s*(.*)\Z/)
+        { # read Code
+            if($InCode==1)
+            {
+                if($CurrentMethod)
+                {
+                    if(index($LINE, "invoke")!=-1)
+                    {
+                        if($LINE=~/ invoke(\w+) .* \/\/\s*(Method|InterfaceMethod)\s+(.+)\Z/)
+                        { # 3:   invokevirtual   #2; //Method "[Lcom/sleepycat/je/Database#DbState;".clone:()Ljava/lang/Object;
+                            my ($InvokeType, $InvokedName) = ($1, $3);
+                            
+                            if($InvokedName!~/\A(\w+:|java\/(lang|util|io)\/)/
+                            and index($InvokedName, '"<init>":')!=0)
+                            {
+                                $InvokedName=~s/#/\$/g;
+                                $MethodUsed{$LibVersion}{$InvokedName}{$CurrentMethod} = $InvokeType;
+                            }
+                        }
+                    }
+                    # elsif($LINE=~/ (getstatic|putstatic) .* \/\/\s*Field\s+(.+)\Z/)
+                    # {
+                    #     my $UsedFieldName = $2;
+                    #     $FieldUsed{$LibVersion}{$UsedFieldName}{$CurrentMethod} = 1;
+                    # }
+                }
+            }
+            elsif(defined $InAnnotations)
+            {
+                if($LINE=~/\A\s*\d+\:\s*#(\d+)/)
+                {
+                    if(my $AName = $AnnotationName{$1})
+                    {
+                        if($InAnnotations_Class) {
+                            $TypeAttr{"Annotations"}{registerType($AName, $LibVersion)} = 1;
+                        }
+                        elsif($InAnnotations_Method) {
+                            $MethodInfo{$LibVersion}{$CurrentMethod}{"Annotations"}{registerType($AName, $LibVersion)} = 1;
+                        }
+                    }
+                    else
+                    { # suport for Java 7
+                        $AnnotationNum{$1} = 1;
+                    }
+                }
+            }
+        }
+        elsif($CurrentMethod and $InParamTable==1 and $LINE=~/\A\s+0\s+\d+\s+\d+\s+(\#?)(\w+)/)
+        { # read parameter names from LocalVariableTable
+            my $Art = $1;
+            my $PName = $2;
+            
+            if(($PName ne "this" or $Art) and $PName=~/[a-z]/i)
+            {
+                if($CurrentMethod)
+                {
+                    if(defined $MethodInfo{$LibVersion}{$CurrentMethod}
+                    and defined $MethodInfo{$LibVersion}{$CurrentMethod}{"Param"}
+                    and defined $MethodInfo{$LibVersion}{$CurrentMethod}{"Param"}{$ParamPos}
+                    and defined $MethodInfo{$LibVersion}{$CurrentMethod}{"Param"}{$ParamPos}{"Type"})
+                    {
+                        $MethodInfo{$LibVersion}{$CurrentMethod}{"Param"}{$ParamPos}{"Name"} = $PName;
+                        $ParamPos++;
+                    }
+                }
+            }
+        }
+        elsif($CurrentClass and $LINE=~/(\A|\s+)([^\s]+)\s+([^\s]+)\s*\((.*)\)\s*(throws\s*([^\s]+)|)\s*;\Z/)
+        { # attributes of methods and constructors
+            my (%MethodAttr, $ParamsLine, $Exceptions) = ();
+            
+            $InParamTable = 0; # read the first local variable table
+            $InCode = 0; # read the first code
+            $InAnnotations_Method = 1;
+            $InAnnotations_Class = 0;
+            
+            ($MethodAttr{"Return"}, $MethodAttr{"ShortName"}, $ParamsLine, $Exceptions) = ($2, $3, $4, $6);
+            $MethodAttr{"ShortName"}=~s/#/./g;
+            
+            if($Exceptions)
+            {
+                foreach my $E (split(/,/, $Exceptions)) {
+                    $MethodAttr{"Exceptions"}{registerType($E, $LibVersion)} = 1;
+                }
+            }
+            if($LINE=~/(\A|\s+)(public|protected|private)\s+/) {
+                $MethodAttr{"Access"} = $2;
+            }
+            else {
+                $MethodAttr{"Access"} = "package-private";
+            }
+            $MethodAttr{"Class"} = registerType($TypeAttr{"Name"}, $LibVersion);
+            if($MethodAttr{"ShortName"}=~/\A(|(.+)\.)\Q$CurrentClass\E\Z/)
+            {
+                if($2)
+                {
+                    $MethodAttr{"Package"} = $2;
+                    $CurrentPackage = $MethodAttr{"Package"};
+                    $MethodAttr{"ShortName"} = $CurrentClass;
+                }
+                $MethodAttr{"Constructor"} = 1;
+                delete($MethodAttr{"Return"});
+            }
+            else
+            {
+                $MethodAttr{"Return"} = registerType($MethodAttr{"Return"}, $LibVersion);
+            }
+            
+            my @Params = separate_Params($ParamsLine, 0, 1);
+            
+            $ParamPos = 0;
+            foreach my $ParamTName (@Params)
+            {
+                %{$MethodAttr{"Param"}{$ParamPos}} = ("Type"=>registerType($ParamTName, $LibVersion), "Name"=>"p".($ParamPos+1));
+                $ParamPos++;
+            }
+            $ParamPos = 0;
+            if(not $MethodAttr{"Constructor"})
+            { # methods
+                if($CurrentPackage) {
+                    $MethodAttr{"Package"} = $CurrentPackage;
+                }
+                if($LINE=~/(\A|\s+)abstract\s+/) {
+                    $MethodAttr{"Abstract"} = 1;
+                }
+                if($LINE=~/(\A|\s+)final\s+/) {
+                    $MethodAttr{"Final"} = 1;
+                }
+                if($LINE=~/(\A|\s+)static\s+/) {
+                    $MethodAttr{"Static"} = 1;
+                }
+                if($LINE=~/(\A|\s+)native\s+/) {
+                    $MethodAttr{"Native"} = 1;
+                }
+                if($LINE=~/(\A|\s+)synchronized\s+/) {
+                    $MethodAttr{"Synchronized"} = 1;
+                }
+            }
+            
+            # read the Signature
+            if($LINE_N=~/(Signature|descriptor):\s*(.+)\Z/i)
+            { # create run-time unique name ( java/io/PrintStream.println (Ljava/lang/String;)V )
+                if($MethodAttr{"Constructor"}) {
+                    $CurrentMethod = $CurrentClass.".\"<init>\":".$2;
+                }
+                else {
+                    $CurrentMethod = $CurrentClass.".".$MethodAttr{"ShortName"}.":".$2;
+                }
+                if(my $PackageName = get_SFormat($CurrentPackage)) {
+                    $CurrentMethod = $PackageName."/".$CurrentMethod;
+                }
+                
+                $LineNum++;
+            }
+            else {
+                exitStatus("Error", "internal error - can't read method signature");
+            }
+            
+            $MethodAttr{"Archive"} = $ArchiveName;
+            if($CurrentMethod)
+            {
+                %{$MethodInfo{$LibVersion}{$CurrentMethod}} = %MethodAttr;
+                if($MethodAttr{"Access"}=~/public|protected/)
+                {
+                    $Class_Methods{$LibVersion}{$TypeAttr{"Name"}}{$CurrentMethod} = 1;
+                    if($MethodAttr{"Abstract"}) {
+                        $Class_AbstractMethods{$LibVersion}{$TypeAttr{"Name"}}{$CurrentMethod} = 1;
+                    }
+                }
+            }
+        }
+        elsif($CurrentClass and $LINE=~/(\A|\s+)([^\s]+)\s+(\w+);\Z/)
+        { # fields
+            my ($TName, $FName) = ($2, $3);
+            $TypeAttr{"Fields"}{$FName}{"Type"} = registerType($TName, $LibVersion);
+            if($LINE=~/(\A|\s+)final\s+/) {
+                $TypeAttr{"Fields"}{$FName}{"Final"} = 1;
+            }
+            if($LINE=~/(\A|\s+)static\s+/) {
+                $TypeAttr{"Fields"}{$FName}{"Static"} = 1;
+            }
+            if($LINE=~/(\A|\s+)transient\s+/) {
+                $TypeAttr{"Fields"}{$FName}{"Transient"} = 1;
+            }
+            if($LINE=~/(\A|\s+)volatile\s+/) {
+                $TypeAttr{"Fields"}{$FName}{"Volatile"} = 1;
+            }
+            if($LINE=~/(\A|\s+)(public|protected|private)\s+/) {
+                $TypeAttr{"Fields"}{$FName}{"Access"} = $2;
+            }
+            else {
+                $TypeAttr{"Fields"}{$FName}{"Access"} = "package-private";
+            }
+            if($TypeAttr{"Fields"}{$FName}{"Access"}!~/private/) {
+                $Class_Fields{$LibVersion}{$TypeAttr{"Name"}}{$FName}=$TypeAttr{"Fields"}{$FName}{"Type"};
+            }
+            $TypeAttr{"Fields"}{$FName}{"Pos"} = $FieldPos++;
+            
+            # read the Signature
+            if($Content[$LineNum++]=~/(Signature|descriptor):\s*(.+)\Z/i)
+            {
+                my $FSignature = $2;
+                if(my $PackageName = get_SFormat($CurrentPackage)) {
+                    $TypeAttr{"Fields"}{$FName}{"Mangled"} = $PackageName."/".$CurrentClass.".".$FName.":".$FSignature;
+                }
+            }
+            if($Content[$LineNum]=~/flags:/i)
+            { # flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
+                $LineNum++;
+            }
+            
+            # read the Value
+            if($Content[$LineNum]=~/Constant\s*value:\s*([^\s]+)\s(.*)\Z/i)
+            {
+              # Java 6: Constant value: ...
+              # Java 7: ConstantValue: ...
+                $LineNum+=1;
+                my ($TName, $Value) = ($1, $2);
+                if($Value)
+                {
+                    if($Value=~s/Deprecated:\s*true\Z//g) {
+                        # deprecated values: ?
+                    }
+                    $TypeAttr{"Fields"}{$FName}{"Value"} = $Value;
+                }
+                elsif($TName eq "String") {
+                    $TypeAttr{"Fields"}{$FName}{"Value"} = "\@EMPTY_STRING\@";
+                }
+            }
+        }
+        elsif($LINE=~/(\A|\s+)(class|interface)\s+([^\s\{]+)(\s+|\{|\Z)/)
+        { # properties of classes and interfaces
+            if($TypeAttr{"Name"})
+            { # register previous
+                %{$TypeInfo{$LibVersion}{registerType($TypeAttr{"Name"}, $LibVersion)}} = %TypeAttr;
+            }
+            
+            %TypeAttr = ("Type"=>$2, "Name"=>$3); # reset previous class
+            %AnnotationName = (); # reset annotations of the class
+            %AnnotationNum = (); # support for Java 7
+            $InAnnotations_Class = 1;
+            
+            $FieldPos = 0; # reset field position
+            $CurrentMethod = ""; # reset current method
+            $TypeAttr{"Archive"} = $ArchiveName;
+            if($TypeAttr{"Name"}=~/\A(.+)\.([^.]+)\Z/)
+            {
+                $CurrentClass = $2;
+                $TypeAttr{"Package"} = $1;
+                $CurrentPackage = $TypeAttr{"Package"};
+            }
+            else
+            {
+                $CurrentClass = $TypeAttr{"Name"};
+                $CurrentPackage = "";
+            }
+            if($CurrentClass=~s/#/./g)
+            { # javax.swing.text.GlyphView.GlyphPainter <=> GlyphView$GlyphPainter
+                $TypeAttr{"Name"}=~s/#/./g;
+            }
+            if($LINE=~/(\A|\s+)(public|protected|private)\s+/) {
+                $TypeAttr{"Access"} = $2;
+            }
+            else {
+                $TypeAttr{"Access"} = "package-private";
+            }
+            if($LINE=~/\s+extends\s+([^\s\{]+)/)
+            {
+                my $Extended = $1;
+                
+                if($TypeAttr{"Type"} eq "class")
+                {
+                    if($Extended ne $CurrentPackage.".".$CurrentClass) {
+                        $TypeAttr{"SuperClass"} = registerType($Extended, $LibVersion);
+                    }
+                }
+                elsif($TypeAttr{"Type"} eq "interface")
+                {
+                    my @Elems = separate_Params($Extended, 0, 0);
+                    foreach my $SuperInterface (@Elems)
+                    {
+                        if($SuperInterface ne $CurrentPackage.".".$CurrentClass) {
+                            $TypeAttr{"SuperInterface"}{registerType($SuperInterface, $LibVersion)} = 1;
+                        }
+                        
+                        if($SuperInterface eq "java.lang.annotation.Annotation") {
+                            $TypeAttr{"Annotation"} = 1;
+                        }
+                    }
+                }
+            }
+            if($LINE=~/\s+implements\s+([^\s\{]+)/)
+            {
+                my $Implemented = $1;
+                my @Elems = separate_Params($Implemented, 0, 0);
+                
+                foreach my $SuperInterface (@Elems) {
+                    $TypeAttr{"SuperInterface"}{registerType($SuperInterface, $LibVersion)} = 1;
+                }
+            }
+            if($LINE=~/(\A|\s+)abstract\s+/) {
+                $TypeAttr{"Abstract"} = 1;
+            }
+            if($LINE=~/(\A|\s+)final\s+/) {
+                $TypeAttr{"Final"} = 1;
+            }
+            if($LINE=~/(\A|\s+)static\s+/) {
+                $TypeAttr{"Static"} = 1;
+            }
+        }
+        elsif(index($LINE, "Deprecated: true")!=-1
+        or index($LINE, "Deprecated: length")!=-1)
+        { # deprecated method or class
+            if($CurrentMethod) {
+                $MethodInfo{$LibVersion}{$CurrentMethod}{"Deprecated"} = 1;
+            }
+            elsif($CurrentClass) {
+                $TypeAttr{"Deprecated"} = 1;
+            }
+        }
+        elsif(index($LINE, "RuntimeInvisibleAnnotations")!=-1
+        or index($LINE, "RuntimeVisibleAnnotations")!=-1)
+        {
+            $InAnnotations = 1;
+            $InCode = 0;
+        }
+        elsif(defined $InAnnotations and index($LINE, "InnerClasses")!=-1) {
+            $InAnnotations = undef;
+        }
+        else
+        {
+            # unparsed
+        }
+    }
+    if($TypeAttr{"Name"})
+    { # register last
+        %{$TypeInfo{$LibVersion}{registerType($TypeAttr{"Name"}, $LibVersion)}} = %TypeAttr;
+    }
+}
+
+sub separate_Params($$$)
+{
+    my ($Params, $Comma, $Sp) = @_;
+    my @Parts = ();
+    my %B = ( "("=>0, "<"=>0, ")"=>0, ">"=>0 );
+    my $Part = 0;
+    foreach my $Pos (0 .. length($Params) - 1)
+    {
+        my $S = substr($Params, $Pos, 1);
+        if(defined $B{$S}) {
+            $B{$S} += 1;
+        }
+        if($S eq "," and
+        $B{"("}==$B{")"} and $B{"<"}==$B{">"})
+        {
+            if($Comma)
+            { # include comma
+                $Parts[$Part] .= $S;
+            }
+            $Part += 1;
+        }
+        else {
+            $Parts[$Part] .= $S;
+        }
+    }
+    if(not $Sp)
+    { # remove spaces
+        foreach (@Parts)
+        {
+            s/\A //g;
+            s/ \Z//g;
+        }
+    }
+    return @Parts;
+}
+
+sub registerUsage($$)
+{
+    my ($TypeId, $LibVersion) = @_;
+    $Class_Constructed{$LibVersion}{$TypeId} = 1;
+    if(my $BaseId = $TypeInfo{$LibVersion}{$TypeId}{"BaseType"}) {
+        $Class_Constructed{$LibVersion}{$BaseId} = 1;
+    }
+}
+
+sub checkVoidMethod($)
+{
+    my $Method = $_[0];
+    return "" if(not $Method);
+    if($Method=~s/\)(.+)\Z/\)V/g) {
+        return $Method;
+    }
+    else {
+        return "";
+    }
+}
+
+sub detectAdded()
+{
+    foreach my $Method (keys(%{$MethodInfo{2}}))
+    {
+        if(not defined $MethodInfo{1}{$Method})
+        {
+            if(not methodFilter($Method, 2)) {
+                next;
+            }
+            
+            my $ClassId = $MethodInfo{2}{$Method}{"Class"};
+            my %Class = get_Type($ClassId, 2);
+            
+            $CheckedTypes{$Class{"Name"}} = 1;
+            $CheckedMethods{$Method} = 1;
+            
+            if(not $MethodInfo{2}{$Method}{"Constructor"}
+            and my $Overridden = findMethod($Method, 2, $Class{"Name"}, 2))
+            {
+                if(defined $MethodInfo{1}{$Overridden}
+                and get_TypeType($ClassId, 2) eq "class" and $TName_Tid{1}{$Class{"Name"}})
+                { # class should exist in previous version
+                    %{$CompatProblems{$Overridden}{"Class_Overridden_Method"}{"this.".get_SFormat($Method)}}=(
+                        "Type_Name"=>$Class{"Name"},
+                        "Target"=>$MethodInfo{2}{$Method}{"Signature"},
+                        "Old_Value"=>$Overridden,
+                        "New_Value"=>$Method  );
+                }
+            }
+            if($MethodInfo{2}{$Method}{"Abstract"}) {
+                $AddedMethod_Abstract{$Class{"Name"}}{$Method} = 1;
+            }
+            
+            %{$CompatProblems{$Method}{"Added_Method"}{""}}=();
+            
+            if(not $MethodInfo{2}{$Method}{"Constructor"})
+            {
+                if(get_TypeName($MethodInfo{2}{$Method}{"Return"}, 2) ne "void"
+                and my $VoidMethod = checkVoidMethod($Method))
+                {
+                    if(defined $MethodInfo{1}{$VoidMethod})
+                    { # return value type changed from "void" to 
+                        $ChangedReturnFromVoid{$VoidMethod} = 1;
+                        $ChangedReturnFromVoid{$Method} = 1;
+                        
+                        %{$CompatProblems{$VoidMethod}{"Changed_Method_Return_From_Void"}{""}}=(
+                            "New_Value"=>get_TypeName($MethodInfo{2}{$Method}{"Return"}, 2)
+                        );
+                    }
+                }
+            }
+        }
+    }
+}
+
+sub detectRemoved()
+{
+    foreach my $Method (keys(%{$MethodInfo{1}}))
+    {
+        if(not defined $MethodInfo{2}{$Method})
+        {
+            if(not methodFilter($Method, 1)) {
+                next;
+            }
+            
+            my $ClassId = $MethodInfo{1}{$Method}{"Class"};
+            my %Class = get_Type($ClassId, 1);
+            
+            $CheckedTypes{$Class{"Name"}} = 1;
+            $CheckedMethods{$Method} = 1;
+            
+            if(not $MethodInfo{1}{$Method}{"Constructor"}
+            and my $MovedUp = findMethod($Method, 1, $Class{"Name"}, 2))
+            {
+                if(get_TypeType($ClassId, 1) eq "class"
+                and not $MethodInfo{1}{$Method}{"Abstract"} and $TName_Tid{2}{$Class{"Name"}})
+                {# class should exist in newer version
+                    %{$CompatProblems{$Method}{"Class_Method_Moved_Up_Hierarchy"}{"this.".get_SFormat($MovedUp)}}=(
+                        "Type_Name"=>$Class{"Name"},
+                        "Target"=>$MethodInfo{2}{$MovedUp}{"Signature"},
+                        "Old_Value"=>$Method,
+                        "New_Value"=>$MovedUp  );
+                }
+            }
+            else
+            {
+                if($MethodInfo{1}{$Method}{"Abstract"}) {
+                    $RemovedMethod_Abstract{$Class{"Name"}}{$Method} = 1;
+                }
+                %{$CompatProblems{$Method}{"Removed_Method"}{""}}=();
+            }
+        }
+    }
+}
+
+sub getArchives($)
+{
+    my $LibVersion = $_[0];
+    my @Paths = ();
+    foreach my $Path (split(/\s*\n\s*/, $Descriptor{$LibVersion}{"Archives"}))
+    {
+        if(not -e $Path) {
+            exitStatus("Access_Error", "can't access \'$Path\'");
+        }
+        foreach (getArchivePaths($Path, $LibVersion)) {
+            push(@Paths, $_);
+        }
+    }
+    return @Paths;
+}
+
+sub getArchivePaths($$)
+{
+    my ($Dest, $LibVersion) = @_;
+    if(-f $Dest) {
+        return ($Dest);
+    }
+    elsif(-d $Dest)
+    {
+        $Dest=~s/[\/\\]+\Z//g;
+        my @AllClasses = ();
+        foreach my $Path (cmd_find($Dest,"","*\.jar",""))
+        {
+            next if(ignore_path($Path, $Dest));
+            push(@AllClasses, resolve_symlink($Path));
+        }
+        return @AllClasses;
+    }
+    return ();
+}
+
+sub isCyclical($$)
+{
+    return (grep {$_ eq $_[1]} @{$_[0]});
+}
+
+sub read_symlink($)
+{
+    my $Path = $_[0];
+    return "" if(not $Path or not -f $Path);
+    return $Cache{"read_symlink"}{$Path} if(defined $Cache{"read_symlink"}{$Path});
+    if(my $ReadlinkCmd = get_CmdPath("readlink"))
+    {
+        my $Res = `$ReadlinkCmd -n \"$Path\"`;
+        return ($Cache{"read_symlink"}{$Path} = $Res);
+    }
+    elsif(my $FileCmd = get_CmdPath("file"))
+    {
+        my $Info = `$FileCmd \"$Path\"`;
+        if($Info=~/symbolic\s+link\s+to\s+['`"]*([\w\d\.\-\/\\]+)['`"]*/i) {
+            return ($Cache{"read_symlink"}{$Path} = $1);
+        }
+    }
+    return ($Cache{"read_symlink"}{$Path} = "");
+}
+
+sub resolve_symlink($)
+{
+    my $Path = $_[0];
+    return "" if(not $Path or not -f $Path);
+    return $Path if(isCyclical(\@RecurSymlink, $Path));
+    push(@RecurSymlink, $Path);
+    if(-l $Path and my $Redirect=read_symlink($Path))
+    {
+        if(is_abs($Redirect))
+        {
+            my $Res = resolve_symlink($Redirect);
+            pop(@RecurSymlink);
+            return $Res;
+        }
+        elsif($Redirect=~/\.\.[\/\\]/)
+        {
+            $Redirect = joinPath(get_dirname($Path),$Redirect);
+            while($Redirect=~s&(/|\\)[^\/\\]+(\/|\\)\.\.(\/|\\)&$1&){};
+            my $Res = resolve_symlink($Redirect);
+            pop(@RecurSymlink);
+            return $Res;
+        }
+        elsif(-f get_dirname($Path)."/".$Redirect)
+        {
+            my $Res = resolve_symlink(joinPath(get_dirname($Path),$Redirect));
+            pop(@RecurSymlink);
+            return $Res;
+        }
+        return $Path;
+    }
+    else
+    {
+        pop(@RecurSymlink);
+        return $Path;
+    }
+}
+
+sub cmpVersions($$)
+{# compare two version strings in dotted-numeric format
+    my ($V1, $V2) = @_;
+    return 0 if($V1 eq $V2);
+    my @V1Parts = split(/\./, $V1);
+    my @V2Parts = split(/\./, $V2);
+    for (my $i = 0; $i <= $#V1Parts && $i <= $#V2Parts; $i++) {
+        return -1 if(int($V1Parts[$i]) < int($V2Parts[$i]));
+        return 1 if(int($V1Parts[$i]) > int($V2Parts[$i]));
+    }
+    return -1 if($#V1Parts < $#V2Parts);
+    return 1 if($#V1Parts > $#V2Parts);
+    return 0;
+}
+
+sub majorVersion($)
+{
+    my $Version = $_[0];
+    return 0 if(not $Version);
+    my @VParts = split(/\./, $Version);
+    return $VParts[0];
+}
+
+sub isDump($)
+{
+    if($_[0]=~/\A(.+)\.(api|dump|apidump)(\Q.tar.gz\E|\Q.zip\E|)\Z/)
+    { # returns a name of package
+        return $1;
+    }
+    return 0;
+}
+
+sub isDumpFile($)
+{
+    if($_[0]=~/\.(api|dump|apidump)\Z/)
+    {
+        return 1;
+    }
+    return 0;
+}
+
+sub read_API_Dump($$$)
+{
+    my ($LibVersion, $Path, $Subj) = @_;
+    return if(not $LibVersion or not -e $Path);
+    
+    my $FilePath = unpackDump($Path);
+    if(not isDumpFile($FilePath)) {
+        exitStatus("Invalid_Dump", "specified API dump \'$Path\' is not valid, try to recreate it");
+    }
+    my $Content = readFile($FilePath);
+    rmtree($TMP_DIR."/unpack");
+    
+    if($Content!~/};\s*\Z/) {
+        exitStatus("Invalid_Dump", "specified API dump \'$Path\' is not valid, try to recreate it");
+    }
+    my $APIDump = eval($Content);
+    if(not $APIDump) {
+        exitStatus("Error", "internal error - eval() procedure seem to not working correctly, try to remove 'use strict' and try again");
+    }
+    my $DumpVersion = $APIDump->{"API_DUMP_VERSION"};
+    if(majorVersion($DumpVersion) ne $API_DUMP_MAJOR)
+    { # compatible with the dumps of the same major version
+        exitStatus("Dump_Version", "incompatible version $DumpVersion of specified API dump (allowed only $API_DUMP_MAJOR.0<=V<=$API_DUMP_MAJOR.9)");
+    }
+    
+    if(defined $TypeInfo{$LibVersion})
+    {
+        foreach my $TId (keys(%{$APIDump->{"TypeInfo"}}))
+        {
+            $TypeInfo{$LibVersion}{$TId} = $APIDump->{"TypeInfo"}{$TId};
+        }
+    }
+    else {
+        $TypeInfo{$LibVersion} = $APIDump->{"TypeInfo"};
+    }
+    
+    foreach my $TypeId (keys(%{$APIDump->{"TypeInfo"}}))
+    {
+        my %TypeAttr = %{$TypeInfo{$LibVersion}{$TypeId}};
+        $TName_Tid{$LibVersion}{$TypeAttr{"Name"}} = $TypeId;
+        
+        if($Subj ne "Dep")
+        {
+            if(my $Archive = $TypeAttr{"Archive"}) {
+                $LibArchives{$LibVersion}{$Archive} = 1;
+            }
+        }
+        
+        foreach my $FieldName (keys(%{$TypeAttr{"Fields"}}))
+        {
+            if($TypeAttr{"Fields"}{$FieldName}{"Access"}=~/public|protected/) {
+                $Class_Fields{$LibVersion}{$TypeAttr{"Name"}}{$FieldName} = $TypeAttr{"Fields"}{$FieldName}{"Type"};
+            }
+        }
+        
+        if($Subj eq "Dep") {
+            $TypeInfo{$LibVersion}{$TypeId}{"Dep"} = 1;
+        }
+    }
+    my $MInfo = $APIDump->{"MethodInfo"};
+    foreach my $M_Id (keys(%{$MInfo}))
+    {
+        my $Name = $MInfo->{$M_Id}{"Name"};
+        $MethodInfo{$LibVersion}{$Name} = $MInfo->{$M_Id};
+        
+        if($Subj eq "Dep") {
+            $MethodInfo{$LibVersion}{$Name}{"Dep"} = 1;
+        }
+    }
+    
+    my $MUsed = $APIDump->{"MethodUsed"};
+    foreach my $M_Id (keys(%{$MUsed}))
+    {
+        my $Name = $MUsed->{$M_Id}{"Name"};
+        $MethodUsed{$LibVersion}{$Name} = $MUsed->{$M_Id}{"Used"};
+    }
+    
+    foreach my $Method (keys(%{$MethodInfo{$LibVersion}}))
+    {
+        if(my $ClassId = $MethodInfo{$LibVersion}{$Method}{"Class"}
+        and $MethodInfo{$LibVersion}{$Method}{"Access"}=~/public|protected/)
+        {
+            $Class_Methods{$LibVersion}{get_TypeName($ClassId, $LibVersion)}{$Method} = 1;
+            if($MethodInfo{$LibVersion}{$Method}{"Abstract"}) {
+                $Class_AbstractMethods{$LibVersion}{get_TypeName($ClassId, $LibVersion)}{$Method} = 1;
+            }
+        }
+    }
+    
+    # $FieldUsed{$LibVersion} = $APIDump->{"FieldUsed"};
+    
+    if(keys(%{$LibArchives{$LibVersion}})) {
+        $Descriptor{$LibVersion}{"Archives"} = "OK";
+    }
+    $Descriptor{$LibVersion}{"Version"} = $APIDump->{"LibraryVersion"};
+    $Descriptor{$LibVersion}{"Dump"} = 1;
+}
+
+sub createDescriptor($$)
+{
+    my ($LibVersion, $Path) = @_;
+    return if(not $LibVersion or not $Path or not -e $Path);
+    
+    if(isDump($Path))
+    { # API dump
+        read_API_Dump($LibVersion, $Path, "Main");
+    }
+    else
+    {
+        if(-d $Path or $Path=~/\.jar\Z/)
+        {
+            readDescriptor($LibVersion,"
+              <version>
+                  ".$TargetVersion{$LibVersion}."
+              </version>
+              
+              <archives>
+                  $Path
+              </archives>");
+        }
+        else
+        { # standard XML descriptor
+            readDescriptor($LibVersion, readFile($Path));
+        }
+    }
+    
+    if(my $Dep = $DepDump{$LibVersion}) {
+        read_API_Dump($LibVersion, $Dep, "Dep");
+    }
+}
+
+sub get_version($)
+{
+    my $Cmd = $_[0];
+    return "" if(not $Cmd);
+    my $Version = `$Cmd --version 2>\"$TMP_DIR/null\"`;
+    return $Version;
+}
+
+sub get_depth($)
+{
+    if(defined $Cache{"get_depth"}{$_[0]}) {
+        return $Cache{"get_depth"}{$_[0]}
+    }
+    return ($Cache{"get_depth"}{$_[0]} = ($_[0]=~tr![\/\\]|\:\:!!));
+}
+
+sub show_time_interval($)
+{
+    my $Interval = $_[0];
+    my $Hr = int($Interval/3600);
+    my $Min = int($Interval/60)-$Hr*60;
+    my $Sec = $Interval-$Hr*3600-$Min*60;
+    if($Hr) {
+        return "$Hr hr, $Min min, $Sec sec";
+    }
+    elsif($Min) {
+        return "$Min min, $Sec sec";
+    }
+    else {
+        return "$Sec sec";
+    }
+}
+
+sub checkVersionNum($$)
+{
+    my ($LibVersion, $Path) = @_;
+    
+    if($TargetVersion{$LibVersion}) {
+        return;
+    }
+    
+    if($Path!~/\.jar\Z/i) {
+        return;
+    }
+    
+    my $Ver = undef;
+    
+    if(not defined $Ver) {
+        $Ver = getManifestVersion(get_abs_path($Path));
+    }
+    
+    if(not defined $Ver) {
+        $Ver = getPkgVersion(get_filename($Path));
+    }
+    
+    if(not defined $Ver) {
+        $Ver = parseVersion($Path);
+    }
+    
+    if(not defined $Ver)
+    {
+        if($DumpAPI)
+        {
+            $Ver = "XYZ";
+        }
+        else
+        {
+            if($LibVersion==1) {
+                $Ver = "X";
+            }
+            else {
+                $Ver = "Y";
+            }
+        }
+    }
+    
+    $TargetVersion{$LibVersion} = $Ver;
+    
+    if($DumpAPI) {
+        printMsg("WARNING", "set version number to $Ver (use -vnum option to change it)");
+    }
+    else {
+        printMsg("WARNING", "set #$LibVersion version number to $Ver (use --v$LibVersion=NUM option to change it)");
+    }
+}
+
+sub getManifestVersion($)
+{
+    my $Path = $_[0];
+    
+    if(not $Path or not -e $Path) {
+        return undef;
+    }
+    
+    my $JarCmd = get_CmdPath("jar");
+    if(not $JarCmd) {
+        exitStatus("Not_Found", "can't find \"jar\" command");
+    }
+    chdir($TMP_DIR);
+    system($JarCmd." -xf \"$Path\" META-INF 2>null");
+    chdir($ORIG_DIR);
+    if(my $Content = readFile("$TMP_DIR/META-INF/MANIFEST.MF"))
+    {
+        if($Content=~/(\A|\s)Implementation\-Version:\s*(.+)(\s|\Z)/i) {
+            return $2;
+        }
+    }
+    return undef;
+}
+
+sub parseVersion($)
+{
+    my $Str = $_[0];
+    
+    if(not $Str) {
+        return undef;
+    }
+    
+    if($Str=~/(\/|\\|\w|\A)[\-\_]*(\d+[\d\.\-]+\d+|\d+)/) {
+        return $2;
+    }
+    return undef;
+}
+
+sub getPkgVersion($)
+{
+    my $Name = $_[0];
+    $Name=~s/\.\w+\Z//;
+    if($Name=~/\A(.+[a-z])[\-\_](v|ver|)(\d.+?)\Z/i)
+    { # libsample-N
+      # libsample-vN
+        return ($1, $3);
+    }
+    elsif($Name=~/\A(.+?)(\d[\d\.]*)\Z/i)
+    { # libsampleN
+        return ($1, $2);
+    }
+    elsif($Name=~/\A(.+)[\-\_](v|ver|)(\d.+?)\Z/i)
+    { # libsample-N
+      # libsample-vN
+        return ($1, $3);
+    }
+    elsif($Name=~/\A([a-z_\-]+)(\d.+?)\Z/i)
+    { # libsampleNb
+        return ($1, $2);
+    }
+    return (undef, undef);
+}
+
+sub get_OSgroup()
+{
+    if($Config{"osname"}=~/macos|darwin|rhapsody/i) {
+        return "macos";
+    }
+    elsif($Config{"osname"}=~/freebsd|openbsd|netbsd/i) {
+        return "bsd";
+    }
+    elsif($Config{"osname"}=~/haiku|beos/i) {
+        return "beos";
+    }
+    elsif($Config{"osname"}=~/symbian|epoc/i) {
+        return "symbian";
+    }
+    elsif($Config{"osname"}=~/win/i) {
+        return "windows";
+    }
+    else {
+        return $Config{"osname"};
+    }
+}
+
+sub get_ARG_MAX()
+{
+    if($OSgroup eq "windows") {
+        return 1990; # 8191, 2047
+    }
+    else
+    { # Linux
+      # TODO: set max possible value (~131000)
+        return 32767;
+    }
+}
+
+sub dump_sorting($)
+{
+    my $Hash = $_[0];
+    return [] if(not $Hash);
+    my @Keys = keys(%{$Hash});
+    return [] if($#Keys<0);
+    if($Keys[0]=~/\A\d+\Z/)
+    { # numbers
+        return [sort {int($a)<=>int($b)} @Keys];
+    }
+    else
+    { # strings
+        return [sort {$a cmp $b} @Keys];
+    }
+}
+
+sub detect_bin_default_paths()
+{
+    my $EnvPaths = $ENV{"PATH"};
+    if($OSgroup eq "beos") {
+        $EnvPaths.=":".$ENV{"BETOOLS"};
+    }
+    elsif($OSgroup eq "windows"
+    and my $JHome = $ENV{"JAVA_HOME"}) {
+        $EnvPaths.=";$JHome\\bin";
+    }
+    my $Sep = ($OSgroup eq "windows")?";":":|;";
+    foreach my $Path (sort {length($a)<=>length($b)} split(/$Sep/, $EnvPaths))
+    {
+        $Path=~s/[\/\\]+\Z//g;
+        next if(not $Path);
+        $DefaultBinPaths{$Path} = 1;
+    }
+}
+
+sub detect_default_paths()
+{
+    if(keys(%SystemPaths))
+    {# run once
+        return;
+    }
+    
+    foreach my $Type (keys(%{$OS_AddPath{$OSgroup}}))
+    {# additional search paths
+        foreach my $Path (keys(%{$OS_AddPath{$OSgroup}{$Type}}))
+        {
+            next if(not -d $Path);
+            $SystemPaths{$Type}{$Path} = $OS_AddPath{$OSgroup}{$Type}{$Path};
+        }
+    }
+    if($OSgroup ne "windows")
+    {
+        foreach my $Type ("include", "lib", "bin")
+        {# autodetecting system "devel" directories
+            foreach my $Path (cmd_find("/","d","*$Type*",1)) {
+                $SystemPaths{$Type}{$Path} = 1;
+            }
+            if(-d "/usr") {
+                foreach my $Path (cmd_find("/usr","d","*$Type*",1)) {
+                    $SystemPaths{$Type}{$Path} = 1;
+                }
+            }
+        }
+    }
+    detect_bin_default_paths();
+    foreach my $Path (keys(%DefaultBinPaths)) {
+        $SystemPaths{"bin"}{$Path} = $DefaultBinPaths{$Path};
+    }
+    
+    if(not $TestSystem)
+    {
+        if(my $JavacCmd = get_CmdPath("javac"))
+        {
+            if(my $Ver = `$JavacCmd -version 2>&1`)
+            {
+                if($Ver=~/javac\s+(.+)/) {
+                    printMsg("INFO", "using Java ".$1);
+                }
+            }
+        }
+    }
+}
+
+sub exitStatus($$)
+{
+    my ($Code, $Msg) = @_;
+    print STDERR "ERROR: ". $Msg."\n";
+    exit($ERROR_CODE{$Code});
+}
+
+sub printMsg($$)
+{
+    my ($Type, $Msg) = @_;
+    if($Type!~/\AINFO/) {
+        $Msg = $Type.": ".$Msg;
+    }
+    if($Type!~/_C\Z/) {
+        $Msg .= "\n";
+    }
+    if($Type eq "ERROR") {
+        print STDERR $Msg;
+    }
+    else {
+        print $Msg;
+    }
+}
+
+sub printStatMsg($)
+{
+    my $Level = $_[0];
+    printMsg("INFO", "total ".lc($Level)." compatibility problems: ".$RESULT{$Level}{"Problems"}.", warnings: ".$RESULT{$Level}{"Warnings"});
+}
+
+sub printReport()
+{
+    printMsg("INFO", "creating compatibility report ...");
+    createReport();
+    if($JoinReport or $DoubleReport)
+    {
+        if($RESULT{"Binary"}{"Problems"}
+        or $RESULT{"Source"}{"Problems"})
+        {
+            printMsg("INFO", "binary compatibility: ".(100-$RESULT{"Binary"}{"Affected"})."\%");
+            printMsg("INFO", "source compatibility: ".(100-$RESULT{"Source"}{"Affected"})."\%");
+        }
+        else
+        {
+            printMsg("INFO", "binary compatibility: 100\%");
+            printMsg("INFO", "source compatibility: 100\%");
+        }
+        printStatMsg("Binary");
+        printStatMsg("Source");
+    }
+    elsif($BinaryOnly)
+    {
+        if($RESULT{"Binary"}{"Problems"}) {
+            printMsg("INFO", "binary compatibility: ".(100-$RESULT{"Binary"}{"Affected"})."\%");
+        }
+        else {
+            printMsg("INFO", "binary compatibility: 100\%");
+        }
+        printStatMsg("Binary");
+    }
+    elsif($SourceOnly)
+    {
+        if($RESULT{"Source"}{"Problems"}) {
+            printMsg("INFO", "source compatibility: ".(100-$RESULT{"Source"}{"Affected"})."\%");
+        }
+        else {
+            printMsg("INFO", "source compatibility: 100\%");
+        }
+        printStatMsg("Source");
+    }
+    if($JoinReport)
+    {
+        printMsg("INFO", "report: ".getReportPath("Join"));
+    }
+    elsif($DoubleReport)
+    { # default
+        printMsg("INFO", "report (BC): ".getReportPath("Binary"));
+        printMsg("INFO", "report (SC): ".getReportPath("Source"));
+    }
+    elsif($BinaryOnly)
+    { # --binary
+        printMsg("INFO", "report: ".getReportPath("Binary"));
+    }
+    elsif($SourceOnly)
+    { # --source
+        printMsg("INFO", "report: ".getReportPath("Source"));
+    }
+}
+
+sub getReportPath($)
+{
+    my $Level = $_[0];
+    my $Dir = "compat_reports/$TargetLibraryName/".$Descriptor{1}{"Version"}."_to_".$Descriptor{2}{"Version"};
+    if($Level eq "Binary")
+    {
+        if($BinaryReportPath)
+        { # --bin-report-path
+            return $BinaryReportPath;
+        }
+        elsif($OutputReportPath)
+        { # --report-path
+            return $OutputReportPath;
+        }
+        else
+        { # default
+            return $Dir."/bin_compat_report.html";
+        }
+    }
+    elsif($Level eq "Source")
+    {
+        if($SourceReportPath)
+        { # --src-report-path
+            return $SourceReportPath;
+        }
+        elsif($OutputReportPath)
+        { # --report-path
+            return $OutputReportPath;
+        }
+        else
+        { # default
+            return $Dir."/src_compat_report.html";
+        }
+    }
+    else
+    {
+        if($OutputReportPath)
+        { # --report-path
+            return $OutputReportPath;
+        }
+        else
+        { # default
+            return $Dir."/compat_report.html";
+        }
+    }
+}
+
+sub initLogging($)
+{
+    my $LibVersion = $_[0];
+    if($Debug)
+    { # debug directory
+        $DEBUG_PATH{$LibVersion} = "debug/$TargetLibraryName/".$Descriptor{$LibVersion}{"Version"};
+        
+        if(-d $DEBUG_PATH{$LibVersion}) {
+            rmtree($DEBUG_PATH{$LibVersion});
+        }
+    }
+}
+
+sub createArchive($$)
+{
+    my ($Path, $To) = @_;
+    if(not $To) {
+        $To = ".";
+    }
+    if(not $Path or not -e $Path
+    or not -d $To) {
+        return "";
+    }
+    my ($From, $Name) = separate_path($Path);
+    if($OSgroup eq "windows")
+    { # *.zip
+        my $ZipCmd = get_CmdPath("zip");
+        if(not $ZipCmd) {
+            exitStatus("Not_Found", "can't find \"zip\"");
+        }
+        my $Pkg = $To."/".$Name.".zip";
+        unlink($Pkg);
+        chdir($To);
+        system("$ZipCmd -j \"$Name.zip\" \"$Path\" >\"$TMP_DIR/null\"");
+        if($?)
+        { # cannot allocate memory (or other problems with "zip")
+            unlink($Path);
+            exitStatus("Error", "can't pack the API dump: ".$!);
+        }
+        chdir($ORIG_DIR);
+        unlink($Path);
+        return $Pkg;
+    }
+    else
+    { # *.tar.gz
+        my $TarCmd = get_CmdPath("tar");
+        if(not $TarCmd) {
+            exitStatus("Not_Found", "can't find \"tar\"");
+        }
+        my $GzipCmd = get_CmdPath("gzip");
+        if(not $GzipCmd) {
+            exitStatus("Not_Found", "can't find \"gzip\"");
+        }
+        my $Pkg = abs_path($To)."/".$Name.".tar.gz";
+        unlink($Pkg);
+        chdir($From);
+        system($TarCmd, "-czf", $Pkg, $Name);
+        if($?)
+        { # cannot allocate memory (or other problems with "tar")
+            unlink($Path);
+            exitStatus("Error", "can't pack the API dump: ".$!);
+        }
+        chdir($ORIG_DIR);
+        unlink($Path);
+        return $To."/".$Name.".tar.gz";
+    }
+}
+
+sub getMd5(@)
+{
+    my $Md5 = md5_hex(@_);
+    return substr($Md5, 0, $MD5_LEN);
+}
+
+sub scenario()
+{
+    if($BinaryOnly and $SourceOnly)
+    { # both --binary and --source
+      # is the default mode
+        $DoubleReport = 1;
+        $JoinReport = 0;
+        $BinaryOnly = 0;
+        $SourceOnly = 0;
+        if($OutputReportPath)
+        { # --report-path
+            $DoubleReport = 0;
+            $JoinReport = 1;
+        }
+    }
+    elsif($BinaryOnly or $SourceOnly)
+    { # --binary or --source
+        $DoubleReport = 0;
+        $JoinReport = 0;
+    }
+    if(defined $Help)
+    {
+        HELP_MESSAGE();
+        exit(0);
+    }
+    if(defined $ShowVersion)
+    {
+        printMsg("INFO", "Java API Compliance Checker (JAPICC) $TOOL_VERSION\nCopyright (C) 2016 Andrey Ponomarenko's ABI Laboratory\nLicense: LGPL or GPL <http://www.gnu.org/licenses/>\nThis program is free software: you can redistribute it and/or modify it.\n\nWritten by Andrey Ponomarenko.");
+        exit(0);
+    }
+    if(defined $DumpVersion)
+    {
+        printMsg("INFO", $TOOL_VERSION);
+        exit(0);
+    }
+    $Data::Dumper::Sortkeys = 1;
+    
+    # FIXME: can't pass \&dump_sorting - cause a segfault sometimes
+    if($SortDump)
+    {
+        $Data::Dumper::Useperl = 1;
+        $Data::Dumper::Sortkeys = \&dump_sorting;
+    }
+    
+    if(defined $TestSystem)
+    {
+        detect_default_paths();
+        testSystem();
+        exit(0);
+    }
+    
+    if(defined $ShortMode)
+    {
+        if(not defined $AffectLimit) {
+            $AffectLimit = 10;
+        }
+    }
+    
+    if(not $TargetLibraryName and not $CountMethods)
+    {
+        if($DumpAPI)
+        {
+            if($DumpAPI=~/\.jar\Z/)
+            { # short usage
+                my ($Name, $Version) = getPkgVersion(get_filename($DumpAPI));
+                if($Name and $Version ne "")
+                {
+                    $TargetLibraryName = $Name;
+                    if(not $TargetVersion{1}) {
+                        $TargetVersion{1} = $Version;
+                    }
+                }
+            }
+        }
+        else
+        {
+            if($Descriptor{1}{"Path"}=~/\.jar\Z/ and $Descriptor{2}{"Path"}=~/\.jar\Z/)
+            { # short usage
+                my ($Name1, $Version1) = getPkgVersion(get_filename($Descriptor{1}{"Path"}));
+                my ($Name2, $Version2) = getPkgVersion(get_filename($Descriptor{2}{"Path"}));
+                
+                if($Name1 and $Version1 ne ""
+                and $Version2 ne "")
+                {
+                    $TargetLibraryName = $Name1;
+                    if(not $TargetVersion{1}) {
+                        $TargetVersion{1} = $Version1;
+                    }
+                    if(not $TargetVersion{2}) {
+                        $TargetVersion{2} = $Version2;
+                    }
+                }
+            }
+        }
+        
+        if(not $TargetLibraryName) {
+            exitStatus("Error", "library name is not selected (option --lib=NAME)");
+        }
+    }
+    else
+    { # validate library name
+        if($TargetLibraryName=~/[\*\/\\]/) {
+            exitStatus("Error", "\"\\\", \"\/\" and \"*\" symbols are not allowed in the library name");
+        }
+    }
+    if(not $TargetTitle) {
+        $TargetTitle = $TargetLibraryName;
+    }
+    if($ClassListPath)
+    {
+        if(not -f $ClassListPath) {
+            exitStatus("Access_Error", "can't access file \'$ClassListPath\'");
+        }
+        foreach my $Class (split(/\n/, readFile($ClassListPath)))
+        {
+            $Class=~s/\//./g;
+            $ClassList_User{$Class} = 1;
+        }
+    }
+    if($AnnotationsListPath)
+    {
+        if(not -f $AnnotationsListPath) {
+            exitStatus("Access_Error", "can't access file \'$AnnotationsListPath\'");
+        }
+        foreach my $Annotation (split(/\n/, readFile($AnnotationsListPath)))
+        {
+            $AnnotationList_User{$Annotation} = 1;
+        }
+    }
+    if($SkipAnnotationsListPath)
+    {
+        if(not -f $SkipAnnotationsListPath) {
+            exitStatus("Access_Error", "can't access file \'$SkipAnnotationsListPath\'");
+        }
+        foreach my $Annotation (split(/\n/, readFile($SkipAnnotationsListPath)))
+        {
+            $SkipAnnotationList_User{$Annotation} = 1;
+        }
+    }
+    if($SkipClassesList)
+    {
+        if(not -f $SkipClassesList) {
+            exitStatus("Access_Error", "can't access file \'$SkipClassesList\'");
+        }
+        foreach my $Class (split(/\n/, readFile($SkipClassesList)))
+        {
+            $Class=~s/\//./g;
+            $SkipClasses{$Class} = 1;
+        }
+    }
+    if($SkipPackagesList)
+    {
+        if(not -f $SkipPackagesList) {
+            exitStatus("Access_Error", "can't access file \'$SkipPackagesList\'");
+        }
+        foreach my $Package (split(/\n/, readFile($SkipPackagesList)))
+        {
+            $SkipPackages{1}{$Package} = 1;
+            $SkipPackages{2}{$Package} = 1;
+        }
+    }
+    if($ClientPath)
+    {
+        if($ClientPath=~/\.class\Z/) {
+            exitStatus("Error", "input file is not a java archive");
+        }
+        
+        if(-f $ClientPath)
+        {
+            detect_default_paths();
+            readArchive(0, $ClientPath)
+        }
+        else {
+            exitStatus("Access_Error", "can't access file \'$ClientPath\'");
+        }
+    }
+    
+    if($CountMethods)
+    {
+        if(not -e $CountMethods) {
+            exitStatus("Access_Error", "can't access \'$CountMethods\'");
+        }
+        
+        read_API_Dump(1, $CountMethods, "Main");
+        
+        my $Count = 0;
+        foreach my $Method (keys(%{$MethodInfo{1}})) {
+            $Count += methodFilter($Method, 1);
+        }
+        
+        printMsg("INFO", $Count);
+        exit(0);
+    }
+    
+    if($DumpAPI)
+    {
+        if(not -e $DumpAPI) {
+            exitStatus("Access_Error", "can't access \'$DumpAPI\'");
+        }
+        
+        detect_default_paths();
+        checkVersionNum(1, $DumpAPI);
+        
+        my $TarCmd = get_CmdPath("tar");
+        if(not $TarCmd) {
+            exitStatus("Not_Found", "can't find \"tar\"");
+        }
+        my $GzipCmd = get_CmdPath("gzip");
+        if(not $GzipCmd) {
+            exitStatus("Not_Found", "can't find \"gzip\"");
+        }
+        createDescriptor(1, $DumpAPI);
+        if(not $Descriptor{1}{"Archives"}) {
+            exitStatus("Error", "descriptor does not contain Java ARchives");
+        }
+        
+        initLogging(1);
+        readArchives(1);
+        
+        printMsg("INFO", "creating library API dump ...");
+        if(not keys(%{$MethodInfo{1}})) {
+            printMsg("WARNING", "empty dump");
+        }
+        
+        my $MInfo = {};
+        my $MNum = 0;
+        foreach my $Method (sort keys(%{$MethodInfo{1}}))
+        {
+            my $MId = $MNum;
+            if($REPRODUCIBLE) {
+                $MId = getMd5($Method);
+            }
+            $MInfo->{$MId} = $MethodInfo{1}{$Method};
+            $MInfo->{$MId}{"Name"} = $Method;
+            
+            $MNum+=1;
+        }
+        
+        my $MUsed = {};
+        $MNum = 0;
+        foreach my $Inv (sort keys(%{$MethodUsed{1}}))
+        {
+            my $MId = $MNum;
+            if($REPRODUCIBLE) {
+                $MId = getMd5($Inv);
+            }
+            
+            $MUsed->{$MId}{"Name"} = $Inv;
+            $MUsed->{$MId}{"Used"} = $MethodUsed{1}{$Inv};
+            
+            $MNum+=1;
+        }
+        
+        my %API = (
+            "MethodInfo" => $MInfo,
+            "TypeInfo" => $TypeInfo{1},
+            "MethodUsed" => $MUsed,
+            # "FieldUsed" => $FieldUsed{1},
+            "LibraryVersion" => $Descriptor{1}{"Version"},
+            "LibraryName" => $TargetLibraryName,
+            "Language" => "Java",
+            "API_DUMP_VERSION" => $API_DUMP_VERSION,
+            "JAPI_COMPLIANCE_CHECKER_VERSION" => $TOOL_VERSION
+        );
+        
+        my $DumpPath = "api_dumps/$TargetLibraryName/".$TargetLibraryName."_".$Descriptor{1}{"Version"}.".api.".$AR_EXT;
+        if($OutputDumpPath)
+        { # user defined path
+            $DumpPath = $OutputDumpPath;
+        }
+        
+        my $Archive = ($DumpPath=~s/\Q.$AR_EXT\E\Z//g);
+        
+        my ($DDir, $DName) = separate_path($DumpPath);
+        my $DPath = $TMP_DIR."/".$DName;
+        if(not $Archive) {
+            $DPath = $DumpPath;
+        }
+        
+        mkpath($DDir);
+        
+        open(DUMP, ">", $DPath) || die ("can't open file \'$DPath\': $!\n");
+        print DUMP Dumper(\%API);
+        close(DUMP);
+        
+        if(not -s $DPath) {
+            exitStatus("Error", "can't create API dump because something is going wrong with the Data::Dumper module");
+        }
+        
+        if($Archive) {
+            $DumpPath = createArchive($DPath, $DDir);
+        }
+        
+        if($OutputDumpPath) {
+            printMsg("INFO", "dump path: $OutputDumpPath");
+        }
+        else {
+            printMsg("INFO", "dump path: $DumpPath");
+        }
+        exit(0);
+    }
+    if(not $Descriptor{1}{"Path"}) {
+        exitStatus("Error", "-old option is not specified");
+    }
+    if(not -e $Descriptor{1}{"Path"}) {
+        exitStatus("Access_Error", "can't access \'".$Descriptor{1}{"Path"}."\'");
+    }
+    if(not $Descriptor{2}{"Path"}) {
+        exitStatus("Error", "-new option is not specified");
+    }
+    if(not -e $Descriptor{2}{"Path"}) {
+        exitStatus("Access_Error", "can't access \'".$Descriptor{2}{"Path"}."\'");
+    }
+    
+    if($Quick)
+    {
+        $TypeProblems_Kind{"Binary"}{"Interface_Added_Super_Interface"} = "Low";
+        $TypeProblems_Kind{"Binary"}{"Abstract_Class_Added_Super_Abstract_Class"} = "Low";
+        $TypeProblems_Kind{"Binary"}{"Abstract_Class_Added_Super_Interface"} = "Low";
+        $TypeProblems_Kind{"Binary"}{"Abstract_Class_Added_Abstract_Method"} = "Low";
+        $TypeProblems_Kind{"Binary"}{"Interface_Added_Abstract_Method"} = "Low";
+    }
+    
+    detect_default_paths();
+    
+    checkVersionNum(1, $Descriptor{1}{"Path"});
+    checkVersionNum(2, $Descriptor{2}{"Path"});
+    
+    createDescriptor(1, $Descriptor{1}{"Path"});
+    createDescriptor(2, $Descriptor{2}{"Path"});
+    
+    if(not $Descriptor{1}{"Archives"}) {
+        exitStatus("Error", "descriptor d1 does not contain Java ARchives");
+    }
+    if(not $Descriptor{2}{"Archives"}) {
+        exitStatus("Error", "descriptor d2 does not contain Java ARchives");
+    }
+    initLogging(1);
+    initLogging(2);
+    
+    if($Descriptor{1}{"Archives"}
+    and not $Descriptor{1}{"Dump"}) {
+        readArchives(1);
+    }
+    if($Descriptor{2}{"Archives"}
+    and not $Descriptor{2}{"Dump"}) {
+        readArchives(2);
+    }
+    
+    foreach my $Inv (keys(%{$MethodUsed{2}}))
+    {
+        foreach my $M (keys(%{$MethodUsed{2}{$Inv}}))
+        {
+            my $InvType = $MethodUsed{2}{$Inv}{$M};
+            
+            if($InvType ne "static"
+            and index($Inv, "<init>")==-1)
+            {
+                my $CName = $Inv;
+                $CName=~s/\A\"\[L(.+);"/$1/g;
+                $CName=~s/#/./g;
+                
+                if($CName=~/\A(.+?)\./)
+                {
+                    $CName = $1;
+                    if($CName!~/\"/)
+                    {
+                        $CName=~s!/!.!g;
+                        $ClassMethod_AddedUsed{$CName}{$Inv} = $M;
+                    }
+                }
+            }
+            
+            if(not defined $MethodInfo{1}{$M}) {
+                delete($MethodUsed{2}{$Inv}{$M});
+            }
+        }
+    }
+    
+    foreach my $ClassName (keys(%ClassMethod_AddedUsed))
+    {
+        foreach my $MethodName (keys(%{$ClassMethod_AddedUsed{$ClassName}}))
+        {
+            if(defined $MethodInfo{1}{$MethodName}
+            or defined $MethodInfo{2}{$MethodName}
+            or defined $MethodUsed{1}{$MethodName}
+            or findMethod($MethodName, 2, $ClassName, 1))
+            { # abstract method added by the new super-class (abstract) or super-interface
+                delete($ClassMethod_AddedUsed{$ClassName}{$MethodName});
+            }
+        }
+        if(not keys(%{$ClassMethod_AddedUsed{$ClassName}})) {
+            delete($ClassMethod_AddedUsed{$ClassName});
+        }
+    }
+    
+    prepareMethods(1);
+    prepareMethods(2);
+    
+    detectAdded();
+    detectRemoved();
+    
+    printMsg("INFO", "comparing classes ...");
+    mergeClasses();
+    mergeMethods();
+    
+    foreach my $M (keys(%CompatProblems))
+    {
+        foreach my $K (keys(%{$CompatProblems{$M}}))
+        {
+            foreach my $L (keys(%{$CompatProblems{$M}{$K}}))
+            {
+                if(my $T = $CompatProblems{$M}{$K}{$L}{"Type_Name"}) {
+                    $TypeProblemsIndex{$T}{$M} = 1;
+                }
+            }
+        }
+    }
+    
+    printReport();
+    
+    if($RESULT{"Source"}{"Problems"} + $RESULT{"Binary"}{"Problems"}) {
+        exit($ERROR_CODE{"Incompatible"});
+    }
+    else {
+        exit($ERROR_CODE{"Compatible"});
+    }
+}
+
+scenario();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/josm.git



More information about the Pkg-grass-devel mailing list