From 49e3ed9656a0caae65ac6e90bfc831111d4b1e4e Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sat, 5 Sep 2020 11:55:40 +0200 Subject: [PATCH 01/60] explain why not entirely fitting name is used --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 279fd95f5b..5480db123e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -131,7 +131,7 @@ "How many levels does this building part have?" "What basic shape does this building’s roof have?" "Select one:" - "Show more…" + "Show more…" "It has several different shapes" "What sport is played here?" "Not any specific sport" From ea59db73561ac7d7bb0135b859b90ac060b9014d Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 00:21:22 +0200 Subject: [PATCH 02/60] first step toward merging RoadSurface and DetailRoadSurface --- .../quests/surface/DetailRoadSurface.kt | 9 ++++-- .../quests/surface/DetailRoadSurfaceForm.kt | 32 ++++++++++++------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt index e4aff22029..231f857ee3 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt @@ -11,9 +11,12 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT override val tagFilters = """ ways with highway ~ ${ALL_ROADS.joinToString("|")} - and surface ~ paved|unpaved - and !surface:note - and segregated != yes + and ( + !surface or ( + surface ~ paved|unpaved + and !surface:note + and segregated != yes + ) and (access !~ private|no or (foot and foot !~ private|no)) """ override val commitMessage = "More detailed road surfaces" diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt index bd7ce371a8..6e201a4004 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt @@ -14,26 +14,35 @@ import de.westnordost.streetcomplete.view.Item class DetailRoadSurfaceForm : AImageListQuestAnswerFragment() { - override val items: List> - get() = if (osmElement!!.tags["surface"] == "paved") - (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() - else - (UNPAVED_SURFACES + GROUND_SURFACES + PAVED_SURFACES).toItems() + override val items: List> get() = + //if (osmElement!!.tags["surface"] == "paved") + (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + + Item("paved", R.drawable.panorama_surface_paved, R.string.quest_surface_value_paved, null, listOf()) + + Item("unpaved", R.drawable.panorama_surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + + Item("ground", R.drawable.panorama_surface_ground, R.string.quest_surface_value_ground, null, listOf()) override val itemsPerRow = 3 override fun onClickOk(selectedItems: List) { // must not happen in isInExplanationMode - applyAnswer(SurfaceAnswer(selectedItems.single())) + val value = selectedItems.single() + if(value == "paved" || value == "unpaved" || value == "ground") { + AlertDialog.Builder(requireContext()) + .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) + .setPositiveButton(R.string.quest_generic_confirmation_yes) { + _, _ -> switchToExplanationLayout() + } + .setNegativeButton(android.R.string.cancel, null) + .show() + return + } + super.onClickOk() + applyAnswer(SurfaceAnswer(value)) } private var isInExplanationMode = false private var explanationInput: EditText? = null - override val otherAnswers = listOf( - OtherAnswer(R.string.quest_surface_detailed_answer_impossible) { confirmSwitchToNoDetailedTagPossible() } - ) - private fun setLayout(layoutResourceId: Int) { val view = setContentView(layoutResourceId) @@ -52,10 +61,9 @@ class DetailRoadSurfaceForm : AImageListQuestAnswerFragment Date: Sun, 6 Sep 2020 09:11:42 +0200 Subject: [PATCH 03/60] start using only DetailSurface in next step of it overtaking Surface --- .../java/de/westnordost/streetcomplete/quests/QuestModule.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt index b85f44d778..da90795576 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt @@ -117,13 +117,12 @@ object QuestModule AddRecyclingType(o), AddRecyclingContainerMaterials(o, r), AddSport(o), - AddRoadSurface(o, r), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style + DetailRoadSurface(o), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style AddMaxSpeed(o), // should best be after road surface because it excludes unpaved roads AddMaxHeight(o), // OSRM and other routing engines AddRailwayCrossingBarrier(o, r), // useful for routing AddPostboxCollectionTimes(o, r), AddOpeningHours(o, featureDictionaryFuture, r), - DetailRoadSurface(o), // used by BRouter, OsmAnd, OSRM, graphhopper AddBikeParkingCapacity(o, r), // used by cycle map layer on osm.org, OsmAnd AddOrchardProduce(o), AddBuildingType(o), // because housenumber, building levels etc. depend on it From b8efcbcdc49f92e66bc92d441e7463c1c6cb196d Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 09:11:55 +0200 Subject: [PATCH 04/60] fix query --- .../quests/surface/DetailRoadSurface.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt index 231f857ee3..def2378e8f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt @@ -12,10 +12,13 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT override val tagFilters = """ ways with highway ~ ${ALL_ROADS.joinToString("|")} and ( - !surface or ( - surface ~ paved|unpaved - and !surface:note - and segregated != yes + !surface + or + ( + surface ~ paved|unpaved + and !surface:note + and segregated != yes + ) ) and (access !~ private|no or (foot and foot !~ private|no)) """ From 9a614333a70b65c4aa6fbbfe95c9977c956769cc Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 09:14:11 +0200 Subject: [PATCH 05/60] rewrite deatilingSurface, now it also asks about surface --- .../quests/surface/DetailRoadSurface.kt | 12 ++-- .../quests/surface/DetailRoadSurfaceForm.kt | 55 ++++++++++--------- .../quests/surface/DetailSurfaceAnswer.kt | 2 +- 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt index def2378e8f..62c7d99265 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt @@ -32,14 +32,14 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT return if (hasName) { if (isSquare) - R.string.quest_surface_detailed_square_name_title + R.string.quest_streetSurface_square_name_title else - R.string.quest_surface_detailed_name_title + R.string.quest_streetSurface_name_title } else { if (isSquare) - R.string.quest_surface_detailed_square_title + R.string.quest_streetSurface_square_title else - R.string.quest_surface_detailed_title + R.string.quest_streetSurface_title } } @@ -50,10 +50,10 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { when(answer) { is SurfaceAnswer -> { - changes.modify("surface", answer.value) + changes.addOrModify("surface", answer.value) changes.deleteIfExists("source:surface") } - is DetailingImpossibleAnswer -> { + is DetailingWhyOnlyGeneric -> { changes.add("surface:note", answer.note) } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt index 6e201a4004..2d31d4df26 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt @@ -8,7 +8,6 @@ import android.widget.EditText import androidx.appcompat.app.AlertDialog import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment -import de.westnordost.streetcomplete.quests.OtherAnswer import de.westnordost.streetcomplete.util.TextChangedWatcher import de.westnordost.streetcomplete.view.Item @@ -23,24 +22,8 @@ class DetailRoadSurfaceForm : AImageListQuestAnswerFragment) { - // must not happen in isInExplanationMode - val value = selectedItems.single() - if(value == "paved" || value == "unpaved" || value == "ground") { - AlertDialog.Builder(requireContext()) - .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) - .setPositiveButton(R.string.quest_generic_confirmation_yes) { - _, _ -> switchToExplanationLayout() - } - .setNegativeButton(android.R.string.cancel, null) - .show() - return - } - super.onClickOk() - applyAnswer(SurfaceAnswer(value)) - } - private var isInExplanationMode = false + private var switchToExplanationLayout = null private var explanationInput: EditText? = null private fun setLayout(layoutResourceId: Int) { @@ -61,24 +44,46 @@ class DetailRoadSurfaceForm : AImageListQuestAnswerFragment) { + // must not happen in isInExplanationMode + // this onClickOk is called when user is selecting images from + // list of surfaces + + // this calls comes from onClickOk() in this class, + // through onClickOk() AImageListQuestAnswerFragment + // that calls onClickOk with parameters - that is + // overloaded here + + val value = selectedItems.single() + if(value == "paved" || value == "unpaved" || value == "ground") { + AlertDialog.Builder(requireContext()) .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) .setPositiveButton(R.string.quest_generic_confirmation_yes) { - _, _ -> switchToExplanationLayout() + _, _ -> switchToExplanationLayout(value) } .setNegativeButton(android.R.string.cancel, null) .show() - + return + } + applyAnswer(SurfaceAnswer(value)) } - private fun switchToExplanationLayout() { + private fun switchToExplanationLayout(String value) { + selectedGenericSurfaceValue = value isInExplanationMode = true setLayout(R.layout.quest_surface_detailed_answer_impossible) } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailSurfaceAnswer.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailSurfaceAnswer.kt index 0e69bffc30..1480d5ef37 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailSurfaceAnswer.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailSurfaceAnswer.kt @@ -1,5 +1,5 @@ package de.westnordost.streetcomplete.quests.surface sealed class DetailSurfaceAnswer -data class DetailingImpossibleAnswer(val note: String) : DetailSurfaceAnswer() +data class DetailingWhyOnlyGeneric(val value : String, val note: String) : DetailSurfaceAnswer() data class SurfaceAnswer(val value: String) : DetailSurfaceAnswer() From 8f28544389c80baf40e358b8bc45d30d22e00694 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 09:29:40 +0200 Subject: [PATCH 06/60] version that actually works --- .../streetcomplete/quests/surface/DetailRoadSurface.kt | 3 ++- .../streetcomplete/quests/surface/DetailRoadSurfaceForm.kt | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt index 62c7d99265..6569a203d3 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt @@ -24,7 +24,7 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT """ override val commitMessage = "More detailed road surfaces" override val wikiLink = "Key:surface" - override val icon = R.drawable.ic_quest_street_surface_detail + override val icon = R.drawable.ic_quest_street_surface override fun getTitle(tags: Map): Int { val hasName = tags.containsKey("name") @@ -54,6 +54,7 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT changes.deleteIfExists("source:surface") } is DetailingWhyOnlyGeneric -> { + changes.addOrModify("surface", answer.value) changes.add("surface:note", answer.note) } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt index 2d31d4df26..5d8c3bc63f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt @@ -23,7 +23,7 @@ class DetailRoadSurfaceForm : AImageListQuestAnswerFragment Date: Sun, 6 Sep 2020 09:30:56 +0200 Subject: [PATCH 07/60] delete old SurfaceQuest --- .../quests/surface/AddRoadSurface.kt | 62 ------------------- .../quests/surface/AddRoadSurfaceForm.kt | 26 -------- 2 files changed, 88 deletions(-) delete mode 100644 app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt delete mode 100644 app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt deleted file mode 100644 index 1b7ac0207c..0000000000 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ /dev/null @@ -1,62 +0,0 @@ -package de.westnordost.streetcomplete.quests.surface - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.meta.ANYTHING_UNPAVED -import de.westnordost.streetcomplete.data.meta.updateWithCheckDate -import de.westnordost.streetcomplete.data.osm.osmquest.SimpleOverpassQuestType -import de.westnordost.streetcomplete.data.osm.changes.StringMapChangesBuilder -import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometryApi -import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore - - -class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) - : SimpleOverpassQuestType(o) { - - override val tagFilters = """ - ways with highway ~ ${ROADS_WITH_SURFACES.joinToString("|")} - and ( - !surface - or surface ~ ${ANYTHING_UNPAVED.joinToString("|")} and surface older today -${r * 4} years - or surface older today -${r * 12} years - ) - and (access !~ private|no or (foot and foot !~ private|no)) - """ - /* ~paved ways are less likely to change the surface type */ - - override val commitMessage = "Add road surfaces" - override val wikiLink = "Key:surface" - override val icon = R.drawable.ic_quest_street_surface - override val isSplitWayEnabled = true - - override fun getTitle(tags: Map): Int { - val hasName = tags.containsKey("name") - val isSquare = tags["area"] == "yes" - return if (hasName) { - if (isSquare) - R.string.quest_streetSurface_square_name_title - else - R.string.quest_streetSurface_name_title - } else { - if (isSquare) - R.string.quest_streetSurface_square_title - else - R.string.quest_streetSurface_title - } - } - - override fun createForm() = AddRoadSurfaceForm() - - override fun applyAnswerTo(answer: String, changes: StringMapChangesBuilder) { - changes.updateWithCheckDate("surface", answer) - } - - companion object { - // well, all roads have surfaces, what I mean is that not all ways with highway key are - // "something with a surface" - private val ROADS_WITH_SURFACES = arrayOf( - // "trunk","trunk_link","motorway","motorway_link", // too much, motorways are almost by definition asphalt (or concrete) - "primary", "primary_link", "secondary", "secondary_link", "tertiary", "tertiary_link", - "unclassified", "residential", "living_street", "pedestrian", "track", "road" - )/*"service", */// this is too much, and the information value is very low - } -} diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt deleted file mode 100644 index 1b35a796c2..0000000000 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt +++ /dev/null @@ -1,26 +0,0 @@ -package de.westnordost.streetcomplete.quests.surface - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.quests.AGroupedImageListQuestAnswerFragment -import de.westnordost.streetcomplete.view.Item -import de.westnordost.streetcomplete.quests.surface.Surface.* - -class AddRoadSurfaceForm : AGroupedImageListQuestAnswerFragment() { - - override val topItems get() = - // tracks often have different surfaces than other roads - if (osmElement!!.tags["highway"] == "track") - listOf(DIRT, GRASS, PEBBLES, FINE_GRAVEL, COMPACTED, ASPHALT).toItems() - else - listOf(ASPHALT, CONCRETE, SETT, PAVING_STONES, COMPACTED, DIRT).toItems() - - override val allItems = listOf( - Item("paved", R.drawable.panorama_surface_paved, R.string.quest_surface_value_paved, null, PAVED_SURFACES.toItems()), - Item("unpaved", R.drawable.panorama_surface_unpaved, R.string.quest_surface_value_unpaved, null, UNPAVED_SURFACES.toItems()), - Item("ground", R.drawable.panorama_surface_ground, R.string.quest_surface_value_ground, null, GROUND_SURFACES.toItems()) - ) - - override fun onClickOk(value: String) { - applyAnswer(value) - } -} From 0f8f1d4ba11b4ab187a4d7c29a84ec6fce221e60 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 09:40:35 +0200 Subject: [PATCH 08/60] add synonym search term that is synonym of alias to make easier to find this code --- .../streetcomplete/data/user/achievements/AchievementsModule.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt index 2ebae415f7..c81e9bdeca 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt @@ -12,6 +12,7 @@ object AchievementsModule { @Provides @Named("Achievements") fun achievements(): List = achievements @Provides @Named("QuestAliases") fun questAliases(): List> = questAliases + // list of quest synonyms (this alternate naming added to aid searching for this code) private val questAliases = listOf( "AddAccessibleForPedestrians" to "AddProhibitedForPedestrians", "AddWheelChairAccessPublicTransport" to "AddWheelchairAccessPublicTransport", From 572919e8fc6647f5d4e64536609341fcc6804d47 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 09:50:24 +0200 Subject: [PATCH 09/60] next steps to complete merge, rename quest --- .../streetcomplete/quests/QuestModule.kt | 2 +- ...eAnswer.kt => NewStandardSurfaceAnswer.kt} | 0 .../{DetailRoadSurface.kt => RoadSurface.kt} | 35 ++++++++++++------- ...lRoadSurfaceForm.kt => RoadSurfaceForm.kt} | 2 +- 4 files changed, 24 insertions(+), 15 deletions(-) rename app/src/main/java/de/westnordost/streetcomplete/quests/surface/{DetailSurfaceAnswer.kt => NewStandardSurfaceAnswer.kt} (100%) rename app/src/main/java/de/westnordost/streetcomplete/quests/surface/{DetailRoadSurface.kt => RoadSurface.kt} (62%) rename app/src/main/java/de/westnordost/streetcomplete/quests/surface/{DetailRoadSurfaceForm.kt => RoadSurfaceForm.kt} (97%) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt index da90795576..949681824e 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt @@ -117,7 +117,7 @@ object QuestModule AddRecyclingType(o), AddRecyclingContainerMaterials(o, r), AddSport(o), - DetailRoadSurface(o), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style + RoadSurface(o), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style AddMaxSpeed(o), // should best be after road surface because it excludes unpaved roads AddMaxHeight(o), // OSRM and other routing engines AddRailwayCrossingBarrier(o, r), // useful for routing diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailSurfaceAnswer.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/NewStandardSurfaceAnswer.kt similarity index 100% rename from app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailSurfaceAnswer.kt rename to app/src/main/java/de/westnordost/streetcomplete/quests/surface/NewStandardSurfaceAnswer.kt diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt similarity index 62% rename from app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt rename to app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt index 6569a203d3..8981a63776 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt @@ -1,24 +1,23 @@ package de.westnordost.streetcomplete.quests.surface import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.meta.ALL_ROADS import de.westnordost.streetcomplete.data.osm.changes.StringMapChangesBuilder import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometryApi import de.westnordost.streetcomplete.data.osm.osmquest.SimpleOverpassQuestType -class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestType(o) { - +class RoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestType(o) { override val tagFilters = """ - ways with highway ~ ${ALL_ROADS.joinToString("|")} - and ( - !surface - or - ( - surface ~ paved|unpaved - and !surface:note - and segregated != yes - ) + ways with highway ~ ${ROADS_WITH_SURFACES.joinToString("|")} + and + ( + !surface + or + ( + surface ~ paved|unpaved + and !surface:note + and segregated != yes + ) ) and (access !~ private|no or (foot and foot !~ private|no)) """ @@ -43,7 +42,7 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT } } - override fun createForm() = DetailRoadSurfaceForm() + override fun createForm() = RoadSurfaceForm() override val isSplitWayEnabled = true @@ -59,4 +58,14 @@ class DetailRoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestT } } } + + companion object { + // well, all roads have surfaces, what I mean is that not all ways with highway key are + // "something with a surface" + private val ROADS_WITH_SURFACES = arrayOf( + // "trunk","trunk_link","motorway","motorway_link", // too much, motorways are almost by definition asphalt (or concrete) + "primary", "primary_link", "secondary", "secondary_link", "tertiary", "tertiary_link", + "unclassified", "residential", "living_street", "pedestrian", "track", "road" + )/*"service", */// this is too much, and the information value is very low + } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt similarity index 97% rename from app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt rename to app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt index 5d8c3bc63f..cc93be9370 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DetailRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt @@ -11,7 +11,7 @@ import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment import de.westnordost.streetcomplete.util.TextChangedWatcher import de.westnordost.streetcomplete.view.Item -class DetailRoadSurfaceForm : AImageListQuestAnswerFragment() { +class RoadSurfaceForm : AImageListQuestAnswerFragment() { override val items: List> get() = //if (osmElement!!.tags["surface"] == "paved") From 540338cf7067de60a4beff59166ecd9c4527b321 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 09:50:49 +0200 Subject: [PATCH 10/60] include aliases for quest names to keep counters --- .../data/user/achievements/AchievementsModule.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt index c81e9bdeca..f86cb26b00 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt @@ -17,7 +17,9 @@ object AchievementsModule { "AddAccessibleForPedestrians" to "AddProhibitedForPedestrians", "AddWheelChairAccessPublicTransport" to "AddWheelchairAccessPublicTransport", "AddWheelChairAccessToilets" to "AddWheelchairAccessToilets", - "AddSidewalks" to "AddSidewalk" + "AddSidewalks" to "AddSidewalk", + "AddRoadSurface" to "RoadSurface", + "DetailRoadSurface" to "RoadSurface" ) private val links = listOf( From 5db5516f40cf4bc6049e904c5188e2ca336fb37e Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 09:51:04 +0200 Subject: [PATCH 11/60] drop no longer used translation strings --- app/src/main/res/values/strings.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5480db123e..bd7dd31683 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -885,10 +885,6 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards Multiple surfaces… Are you sure that it is impossible to specify the surface? Note the \"Differs along the way\" answer option that allows you to cut the way where the surface changes. Please use \"Can\'t say\" if there is a single surface but it is not available as an answer. Please briefly specify the nature of the surface here, for example \"sandy with patches of cobblestone\". The text length is limited to 255 characters. - "What specific surface does the road %s have here?" - "What specific surface does the square %s have here?" - "What specific surface does this piece of road have?" - "What specific surface does this square have here?" house name %s: conscription number %1$s, orientation number %2$s: conscription number %s: From 454cb70c556e42537f9efe660dfa74dd850b5a84 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 6 Sep 2020 11:04:55 +0200 Subject: [PATCH 12/60] switch to square images --- .../quests/surface/RoadSurfaceForm.kt | 6 +++--- .../main/res/drawable-hdpi/surface_ground.jpg | Bin 0 -> 11012 bytes .../main/res/drawable-hdpi/surface_paved.jpg | Bin 0 -> 10204 bytes .../main/res/drawable-hdpi/surface_unpaved.jpg | Bin 0 -> 10862 bytes .../main/res/drawable-mdpi/surface_ground.jpg | Bin 0 -> 5250 bytes .../main/res/drawable-mdpi/surface_paved.jpg | Bin 0 -> 4584 bytes .../main/res/drawable-mdpi/surface_unpaved.jpg | Bin 0 -> 5246 bytes .../main/res/drawable-xhdpi/surface_ground.jpg | Bin 0 -> 19204 bytes .../main/res/drawable-xhdpi/surface_paved.jpg | Bin 0 -> 18844 bytes .../main/res/drawable-xhdpi/surface_unpaved.jpg | Bin 0 -> 17974 bytes .../main/res/drawable-xxhdpi/surface_ground.jpg | Bin 0 -> 43138 bytes .../main/res/drawable-xxhdpi/surface_paved.jpg | Bin 0 -> 36953 bytes .../res/drawable-xxhdpi/surface_unpaved.jpg | Bin 0 -> 36500 bytes 13 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/surface_ground.jpg create mode 100644 app/src/main/res/drawable-hdpi/surface_paved.jpg create mode 100644 app/src/main/res/drawable-hdpi/surface_unpaved.jpg create mode 100644 app/src/main/res/drawable-mdpi/surface_ground.jpg create mode 100644 app/src/main/res/drawable-mdpi/surface_paved.jpg create mode 100644 app/src/main/res/drawable-mdpi/surface_unpaved.jpg create mode 100644 app/src/main/res/drawable-xhdpi/surface_ground.jpg create mode 100644 app/src/main/res/drawable-xhdpi/surface_paved.jpg create mode 100644 app/src/main/res/drawable-xhdpi/surface_unpaved.jpg create mode 100644 app/src/main/res/drawable-xxhdpi/surface_ground.jpg create mode 100644 app/src/main/res/drawable-xxhdpi/surface_paved.jpg create mode 100644 app/src/main/res/drawable-xxhdpi/surface_unpaved.jpg diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt index cc93be9370..8177791140 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt @@ -16,9 +16,9 @@ class RoadSurfaceForm : AImageListQuestAnswerFragment> get() = //if (osmElement!!.tags["surface"] == "paved") (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + - Item("paved", R.drawable.panorama_surface_paved, R.string.quest_surface_value_paved, null, listOf()) + - Item("unpaved", R.drawable.panorama_surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + - Item("ground", R.drawable.panorama_surface_ground, R.string.quest_surface_value_ground, null, listOf()) + Item("paved", R.drawable.surface_paved, R.string.quest_surface_value_paved, null, listOf()) + + Item("unpaved", R.drawable.surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + + Item("ground", R.drawable.surface_ground, R.string.quest_surface_value_ground, null, listOf()) override val itemsPerRow = 3 diff --git a/app/src/main/res/drawable-hdpi/surface_ground.jpg b/app/src/main/res/drawable-hdpi/surface_ground.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92451809bb9f5f8047a7da2b2ed56672f147b773 GIT binary patch literal 11012 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/surface_unpaved.jpg b/app/src/main/res/drawable-hdpi/surface_unpaved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e83ebadb6b7aa8bd4b76767860802dcf8df7dfe GIT binary patch literal 10862 zcmb7}Wl&sQ)2_#Go59^(2Z!M97Tlc>++7BDch}${1PKxd?(UEP!8IXB2#^psJkNXH z^L>9$ud4lL)!x;;t5^5c_j+1;+6F+C<(1?CKp+sH_`Cp5UjQ-yBrpU50V6#>kdTm& zQ7}d9|8 zJ6t2PKGpLGe@}mVhj-|FsU&>5r`i1l=nnnt9}j@IiZiJ?+4+ylgyIm9i&2PP=l@hR821b$p>*Nk?M}tM{%IE-g|T2`TUz@@ z?KHj<4}jC=r}_KzHcUG=*}Qp zHVC_4bt03fke17&ct?h8eP>mSolIHJ=&$8_HDC@@kw#X?!wo3DTTXA-mPKc?s`Wu&y zW6PV zSVnVnW^lcFyZn%CGaY2QHB6WhdMU4T>KwMQ!KKh;CF8QrYcM_aC?bh&{#xBphd{Vo zM?R^3Y{Vn-rLGBx7LIN(qb^Msro-s)f)XD3oMbFe00;yEf+3*)<{A(L07GE7NO&|* zd|GZEDFQlaK5Cigq(gnqMIaI=&u}2~T|M>|wzoej=Hx^*1y756Pb0GSyo+pJG-miFp(?zeK(mTIw2pfC%H*)P3meM7PZ&G#01!(h&Mo zvG@dNuYVL1d8CqQQIa6_ojelPwv3|Cs;z8iNk*QT&O9)bu{iRaXm8l5e0)WfbG4FT zu3f3`tN+&NUA^hdRx6;Qfp7eb6?mGxr>|lBIF;Nk-FS~dfKKNissh+q7 z`XJit;LjRFIZa^A?uw9Do$C8iG}va{z1L7Q63UW{t1lPaHYDY^x640BgoW*m+NmO! zIGNl(96a*t`$jeS$JGTM_M`>Z#y}?Umo)Za27Qu_KQ_f*5A68x4H&%%#WmVLkUPGz z^Lb@6v-t1Y%xHJoaZ>gm)sJzQlJT(PPhRA3uKB8Rx^T)$pZsO!dEc&xeMNcm>++(0 z0NPPVue+3`8Sjj8nDE+~!HIP3`sBT?c7wyiy0n4Q$!+<@ik`e&kkQv<+k|udiEze; z9|~sjN9XyU2Ri!HmD9c>Ys+PSVB}ePi+4JnWq=+1R)q1pFF)Sll;*{jkkHg!NFQxV5P%m4hR|It$pe9@^d2@&ynW7&hiIon)^+4 zJC+uPPe@Kpa+8C~-*tubpO>zXZsX^fC4x!EeU4#wVmKry zj@BQ3PJB0pL`*Smu3l!ft4V9E`=+jgP3enL|0_s*eRF*yt5kVaN>t*j_anu#_}M2v zRl3BGZGP74dtyE=v!1{R99gJUrN|{dNh>eBC2;^A@^QQZ6bbI3h;S`YF6&@+givdOu+-$omGu z7*c)O>?_);jW_%5IPRxPkbLCtqBhnLC%my;yA(=B`)P{f8FA%)qXx7NeVM^gMPcAo ziIBhJ)T<@VOL4+7Yoeg~d1U{e^Z}3gjz?1&V^RCEkhGru+qeDflnPrh9G7qg%=ptXsvYIwRS_9bng%JMOk>y5NlAP zE(!)-h4f$ZS82DI8975S!O|h!ze{*imz_uKK@q7;{TpvP--c+MO+5jOxGO@${r%xM znwE1nzas{4hWz#Ji?FFLypVvqmq)qk)njFp;?>8X`rV+mKjBo3-2Sgactb=d#vL^B zF4qrmc7eMZNg5+enKqY0v(M#?9`;<`{;h8RuZsdfFkCQ{29H)si(4A5Y58wudoF$w zz<4_WD|%*^4;5$aX*6}XpQCWoj2S+=F|s@XP(&`9n_qZ+jCq5rW&et4>FvUM`#=JP z*tC?Mj87<#M}_L+(WF9ZW?7G+Sy~o4dYc#wpSTy4Wtm3%Z?>HYIYX4gMX(23N4Ulp z%|sRRQ{Xt>@?%E(?AFigbe;)PJ>~1G`LV& zIJcyfmL)zl-M?;w{&CwI?~13DwO6*l$ENP%aq{vLz&s>#CC=->z5ZL`24?b+@A$^d z?)k3M^o6awHcQ60sf||QWm!k1ynNmkiOze>UXzFn+ZR4xsM365b*<6^Y_k%`Iu5L$ z+D1&uS}b#puh7WpUpNbvzC5cqe(l$>9EP2>w!i2vJ%uAiRZpI0b7-TYeu^c*<5iD3AAjXW)C=`JLMZ zyHmo&SCsFvoeR37bsSuNE~WTn`O=QV%ciKtTWE|hwd-pE<=wV?r>}){)#Bd z!gTq+aAWKUqQw-nG3O>1u$7aL2gGR%j|@*twIcVsLpAQz#XgLTJ?cFcgp?-7-G$;Y3rYql!Mwxaml1|J zhd&r?9@O_s;;uRI3hw-c0;sXjCw7G=q8}3&*kiMZIR~#j!sVT%sY`6W@90eLNEWUW z=&>#tm)F@RM3sibPfW(SH!=)$tdj2Pugj-bb~fijJ~q>=y~IE8k*S@3m2jo@E%74< zzqyvyRrL#z&vfP+Y*FR!QoJi`{gVr*9jXqL-QpCGE+6WWHnmdGb%}NaaZ!%Lge&rK z(W&G1wdNWYXw)ZlrE^hhDC^8@U7D~bGFc-zcpY?{m=R9ptetex8)}Qwg!xf%Bs(|6Sjxp~q^!d$r&^JsS83?)hY*}m;?vNe8WaLUYECo!AUMi zYX4J3521My#=#?ZtD)%~;(XG5vE6+x%JXjX%E>e(V-(md{)=<# zI9=*tdxPc++SQ@@?@1+HoM7DA866TjqYA|m+pOH^s)>%=>S?s;)98B>mm3oo6FJ=( zec!rW_iJ-E>@ypMA&)BiPSeb`S?)iqjTqnctlGPFZcX@)+l}aNx_Ab=g-<(7wiJ^l z2c|)G8GB?*M!I&$;R&p84)0v_Tl04aW<#svvD8{DJUJZKDd!dzflPlEJvmQp5k8$T z#^Z6v7=BKAtk<$=bom^(jy096UtVz(E)8cL+b2bZCzf7GHR0%v`#UcyN62+KmzSQ$ z5Z43?QKdTK30QmG#;YWXY}N(v9xFHO3fSevVSR&_Ha3#wIB7t+hl zBWBZiqffqjzh1VCAQ4$BC(CE*W^XLB&#G(QF{!SrgEJtNWz}t(66h{N83X8KT^MhS zo5{UorvcN`b_pk_`9?j2j>=PO3U`^o^@h6IeEXg1ld7KP|FoEYvHzL;|H1x$y9^Kp zpy7UQE$+|7_kI8T&IR=HzsxT|1Bw0Uh3uczF{%YZqmEWQ%jJPVZAn>RVlR0ah zIiojd;hdJ5UT)J~n&oG%6Sf9anRYv2c&NCl7>wH~L*|CMs}HT;zj2Zo3^%(t4|s{H zMD7T^ihb8lt8{@X1g7~?u>oWs1rdTUFpz;|nB@!3Y9a{fM)^JNeT=d}1XB~uq)_!| zPy|Ciyzg(GgCb6Up#(ghoJbKw67g-x#fzff2<}=bYI{iVcSpgNL`(faat2%HO{-8Z zv&7GVsljl``ANc3sOFu99l>LHTb05N&@wCxbyVDJN~*9}+6{Q1tSm}S2omihr4KIc z2Y}Fu)BAuF>XW`;`qJPjo({Cm5|Yf$Q{I$|=ye38%oM$}KwegKN24vG0^(8NU`F4` z9SK+@juf0=XG_)Gj}*ZN5tA)}<$*?4c$MrUh%kKOaBq}j$wOs595~FTKvG7i8#ob%ET0vc8Ipzy(3Lct&j?m_Etf@W<^zbsTA=t#GWF-0RQME&UYkRL}?Aj z6*vcqfNPd(QbyLii*zTHKt!+tBY2#4YdDFzjoFgpI$nf3nRz5|2G&4*kP|iXT>DB|Ew~W>@uU(q9~Bk9 zDP+#mXl5|N3;q(H9(YvAPrJ`^Lz>{t{7#EOJ* z70k92C>YAyQeoyxDUupWrYC?TTWP{}6m)m)-cKzcHQzY-;0fqphd^-F6F@Wd^cSp| z3RMN<8zsjsIh;~yhmt``M2_CVlAR^rN zaJ5xRD(sT#4l&t0!x?(gM+}wtUPGQW%iIL_+jxn4hxhYt!y$9cp7ymQvK)f0@U`YR z4dcxAFo0ke`Sz-?jc_L%Wl$U&TMS*w0 zw4-_IbHzK;{bl{vV8RbW^44LAlF=Abp!eL5w*YDVt|(}-?Bs#~P#CaD15!Shc3}g= zL2AJ`9i{Z*r6~0Bk)>nNIaUqJpr~XwqHFGq-z>ORxE|=DK!>6yO7!+J5sjFQMgHk&?0dVL6{Z<9l8Q+ zZaP-8Ih^2W7L3o~??3jQVmn>80^TmM+68R5b#B*?v&Lg=J0shwz2Mx7#b~}XNJ6et zVvCamVjDxZ5p1*yP3K4l(=uN^S70Voxe!cPgGQGVIc_n_|88fS*6^3dQD~tVB;eak z8N-N1J1w-7ehfiGF8yC)EdBN5j zkPluLqY_$->I2#lhY=7z)hVve#2V(0(T>JsH)MyrV zX=BSD4?Iex-GsQq>5C+3)>LSbWlPsF&Pn0%7%cuVO^Vz1BGFW7B)0yDH6TppB9e-U zXGYS#lhV?SJPQEy0f$>+#7@yXGJ@T9@*{Z!-p1Y;u4O5~4D9il5v0^6+l^_T7*Ih> z^!7&gk$IQ^@$lFCMJ7y#PO7pzPk>m9&WY2Jo&f^>K+?QH7+(lfL^BM-7Ujbz43VS0 zZKkAWp)>P|&Mz$ZOb!)KfB> zbWxQ{=3*Uy7E{bScx!C50S>${9FC;p|CgDwkNy(pm!(Ft{W?58l`hy5jQU(tcT@w3 zolx&G!yFc5=%PPajDdufKnK>G+W<)It5}V^)mSGB9Jflrw*zDBFF>$1Y24ixWJZU` z4g(Wa040I~L_8o8+eDIn#Qh<&Qvi}QHh+yVfnf9QNA}=N#V*mZOc)eGiH%pBH^8|M zS7~<6E`<~-g2FV{dDK6jqO-w#B8hWTQ9M)6cuHYtmIoTojPtLU4)|x*hGKp?i>U$z zVn}w?qYjM(Q{&*uG#P160OHzFsVBhf($V=d zhf%`*QTU&y;QtK5|IWfN=zl5DQg&(RE^P zGe>jJK>J5*3h@FlCh#~(>(Vo!I%j&NbR40mFV{9kZDSGk^=DSLDD8mFa{3v6!B-y~ zJ++`-`j1u75(V&VZ}8-jy4mLM+mJ86qyT}x9*|Z7vOQ=$_GMC2&n81LsJ?6$rHaP| z7!n0U%jGy1kV`a@_-Hiac>ImLjAkNv^&8pki*v!)(Qg@{u^s1aA$8R4o&8gP6=5M2 zVL#XB_~@SF`&VFw{8!5W0-i^GDX13pGijE=`~L%(|L7Rd(Lh7-F>Pa0OFXa3Kk`bR zBo~(tcd9LqYUBftwtymDSTcj#Nt-uHv(D?yciF#eIQ1AhEdtxQ)0M`CBc?*Kp8!f2 zX>=ki4C`nZH%q=4UUtM5X&&s0nJFag^Tx+ULhpT&GVHlK zO|Z*6J90vJjU2Eq?1tAV?_>!V@IFd})?kO~G0gF-O$63OR?XAgq1d`u_Xdco0|Nyop^D32f97R5)9{ zLmcDpuMyUOkbOBzqGH}~+VRc=<9ENP$~_aob5e`hib2jUSr-qBO4Dn$LC)o3-T?NrSt0AYhU60{+0IXhl_|u zBtN*l<#}FKnu+5NavMCG?)%O%Kss`I@}kaB zH*QiC+>evFwvi%ePdY;Fw-Bwf6w7dKI07AesrM}A>+!xgUnp^z>@js+KNocWIu6yM zuO=vahwjaKq=@(M4wn7f3Vs(o+|++{n}QOyd02_8?T;24*29tYokt{`@ivXsTzozE^asXPkIP9aCY6 zWVmlT70k5kIcJ7X#4)m$RQSeiRGNBba3MN4J?{25^j5qK;_S9j|=??eJ+}?*d8g&~I*{HueAN3$MVELKvu7`RwzJ(=C9y9v5pI5uN z;M&k(UE_$wM@sMm66J^PUP;5E{RDtJ(0u+HhDdw8rf#12k&hm9{f#G~PmQUa^1TR` zrHIQ>Nd+mM!ho+il|S0RG}*RrzzEsHQtiRncE1$+-0AN#j&Ts%)o!XJ9jcdQ7j09F zVc^-vKPyfHriDdG0~87Ax3?plCyC9kaeY*!c3l|BX1C181d}HhcIBv*TJ&F!baJm? znh9FGBVVIKvlALyf5xYXNt-Ykw$rq7=-Jl@o>}C#CoW&ZN4Clk0=L%+P4B?^@$Y{mDjM$QTq2g#Tz^qejSK%e#~xKzd6{2oZ-gFuARpFIeBIEUyHFS+y3yov zURiAPeeBZ8{?jZrhGmRZ(d6V7Yg?0$Uy4CYyt2E*DxUy~&6m+VqM?opw~AbXz4_z8 zewKz^6nRUi1Es1@c+_-|l4LjMpXq83pX6u39lesOXKJC3|8H)b5G8i)5nn)(`pV_m z8Rrigb^K3Xe;{4qry_?fAFYrf`4gWi9;9(-QC~L1GrXmyLb(iQYDqoI5bjgvQ@XnI z^cm8;S^R4qWCRKuqilMx)XAUl8$t0%6BgTD4YUyV?sgaE`b(lI6Zdxm0NWjm%2g=+ zO)fu9xz!w@=uk3_N6WxJA>Qt>Qtz}iFx8&8EgR&D>Jf*y73a?%Pk4cYqb_Lqx%J-1 zl{`($_~UhA%zmZ54yK3v>?pWjYL_%POB#cE zg`%?NP|bu!phcS{BRpsvEf01Zg{NOvln#UsvS_di?niL9IC0}B39A<=Fwtbh8Kn>d z$ZjH;sSgPcwnMaN?~rzG!;2=zA4E-n=^kQ5CxgZWXnqa>!(qINa^#Nq!*lNk{NLIn z1A|m?q%)gk3=QRM){$-^2hh8yY^#r`xq=A(Vj6g)X1b>_+p7m2K`)958bnhmUq1od zFS)>vSHES}G^Ra0ItPHG)nvm(@uM+!{nrB2Ax)HXO1FR9)GH%v zu4W@BsN*ptQ{%o5YW&ebdlA*wL;j9Es zE-_;y8KG8OV~MNv=JeLx`TRL=eqfWAI))VbMq#q1CVs|ptxqj}(_C~aXKI38W|}GU z1n?X3l+t*ACp?T;vnxW~C8G^#fy}M9=132Fb#-ice6EVOM|2qWYS*)BIRd39gUN+Pj5`{2JdTjc zUy-bl1)_g`V7VxUJEqrnc5|8y4bj)Gm;Y4THcj|ewk8{Rc|U>NN@`VBd_iV{^?^&iluR>IWpuaq*mf9*&jz>>DE-uyxUTNF0fO) z^SHRUAACcZw6=%O{6?^aAEZWgMhb4JyzgiAvfmLSyPScgpRl%#+({TsS{3b45T(Su zH8BM^tf7*2t!`nyO8N!%S&l~DoNb>JeCGJKcpt@~-)V&6hTLui7Q}X;Q^)FlcT6tZpqM4K`O2=^5xA80N8?Kr4T_5+Q z2&Lldz(12_DB5=O;qP9sPwVmn8|g&}Rt>@MJeq3fmRe=Z|I+CFU=>4A^H1t{J z)-}xnM!;^Uz{wYXcP+AiQnjvb(c=B;s&F+>UpUk48UIxIgDp0ql~Sftt#~S32%+oG zo+`+snX65Vk>af`=zq0o697LRpkL)Jy3$4?=1Z>zM-`0c!Z7f3-aqVSbBM48dlvRY zXMjhEqlj~6Z)OM~@&JEMVi+8FQ?Yxz-5=&ISEd2{Rp>~5vCR>^*M(9n)aW9eC;Qp0 zo{GtUOJHDa8(mJw>At_JStT6AcapHWLaX*o@H8Y*Cr4>A-2Rpv#p0vyj7Rcrl;MvN zW?8}n@e5`|l_(KzK9(8D6JUzEUqE>CQLwPGn!b%?KvpfJFgenYLH_eelic0-2Tr48 zS?r(5cGMQ@v2Je`v}c;geHBDvODH_Mjme3@8d#2F)?ckO3&r*cILMv={(rYgZ5WE$ z|BNmS=yZ?D4&8s#6vtUT0%01VL3*2~B8p^Kc;2c;r z+Wmn8>kGh|vtYr{LM0`OwKd>)OP%G)f>S`Rkg(L374*fyG#m*by3#Z=yW3PfFv*A8 z{XKkS3No*cJ>DTrWGMEgwpRI zPUXjferi)DT1*In4Z%+2Jw2;zA#`6?67NXjs(6nalfMVqtpF>Q8MeJ`Ax>8BzuPD^ z!q3Ijew4Ou?~3mSfV z`OhR8Bjdyr75kYiB5}A36u-s)Q3$rdb;2HtcQhVo0&uO^!zPoQs@f*BbtqxR!$i(~Y?W{=xVx->%3;q-E7RMkF} z;YxZmDR9`CjqfwfI%LDhTI-Ib86eu+?HLcLCo`>DV7qJxR6dNg_FnSC3+ww3$gWv_ zyYJtLq^bFdPHbLuZYVwz&9FxK#jQ$ogly6EarPKJXk&NPA< zo}(i!ife=ge4StYJbipW*aseT1?{dCMS;7z_Wlg?(;1w0zA|7|!hbUw^&`;7B9V;4 z8*pDF7T{^jhZ0eSngW?YQrQKnZrJ_Hy`7YotcO*4!^a+p{NvvyI__k-YUaT=DY%1U#O^eBt|N7^s4<#3W?&Z8!M*$ z?RAq~I77%Q@_F+m?i Y^&X+Ko58Zyn=Y%l`gUP1{Ivdm0Jei~6#xJL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/surface_ground.jpg b/app/src/main/res/drawable-mdpi/surface_ground.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1f68224b4a7fc03c55f7473c5c662738f008857 GIT binary patch literal 5250 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/surface_unpaved.jpg b/app/src/main/res/drawable-mdpi/surface_unpaved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79685b6154d3fa66a9b166772682f3b3e6987aac GIT binary patch literal 5246 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/surface_paved.jpg b/app/src/main/res/drawable-xhdpi/surface_paved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c749bf9fc68487dcb53a621cb278c885f4e50dfe GIT binary patch literal 18844 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

}%9GZDpbv2UqSw<5ngkg1MsKCo$c$ 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/surface_ground.jpg b/app/src/main/res/drawable-xxhdpi/surface_ground.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1001d0500a2c2e39602aa962fc8115ddd7da0d5 GIT binary patch literal 43138 zcmb4~Wl&sE)8_|Ea2wp+-2wzjaQDI8J-ACCxCYnYHiHFs2@E>8ySoJsp3SrSK3laP zx9_d{;db3qw@!7P>i+e=|1SOA0$?l1$jboW;NSpq|1QAaRe&S_2>}ri5drDn0|^P~ z-FtN8_x}tF4Gjey2MZS$2MY%WNI*si#3RAS!6Bk1A|WTIq@)BA($LXR(2-G4Qv7ET zxPPC%fA<~}85xrT4+oFp|J(ld0dSDvzQTP)fTIDx-{!2N{+NC5zNg#Y~Q|1|_e zICvz$yZ8T`#BhNB*9QQ=!6P6d{apc|BftURu@SKUy?N$D4iQ}=U&BTT=t&E|i@w>2 z$oKxF1M}mgMB~L_zA2x1Ou{+5zkPFb?h>osWWUW8*RK-;c~)-UvvTi#u1!m>e?|t# zBGJiKvMH=QoDZSS($P#ZdO~4*ufMbF3?4r`dG_R5JWYOYIPOt=_%p-)lu!-n5PfM3 z=$P=!7tQq-w@SVfs?EO}wywe~%?Xyi-Z-t*5m9ZqHqag=-L~n) zTZfGT39E19V84BLQ9g&NF}uviA(Mr+CMtMTio$vEqrW z({Fmp0v=6wzK+yz>Wib^E==akjr}THD%SS~sxuGj!PSKH7YfYErFL&5Mlh=6eK+A9 z&f2*7V*cUhPbubL8+g*Gju>u5zv z3o`Ept<%^6$0~0?E*3&w=CV&2N@s0eTfIyemMh7|8#Nq%0fG?)342pN9&_*IL#g}GI zU#5fXEYv=}a!Uh$*%T*pnV{h1%C(`?cVOW|yad$aM8$o|iAIl?h#F}g@2VSf!d&1x zrT#jG0&CopnL72VJVHzb{VTaaLS-)I@S;8*{c72o-?B1JWFb?p=4nIoH_N}Y>?(#3 z{RXFL^P5mF*WB)PTWpZlz~Jhw{yZIG6_bFYh45*7%g?K(S@d!{oDhW{b;;N~`}JQT@oM+dNA-Kh z4VgCuiXhW>bKI88(S6_7*EIxD>PtgxXWF#J!vx4gv=`y*N~vCN8#fZNakt&+y6KsJ}>qm%W-q8(41L;xU*!p(9_zI*;!^u{1BB2}LT%Vz#r+Tk+s`Fx+p{ zU=&WR(TyH(Old6SdB+<9C3mw`$urwA1PI$DAdQgA0D(F+!r@=lnilDc2tzKuB~aHmc^&1BPZP?9W216hF<4;86=_6mDa9 z=}TDe@_<}OjAT|&SXeYEBynh_{Kh#lm>GVgH?cqrD60Gpl3TwydngQ{ntNagouqzD zEs2*Vw141kz`f1;sYo(Tk1j9p9y#h%u%3<0!fd@ubBt5PZ%)r4(U(46p9g`8cveA` zQkkS&A5`il#*m>%91CgG^-xIpK6+Q?j3N`Z$|XuvlGez?rFq1uh?qWgk<%b-Q}9&( zwQN*EG2CjBkKV3ESHt?6qZ!tgkZMs{B3LxZ-WjcE)7v4{W**_$xX5;aGc&}VgQk_q zZYJ@WeOW^pzqa(wuX;{e3iZ=>nfl-G76ClRpMLz*eo3V+YWFb@(ssy$#_EyplbbaZ z`#IpUCBeIPkcTVCCm$xLrJl`W?m3^C39f~$u_cw4*;am6A!o|&D17JONnR*uQ~@B^ zS9T+*Adi>o*SMBPKUGYNqEok)`FMBy~O{g-e#oYDE!K*N#xJaY?vNo((@FiE9IXR-}_U^JHAk5fY2(R!Z0w=GM93flGeF#l55ClEfU>=bmoYLuf~a74)#SXmyY7$IRojR@8_Xj3RCXUVt^O{ zbyQp~o$4WMGybVfMWcZ#yskYwYDA`(%W?e;6X`ho!dQ9MpH$Ted}B;WOLL7HS^fcw zc^@xTzS!;qXm-{5&Z25%N*7nOf{E|@Snxp8$;xE>T$t9JgzUgQbfFdxBsu ztnl6uN%aPM3?$({m^s5=-+!i&AulBwg*8`kF!QTqk5+Qg!*P{*iJv-P5^i`cUwK23JJ&wzx z`V9;TN0hvX7NdV&5YQn)f1;QueQgemErfzkn8& z{i19GzrTQ^UY@R84lJ=L$pm@OUO>X}K&iMLv7TV(C}+owC;v+4@2L83I>Rd^AeX{< zseAi?_@eEsA-^qFA^n7^y~elh-M;|(vC&cy$MmAr%qz7Q39R(WsQjkuO=jS>b4}%& zcQQy%^;IubHMe1AGNXO8n+I0?lC@tczL(2b-wcxw7WWjcp1juXA&tNO3jpf}CtWKB z$im)!Gn@~YP+yC4qy>+?WDvc8dPo*;Sf#TkMCY_KbemT;17an!&uRshilD`wfvNGX zQ^2_NRg1H6X~q1+t{|QX6S3b(9ou%hdZPj^t@3Z5uU|g;)TTH5(QC`)V>UU=iKSgmMW`Z61|m8LracSk&6pub5y zRQ!!J_0wN~KPP3#_#WvST6QATVKeC}pvI`_%{O;NuyW!66Evc1T^qUOY7pxUy<*GV z{H6eT{ao=YE{ENE%GrsaE)5Y75aQF#J^UB&z5dj;J>n%eDN#E2`?=0A!NX?G7JFxc z$s_KyPiN#`fZgK+C9#^;>@R2iy23#PQ`NQ_hG}{k+kJwF=HP??8`6}KM+zH~sLlij zgQ0_K_J;v)^{bcD*0RLpT~WpB0E^Lsn>5HlfyQ%orGqNvi%o7GriplFXG{D2?lnt$ zHGr{vlqf}b1y2@f@$z@e!cGf>a!1tL-v*JzsW_Se9j4@9l8wtG<3Hah5FfT;1bLa{LZZki^2F^G3st+FD`M6R$qq(f4N{ku;)ypb)C5*;gd9N0uREN@#C8 zapVScgWib^JWS@5?)t+NJ^fx<52*#MJ}Xpub8vLI)KdVM*ul<(ut3kJVj#v;73mk- zFtz$nPK3(T@fT2goec*_P1&s(V-fJBPT+i`Ds5YXVY$R5V$~N!VZI4Qu*9u4l?vVy z>B^iv@m)oI$}2J#0379fN-d;;oa#*&P`Fki%efmhp=E9`UevTp9kv9NO-sr`C}^GeS@tX47jFMtb+kjE>uiZt~H~2E8nnD zAgw3`i#n_+DdErLLF9D^PJ(wSB1(*>)k9f{>JS4_*17(eqWVm+2ZsK#rif;lJh9Sr!(W9@gSMPgNoU7>SGOa(-FM53-py+`Hj!haNDJI|-;27)H>H zh5$wD&a+vu-CW|s=sL*>X+KucsdUPRE|VlI%wwqOg%BqgtT)lo>sP210T?waf<~h( z;K-4grc_v;gC)75;1VEaU@D@tbHbzQ8EE~;?u-bzGL#z&6ro$pqO@8TUixL;W*JA0 zH9}Mdc%pknNCm3I|6%5^0%U!1F35tu<0TschtO(DNuL3ETr1#1q7HO&;mb@i zSDD9_8*D7-$eRMQ-_h7Kn-K~sEVX-E(efU(!836Y#7E)C8An(IN~nBmLX7@*WJuY5 z6odx1omufO$4O^~-I|Rd0CmDiG}BB$8S1&-_90|Sj+NYJw4cd&aQJJ@3)%l*{bYnw z_0Ncbj!O-xm{Qfe!gIsjJtx@sYOjZICw}ry^wh>dFvH{AdgGxbzC$#`jR`9XZJzr? z{O&Jc$Y=5WN3563WASTrM-&~E?k4Vc1Yuum>%m+tCN`br)1rH$V?sk~Lv@2=>k+@H zpk}O41njhLB!2;itP$J|iNAsGG)S1B?x=U(pT>XcMU0%Z(I8YQDZaN_lBx6RN9mrK z%>l|<^2~?;U32^Y+!pl7n=hgMtBwJIrh{zHpO0mDLfh_G$8es%PHbZzc)zpq9bQG; zfv0V@2tpQmr$4ARHamohy{OY(znFc;({%hIy_xX6Omcte4scG2+X^+C(DJMQk%^8W zZ!t$(Moyz}8m;ja-V`5g&w{WmVRW)}I#hystm4-xa#pV?vg2gYfZL|DcN$^EyxT5J zMZ9ho#-y!LaNSu^by2I1^oU?8Hgc8(cSN+_fSwA`Uw1aO#R4rgzJJ)c`0#L1`LzADX`7PCnwO`xH)DxHf#jI*9v?{1qfYQf#HF2 zLJSeLPpdkYsGn=coKOwf5t&HFRybScYS1bM_O8fyl-dlA>y)dN8S5_qdmudiT%ze_ z$QoSjw#tU`%y}^SuL6K7n+=PRXAEjk+ZI|A^$%7-s3zw~enEx;QYEJCzkY8h2)Wk1;N$}1Komg-@;BbwbfPz){GqIU)a-Bai{?_f?W`zr|Ec3HK5Kw9JCS4H_2OYwF z4SVK>&bFDTlg_VU`?8^~f{P1B*Ky3c18bW-dQGXA3X7t_ zu+9s=eV%P^*?gv=ey5gr8pG?0fSGtI5sqSgVwq`Sts{SJ&ZW*46Xm(`~ikfwXiM&og=;zZ{qHt_zMWpHzy85jJ#dgNJ)%jBWq!}zJN zYO#wGGm7ko&jo%_X%LM#Zx1)WBOJB@+H7J-0d z)3q@;;a}Js47;MC1iC<#5O7GCEOn_IabC%{IA{xgX@FNYVrFRltnMexJ$!DuftCR^ z@221FKO8*S@IJ-;!VjwxU^Xrm^)ROxzNhLnWks?zt=`tQYXY;thDZiURmQ}JPCU>- zh-5@XK6h~h^m1bbUmY}2bCIBP=HuVv`;&iF(s~;v^T%KVO$?_auj{IRq%x}$ww6fM z6*I5Y9-6u>pMnrUF0wz*GX#Fm2gGKxC( zu|_ReGttLO^%W?x{+8(Lhg4VR>zQ4vIJE^+^;=`^6i#WAFe)wEHszYy5M_g3s(r*y zhbm&t`EK)y-U|uf#oPb#!TG{K5brLb0_WIF#u6glX${9+b!shSu8WP(GQBp`C}|~~ z@P1nYvbjeuxhtZXhYD@c7K5+>bH-JI^I%h|vbgAcGTMt_IE5;ugQ zzg!2RW!h@7Oek%}l|-2%K}JO}SfIY@e04ydPuG4MGCX7b8ii>_l)t$WN2D}n_!EdD z9?S9_0K^W@96sv(iZoxI$S|PJ|63iiH`;{_n~-Et|5P^$E;o$$lP*hD16+GJiUZt> z4@?z70pc>|hg7eq0FyauHXryE?$&z2vU>?XS$t;J8xnVcD>aN-#v4VfYi8rm=?-r= z3>j=4(*1l@(T8U0t3RVabME9wN=rM};osqbcAkzXU{34!ZNBcS5*9DIQDICuJ)Xq+ zYhp$9?AK|fA-`|JIDR?iLW2DWYyHH#?)-*gzrKr!S9-BNJx2Y|YBRy|qSE*a2r>uM z6*z;X^~{I^DSqXKvs!f*TXQ)UQ49*Jh2oMhMQ3^r1gYiAQbFMbsBERCe_|Q!%GcIp z#(ZpU0Q8OkQbgLreCOa?Bf~h_Vr{%uMoaEBnzOOtr+$Uop}`@K0em&v9Ju24V*<-( z62A8HyAs;%*cMd%#%KimdI`SnqDd0(z+Df?pJKo~l)~I%u;}^}o+}(tFV@g@hnE63CLWU8 z?0V}EY)vsnlRSk>8-mk>^ff0Ay+0Em9vUm+X!@QJUfZ;SCXt9>_1k{H**NN6J%_Y( zC>Q{;L@g3r1B?>GFSL47)7yAzeE)8ZV^jB@s_nP)p!~gUF^1SSXfBjN0Ao%DsY%Ur zLipP|lw16C1THBe+Bxoi!ZqwMiB})ca)n{;SWTeY7*+Uk1}Zf`vNq`&YDR4|U?-Yt z3Lxwm?8+o_1Yhp`B}9>4-7ObDSODP&rO?K$~Heg!!B+Wv(gQ0$-}@5^~7jsEtU-g3X@V z%2Ur%u$28@)7%CAaWXvj+%k$eBKidz8ZjR0TrGx~ z&Cj&us`s|@2f;+!A!h`8!eN0hR^Sk7UtKK0c8%r)eHGogRfNc>*`yXP)M{jrq? zID)MjXyhfZkcF5LiEAfLWPv)W&v~@RGWisE>*~LkVDa+;qmeozFypoy*l4AfDC0!5 zCp;NjTUaH_DZ{kop{{{#NtG;ENXMHrk~i|i%@yS!%Se(-<8Q`sM}l~ zmJA({EN`Ty#h;#5&mk&=RkyMQV=}4bhg#Tl`Eg9uk>kX^#U)!C@i^PzIqH$y1C5Yn z$REs?qm#R^2$~Qzq7sdweQ9?G8k)+L?4nl~vZlyTP3FK&JzNe#;ATurqOG4yVnMR7a7s>2a7&TJ&qNDQ@;!R;)o3XM2GRN4S z*+&D_;$w1yr5DQM*37YQgrcK=M497WW@qOiALHAr@5Cex?~RC@UbTnKRH*7%Ct6u` zgs$OI3v?Fb$Y?Hm1cJx+dq`qyx~S|KLq~^6(*ejp@?t@NdFBLcpPkMTy6v^ z;Acb{E_Dfw|Hcdaf8u45+T1xUaqN+jy(@O2%2=-c$ik}7JkO7vPBJh~*T(u(GDu3C zEs}g$3TH?C2^M3;5mU&U&g920AK7`$q2gRs>`7C%?_?i4gh=ct4!P+|&T$=kr;YyAcbd;n^+H;UO8a^go+9%SZ~u zIck=#XWkx>_(<**LnqGg4E*AyF6UYk#TZDQ&8BH1AUk3nQspMpQk3P95TMF>_$19# zjj}AL$4N{`bXy-DBfzJQ$13;xsEoHbMNInMO(_+eVd=pzo~~z(%NKilH5h457dZ_r zQfk&&HosQC=6;j36p4v=i;9&hbHhuJSjMA?)@MJE#i6brbyNr&peC!6YgC6GDM_jC zeL<7SGho{ZCs0<4eUgp|4_}suiot(Hd&!g1)}2}iO9+-sk2a8qDpHq_#gPg7nIxyh z!cb+O88ePT{V>Y(#Ei!jjV7@yS5>_|;#UMsP%kW@4^#UdmOzhT%~W@`6R9{ejzT8G zMiZ49TbxuU15F;HS#F4iR@v@_>6w`KNh8;#MI9u>3Slbk!K_EI>!Cj*#&ZN1d+eG0 zJ=|;poS>E*nTQ4-U0bj5vnsVNcE2k6Q@y$>M_D>!;6M)Z0gSCv2Qol- z>{F%w?>1>(?PK~EZNmSU^}mk!J4A%{i2pgB{sXOX;HeRCxv^b(&fGhR9%uUzQb!Ox<;R=4|}L zo#Rrfvr;jqDz5awh0pDyvCQ71E^|Ai@roDJb;VzO`i$9$6$vue*>T%ZcvGFU3sRm7 z9{CFx2Fc*#8SQr|>8hf^SMhJFokc5)H>9=xcrU~F_1CZ7@d$8u7RXE41iMb7$)Ga` zYE!N|7mO2j@)yvaS=YsWx0F0J!5LX-)o;uY(8(FuZ@6}1f`-H?zV?Xqp5el79IOMA zUnEd^TxtS^E4rqK<2+?K)Ic^-$~2#dGJA+4Q%L{e0H1PHCE0J$iv5pScFMoqIX)O; zjX}3=WHhRD6qLt)F@XZInHoiM73_SIckUQbI~Uhoz0^(z`-?HIYDT0|()y?f;-}HZ#Ur()x z9sUI{WUTDhu>@~Tk}JN*#)hW=UCTut>_s?Z%MZ3ed`%yu%LJ@+y>|AL9`!Wa_?EAE zNBfK8mF2FOAdpIX`m+Z|k_s@SP6yw=^eNNBvZw?sFH))=q70I*eGfHdDAYKCa9X|m zN@s?Y3rv))q=KTAJ>Tp>|ByQA0h^d^_A_qS_K;}o-VSIds$%riiBXi!M4&y}C}5iJt|zZ=H8Q+3xKLCo&{z)50BPo`2uucTx_@hiFKM zh`t@v(7tT)Ood+OrBZ$V+GW$2P2a9^HGa9xbKe)k9XCBii-L^GVEZ~}!4}qQxH)RbZRI=MF5R^J z6=|vs6j;BeB?27cKcX=R@ax7aK~~9i8+DZJ`fKtG2UA=gNz)e7Jt`$~6;2-Y(i&Qm zwhs06E=e97WwyTvdm2U>nc&}C@%oq@AFwHEs-!ISEAUJmyuWOk1AA;_adRC%WCs}u zOSA0j^6h}q%2|zz!%NjIC9iCyK|a;=pdG#{kk+L7;s;VlW4;8w{9_V`cTXj@EmAe2 zQnQ?x0FyF2xCa~s&K)I5u;PDRH#`Dupy#87|7dzR`3Gnk&~VEjqv?J=4n<<;^Q!j^ zXc*g8`-Wp#X4;ome6fO7;yjQaLinupQzNR-d1c|fEd6Wd{znsE#f(^GL(=K!87bHF zfh^tBc(H+SV{*s~m$ETqp|;~);`_Oh0u_{>+&``3%LcvE9iL1>DY>ny z=3&!1wmWsR&+S413zAp&j(;@FZbp2w(;6TAab{2;ST_b&Y|g?B0j!>-Vn0zyjZrt)1Bt=suiTLrU7Q z*i~x6r~cTr_4v^Ii0A$O!{g#jk1bVIlb1x&fc?Jcx*fZs7-tBV8;{0%J<2UT!tV-K zD7RU+Awp8}132X)Lv2TSw7q1 zdeGE()T^@Px}3%XwoGWWJ&)F zDBbv(r6jca^t-TaVaozks3x1tijL5NHVZSnB3Q#`Fj%JYk=ZE4ShaI5a;y z6&7|$hR#cz`M`?9+hcZ9==Gv{++R~3D88WXIPbT79&L0d*)2Gjsv7n@R4h0TqU(O= zsB0KqI*H3Lcq7FEGpQ?Hfu#$(vKLFIjZJqUUAWQ6;-#RbElq2*XJ?;>!X~Yae$(kg zGO~7UxcgdX<~H;qHOjp>j95zj$Yrqx%$ls%VyNm5G*X98!FskrDarKQIgL2%-fZiV zs+xt1R?SjB2uA8?1JJrh(KJtjN|@VFSaN|{B%BiWH-e&BrPx`;#xh!vTR#3ezLBw~ z_yhiHUM2UFe>%FE0WC;*MUGd>aK_R>T#05Or}`R9bgWkLVz~PApBP33rCa_ZiR!yF zQmQ<y=Bh^)uSj=qU}HRRTv4}ZDKMfqHJ;Zv^d6qFuBry1j*eZW_?u!D1S0

N1^wWEp?3R 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 diff --git a/app/src/main/res/drawable-hdpi/panorama_surface_unpaved.jpg b/app/src/main/res/drawable-hdpi/panorama_surface_unpaved.jpg deleted file mode 100644 index a019d11a206091f4aabed951b65b87c40df3f105..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21725 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 wLR|8FR+Pi=M+3K{aQ2+n{ diff --git a/app/src/main/res/drawable-hdpi/path_surface_paved.jpg b/app/src/main/res/drawable-hdpi/path_surface_paved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..792b602c61648b73ded4314fc07f0d15ca72ecaf GIT binary patch literal 9966 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 C%01Em literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/path_surface_paved.jpg b/app/src/main/res/drawable-mdpi/path_surface_paved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fb74604fac0bfa258eb0b555532337afd39384c GIT binary patch literal 4932 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 N0b%43XWgUO{{bpcVjTbg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/path_surface_unpaved.jpg b/app/src/main/res/drawable-mdpi/path_surface_unpaved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffe7b982e8991830d4f399b162e4f9d418739e94 GIT binary patch literal 5104 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/path_surface_paved.jpg b/app/src/main/res/drawable-xhdpi/path_surface_paved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f08fe54d62d028c1225b59d90fd8d6d4b83f44d GIT binary patch literal 13006 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 A&j0`b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/path_surface_unpaved.jpg b/app/src/main/res/drawable-xhdpi/path_surface_unpaved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0dab792a0e722654064c784b68cbfbda317fef60 GIT binary patch literal 14154 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%0Dc#nz(oYC^2+8Q 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/path_surface_unpaved.jpg b/app/src/main/res/drawable-xxhdpi/path_surface_unpaved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2b27dda4f65a2d45910c45832d571bb9b22bb560 GIT binary patch literal 24091 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 literal 0 HcmV?d00001 From a821a1b5725d542cd5111791b40fa4de4edf1f9f Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Wed, 14 Oct 2020 13:29:27 +0200 Subject: [PATCH 22/60] rename file --- .../surface/{NewStandardSurfaceAnswer.kt => SurfaceAnswer.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/src/main/java/de/westnordost/streetcomplete/quests/surface/{NewStandardSurfaceAnswer.kt => SurfaceAnswer.kt} (100%) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/NewStandardSurfaceAnswer.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/SurfaceAnswer.kt similarity index 100% rename from app/src/main/java/de/westnordost/streetcomplete/quests/surface/NewStandardSurfaceAnswer.kt rename to app/src/main/java/de/westnordost/streetcomplete/quests/surface/SurfaceAnswer.kt From 7467641f9152cad843cf64a30a7bc8ade094ba08 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sat, 17 Oct 2020 21:19:37 +0200 Subject: [PATCH 23/60] first working version of reusable dialog --- .../quests/surface/AddPathSurfaceForm.kt | 46 ++++++++++++++++--- app/src/main/res/values/strings.xml | 1 + 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index 55e601980f..a49156e2db 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -1,5 +1,7 @@ package de.westnordost.streetcomplete.quests.surface +import android.content.Context +import android.content.DialogInterface import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -106,7 +108,11 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment switchToExplanationLayout(value) + _, _ -> run { + DescribeGenericSurfaceDialog(requireContext()) { description -> + applyAnswer(DetailingWhyOnlyGeneric(value, description)) + }.show() + } } .setNegativeButton(android.R.string.cancel, null) .show() @@ -115,12 +121,6 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment Unit + ) : AlertDialog(context, R.style.Theme_Bubble_Dialog) { + init { + val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) + val commentInput = view.findViewById(R.id.explanationInput) + // TODO enable/disable ok button based on whether commentInput is empty (with TextWatcher?) + + setTitle(context.resources.getString(R.string.quest_surface_detailed_answer_impossible_title)) + + setButton( + DialogInterface.BUTTON_POSITIVE, + context.getString(android.R.string.yes) + ) { _, _ -> + val txt = commentInput.text.toString().trim() + if (!txt.isEmpty()) { + onSurfaceDescribed(txt) + } + } + + setButton( + DialogInterface.BUTTON_NEGATIVE, + context.getString(android.R.string.cancel) + ) { _, _ -> + setView(view) + } + setView(view) + } + } + } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4b7624120f..ca8ff350a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -925,4 +925,5 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards With auto-sync off, quests are not downloaded automatically. To do this manually, use the \"%s\" button in the menu at the location you want to download. "Does this pedestrian crossing have an island?" + Please, describe surface From 13d5d0425a2fc589d0848f6b8ae57db8579759cd Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sat, 17 Oct 2020 21:40:39 +0200 Subject: [PATCH 24/60] trash unneded code --- .../quests/surface/AddPathSurfaceForm.kt | 62 +------------------ 1 file changed, 2 insertions(+), 60 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index a49156e2db..316795387f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -57,47 +57,7 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment) { - // must not happen in isInExplanationMode - // this onClickOk is called when user is selecting images from - // list of surfaces - // this calls comes from onClickOk() in this class, // through onClickOk() AImageListQuestAnswerFragment // that calls onClickOk with parameters - that is @@ -121,31 +81,13 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment Unit ) : AlertDialog(context, R.style.Theme_Bubble_Dialog) { init { val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) - val commentInput = view.findViewById(R.id.explanationInput) + val explanationInput = view.findViewById(R.id.explanationInput) // TODO enable/disable ok button based on whether commentInput is empty (with TextWatcher?) setTitle(context.resources.getString(R.string.quest_surface_detailed_answer_impossible_title)) @@ -154,7 +96,7 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment - val txt = commentInput.text.toString().trim() + val txt = explanationInput.text.toString().trim() if (!txt.isEmpty()) { onSurfaceDescribed(txt) } From f73f5fd578dc6bdd028d73a0a85c95e598b8931d Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sat, 17 Oct 2020 21:42:32 +0200 Subject: [PATCH 25/60] delete no longer needed code and abandoned functionality special casing default lists was later anyway overriden by last used surface list, so impact was minimal --- .../quests/surface/AddPathSurfaceForm.kt | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index 316795387f..beed81d3dd 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -14,55 +14,16 @@ import de.westnordost.streetcomplete.view.image_select.Item import de.westnordost.streetcomplete.util.TextChangedWatcher class AddPathSurfaceForm : AImageListQuestAnswerFragment() { - - /* - TODO - lost functionality for now - is it going to work out of box? - override val topItems get() = - when (val pathType = determinePathType(osmElement!!.tags)) { - "bridleway" -> listOf( - DIRT, GRASS, SAND, - PEBBLES, FINE_GRAVEL, COMPACTED - ) - "path" -> listOf( - DIRT, PEBBLES, COMPACTED, - ASPHALT, FINE_GRAVEL, PAVING_STONES - ) - "footway" -> listOf( - PAVING_STONES, ASPHALT, CONCRETE, - COMPACTED, FINE_GRAVEL, DIRT - ) - "cycleway" -> listOf( - PAVING_STONES, ASPHALT, CONCRETE, - COMPACTED, WOOD, METAL - ) - "steps" -> listOf( - PAVING_STONES, ASPHALT, CONCRETE, - WOOD, SETT, UNHEWN_COBBLESTONE - ) - else -> throw IllegalStateException("Unexpected path type $pathType") - }.toItems() - */ - override val items: List> get() = - //if (osmElement!!.tags["surface"] == "paved") - TODO: reimplement or remove (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + // TODO: have proper images for path (crop from panorama images) Item("paved", R.drawable.path_surface_paved, R.string.quest_surface_value_paved, null, listOf()) + Item("unpaved", R.drawable.path_surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + Item("ground", R.drawable.surface_ground, R.string.quest_surface_value_ground, null, listOf()) - // TODO: everything below duplicates AddRoadSurfaceForm... - // TODO: DRY it? - override val itemsPerRow = 3 override fun onClickOk(selectedItems: List) { - // this calls comes from onClickOk() in this class, - // through onClickOk() AImageListQuestAnswerFragment - // that calls onClickOk with parameters - that is - // overloaded here - val value = selectedItems.single() if(value == "paved" || value == "unpaved" || value == "ground") { AlertDialog.Builder(requireContext()) @@ -111,5 +72,4 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment Date: Sat, 17 Oct 2020 21:54:21 +0200 Subject: [PATCH 26/60] extract to a separate file --- .../quests/surface/AddPathSurfaceForm.kt | 31 --------------- .../surface/DescribeGenericSurfaceDialog.kt | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 31 deletions(-) create mode 100644 app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index beed81d3dd..5d26b82450 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -41,35 +41,4 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment Unit - ) : AlertDialog(context, R.style.Theme_Bubble_Dialog) { - init { - val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) - val explanationInput = view.findViewById(R.id.explanationInput) - // TODO enable/disable ok button based on whether commentInput is empty (with TextWatcher?) - - setTitle(context.resources.getString(R.string.quest_surface_detailed_answer_impossible_title)) - - setButton( - DialogInterface.BUTTON_POSITIVE, - context.getString(android.R.string.yes) - ) { _, _ -> - val txt = explanationInput.text.toString().trim() - if (!txt.isEmpty()) { - onSurfaceDescribed(txt) - } - } - - setButton( - DialogInterface.BUTTON_NEGATIVE, - context.getString(android.R.string.cancel) - ) { _, _ -> - setView(view) - } - setView(view) - } - } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt new file mode 100644 index 0000000000..34d74159a8 --- /dev/null +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -0,0 +1,39 @@ +package de.westnordost.streetcomplete.quests.surface + +import android.content.Context +import android.content.DialogInterface +import android.view.LayoutInflater +import android.widget.EditText +import androidx.appcompat.app.AlertDialog +import de.westnordost.streetcomplete.R + +class DescribeGenericSurfaceDialog( + context: Context, + onSurfaceDescribed: (txt:String) -> Unit +) : AlertDialog(context, R.style.Theme_Bubble_Dialog) { + init { + val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) + val explanationInput = view.findViewById(R.id.explanationInput) + // TODO enable/disable ok button based on whether commentInput is empty (with TextWatcher?) + + setTitle(context.resources.getString(R.string.quest_surface_detailed_answer_impossible_title)) + + setButton( + DialogInterface.BUTTON_POSITIVE, + context.getString(android.R.string.yes) + ) { _, _ -> + val txt = explanationInput.text.toString().trim() + if (!txt.isEmpty()) { + onSurfaceDescribed(txt) + } + } + + setButton( + DialogInterface.BUTTON_NEGATIVE, + context.getString(android.R.string.cancel) + ) { _, _ -> + setView(view) + } + setView(view) + } +} From ec09946410da39be1b130fb55501bd379bbf9882 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sat, 17 Oct 2020 21:54:41 +0200 Subject: [PATCH 27/60] drop done todo --- .../streetcomplete/quests/surface/AddPathSurfaceForm.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index 5d26b82450..a20c3dd684 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -16,7 +16,6 @@ import de.westnordost.streetcomplete.util.TextChangedWatcher class AddPathSurfaceForm : AImageListQuestAnswerFragment() { override val items: List> get() = (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + - // TODO: have proper images for path (crop from panorama images) Item("paved", R.drawable.path_surface_paved, R.string.quest_surface_value_paved, null, listOf()) + Item("unpaved", R.drawable.path_surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + Item("ground", R.drawable.surface_ground, R.string.quest_surface_value_ground, null, listOf()) From c701a14471908802acd6f2d1649c01e08b25bf01 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sat, 17 Oct 2020 22:06:51 +0200 Subject: [PATCH 28/60] DRY Road Surface, code reuse for the win --- .../quests/surface/AddRoadSurfaceForm.kt | 84 ++----------------- 1 file changed, 8 insertions(+), 76 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt index d57ad50d1b..bf80dc488b 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt @@ -12,68 +12,25 @@ import de.westnordost.streetcomplete.util.TextChangedWatcher import de.westnordost.streetcomplete.view.image_select.Item class AddRoadSurfaceForm : AImageListQuestAnswerFragment() { - override val items: List> get() = - //if (osmElement!!.tags["surface"] == "paved") - TODO: reimplement or remove (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + - Item("paved", R.drawable.surface_paved, R.string.quest_surface_value_paved, null, listOf()) + - Item("unpaved", R.drawable.surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + - Item("ground", R.drawable.surface_ground, R.string.quest_surface_value_ground, null, listOf()) + Item("paved", R.drawable.surface_paved, R.string.quest_surface_value_paved, null, listOf()) + + Item("unpaved", R.drawable.surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + + Item("ground", R.drawable.surface_ground, R.string.quest_surface_value_ground, null, listOf()) override val itemsPerRow = 3 - private var isInExplanationMode = false - private var selectedGenericSurfaceValue : String? = null - private var explanationInput: EditText? = null - - private fun setLayout(layoutResourceId: Int) { - val view = setContentView(layoutResourceId) - - explanationInput = view.findViewById(R.id.explanationInput) - explanationInput?.addTextChangedListener(TextChangedWatcher { checkIsFormComplete() }) - } - - private val explanation: String get() = explanationInput?.text?.toString().orEmpty().trim() - - override fun isFormComplete(): Boolean { - return if(isInExplanationMode) { - explanation.isNotEmpty() - } else { - super.isFormComplete() - } - } - - override fun onClickOk() { - // we need to handle fact that we may be in a separate layout - // that is used to input explanation why surface may not be - // specified more accurately than just paved/unpaved/ground - if(isInExplanationMode) { - // clicked in an explanation mode, therefore - // user has ready answer prepared that we many use - applyAnswer(DetailingWhyOnlyGeneric(selectedGenericSurfaceValue!!, explanation)) - } else { - // use regular onClickOk call chain - // used in typical ImageList quest - super.onClickOk() - } - } - override fun onClickOk(selectedItems: List) { - // must not happen in isInExplanationMode - // this onClickOk is called when user is selecting images from - // list of surfaces - - // this calls comes from onClickOk() in this class, - // through onClickOk() AImageListQuestAnswerFragment - // that calls onClickOk with parameters - that is - // overloaded here - val value = selectedItems.single() if(value == "paved" || value == "unpaved" || value == "ground") { AlertDialog.Builder(requireContext()) .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) .setPositiveButton(R.string.quest_generic_confirmation_yes) { - _, _ -> switchToExplanationLayout(value) + _, _ -> run { + DescribeGenericSurfaceDialog(requireContext()) { description -> + applyAnswer(DetailingWhyOnlyGeneric(value, description)) + }.show() + } } .setNegativeButton(android.R.string.cancel, null) .show() @@ -81,29 +38,4 @@ class AddRoadSurfaceForm : AImageListQuestAnswerFragment Date: Sat, 17 Oct 2020 22:07:25 +0200 Subject: [PATCH 29/60] follow validator in Adroid Studio --- .../quests/surface/DescribeGenericSurfaceDialog.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index 34d74159a8..487da2969d 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -23,7 +23,7 @@ class DescribeGenericSurfaceDialog( context.getString(android.R.string.yes) ) { _, _ -> val txt = explanationInput.text.toString().trim() - if (!txt.isEmpty()) { + if (txt.isNotEmpty()) { onSurfaceDescribed(txt) } } From 449e4b1ed53b1f60cb4963349247e151ed26ee3e Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 17:48:22 +0200 Subject: [PATCH 30/60] fix super ugly lack of margins --- .../res/layout/quest_surface_detailed_answer_impossible.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml b/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml index 0905222036..8495b7c47c 100644 --- a/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml +++ b/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml @@ -5,7 +5,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@drawable/space_8dp" - android:showDividers="middle"> + android:showDividers="middle" + android:paddingLeft="@dimen/dialog_horizontal_margin" + android:paddingRight="@dimen/dialog_horizontal_margin" + > Date: Sun, 18 Oct 2020 18:05:53 +0200 Subject: [PATCH 31/60] clean up notes tags on leaving nongeneric answers --- .../streetcomplete/quests/surface/AddCyclewayPartSurface.kt | 1 + .../streetcomplete/quests/surface/AddFootwayPartSurface.kt | 1 + .../westnordost/streetcomplete/quests/surface/AddPathSurface.kt | 1 + .../westnordost/streetcomplete/quests/surface/AddRoadSurface.kt | 1 + 4 files changed, 4 insertions(+) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt index 2c2624c08f..690d5cd0d7 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt @@ -42,6 +42,7 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv is SurfaceAnswer -> { changes.updateWithCheckDate("cycleway:surface", answer.value) changes.deleteIfExists("source:cycleway:surface") + changes.deleteIfExists("cycleway:surface:note") } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("cycleway:surface", answer.value) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt index 039a7a40a4..1d23397b7e 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt @@ -41,6 +41,7 @@ class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterva is SurfaceAnswer -> { changes.updateWithCheckDate("footway:surface", answer.value) changes.deleteIfExists("source:footway:surface") + changes.deleteIfExists("footway:surface:note") } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("footway:surface", answer.value) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index d880c1aaf0..4d137b9a88 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -44,6 +44,7 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore is SurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) changes.deleteIfExists("source:surface") + changes.deleteIfExists("surface:note") } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("surface", answer.value) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index 9b4fc0874e..c53a2d0dc2 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -54,6 +54,7 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore is SurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) changes.deleteIfExists("source:surface") + changes.deleteIfExists("surface:note") } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("surface", answer.value) From 0df6ae64cf293eddea1c2e5a117aac28f7996155 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 18:09:09 +0200 Subject: [PATCH 32/60] less broken Engrish --- .../streetcomplete/data/user/achievements/AchievementsModule.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt index 16752c3819..3f16178faf 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt @@ -12,7 +12,7 @@ object AchievementsModule { @Provides @Named("Achievements") fun achievements(): List = achievements @Provides @Named("QuestAliases") fun questAliases(): List> = questAliases - // list of quest synonyms (this alternate naming added to aid searching for this code) + // list of quest synonyms (this alternate name is mentioned to aid searching for this code) private val questAliases = listOf( "AddAccessibleForPedestrians" to "AddProhibitedForPedestrians", "AddWheelChairAccessPublicTransport" to "AddWheelchairAccessPublicTransport", From 4b8966f543bc059e466bdb2c6bf9d9edfa38e53b Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 18:10:54 +0200 Subject: [PATCH 33/60] restore some lost mentions --- .../java/de/westnordost/streetcomplete/quests/QuestModule.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt index 5adc38bf04..07acc577f0 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt @@ -129,7 +129,7 @@ object QuestModule AddRecyclingType(o), AddRecyclingContainerMaterials(o, r), AddSport(o), - AddRoadSurface(o, r), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style + AddRoadSurface(o, r), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style... AddMaxSpeed(o), // should best be after road surface because it excludes unpaved roads AddMaxHeight(o), // OSRM and other routing engines AddRailwayCrossingBarrier(o, r), // useful for routing @@ -150,7 +150,7 @@ object QuestModule AddInternetAccess(o, r), // used by OsmAnd AddParkingFee(o, r), // used by OsmAnd AddMotorcycleParkingCapacity(o, r), - AddPathSurface(o, r), // used by OSM Carto, OsmAnd + AddPathSurface(o, r), // used by OSM Carto, BRouter, OsmAnd, OSRM, graphhopper... AddTracktype(o, r), // widely used in map rendering - OSM Carto, OsmAnd... AddMaxWeight(o), // used by OSRM and other routing engines AddForestLeafType(o), // used by OSM Carto From 8257d879f80e88a041821ac92712a66951b7c129 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 18:12:38 +0200 Subject: [PATCH 34/60] reformat code --- .../streetcomplete/quests/surface/AddCyclewayPartSurface.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt index 690d5cd0d7..ee8e487523 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt @@ -38,7 +38,7 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv override fun createForm() = AddPathSurfaceForm() override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { - when(answer) { + when (answer) { is SurfaceAnswer -> { changes.updateWithCheckDate("cycleway:surface", answer.value) changes.deleteIfExists("source:cycleway:surface") @@ -48,5 +48,6 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv changes.updateWithCheckDate("cycleway:surface", answer.value) changes.add("cycleway:surface:note", answer.note) } - } } + } + } } From c7a60fbb0ebc23cd8006efd9e10244a994b72135 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 18:30:17 +0200 Subject: [PATCH 35/60] drop unneded code --- .../quests/surface/DescribeGenericSurfaceDialog.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index 487da2969d..afc38f87d3 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -30,10 +30,9 @@ class DescribeGenericSurfaceDialog( setButton( DialogInterface.BUTTON_NEGATIVE, - context.getString(android.R.string.cancel) - ) { _, _ -> - setView(view) - } + context.getString(android.R.string.cancel), + null as DialogInterface.OnClickListener? + ) setView(view) } } From c7e5ba07915a43d3349fe87e7147364a51535d18 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 18:30:42 +0200 Subject: [PATCH 36/60] reformat code --- .../quests/surface/DescribeGenericSurfaceDialog.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index afc38f87d3..7dd1b355c7 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -9,7 +9,7 @@ import de.westnordost.streetcomplete.R class DescribeGenericSurfaceDialog( context: Context, - onSurfaceDescribed: (txt:String) -> Unit + onSurfaceDescribed: (txt: String) -> Unit ) : AlertDialog(context, R.style.Theme_Bubble_Dialog) { init { val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) From 4fb86808f5a7e7e2f96df96d568d8f079ee7db2b Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 18:59:02 +0200 Subject: [PATCH 37/60] add TextWatcher --- .../surface/DescribeGenericSurfaceDialog.kt | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index 7dd1b355c7..11fa28c296 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -2,6 +2,8 @@ package de.westnordost.streetcomplete.quests.surface import android.content.Context import android.content.DialogInterface +import android.text.Editable +import android.text.TextWatcher import android.view.LayoutInflater import android.widget.EditText import androidx.appcompat.app.AlertDialog @@ -11,9 +13,9 @@ class DescribeGenericSurfaceDialog( context: Context, onSurfaceDescribed: (txt: String) -> Unit ) : AlertDialog(context, R.style.Theme_Bubble_Dialog) { + val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) + val explanationInput = view.findViewById(R.id.explanationInput); init { - val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) - val explanationInput = view.findViewById(R.id.explanationInput) // TODO enable/disable ok button based on whether commentInput is empty (with TextWatcher?) setTitle(context.resources.getString(R.string.quest_surface_detailed_answer_impossible_title)) @@ -34,5 +36,23 @@ class DescribeGenericSurfaceDialog( null as DialogInterface.OnClickListener? ) setView(view) + + setOnShowListener { + getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = false + explanationInput.addTextChangedListener(object : TextWatcher { + override fun onTextChanged(s: CharSequence, start: Int, before: Int, + count: Int) { + } + + override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, + after: Int) { + } + + override fun afterTextChanged(s: Editable) { + val txt = explanationInput.text.toString().trim() + getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = txt.isNotEmpty() + } + }) + } } } From 24092173fd5453f108860f50926628a1b264e25a Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 19:23:22 +0200 Subject: [PATCH 38/60] technically there is now color changing --- .../quests/surface/DescribeGenericSurfaceDialog.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index 11fa28c296..fdb91354de 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -2,6 +2,7 @@ package de.westnordost.streetcomplete.quests.surface import android.content.Context import android.content.DialogInterface +import android.graphics.Color import android.text.Editable import android.text.TextWatcher import android.view.LayoutInflater @@ -39,6 +40,7 @@ class DescribeGenericSurfaceDialog( setOnShowListener { getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = false + getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.GRAY) explanationInput.addTextChangedListener(object : TextWatcher { override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { @@ -51,6 +53,11 @@ class DescribeGenericSurfaceDialog( override fun afterTextChanged(s: Editable) { val txt = explanationInput.text.toString().trim() getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = txt.isNotEmpty() + if(txt.isNotEmpty()) { + getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.rgb(209, 64, 0)) // accent color is D14000 + } else { + getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.GRAY) + } } }) } From 083795981ec4ccfc709ec74d1a346a669afc6b67 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Sun, 18 Oct 2020 19:25:50 +0200 Subject: [PATCH 39/60] done TODO --- .../quests/surface/DescribeGenericSurfaceDialog.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index fdb91354de..5fbf6b80d6 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -17,8 +17,6 @@ class DescribeGenericSurfaceDialog( val view = LayoutInflater.from(context).inflate(R.layout.quest_surface_detailed_answer_impossible, null) val explanationInput = view.findViewById(R.id.explanationInput); init { - // TODO enable/disable ok button based on whether commentInput is empty (with TextWatcher?) - setTitle(context.resources.getString(R.string.quest_surface_detailed_answer_impossible_title)) setButton( From 5706d4116fce826425e65e9f756a5aef9b6f9ee5 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 13:42:08 +0200 Subject: [PATCH 40/60] Revert "technically there is now color changing" This reverts commit 24092173fd5453f108860f50926628a1b264e25a. --- .../quests/surface/DescribeGenericSurfaceDialog.kt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index 5fbf6b80d6..0c9029126c 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -2,7 +2,6 @@ package de.westnordost.streetcomplete.quests.surface import android.content.Context import android.content.DialogInterface -import android.graphics.Color import android.text.Editable import android.text.TextWatcher import android.view.LayoutInflater @@ -38,7 +37,6 @@ class DescribeGenericSurfaceDialog( setOnShowListener { getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = false - getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.GRAY) explanationInput.addTextChangedListener(object : TextWatcher { override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { @@ -51,11 +49,6 @@ class DescribeGenericSurfaceDialog( override fun afterTextChanged(s: Editable) { val txt = explanationInput.text.toString().trim() getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = txt.isNotEmpty() - if(txt.isNotEmpty()) { - getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.rgb(209, 64, 0)) // accent color is D14000 - } else { - getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.GRAY) - } } }) } From e0fd21d6b7419d9eb656aa621c08a52054830b29 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 14:11:01 +0200 Subject: [PATCH 41/60] complain if there is no user input --- .../surface/DescribeGenericSurfaceDialog.kt | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt index 0c9029126c..90f29054ad 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/DescribeGenericSurfaceDialog.kt @@ -2,8 +2,6 @@ package de.westnordost.streetcomplete.quests.surface import android.content.Context import android.content.DialogInterface -import android.text.Editable -import android.text.TextWatcher import android.view.LayoutInflater import android.widget.EditText import androidx.appcompat.app.AlertDialog @@ -23,7 +21,13 @@ class DescribeGenericSurfaceDialog( context.getString(android.R.string.yes) ) { _, _ -> val txt = explanationInput.text.toString().trim() - if (txt.isNotEmpty()) { + + if (txt.isEmpty()) { + Builder(context) + .setMessage(R.string.quest_surface_detailed_answer_impossible_description) + .setPositiveButton(android.R.string.ok, null) + .show() + } else { onSurfaceDescribed(txt) } } @@ -34,23 +38,5 @@ class DescribeGenericSurfaceDialog( null as DialogInterface.OnClickListener? ) setView(view) - - setOnShowListener { - getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = false - explanationInput.addTextChangedListener(object : TextWatcher { - override fun onTextChanged(s: CharSequence, start: Int, before: Int, - count: Int) { - } - - override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, - after: Int) { - } - - override fun afterTextChanged(s: Editable) { - val txt = explanationInput.text.toString().trim() - getButton(DialogInterface.BUTTON_POSITIVE).isEnabled = txt.isNotEmpty() - } - }) - } } } From e94bba96faf3d098a748fab672e5fd81a46f06e8 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 14:42:01 +0200 Subject: [PATCH 42/60] it is possible that it was present already! --- .../streetcomplete/quests/surface/AddCyclewayPartSurface.kt | 2 +- .../streetcomplete/quests/surface/AddFootwayPartSurface.kt | 2 +- .../westnordost/streetcomplete/quests/surface/AddPathSurface.kt | 2 +- .../westnordost/streetcomplete/quests/surface/AddRoadSurface.kt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt index ee8e487523..e2244d525e 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt @@ -46,7 +46,7 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("cycleway:surface", answer.value) - changes.add("cycleway:surface:note", answer.note) + changes.addOrModify("cycleway:surface:note", answer.note) } } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt index 1d23397b7e..11980bd267 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt @@ -45,7 +45,7 @@ class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterva } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("footway:surface", answer.value) - changes.add("footway:surface:note", answer.note) + changes.addOrModify("footway:surface:note", answer.note) } } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index 4d137b9a88..f42393cc3e 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -48,7 +48,7 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("surface", answer.value) - changes.add("surface:note", answer.note) + changes.addOrModify("surface:note", answer.note) } } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index c53a2d0dc2..fa4cfe17df 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -58,7 +58,7 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore } is DetailingWhyOnlyGeneric -> { changes.updateWithCheckDate("surface", answer.value) - changes.add("surface:note", answer.note) + changes.addOrModify("surface:note", answer.note) } } } From 973dd68300f5dc9029c2151fd435cc2d27b8c63e Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 18:23:11 +0200 Subject: [PATCH 43/60] fix copy paste accident --- .../westnordost/streetcomplete/quests/surface/AddRoadSurface.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index fa4cfe17df..d81a6104af 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -21,7 +21,6 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore ( surface ~ paved|unpaved and !surface:note - and segregated != yes ) ) and (access !~ private|no or (foot and foot !~ private|no)) From 864e7fe737d79bec9ffe0016c92aa8745d7abfa8 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 18:23:51 +0200 Subject: [PATCH 44/60] intend fix --- .../streetcomplete/quests/surface/AddRoadSurface.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index d81a6104af..a150bef24f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -17,11 +17,11 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore !surface or surface ~ ${ANYTHING_UNPAVED.joinToString("|")} and surface older today -${r * 4} years or surface older today -${r * 12} years - or - ( - surface ~ paved|unpaved - and !surface:note - ) + or + ( + surface ~ paved|unpaved + and !surface:note + ) ) and (access !~ private|no or (foot and foot !~ private|no)) """ From 04b47010e16975a28893b278b0908fc5557c0b38 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 18:25:37 +0200 Subject: [PATCH 45/60] always clean now outdated surface tag --- .../streetcomplete/quests/surface/AddCyclewayPartSurface.kt | 2 +- .../streetcomplete/quests/surface/AddFootwayPartSurface.kt | 2 +- .../westnordost/streetcomplete/quests/surface/AddPathSurface.kt | 2 +- .../westnordost/streetcomplete/quests/surface/AddRoadSurface.kt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt index e2244d525e..dbf025ded6 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt @@ -41,7 +41,6 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv when (answer) { is SurfaceAnswer -> { changes.updateWithCheckDate("cycleway:surface", answer.value) - changes.deleteIfExists("source:cycleway:surface") changes.deleteIfExists("cycleway:surface:note") } is DetailingWhyOnlyGeneric -> { @@ -49,5 +48,6 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv changes.addOrModify("cycleway:surface:note", answer.note) } } + changes.deleteIfExists("source:cycleway:surface") } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt index 11980bd267..76679c241b 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt @@ -40,7 +40,6 @@ class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterva when(answer) { is SurfaceAnswer -> { changes.updateWithCheckDate("footway:surface", answer.value) - changes.deleteIfExists("source:footway:surface") changes.deleteIfExists("footway:surface:note") } is DetailingWhyOnlyGeneric -> { @@ -48,5 +47,6 @@ class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterva changes.addOrModify("footway:surface:note", answer.note) } } + changes.deleteIfExists("source:footway:surface") } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index f42393cc3e..e47400a01b 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -43,7 +43,6 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore when(answer) { is SurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) - changes.deleteIfExists("source:surface") changes.deleteIfExists("surface:note") } is DetailingWhyOnlyGeneric -> { @@ -51,5 +50,6 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore changes.addOrModify("surface:note", answer.note) } } + changes.deleteIfExists("source:surface") } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index a150bef24f..df1c4c69c3 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -52,7 +52,6 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore when(answer) { is SurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) - changes.deleteIfExists("source:surface") changes.deleteIfExists("surface:note") } is DetailingWhyOnlyGeneric -> { @@ -60,6 +59,7 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore changes.addOrModify("surface:note", answer.note) } } + changes.deleteIfExists("source:surface") } companion object { From ce3123d5c4ec445da1aaf162a2a211ccd4814f90 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 18:28:45 +0200 Subject: [PATCH 46/60] reintend --- .../streetcomplete/quests/surface/AddPathSurface.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index e47400a01b..99e358490e 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -17,9 +17,9 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore and access !~ private|no and (!conveying or conveying = no) and (!indoor or indoor = no) and ( - !surface - or surface ~ ${ANYTHING_UNPAVED.joinToString("|")} and surface older today -${r * 4} years - or surface older today -${r * 8} years + !surface + or surface ~ ${ANYTHING_UNPAVED.joinToString("|")} and surface older today -${r * 4} years + or surface older today -${r * 8} years ) """ /* ~paved ways are less likely to change the surface type */ From 6cfe07bb0cef35154f2338d8da8c7022984d8eb7 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 18:29:07 +0200 Subject: [PATCH 47/60] restore asking about unspecific surface on paths --- .../streetcomplete/quests/surface/AddPathSurface.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index 99e358490e..d15c5a85f4 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -20,6 +20,11 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore !surface or surface ~ ${ANYTHING_UNPAVED.joinToString("|")} and surface older today -${r * 4} years or surface older today -${r * 8} years + or + ( + surface ~ paved|unpaved + and !surface:note + ) ) """ /* ~paved ways are less likely to change the surface type */ From 2d59e45e5f3efdc9db4b7ef9b606f972ec045c30 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 18:34:16 +0200 Subject: [PATCH 48/60] drop useless imports --- .../streetcomplete/quests/surface/AddPathSurfaceForm.kt | 8 -------- .../streetcomplete/quests/surface/AddRoadSurfaceForm.kt | 6 ------ 2 files changed, 14 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index a20c3dd684..f29b6c609c 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -1,17 +1,9 @@ package de.westnordost.streetcomplete.quests.surface -import android.content.Context -import android.content.DialogInterface -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.EditText import androidx.appcompat.app.AlertDialog import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment import de.westnordost.streetcomplete.view.image_select.Item -import de.westnordost.streetcomplete.util.TextChangedWatcher class AddPathSurfaceForm : AImageListQuestAnswerFragment() { override val items: List> get() = diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt index bf80dc488b..9b1a0ed429 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt @@ -1,14 +1,8 @@ package de.westnordost.streetcomplete.quests.surface -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.EditText import androidx.appcompat.app.AlertDialog import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment -import de.westnordost.streetcomplete.util.TextChangedWatcher import de.westnordost.streetcomplete.view.image_select.Item class AddRoadSurfaceForm : AImageListQuestAnswerFragment() { From c45cd22959311763d052359dd6db8113f837ba19 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 18:34:32 +0200 Subject: [PATCH 49/60] have better names for answer classes --- .../quests/surface/AddCyclewayPartSurface.kt | 8 ++++---- .../quests/surface/AddFootwayPartSurface.kt | 8 ++++---- .../streetcomplete/quests/surface/AddPathSurface.kt | 8 ++++---- .../streetcomplete/quests/surface/AddPathSurfaceForm.kt | 6 +++--- .../streetcomplete/quests/surface/AddRoadSurface.kt | 8 ++++---- .../streetcomplete/quests/surface/AddRoadSurfaceForm.kt | 6 +++--- .../streetcomplete/quests/surface/SurfaceAnswer.kt | 6 +++--- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt index dbf025ded6..4248662112 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt @@ -8,7 +8,7 @@ import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometry import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) - : SimpleOverpassQuestType(o) { + : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with @@ -37,13 +37,13 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv override fun createForm() = AddPathSurfaceForm() - override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { + override fun applyAnswerTo(answer: SurfaceAnswer, changes: StringMapChangesBuilder) { when (answer) { - is SurfaceAnswer -> { + is SpecificSurfaceAnswer -> { changes.updateWithCheckDate("cycleway:surface", answer.value) changes.deleteIfExists("cycleway:surface:note") } - is DetailingWhyOnlyGeneric -> { + is GenericSurfaceAnswer -> { changes.updateWithCheckDate("cycleway:surface", answer.value) changes.addOrModify("cycleway:surface:note", answer.note) } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt index 76679c241b..578ed359e2 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt @@ -8,7 +8,7 @@ import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometry import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) - : SimpleOverpassQuestType(o) { + : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with @@ -36,13 +36,13 @@ class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterva override fun createForm() = AddPathSurfaceForm() - override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { + override fun applyAnswerTo(answer: SurfaceAnswer, changes: StringMapChangesBuilder) { when(answer) { - is SurfaceAnswer -> { + is SpecificSurfaceAnswer -> { changes.updateWithCheckDate("footway:surface", answer.value) changes.deleteIfExists("footway:surface:note") } - is DetailingWhyOnlyGeneric -> { + is GenericSurfaceAnswer -> { changes.updateWithCheckDate("footway:surface", answer.value) changes.addOrModify("footway:surface:note", answer.note) } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index d15c5a85f4..ee1728df8c 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -9,7 +9,7 @@ import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometry import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) - : SimpleOverpassQuestType(o) { + : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with highway ~ path|footway|cycleway|bridleway|steps @@ -44,13 +44,13 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore override fun createForm() = AddPathSurfaceForm() - override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { + override fun applyAnswerTo(answer: SurfaceAnswer, changes: StringMapChangesBuilder) { when(answer) { - is SurfaceAnswer -> { + is SpecificSurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) changes.deleteIfExists("surface:note") } - is DetailingWhyOnlyGeneric -> { + is GenericSurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) changes.addOrModify("surface:note", answer.note) } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index f29b6c609c..dbb9fd3a23 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -5,7 +5,7 @@ import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment import de.westnordost.streetcomplete.view.image_select.Item -class AddPathSurfaceForm : AImageListQuestAnswerFragment() { +class AddPathSurfaceForm : AImageListQuestAnswerFragment() { override val items: List> get() = (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + Item("paved", R.drawable.path_surface_paved, R.string.quest_surface_value_paved, null, listOf()) + @@ -22,7 +22,7 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment run { DescribeGenericSurfaceDialog(requireContext()) { description -> - applyAnswer(DetailingWhyOnlyGeneric(value, description)) + applyAnswer(GenericSurfaceAnswer(value, description)) }.show() } } @@ -30,6 +30,6 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment(o) { +class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with highway ~ ${ROADS_WITH_SURFACES.joinToString("|")} and @@ -48,13 +48,13 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore override fun createForm() = AddRoadSurfaceForm() - override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { + override fun applyAnswerTo(answer: SurfaceAnswer, changes: StringMapChangesBuilder) { when(answer) { - is SurfaceAnswer -> { + is SpecificSurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) changes.deleteIfExists("surface:note") } - is DetailingWhyOnlyGeneric -> { + is GenericSurfaceAnswer -> { changes.updateWithCheckDate("surface", answer.value) changes.addOrModify("surface:note", answer.note) } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt index 9b1a0ed429..573837e41f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt @@ -5,7 +5,7 @@ import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment import de.westnordost.streetcomplete.view.image_select.Item -class AddRoadSurfaceForm : AImageListQuestAnswerFragment() { +class AddRoadSurfaceForm : AImageListQuestAnswerFragment() { override val items: List> get() = (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + Item("paved", R.drawable.surface_paved, R.string.quest_surface_value_paved, null, listOf()) + @@ -22,7 +22,7 @@ class AddRoadSurfaceForm : AImageListQuestAnswerFragment run { DescribeGenericSurfaceDialog(requireContext()) { description -> - applyAnswer(DetailingWhyOnlyGeneric(value, description)) + applyAnswer(GenericSurfaceAnswer(value, description)) }.show() } } @@ -30,6 +30,6 @@ class AddRoadSurfaceForm : AImageListQuestAnswerFragment Date: Tue, 20 Oct 2020 18:35:33 +0200 Subject: [PATCH 50/60] shorten title --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b2063bb847..ee22f4aaf5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -925,5 +925,5 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards With auto-sync off, quests are not downloaded automatically. To do this manually, use the \"%s\" button in the menu at the location you want to download. "Does this pedestrian crossing have an island?" - Please, describe surface + Describe surface From ac55db8e5f1013ec9a5b986a6758fba8baa12202 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 19:55:51 +0200 Subject: [PATCH 51/60] stop demanding explanation on surface=ground --- .../streetcomplete/quests/surface/AddPathSurfaceForm.kt | 2 +- .../streetcomplete/quests/surface/AddRoadSurfaceForm.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index dbb9fd3a23..cc8436d241 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -16,7 +16,7 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment( override fun onClickOk(selectedItems: List) { val value = selectedItems.single() - if(value == "paved" || value == "unpaved" || value == "ground") { + if(value == "paved" || value == "unpaved") { AlertDialog.Builder(requireContext()) .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) .setPositiveButton(R.string.quest_generic_confirmation_yes) { diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt index 573837e41f..012cba5049 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt @@ -16,7 +16,7 @@ class AddRoadSurfaceForm : AImageListQuestAnswerFragment override fun onClickOk(selectedItems: List) { val value = selectedItems.single() - if(value == "paved" || value == "unpaved" || value == "ground") { + if(value == "paved" || value == "unpaved") { AlertDialog.Builder(requireContext()) .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) .setPositiveButton(R.string.quest_generic_confirmation_yes) { From 896840750cb10cd090c266f9977d3e49f6bfa465 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Tue, 20 Oct 2020 20:22:09 +0200 Subject: [PATCH 52/60] merge two dialogs --- .../quests/surface/AddPathSurfaceForm.kt | 14 +++----------- .../quests/surface/AddRoadSurfaceForm.kt | 14 +++----------- .../quest_surface_detailed_answer_impossible.xml | 5 +++++ 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index cc8436d241..47f821d37f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -17,17 +17,9 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment( override fun onClickOk(selectedItems: List) { val value = selectedItems.single() if(value == "paved" || value == "unpaved") { - AlertDialog.Builder(requireContext()) - .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) - .setPositiveButton(R.string.quest_generic_confirmation_yes) { - _, _ -> run { - DescribeGenericSurfaceDialog(requireContext()) { description -> - applyAnswer(GenericSurfaceAnswer(value, description)) - }.show() - } - } - .setNegativeButton(android.R.string.cancel, null) - .show() + DescribeGenericSurfaceDialog(requireContext()) { description -> + applyAnswer(GenericSurfaceAnswer(value, description)) + }.show() return } applyAnswer(SpecificSurfaceAnswer(value)) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt index 012cba5049..a3e79abc29 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt @@ -17,17 +17,9 @@ class AddRoadSurfaceForm : AImageListQuestAnswerFragment override fun onClickOk(selectedItems: List) { val value = selectedItems.single() if(value == "paved" || value == "unpaved") { - AlertDialog.Builder(requireContext()) - .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) - .setPositiveButton(R.string.quest_generic_confirmation_yes) { - _, _ -> run { - DescribeGenericSurfaceDialog(requireContext()) { description -> - applyAnswer(GenericSurfaceAnswer(value, description)) - }.show() - } - } - .setNegativeButton(android.R.string.cancel, null) - .show() + DescribeGenericSurfaceDialog(requireContext()) { description -> + applyAnswer(GenericSurfaceAnswer(value, description)) + }.show() return } applyAnswer(SpecificSurfaceAnswer(value)) diff --git a/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml b/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml index 8495b7c47c..963b0c02db 100644 --- a/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml +++ b/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml @@ -10,6 +10,11 @@ android:paddingRight="@dimen/dialog_horizontal_margin" > + + Date: Tue, 20 Oct 2020 23:00:57 +0200 Subject: [PATCH 53/60] Revert "merge two dialogs" This reverts commit 896840750cb10cd090c266f9977d3e49f6bfa465. --- .../quests/surface/AddPathSurfaceForm.kt | 14 +++++++++++--- .../quests/surface/AddRoadSurfaceForm.kt | 14 +++++++++++--- .../quest_surface_detailed_answer_impossible.xml | 5 ----- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index 47f821d37f..cc8436d241 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -17,9 +17,17 @@ class AddPathSurfaceForm : AImageListQuestAnswerFragment( override fun onClickOk(selectedItems: List) { val value = selectedItems.single() if(value == "paved" || value == "unpaved") { - DescribeGenericSurfaceDialog(requireContext()) { description -> - applyAnswer(GenericSurfaceAnswer(value, description)) - }.show() + AlertDialog.Builder(requireContext()) + .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) + .setPositiveButton(R.string.quest_generic_confirmation_yes) { + _, _ -> run { + DescribeGenericSurfaceDialog(requireContext()) { description -> + applyAnswer(GenericSurfaceAnswer(value, description)) + }.show() + } + } + .setNegativeButton(android.R.string.cancel, null) + .show() return } applyAnswer(SpecificSurfaceAnswer(value)) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt index a3e79abc29..012cba5049 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt @@ -17,9 +17,17 @@ class AddRoadSurfaceForm : AImageListQuestAnswerFragment override fun onClickOk(selectedItems: List) { val value = selectedItems.single() if(value == "paved" || value == "unpaved") { - DescribeGenericSurfaceDialog(requireContext()) { description -> - applyAnswer(GenericSurfaceAnswer(value, description)) - }.show() + AlertDialog.Builder(requireContext()) + .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) + .setPositiveButton(R.string.quest_generic_confirmation_yes) { + _, _ -> run { + DescribeGenericSurfaceDialog(requireContext()) { description -> + applyAnswer(GenericSurfaceAnswer(value, description)) + }.show() + } + } + .setNegativeButton(android.R.string.cancel, null) + .show() return } applyAnswer(SpecificSurfaceAnswer(value)) diff --git a/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml b/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml index 963b0c02db..8495b7c47c 100644 --- a/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml +++ b/app/src/main/res/layout/quest_surface_detailed_answer_impossible.xml @@ -10,11 +10,6 @@ android:paddingRight="@dimen/dialog_horizontal_margin" > - - Date: Wed, 21 Oct 2020 06:06:17 +0200 Subject: [PATCH 54/60] handle note as prefix and suffix of *surface tag --- .../streetcomplete/quests/surface/AddCyclewayPartSurface.kt | 1 + .../streetcomplete/quests/surface/AddFootwayPartSurface.kt | 1 + .../westnordost/streetcomplete/quests/surface/AddPathSurface.kt | 1 + .../westnordost/streetcomplete/quests/surface/AddRoadSurface.kt | 1 + 4 files changed, 4 insertions(+) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt index 4248662112..525ded4f70 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt @@ -25,6 +25,7 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv ( cycleway:surface ~ paved|unpaved and !cycleway:surface:note + and !note:cycleway:surface ) ) """ diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt index 578ed359e2..87ce235423 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt @@ -24,6 +24,7 @@ class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterva ( footway:surface ~ paved|unpaved and !footway:surface:note + and !note:footway:surface ) ) """ diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index ee1728df8c..505b7cbda7 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -24,6 +24,7 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore ( surface ~ paved|unpaved and !surface:note + and !note:surface ) ) """ diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index fea635511e..ad45bb101c 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -21,6 +21,7 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore ( surface ~ paved|unpaved and !surface:note + and !note:surface ) ) and (access !~ private|no or (foot and foot !~ private|no)) From 52abcd191f065f24b2b61e168394e3d4f72d9bf6 Mon Sep 17 00:00:00 2001 From: Peter Newman Date: Sat, 24 Oct 2020 17:57:12 +0100 Subject: [PATCH 55/60] Fix some changelog formatting --- app/src/main/res/raw/changelog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/raw/changelog.yml b/app/src/main/res/raw/changelog.yml index e43567712b..053946bc7e 100644 --- a/app/src/main/res/raw/changelog.yml +++ b/app/src/main/res/raw/changelog.yml @@ -20,7 +20,7 @@ v25.0: |

  • new achievement graphics by Judith Gastell (melusine)
  • Map style update: Amongst other things, all housenumbers are now displayed again on the map, private roads are displayed as such and 3D buildings can be displayed more detailed
  • -
  • Fix tagging tactile paving on crosswalks on a resurvey (#2176, #2172), @by peternewman, @dbdean
  • +
  • Fix tagging tactile paving on crosswalks on a resurvey (#2176, #2172), by @peternewman, @dbdean
  • Other small fixes and enhancements (#2186, #2190, #2182, #2184, #2181, #2179, ...)
From acb936fbe728604b47bff743ef8fe8af3f9a79b5 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Tue, 27 Oct 2020 17:14:21 +0530 Subject: [PATCH 56/60] Use try-with-resources. --- .../data/meta/CountryInfos.java | 14 ++------ .../streetcomplete/util/KryoSerializer.java | 33 ++++++++++--------- 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/data/meta/CountryInfos.java b/app/src/main/java/de/westnordost/streetcomplete/data/meta/CountryInfos.java index 435b64e7b9..6588d8c4c5 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/data/meta/CountryInfos.java +++ b/app/src/main/java/de/westnordost/streetcomplete/data/meta/CountryInfos.java @@ -114,25 +114,15 @@ private CountryInfo getDefault() private CountryInfo loadCountryInfo(String countryCodeIso3166) throws IOException { String filename = countryCodeIso3166+".yml"; - InputStream is = null; - try + try (InputStream is = assetManager.open(BASEPATH + File.separator + filename)) { - is = assetManager.open(BASEPATH + File.separator + filename); - Reader reader = new InputStreamReader(is, "UTF-8"); + Reader reader = new InputStreamReader(is, "UTF-8"); YamlReader yamlReader = new YamlReader(reader); yamlReader.getConfig().setPrivateFields(true); CountryInfo result = yamlReader.read(CountryInfo.class); result.countryCode = countryCodeIso3166.split("-")[0]; return result; } - finally - { - if(is != null) try - { - is.close(); - } - catch (IOException ignore) { } - } } /** Complement every declared field that is null in ´info´ with the field in ´with´ */ diff --git a/app/src/main/java/de/westnordost/streetcomplete/util/KryoSerializer.java b/app/src/main/java/de/westnordost/streetcomplete/util/KryoSerializer.java index 9c24b4eed8..5afe3c476b 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/util/KryoSerializer.java +++ b/app/src/main/java/de/westnordost/streetcomplete/util/KryoSerializer.java @@ -12,26 +12,26 @@ import javax.inject.Singleton; +import de.westnordost.osmapi.map.data.Element; import de.westnordost.osmapi.map.data.Fixed1E7LatLon; -import de.westnordost.streetcomplete.data.osm.splitway.SplitAtLinePosition; -import de.westnordost.streetcomplete.data.osm.splitway.SplitAtPoint; +import de.westnordost.osmapi.map.data.OsmLatLon; +import de.westnordost.osmapi.map.data.OsmRelationMember; +import de.westnordost.osmapi.notes.NoteComment; +import de.westnordost.osmapi.user.User; import de.westnordost.streetcomplete.data.osm.changes.StringMapChanges; import de.westnordost.streetcomplete.data.osm.changes.StringMapEntryAdd; import de.westnordost.streetcomplete.data.osm.changes.StringMapEntryDelete; import de.westnordost.streetcomplete.data.osm.changes.StringMapEntryModify; +import de.westnordost.streetcomplete.data.osm.splitway.SplitAtLinePosition; +import de.westnordost.streetcomplete.data.osm.splitway.SplitAtPoint; +import de.westnordost.streetcomplete.quests.LocalizedName; import de.westnordost.streetcomplete.quests.opening_hours.adapter.OffDaysRow; import de.westnordost.streetcomplete.quests.opening_hours.adapter.OpeningMonthsRow; import de.westnordost.streetcomplete.quests.opening_hours.adapter.OpeningWeekdaysRow; import de.westnordost.streetcomplete.quests.opening_hours.model.CircularSection; -import de.westnordost.osmapi.map.data.Element; -import de.westnordost.osmapi.map.data.OsmLatLon; -import de.westnordost.osmapi.map.data.OsmRelationMember; -import de.westnordost.osmapi.notes.NoteComment; -import de.westnordost.osmapi.user.User; import de.westnordost.streetcomplete.quests.opening_hours.model.Months; import de.westnordost.streetcomplete.quests.opening_hours.model.TimeRange; import de.westnordost.streetcomplete.quests.opening_hours.model.Weekdays; -import de.westnordost.streetcomplete.quests.LocalizedName; import de.westnordost.streetcomplete.quests.postbox_collection_times.WeekdaysTimesRow; @Singleton @@ -91,17 +91,18 @@ public class KryoSerializer implements Serializer @Override public byte[] toBytes(Object object) { - Output output = new Output(1024,-1); - kryo.get().writeObject(output, object); - output.close(); - return output.toBytes(); + try (Output output = new Output(1024, -1)) + { + kryo.get().writeObject(output, object); + return output.toBytes(); + } } @Override public T toObject(byte[] bytes, Class type) { - Input input = new Input(bytes); - T result = kryo.get().readObject(input, type); - input.close(); - return result; + try (Input input = new Input(bytes)) + { + return kryo.get().readObject(input, type); + } } } From 631dfba4c78ff56cf159a6295b92c5a1c92e0fbe Mon Sep 17 00:00:00 2001 From: Tobias Zwick Date: Thu, 29 Oct 2020 23:24:19 +0100 Subject: [PATCH 57/60] move links on map view (fixes #2199) --- .../streetcomplete/map/MapFragment.kt | 16 ++++++++++++++-- app/src/main/res/layout/fragment_map.xml | 6 +++--- app/src/main/res/values/strings.xml | 1 + 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/map/MapFragment.kt b/app/src/main/java/de/westnordost/streetcomplete/map/MapFragment.kt index d1b721b04c..5daa4a8e20 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/map/MapFragment.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/map/MapFragment.kt @@ -14,6 +14,7 @@ import android.view.ViewGroup import android.view.animation.AccelerateDecelerateInterpolator import android.view.animation.Interpolator import androidx.annotation.CallSuper +import androidx.appcompat.app.AlertDialog import androidx.core.content.edit import androidx.core.net.toUri import androidx.core.view.updateLayoutParams @@ -98,15 +99,26 @@ open class MapFragment : Fragment(), mapView = view.findViewById(R.id.map) mapView.onCreate(savedInstanceState) - openstreetmapLink.setOnClickListener { openUrl("https://www.openstreetmap.org/copyright") } + openstreetmapLink.setOnClickListener { showOpenUrlDialog("https://www.openstreetmap.org/copyright") } mapTileProviderLink.text = vectorTileProvider.copyrightText - mapTileProviderLink.setOnClickListener { openUrl(vectorTileProvider.copyrightLink) } + mapTileProviderLink.setOnClickListener { showOpenUrlDialog(vectorTileProvider.copyrightLink) } setupFittingToSystemWindowInsets() launch { initMap() } } + private fun showOpenUrlDialog(url: String) { + AlertDialog.Builder(requireContext()) + .setTitle(R.string.open_url) + .setMessage(url) + .setPositiveButton(android.R.string.ok) { _,_ -> + openUrl(url) + } + .setNegativeButton(android.R.string.cancel, null) + .show() + } + private fun openUrl(url: String): Boolean { val intent = Intent(Intent.ACTION_VIEW, url.toUri()) return tryStartActivity(intent) diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml index 3d4020da6c..90d5048995 100644 --- a/app/src/main/res/layout/fragment_map.xml +++ b/app/src/main/res/layout/fragment_map.xml @@ -26,7 +26,7 @@ android:shadowColor="@color/background" android:shadowRadius="6" android:text="@string/map_attribution_osm" - android:layout_alignParentRight="true" + android:layout_alignParentLeft="true" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a68597bc34..167db93f50 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -932,4 +932,5 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards With auto-sync off, quests are not downloaded automatically. To do this manually, use the \"%s\" button in the menu at the location you want to download. "Does this pedestrian crossing have an island?" + Open URL From d9772ffcb78d9396c48fe12e24c22052d1720e70 Mon Sep 17 00:00:00 2001 From: Tobias Zwick Date: Thu, 29 Oct 2020 23:25:47 +0100 Subject: [PATCH 58/60] use mobile home in AE (fixes #2202) --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a68597bc34..214f6c31e0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -586,7 +586,7 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards Houseboat Bungalow small detached house (summer house, holiday cottage, cabin …) - Static caravan + Mobile home Commercial building building where people work, shop or do any other commercial activities From fc594ff4c0105f42648d80521fee93647c568f1e Mon Sep 17 00:00:00 2001 From: Tobias Zwick Date: Thu, 29 Oct 2020 23:30:29 +0100 Subject: [PATCH 59/60] avoid the word "fee", as it looks similar to "free" (fixes #2204) --- app/src/main/res/values/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 214f6c31e0..edc346a848 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -280,7 +280,7 @@ The info you enter is then directly added to the OpenStreetMap in your name, wit "Specifically these" "General purpose" "You selected many sports" - "Does this restroom require a fee?" + "Do you have to pay to use this restroom?" "Does this restroom have a baby changing table?" "Does %s have a baby changing table?" "Is this stretch of way lit?" @@ -523,7 +523,7 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards Caodaism Chinese folk religion What religion is represented at this shrine? - Does it cost a fee to park here? + Do you have to pay to park here? Unhewn cobblestone Is it restricted who may park here? It is private @@ -740,7 +740,7 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards "Please zoom in further" These are quite a few splits. You can always further split up the way later. You can also do this later on the profile screen. - Does it cost a fee to enter %s? + Do you need to pay to enter %s? Is this laundry a self service laundry? Do these steps have a handrail? Do these steps have a ramp? What kind? From 21c4a532a0af09cf3931c109b05656f54def065c Mon Sep 17 00:00:00 2001 From: Tobias Zwick Date: Fri, 30 Oct 2020 00:25:20 +0100 Subject: [PATCH 60/60] update translations --- app/src/main/assets/country_metadata/BD.yml | 4 +- app/src/main/assets/country_metadata/BE.yml | 4 +- app/src/main/assets/country_metadata/BG.yml | 12 +- .../main/assets/country_metadata/CA-BC.yml | 2 +- app/src/main/assets/country_metadata/CH.yml | 4 +- app/src/main/assets/country_metadata/CZ.yml | 14 +- app/src/main/assets/country_metadata/DE.yml | 92 +-- app/src/main/assets/country_metadata/ES.yml | 12 +- app/src/main/assets/country_metadata/FX.yml | 2 +- app/src/main/assets/country_metadata/GB.yml | 8 +- .../main/assets/country_metadata/IN-KL.yml | 22 +- .../main/assets/country_metadata/IN-UP.yml | 6 +- app/src/main/assets/country_metadata/IR.yml | 4 +- app/src/main/assets/country_metadata/IT.yml | 12 +- app/src/main/assets/country_metadata/JP.yml | 2 +- app/src/main/assets/country_metadata/MN.yml | 4 +- app/src/main/assets/country_metadata/NL.yml | 14 +- app/src/main/assets/country_metadata/PH.yml | 14 +- app/src/main/assets/country_metadata/PK.yml | 8 +- app/src/main/assets/country_metadata/PL.yml | 2 +- app/src/main/assets/country_metadata/RU.yml | 12 +- app/src/main/assets/country_metadata/UA.yml | 4 +- .../main/assets/country_metadata/US-MI.yml | 8 +- app/src/main/assets/osmfeatures/ast.json | 4 - app/src/main/assets/osmfeatures/ca.json | 3 - app/src/main/assets/osmfeatures/cs.json | 66 +- app/src/main/assets/osmfeatures/da.json | 70 +- app/src/main/assets/osmfeatures/de.json | 129 ++-- app/src/main/assets/osmfeatures/el.json | 32 +- app/src/main/assets/osmfeatures/en-GB.json | 5 +- app/src/main/assets/osmfeatures/es.json | 95 ++- app/src/main/assets/osmfeatures/fa.json | 26 +- app/src/main/assets/osmfeatures/fi.json | 103 ++- app/src/main/assets/osmfeatures/fr.json | 34 +- app/src/main/assets/osmfeatures/gl.json | 471 ++++++++---- app/src/main/assets/osmfeatures/hu.json | 15 +- app/src/main/assets/osmfeatures/in.json | 3 - app/src/main/assets/osmfeatures/it.json | 276 +++++-- app/src/main/assets/osmfeatures/ja.json | 91 ++- app/src/main/assets/osmfeatures/ko.json | 12 - app/src/main/assets/osmfeatures/lt.json | 3 - app/src/main/assets/osmfeatures/nl.json | 695 +++++++++++++++++- app/src/main/assets/osmfeatures/no.json | 75 +- app/src/main/assets/osmfeatures/pl.json | 87 ++- app/src/main/assets/osmfeatures/pt-BR.json | 330 +++++---- app/src/main/assets/osmfeatures/pt.json | 60 +- app/src/main/assets/osmfeatures/ru.json | 46 +- app/src/main/assets/osmfeatures/sk.json | 13 - app/src/main/assets/osmfeatures/sv.json | 694 ++++++++++++++++- app/src/main/assets/osmfeatures/tr.json | 261 ++++++- app/src/main/assets/osmfeatures/uk.json | 57 +- app/src/main/assets/osmfeatures/zh-CN.json | 14 +- app/src/main/assets/osmfeatures/zh-HK.json | 4 - app/src/main/assets/osmfeatures/zh-TW.json | 51 +- app/src/main/assets/osmfeatures/zh.json | 3 - app/src/main/res/values-cs/strings.xml | 4 + .../main/res/values-cs/translation_info.xml | 2 +- app/src/main/res/values-el/strings.xml | 4 + .../main/res/values-el/translation_info.xml | 2 +- app/src/main/res/values-en-rGB/strings.xml | 6 - .../res/values-en-rGB/translation_info.xml | 2 +- app/src/main/res/values-fi/strings.xml | 40 + .../main/res/values-fi/translation_info.xml | 2 +- app/src/main/res/values-fr/strings.xml | 4 + .../main/res/values-fr/translation_info.xml | 2 +- app/src/main/res/values-gl/strings.xml | 4 + .../main/res/values-gl/translation_info.xml | 2 +- .../main/res/values-hr/translation_info.xml | 4 + app/src/main/res/values-it/strings.xml | 18 +- .../main/res/values-it/translation_info.xml | 2 +- app/src/main/res/values-nl/strings.xml | 28 + .../main/res/values-nl/translation_info.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 4 + .../res/values-pt-rBR/translation_info.xml | 2 +- app/src/main/res/values-ru/strings.xml | 11 + .../main/res/values-ru/translation_info.xml | 2 +- app/src/main/res/values-sv/strings.xml | 6 + app/src/main/res/values-tr/strings.xml | 30 + .../main/res/values-tr/translation_info.xml | 2 +- metadata/hr/full_description.txt | 5 + metadata/tr/short_description.txt | 2 +- res/country_metadata/atmOperators.yml | 165 ++--- .../chargingStationOperators.yml | 70 +- .../clothesContainerOperators.yml | 23 +- 84 files changed, 3496 insertions(+), 1048 deletions(-) create mode 100644 app/src/main/res/values-hr/translation_info.xml create mode 100644 metadata/hr/full_description.txt diff --git a/app/src/main/assets/country_metadata/BD.yml b/app/src/main/assets/country_metadata/BD.yml index 09083a6e26..cfa9e8cb74 100644 --- a/app/src/main/assets/country_metadata/BD.yml +++ b/app/src/main/assets/country_metadata/BD.yml @@ -30,8 +30,8 @@ atmOperators: [Dutch-Bangla Bank Limited ATM ডাচ-বাংলা ব্য Bank Fast Track ATM, Dutch-Bangla Bank ATM ডাচ-বাংলা ব্যাংকের এটিএম, Dutch-Bangla Bank ATM, Dutch Bangla Bank Ltd., Dutch Bangla Bank Limited ডাচ বাংলা ব্যাংক লিমিটেড, Dutch Bangla Bank Fast Track ডাচ বাংলা ব্যাংক ফাস্ট ট্র্যাক, Dutch Bangla Bank ATM ডাচ বাংলা ব্যাংক এটিএম, Dhaka Bank Limited - ATM, DBBL atm, DBBL ATM ডিবিবিএল এটিএম, City Bank Limited, Brac Bank ATM, Bank Asia Limited ATM - ব্যাংক এশিয়া লিমিটেড এটিএম, BRAC Bank ATM] + ATM, Dhaka Bank ATM, DBBL atm, DBBL ATM ডিবিবিএল এটিএম, City Bank Limited, Brac Bank ATM, Bank Asia + Limited ATM ব্যাংক এশিয়া লিমিটেড এটিএম, BRAC Bank ATM] firstDayOfWorkweek: Su isLeftHandTraffic: true mobileCountryCode: 470 diff --git a/app/src/main/assets/country_metadata/BE.yml b/app/src/main/assets/country_metadata/BE.yml index 1379f744fc..d03655200d 100644 --- a/app/src/main/assets/country_metadata/BE.yml +++ b/app/src/main/assets/country_metadata/BE.yml @@ -3,8 +3,8 @@ atmOperators: [BNP Paribas Fortis, KBC, Argenta, BeoBank, ING, Belfius, BNP Pari De Post, Crelan, Beobank, BNP Parisbas Fortis, bpost bank, Record Bank, Record, Europabank, BNP-Paribas Fortis, Axa, AXA Bank] chargingStationOperators: [Allego, Blue Corner, Ionity, allego, Smoov Allego, Luminus, The Plugin Company, Tesla, Smoov, PitPoint, - Colruyt, Bluecorner, smoov allego, BlueCorner, smoov, charge.brussels, bluecorner, allegro / smoov, - Pitpoint Brussels, Partago, ORES, Lidl, Eoly, EV-Box, De Lijn, BlueConnect, Allegro] + Colruyt, Bluecorner, smoov allego, Lidl, BlueCorner, smoov, charge.brussels, bluecorner, allegro / + smoov, Pitpoint Brussels, Partago, ORES, Eoly, EV-Box, De Lijn, BlueConnect, Audi, Allegro] clothesContainerOperators: [Vlaams Inzamel Centrum Textiel, Wereld Missie Hulp, Les Petits Riens - Spullenhulp, Terre, Vlaams Internationaal Centrum, IDELUX-Environnement, Oxfam, Curitas n.v., V.H.S. Europ, Curitas, De Kringwinkel, Terre ASBL, Wereldmissiehulp, Caritas n.v., ivio, IVAREM, WMH, Vlaams Inzamelcentrum Textiel, Curitas diff --git a/app/src/main/assets/country_metadata/BG.yml b/app/src/main/assets/country_metadata/BG.yml index 33e223e6a9..57499a3c8c 100644 --- a/app/src/main/assets/country_metadata/BG.yml +++ b/app/src/main/assets/country_metadata/BG.yml @@ -1,12 +1,12 @@ # Do not edit. Source files are in /res/country_metadata additionalStreetsignLanguages: [international] atmOperators: [Fibank, ДСК, ОББ, FIBank, Postbank, Банка ДСК, Райфайзенбанк, Unicredit Bulbank, Централна кооперативна - банка, УниКредит Булбанк, Unicredit, UniCredit Bulbank, UniCredit, ЦКБ, ПИБ, Raiffeisenbank, DSK - Bank, Райфайзен Банк, Райфайзен, Пощенска банка, Raiffeisen, DSK, Уникредит Булбанк, Първа Инвестиционна - Банка, Обединена българска банка, Обединена Българска Банка, Unicredit bulbank, Raiffeisen Bank, - Piraeus Bank, OBB, FiBank, CCB, Фибанк, Първа инвестиционна банка, Общинска банка, Общинска Банка, - Инвестбанк, Банк ДСК, Société Générale, ProCredit Bank, First Investment Bank, Euronet, Central Cooperative - Bank, Allianz] + банка, УниКредит Булбанк, Unicredit, UniCredit Bulbank, UniCredit, ЦКБ, Райфайзен Банк, ПИБ, Raiffeisenbank, + DSK Bank, Райфайзен, Пощенска банка, Raiffeisen, DSK, Уникредит Булбанк, Първа Инвестиционна Банка, + Обединена българска банка, Обединена Българска Банка, Unicredit bulbank, Raiffeisen Bank, Piraeus Bank, + OBB, FiBank, CCB, Фибанк, Първа инвестиционна банка, Общинска банка, Общинска Банка, Инвестбанк, Банк + ДСК, Société Générale, ProCredit Bank, First Investment Bank, Euronet, Central Cooperative Bank, + Allianz] chargingStationOperators: [ОП „Общински паркинги и синя зона“ - Варна] clothesContainerOperators: [БЧК, texcycle] isLivingStreetKnown: true diff --git a/app/src/main/assets/country_metadata/CA-BC.yml b/app/src/main/assets/country_metadata/CA-BC.yml index 9e3842dca2..d7390ed07e 100644 --- a/app/src/main/assets/country_metadata/CA-BC.yml +++ b/app/src/main/assets/country_metadata/CA-BC.yml @@ -1,7 +1,7 @@ # Do not edit. Source files are in /res/country_metadata atmOperators: [CIBC, RBC, TD Canada Trust, RBC Royal Bank, Scotiabank, Vancity, BMO, ScotiaBank, DC Bank, coastcapital savings, TD Bank, Royal Bank, Envision Financial, DCBank, Coast Capital] -chargingStationOperators: [Flo, BC Hydro, ChargePoint, Tesla, Chargepoint, City of Maple Ridge / ChargePoint] +chargingStationOperators: [Flo, ChargePoint, BC Hydro, Tesla, Chargepoint, City of Maple Ridge / ChargePoint] clothesContainerOperators: [Developmental Disabilities Association, Cerebral Palsy Association of BC, Canadian Diabetes Association, Big Brothers of Greater Vancouver Clothing Donation] officialLanguages: [en] diff --git a/app/src/main/assets/country_metadata/CH.yml b/app/src/main/assets/country_metadata/CH.yml index 12d9047276..499b2515b9 100644 --- a/app/src/main/assets/country_metadata/CH.yml +++ b/app/src/main/assets/country_metadata/CH.yml @@ -17,8 +17,8 @@ atmOperators: [Raiffeisen, PostFinance, Postfinance, Credit Suisse, UBS, Zürche chargingStationOperators: [Tesla, IWB, Repower AG, Lidl, Groupe E, EVite, Tesla Motors Inc., EBL, ALTIS, ABB, easy4you, bike-energy, Altis, m-way, Technische Betriebe Glarus Nord, ESB, EKZ, evpass, Migros, Infovel, Gemeinde Pontresina, CKW, WWZ, IBAarau AG, FHNW, Enerti, Comfort Hotel Egerkingen, my elmo, greenmotion, ewl, evpass.ch, - eCarup, Renault, Raiffeisen, Move, Evpass, Eniwa AG, Eniva, Energie 360°, EWN, BKW, Agrola, AEW Energie - AG, swisscharge, mway, move, groupe e, groupe, ewz, energie360°, elmoove, ee-en.ch, eCarUp, Werkbetriebe + energie360°, eCarup, Renault, Raiffeisen, Move, Evpass, Eniwa AG, Eniva, Energie 360°, EWN, BKW, Agrola, + AEW Energie AG, swisscharge, mway, move, groupe e, groupe, ewz, elmoove, ee-en.ch, eCarUp, Werkbetriebe Frauenfeld, Tesla Inc., Tesla Destination Charging, Technische Betriebe Wil, Technische Betriebe Kreuzlingen, Swisscharge, SwissCharge, Socar, SAK, Romande Energie, Repower, RTB Regionale Technische Betriebe, Landi Matzigen, IKEA, Hotel Riverside, GoFast, Garage Keigel, Energie Wasser Bern, Energie diff --git a/app/src/main/assets/country_metadata/CZ.yml b/app/src/main/assets/country_metadata/CZ.yml index a2d84ba093..3e4f73918d 100644 --- a/app/src/main/assets/country_metadata/CZ.yml +++ b/app/src/main/assets/country_metadata/CZ.yml @@ -1,11 +1,11 @@ # Do not edit. Source files are in /res/country_metadata -atmOperators: [Česká spořitelna, ČSOB, Komerční banka, Pharro, Euronet, Česká Spořitelna, Raiffeisenbank, KB, Air Bank, - GE Money Bank, Komerční Banka, Moneta, UniCredit Bank, Moneta Money Bank, CSOB, AirBank, EuroNet, MONETA - Money Bank, GE Money, Česká spořitelna a.s., Poštovní spořitelna, Air bank, Unicredit Bank, Moneta - Bank, Komerční banka a.s., Airbank, ČS, Travelex, Sberbank, Raiffeisen Bank, MONETA Money Bank a.s., - Citibank, komerční banka, airbank, Raiffeisen bank, Komeční banka, GE Money bank, GE, Fio, Era, České - spořitelny, Česká spořitelna a. s., www.wbtcb.com, mBank, UniCreditBank, UniCredit bank, Raiffeisen, - Oberbank, OK Point, MONETA, Fio Banka, FIO, ERA, Airbank a.s.] +atmOperators: [Česká spořitelna, ČSOB, Komerční banka, Pharro, Euronet, Česká Spořitelna, Raiffeisenbank, Air Bank, + KB, GE Money Bank, Komerční Banka, Moneta, UniCredit Bank, Moneta Money Bank, CSOB, AirBank, EuroNet, + MONETA Money Bank, GE Money, Česká spořitelna a.s., Poštovní spořitelna, Air bank, Unicredit Bank, + Moneta Bank, Komerční banka a.s., Airbank, ČS, Travelex, Sberbank, Raiffeisen Bank, MONETA Money Bank + a.s., Citibank, komerční banka, airbank, Raiffeisen bank, Komeční banka, GE Money bank, GE, Fio, + Era, České spořitelny, Česká spořitelna a. s., www.wbtcb.com, mBank, UniCreditBank, UniCredit bank, + Raiffeisen, Oberbank, OK Point, MONETA, Fio Banka, FIO, ERA, Airbank a.s.] chargingStationOperators: [ČEZ, ČEZ (CCS/CHAdeMO/Mennekes type2), PRE, EVMAPA, E.ON (CCS/CHAdeMO/Mennekes), ČEZ (CCS/CHAdeMO/Mennekes typ2), beskolo, EON, E.ON, ČEZ (CCS/CHAdeMO/Mennekes type 2), Tesla, ČEZ (CCS/CHAdeMO and Mennekes type2), evmapa.cz, MOL (CCS/CHAdeMO/Mennekes), CCS/CHAdeMO and Mennekes type2, ČEZ (CCS/CHAdeMO/Mennekes), diff --git a/app/src/main/assets/country_metadata/DE.yml b/app/src/main/assets/country_metadata/DE.yml index 7c3cbd6bf6..ee27352812 100644 --- a/app/src/main/assets/country_metadata/DE.yml +++ b/app/src/main/assets/country_metadata/DE.yml @@ -9,70 +9,70 @@ atmOperators: [Sparkasse, Postbank, Euronet, Volksbank, Deutsche Bank, ING-DiBa, Mittelbrandenburgische Sparkasse, ING Diba, Commerzbank AG, Sparkasse Trier, Saalesparkasse, ICCash, Stadtsparkasse Düsseldorf, Sparkasse Herford, Sparkasse Bochum, BBBank, Aachener Bank, Sparkasse Holstein, Sparkasse Chemnitz, Sparkasse Leipzig, ING-DiBa AG, Degussa Bank, Volksbank Dessau-Anhalt eG, Sparkasse - Hanauerland, Sparkasse Bielefeld, Kreissparkasse Köln, Kreissparkasse Böblingen, IC Cash Services - GmbH, Berliner Volksbank eG, Bankhaus Lenz, BW-Bank, Volksbank Krefeld eG, Stadtsparkasse, ING-Diba, - Stadt-Sparkasse Solingen, Sparkasse Mainz, Sparkasse Hanau, Ostsächsische Sparkasse Dresden, Targobank, - Sparkasse Bodensee, Sparkasse Bayreuth, Nord-Ostsee Sparkasse, Förde Sparkasse, Deutsche Post, Cardpoint - GmbH, BW Bank, Volks- und Raiffeisenbank, Taunus Sparkasse, Sparkasse Westholstein, Sparkasse Vorpommern, - Sparkasse Saarbrücken, Sparkasse Mittelthüringen, Sparkasse LeerWittmund, Mainzer Volksbank, Kasseler - Sparkasse, IC Cash, Volksbank Kraichgau eG, Sparkasse Witten, Sparkasse Nürnberg, Sparkasse Gießen, + Hanauerland, Kreissparkasse Köln, Kreissparkasse Böblingen, IC Cash Services GmbH, Berliner Volksbank + eG, Bankhaus Lenz, BW-Bank, Volksbank Krefeld eG, Stadtsparkasse, Sparkasse Bielefeld, ING-Diba, + Stadt-Sparkasse Solingen, Sparkasse Mainz, Sparkasse Hanau, Ostsächsische Sparkasse Dresden, Nord-Ostsee + Sparkasse, Targobank, Sparkasse Bodensee, Sparkasse Bayreuth, Förde Sparkasse, Deutsche Post, Cardpoint + GmbH, BW Bank, Volks- und Raiffeisenbank, Taunus Sparkasse, Sparkasse Westholstein, Sparkasse Saarbrücken, + Sparkasse Mittelthüringen, Sparkasse LeerWittmund, Mainzer Volksbank, Kasseler Sparkasse, IC Cash, + Volksbank Kraichgau eG, Sparkasse Witten, Sparkasse Vorpommern, Sparkasse Nürnberg, Sparkasse Gießen, Postbank AG, Münchner Bank, Kreissparkasse Verden, Kreissparkasse Tübingen, Ing Diba, Cardpoint, Braunschweigische Landessparkasse, Sparkasse zu Lübeck, Sparkasse Schwäbisch Hall, Sparkasse Rhein Neckar Nord, Sparkasse Kraichgau, Sparkasse Freising, Sparkasse Emden, Sparkasse Dortmund, Raiffeisenbank Oldenburg eG, - Volksbank Reutlingen, VR-Bank Bad Hersfeld-Rotenburg eG, Stadtsparkasse Wuppertal, Stadtsparkasse Kaiserslautern, - Sparkasse Neuss, Sparkasse Münsterland Ost, Sparkasse Mittelsachsen, Sparkasse Hildesheim, Sparkasse - Hannover, Kreissparkasse Reutlingen, Kreissparkasse Ostalb, Kreissparkasse Ludwigsburg, Bremische - Volksbank eG, transact Elektronische Zahlungssysteme GmbH, Volksbank Raiffeisenbank, Volksbank Köln - Bonn eG, Stadtsparkasse Magdeburg, Sparkasse Rhein-Nahe, Sparkasse Harburg-Buxtehude, Sparkasse - HRV, Sparkasse Darmstadt, ReiseBank AG, Ostsächsische Sparkasse, Landessparkasse zu Oldenburg, Kreissparkasse - Waiblingen, Kreissparkasse Esslingen-Nürtingen, Ing-DiBa, IC Cash Services, Frankfurter Sparkasse, - Erzgebirgssparkasse, cardpoint, Volksbank Trier eG, Volksbank Lahr eG, Volksbank Heilbronn, Volksbank - Bühl eG, VR Bank Schwäbisch Hall-Crailsheim eG, Sparkasse Schwäbisch Hall - Crailsheim, Sparkasse + Nord-Ostsee-Sparkasse, Volksbank Reutlingen, VR-Bank Bad Hersfeld-Rotenburg eG, Stadtsparkasse Wuppertal, + Stadtsparkasse Kaiserslautern, Sparkasse Neuss, Sparkasse Münsterland Ost, Sparkasse Mittelsachsen, + Sparkasse Hildesheim, Sparkasse Hannover, Landessparkasse zu Oldenburg, Kreissparkasse Reutlingen, + Kreissparkasse Ostalb, Kreissparkasse Ludwigsburg, Bremische Volksbank eG, transact Elektronische Zahlungssysteme + GmbH, Volksbank Raiffeisenbank, Volksbank Köln Bonn eG, Stadtsparkasse Magdeburg, Sparkasse Rhein-Nahe, + Sparkasse Harburg-Buxtehude, Sparkasse HRV, Sparkasse Darmstadt, ReiseBank AG, Ostsächsische Sparkasse, + Kreissparkasse Waiblingen, Kreissparkasse Esslingen-Nürtingen, Ing-DiBa, IC Cash Services, Frankfurter + Sparkasse, Erzgebirgssparkasse, cardpoint, Volksbank Trier eG, Volksbank Lahr eG, Volksbank Heilbronn, + Volksbank Bühl eG, VR Bank Schwäbisch Hall-Crailsheim eG, Sparkasse Schwäbisch Hall - Crailsheim, Sparkasse Regensburg, Sparkasse Paderborn-Detmold, Sparkasse Jena-Saale-Holzland, Sparkasse Düsseldorf, Sparkasse - Duisburg, Santander, Nord-Ostsee-Sparkasse, Nassauische Sparkasse, Landesbank Baden-Württemberg, - Kreissparkasse Gelnhausen, Ing-Diba] + Duisburg, Santander, Nassauische Sparkasse, Landesbank Baden-Württemberg, Kreissparkasse Gelnhausen, + Ing-Diba] chargingStationOperators: [Stromnetz Hamburg, Stadtwerke München, EnBW, innogy, RWE, Allego, allego, RWE-Effizienz, Innogy, E-WALD GmbH, LEW, EWE, SWU Stadtwerke Ulm/Neu-Ulm GmbH, Tesla, EnBW Energie Baden-Württemberg AG, be emobil, NEW, Kaufland, Lidl, Tank & Rast, e-regio GmbH & Co. KG, Vattenfall, Stadtwerke Augsburg, SWM, Lechwerke AG, Ionity, Energie- und Wasserversorgung Bonn/Rhein-Sieg GmbH, Tesla Motors Inc., E.ON, Tesla Motors, FairEnergie GmbH, ENSO Energie Sachsen Ost AG, DREWAG - Stadtwerke Dresden GmbH, Aldi Süd, ADAC, innogy SE, N-Ergie, Stadtwerke Norderstedt, EWE Vertrieb GmbH, Westfalen Weser Netz, EWV, BMW, E-Werk Mittelbaden, - Stadtwerke Leipzig, Mainova, innogy eMobility Solutions GmbH, IKEA, Energie Baden-Württemberg AG, Stadtwerke + Stadtwerke Leipzig, Mainova, Energie Baden-Württemberg AG, innogy eMobility Solutions GmbH, IKEA, Stadtwerke Osnabrück, RheinEnergie, Kreiswerke Main-Kinzig GmbH, Ionity GmbH, Energie- und Wasserversorgung Bruchsal GmbH, Energie und Wasser Potsdam GmbH, wallbe, Stadtwerke Witten, Regensburger Energie- - und Wasserversorgung AG & Co KG, eins energie in sachsen, Stadtwerke Düsseldorf, NewMotion, envia - M, eE4mobile eG, STAWAG, Fastned, EWR, enviaM, Stadtwerke Tübingen, Stadtwerke Speyer GmbH, ladenetz.de, - TheNewMotion, Stadtwerke Bielefeld, Edeka, Bauhaus, Süwag Energie AG, Stawag, Stadtwerke Marburg, Stadtwerke - Bochum, SWB, Porsche, DREWAG - Stadtwerke Dresden, Bayernwerk AG, eon, e-on Drive, VGS mbH, Süwag, + und Wasserversorgung AG & Co KG, Fastned, eins energie in sachsen, Stadtwerke Düsseldorf, NewMotion, + envia M, Stadtwerke Bielefeld, STAWAG, EWR, enviaM, eE4mobile eG, Stadtwerke Tübingen, Stadtwerke Speyer + GmbH, ladenetz.de, TheNewMotion, SWB, Edeka, Bauhaus, Süwag Energie AG, Stawag, Stadtwerke Marburg, + Stadtwerke Bochum, Porsche, DREWAG - Stadtwerke Dresden, Bayernwerk AG, eon, e-on Drive, VGS mbH, Süwag, Stadtwerke Meerbusch GmbH, N-ERGIE Aktiengesellschaft, N-ERGIE, Lech Elektrizitätswerke Augsburg, Ikea, Audi AG, ALDI Süd, swb, Stadtwerke Pforzheim, Stadtwerke Heide, Pfalzwerke, OVAG, IONITY, Entega Energie GmbH, Energieversorgung Rodau GmbH, ENTEGA Energie GmbH, DREWAG, Allego GmbH, Stadtwerke Tübingen GmbH, Stadtwerke Iserlohn - Heimatversorger, Mainzer Stadtwerke, Kreis Paderborn, Entega, E-Wald GmbH, Bayernwerk, BEW, eeMobility, e.on, e.dis, WVV, The New Motion, TankE GmbH, TEAG, Stadtwerke Rhede GmbH, Stadtwerke Herne, Rheinenergie, RWE Effizienz GmbH, Ovag, Mennekes, Kreiswerke Main-Kinzig, - ENBW, EAM, Allegro, enercity, emma, SÜC Energie und H2O GmbH, Stadtwerke Baden-Baden, RWE / DEW21, - Pfalzwerke AG, Maingau, Ladeverbund+, LEW Augsburg, Innogy eMobility Solutions GmbH, EGG Energieversorgung - Gera, Charge-ON GmbH] -clothesContainerOperators: [Deutsches Rotes Kreuz, Loop, Aktion Hoffnung, AWG, GEB, ALBA Braunschweig GmbH, Humana, Stadtreinigung - Hamburg, Malteser, Stadt Karlsruhe, AHE;Deutsches Rotes Kreuz, Abfallwirtschaftsgesellschaft Wuppertal, - Vorwerker Diakonie, DRK, Zweckverband für Abfallwirtschaft Kempten, Technische Betriebe Velbert AöR, - Abfallwirtschaftsbetrieb München, Texaid, hoelp, Kolping, AWB Köln, AWB, AHE, AWO, GOA, bonnorange - AöR, Technische Betriebe Remscheid, Darbo Recycling, Step, Malteser Hilfsdienst e.V., Landkreis - Prignitz, Berlin-Textilrecycling, Remondis, Malteser Hilfsdienst, FWS, CityGreenPoint, aha Zweckverband - Abfallwirtschaft Region Hannover, Stadt Stuttgart, TEXAID, Aktex Rohstoff-Recycling Nord, Diakoniewerk - Essen, Bayerisches Rotes Kreuz, Retextil Recycling International, Abfall- und Wertstofflogistik - Neuss GmbH (AWL), Isevtex, AWISTA, AHG alpha Handelskontor, AHA, unknown, Veolia, Kolpingwerk, HeDi, - Gew. Fa. Mettex, DRK Kreisverband Bonn e.V., Brotex, AWM, ZKE, Däsa Wiederverwertungs GmbH, Altkleiderfirma - Nargül, illegal, Textil-Recycling Nord, RS, Kolping Recycling GmbH, TEXAID Deutschland GmbH, Stadt - Karlsruhe Amt für Abfallwirtschaft, Deutsches Rotes Kreuz e.V., DRK-Kreisverband Trier-Saarburg - e.V., Bera Textilrecycling, Baliz Textilwerke, Akza Textilrecycling, Neue Arbeit Lahr, Hoppe, HUMANA - Kleidersammlung GmbH, Familienschutzwerk, BRK, AWISTA GmbH, AHE;Deutsches Rotes Kreuz;Ruhrtalengel, - aha, TEXAID Collection, SP Textilverwertung, Retextil, Maltheser Hilfsdienst, Johanniter, HUMANA, Diakonisches - Werk Kassel, Deutsche Lebens-Rettungs-Gesellschaft e.V., DESWOS, TEXAID Collection GmbH, Stadtreinigung - Leipzig, SOEX, Haytex Textilrecycling, Ginotex, DRK-Kreisverband Koblenz-Stadt e.V., DRK KV Ammerland, - Content KG, Bethel, Baliz, Awista, ZVO, Wittmann, USB, Stadtreiniger Kassel, Sehbehinderten Selbsthilfe - Kurpfalz-Odenwald e.V., REMONDIS, OKA Textil, KuB GmbH, Kreisentsorgungs GmbH Vogtland (KEV), Kolpingsfamilie - Ostbevern e. V., Faircollect, East-West Textilrecycling Kursun, East-West, Caritas, Arbeiter-Samariter-Bund] + ENBW, EAM, Allegro, enercity, emma, SÜC Energie und H2O GmbH, Stadtwerke Göttingen, Stadtwerke Baden-Baden, + RWE / DEW21, Pfalzwerke AG, Maingau, Ladeverbund+, LEW Augsburg, Innogy eMobility Solutions GmbH, EGG + Energieversorgung Gera, Charge-ON GmbH] +clothesContainerOperators: [Deutsches Rotes Kreuz, Loop, Aktion Hoffnung, AWG, GEB, ALBA Braunschweig GmbH, Humana, Malteser, Stadtreinigung + Hamburg, Stadt Karlsruhe, AHE;Deutsches Rotes Kreuz, Abfallwirtschaftsgesellschaft Wuppertal, Vorwerker + Diakonie, DRK, Zweckverband für Abfallwirtschaft Kempten, Technische Betriebe Velbert AöR, Abfallwirtschaftsbetrieb + München, Texaid, hoelp, Kolping, AWB Köln, AWB, AHE, AWO, GOA, bonnorange AöR, Technische Betriebe + Remscheid, Darbo Recycling, Step, Malteser Hilfsdienst e.V., Landkreis Prignitz, Remondis, Malteser + Hilfsdienst, FWS, CityGreenPoint, Berlin-Textilrecycling, aha Zweckverband Abfallwirtschaft Region + Hannover, Stadt Stuttgart, TEXAID, Bayerisches Rotes Kreuz, Aktex Rohstoff-Recycling Nord, Diakoniewerk + Essen, Abfall- und Wertstofflogistik Neuss GmbH (AWL), Retextil Recycling International, Isevtex, + AWISTA, AHG alpha Handelskontor, AHA, unknown, ZKE, Veolia, Kolpingwerk, HeDi, Gew. Fa. Mettex, DRK + Kreisverband Bonn e.V., Brotex, AWM, Däsa Wiederverwertungs GmbH, Altkleiderfirma Nargül, illegal, + Textil-Recycling Nord, RS, Kolping Recycling GmbH, Deutsches Rotes Kreuz e.V., TEXAID Deutschland GmbH, + Stadt Karlsruhe Amt für Abfallwirtschaft, DRK-Kreisverband Trier-Saarburg e.V., Bera Textilrecycling, + Baliz Textilwerke, Akza Textilrecycling, SP Textilverwertung, Neue Arbeit Lahr, Hoppe, HUMANA Kleidersammlung + GmbH, Familienschutzwerk, BRK, AWISTA GmbH, AHE;Deutsches Rotes Kreuz;Ruhrtalengel, aha, TEXAID + Collection GmbH, TEXAID Collection, Retextil, Maltheser Hilfsdienst, Johanniter, HUMANA, Diakonisches + Werk Kassel, Deutsche Lebens-Rettungs-Gesellschaft e.V., DESWOS, Stadtreinigung Leipzig, SOEX, Haytex + Textilrecycling, Ginotex, DRK-Kreisverband Koblenz-Stadt e.V., DRK KV Ammerland, Content KG, Bethel, + Baliz, Awista, ZVO, Wittmann, USB, Stadtreiniger Kassel, Sehbehinderten Selbsthilfe Kurpfalz-Odenwald + e.V., REMONDIS, OKA Textil, KuB GmbH, Kreisentsorgungs GmbH Vogtland (KEV), Kolpingsfamilie Ostbevern + e. V., Faircollect, East-West Textilrecycling Kursun, East-West, Caritas, Arbeiter-Samariter-Bund] isAdvisorySpeedLimitKnown: false isLivingStreetKnown: true isSlowZoneKnown: true diff --git a/app/src/main/assets/country_metadata/ES.yml b/app/src/main/assets/country_metadata/ES.yml index 39b72092bd..d2e466269a 100644 --- a/app/src/main/assets/country_metadata/ES.yml +++ b/app/src/main/assets/country_metadata/ES.yml @@ -3,15 +3,15 @@ additionalStreetsignLanguages: [ca, eu, gl, ast] additionalValidHousenumberRegex: s/n atmOperators: [Santander, Bankia, BBVA, La Caixa, Banco Santander, Telebanco 4B, Banco Popular, CaixaBank, Euronet, Kutxabank, Sabadell, Caja Rural, Banca March, Unicaja, Cajamar, Banc Sabadell, IberCaja, Banco Sabadell, - Liberbank, Abanca, Deutsche Bank, Euro 6000, Caixabank, ABANCA, Servired, Popular, BBK, Telebanco, + Liberbank, Abanca, Deutsche Bank, ABANCA, Euro 6000, Caixabank, Servired, Popular, BBK, Telebanco, Ibercaja, Euro6000, Sabadell Atlántico, Kutxa, ING, Caja Duero, Bankinter, BanCaixa, Laboral Kutxa, Caixa Bank, Banco Pastor, euronet, Cajasol, BMN, kutxabank, EspañaDuero, Catalunya Caixa, Cajasur, CAM, Banco de Sabadell, Bancaja, la Caixa, Targo Bank, ING Direct, Euronet Worldwide, Euro Automatic - Cash, Caja rural, Caja Madrid, Caja Granada, Caja España, Caja Cantabria, Caixa Galicia, BancaMarch, - BANTIERRA, BANKIA, cajamar, bankia, Vital Kutxa, Santander 4B, Sabadell Guipuzcoano, Sa Nostra, Ruralcaja, - Cash Zone, CajaSur, Caja Rural de Soria, Caja Rural de Salamanca, Caja Rural de Extremadura, Caixa - bank, Caixa Penedès, Caixa Catalunya, Caixa, CAIXABANK, CAI, Banco de Santander, Banco de Andalucía, - Banco Sabadell Atlántico, Banco Caixa Geral, 4B] + Cash, Caja rural, Caja Madrid, Caja España, Caja Cantabria, BancaMarch, BANTIERRA, BANKIA, cajamar, + bankia, Vital Kutxa, Santander 4B, Sabadell Guipuzcoano, Sa Nostra, Ruralcaja, Cash Zone, CajaSur, + Caja Rural de Soria, Caja Rural de Salamanca, Caja Rural de Extremadura, Caja Granada, Caixa bank, + Caixa Penedès, Caixa Galicia, Caixa Catalunya, Caixa, CAIXABANK, CAI, Banco de Santander, Banco de + Andalucía, Banco Sabadell Atlántico, Banco Caixa Geral, 4B] chargingStationOperators: [IBIL, Tesla Motors Inc., EDP, Iberdrola, GIC, Viesgo, Feníe Energía, edp, Easycharger, Cargacoches, Urbener, Endesa, Àrea Metropolitana de Barcelona, Wenea, Ionity, Ibil, Fenienergia, EMT, Ajuntament de Vic, Tesla, Fenie Energia, Ajuntament de Lleida, VNG Aparcaments, Serrano Park III, Serrano Park I, Repsol, diff --git a/app/src/main/assets/country_metadata/FX.yml b/app/src/main/assets/country_metadata/FX.yml index 301cc3cca3..e2c9e2f05f 100644 --- a/app/src/main/assets/country_metadata/FX.yml +++ b/app/src/main/assets/country_metadata/FX.yml @@ -7,7 +7,7 @@ atmOperators: [La Banque Postale, Crédit Agricole, Société Générale, Caisse Orange bank, La banque postale, Banque Rhône-Alpes, Banque Populaire Grand Ouest, Banque Dupuy de Parseval, la banque postale, credit agricole, Banque Postale, Banque Chabrières, BNP PARIBAS] chargingStationOperators: [Bouygues Énergies et Services, Izivia, Freshmile, Clem, Sodetrel Mobilité, Mouv Élec Var, Sodetrel, SEDI, - EneRSIEIL, SDE35, Sorégies, SDEY, Mobive, SYANE, SDE07, Tesla Motors, SIPLEC, SYME05, Séolis, Ionity, + EneRSIEIL, SDE35, Sorégies, SDEY, Mobive, SYANE, SDE07, Tesla Motors, SIPLEC, SYME05, Ionity, Séolis, Morbihan énergies, SEY 78, Renault, MobiSDEC, SYDELA, SDED, Electric 55 Charging, Morbihan Énergies, SDE04, Syndicat Départemental d'Énergie de Loire-Atlantique (SYDELA) | FR*S44, InEnergies, Lidl, Saint-Louis, Autolib', SIEL42, Clem', Plus de Bornes, Mota, Auchan, Tesla, SIEGE 27, Effia, RSE, Syndicat de l'Énergie diff --git a/app/src/main/assets/country_metadata/GB.yml b/app/src/main/assets/country_metadata/GB.yml index 3e65614032..3f8fb73ab6 100644 --- a/app/src/main/assets/country_metadata/GB.yml +++ b/app/src/main/assets/country_metadata/GB.yml @@ -8,8 +8,8 @@ atmOperators: [RBS, Barclays Bank PLC, HSBC, NatWest, Tesco, Barclays, Santander Asda, First Trust, Co-Operative Bank, Nationwide Building Society, Nat West, Cooperative Bank, Coop, ASDA, cashzone, Sainsbury, HBOS, Alliance & Leicester, Notemachine, National Westminster Bank Plc, Morrisons, Marks & Spencer, LINK, tesco, co-op, The Co-operative Food, Tesco Express, Sainsbury's Finance, - HSBC Bank plc, Barclays Bank, natwest, link, barclays, Sainsburys Bank, One Stop, Cooperative, Coop - Bank, Co-op Bank, Co-Op, sainsburys, bankmachine, Travelex, The Royal Bank of Scotland, The Co-operative + HSBC Bank plc, Barclays Bank, natwest, link, barclays, The Royal Bank of Scotland, Sainsburys Bank, + One Stop, Cooperative, Coop Bank, Co-op Bank, Co-Op, sainsburys, bankmachine, Travelex, The Co-operative Group, The Co-Operative Bank, Royal Mail, Post Office Money, Post Office Ltd, National Westminster Bank, Lloyds Banking Group, Lloyds Bank plc, DC ATM, BankMachine, Bank of Ireland; Post Office, Bank Of Ireland, Abbey, AIB] @@ -28,8 +28,8 @@ chargingStationOperators: [Ecotricity, Source London, Pod Point, Tesla Motors In your Car, Centro, Bullring, Boot and Shoe, Beech Hill Hotel, 'AutoCharge: EV Pedestal', Allego] clothesContainerOperators: [Salvation Army, The Fire Fighters Charity, Brighton & Hove City Council, The Salvation Army, British Heart Foundation, Scope, Rushcliffe Borough Council, Nottingham City Council, Traid, Cystic Fibrosis - Trust, South Norfolk Council, Cancer Fund for Children, traid, TRAID, Severn Waste Services, Oxfam, - Fife Council] + Trust, South Norfolk Council, Cancer Fund for Children, traid, The Firefighters Charity, TRAID, + Severn Waste Services, Oxfam, Fife Council] isAdvisorySpeedLimitKnown: true isLeftHandTraffic: true isLivingStreetKnown: true diff --git a/app/src/main/assets/country_metadata/IN-KL.yml b/app/src/main/assets/country_metadata/IN-KL.yml index 8dfb3b3edf..0b8ce2d7c6 100644 --- a/app/src/main/assets/country_metadata/IN-KL.yml +++ b/app/src/main/assets/country_metadata/IN-KL.yml @@ -1,20 +1,20 @@ # Do not edit. Source files are in /res/country_metadata atmOperators: [SBI, State Bank of India, Federal Bank, SBI ATM, South Indian Bank, Canara Bank, Federal Bank ATM, State Bank Of India, South Indian Bank ATM, state bank of india, sbi, State Bank ATM, Axis Bank, federal - bank, SBT, Canara Bank ATM, ICICI Bank, FEDERAL BANK, south indian bank, canara bank, State Bank, - HDFC Bank, ATM, Union Bank, State Bank of Travancore, ICICI Bank ATM, State Bank Of India ATM, Federal + bank, SBT, Canara Bank ATM, ICICI Bank, south indian bank, canara bank, State Bank, HDFC Bank, FEDERAL + BANK, ATM, Union Bank, State Bank of Travancore, ICICI Bank ATM, State Bank Of India ATM, Federal bank, State Bank of India ATM, STATE BANK OF INDIA, HDFC, CANARA BANK ATM, federal bank atm, Indian Bank, ICICI, FEDERAL BANK ATM, sbi atm, Syndicate Bank ATM, Punjab National Bank ATM, Punjab National Bank, HDFC Bank ATM, Bank of India, Axis Bank ATM, south indian bank atm, Union Bank of India, Union - Bank ATM, Syndicate Bank, State bank, SOUTH INDIAN BANK, Indian Overseas Bank, IOB ATM, Dhanalakshmi - Bank, Canara, Bank of Baroda, Axis bank, icici bank, fedaral bank, canara bank ATM, atm, State bank - of India, SBI atm, PNB, Kerala Gramin Bank, INDIA ONE ATM, IDBI Bank, ICICI BANK ATM, ESAF ATM, + Bank ATM, Syndicate Bank, State bank, Indian Overseas Bank, IOB ATM, Dhanalakshmi Bank, Canara, + Bank of Baroda, Axis bank, icici bank, fedaral bank, canara bank ATM, atm, State bank of India, SOUTH + INDIAN BANK, SBI atm, PNB, Kerala Gramin Bank, INDIA ONE ATM, IDBI Bank, ICICI BANK ATM, ESAF ATM, CSB, CANARA BANK, BANK OF INDIA, union bank, state bank of INDIA, south indian bank ATM, kerala Gramin Bank, india one ATM, icici bank atm, icici, axis bank, Vijaya Bank ATM, Union Bank Of India Atm, - Union Bank Of India ATM, UNION BANK, Tamilnad Mercantile Bank, State bank of india, State Bank of India - (SBI), State Bank ATM & CDM, South indian bank, South Indian bank, Sbi atm, STATE BANK ATM, SOUTH - INDIAN BANK ATM, SMG, SIB ATM, SBT ATM, PUNJAB NATIONAL BANK, India1 Atm, India One ATM, IOB, INDIA - ONE, IDCB, IDBI Bank ATM, IDBI, ICICI ATM, HDFC bank atm, HDFC ATM, Fedral Bank, Federal Bank Ltd., - ESAF, Dhanlaxmi Bank ATM, Dhanalaxmi Bank, City Union Bank, Central Bank, Catholic Syrian Bank, Canara - bank ATM, CSB ATM, Bank of india, Bank of India ATM, BOI ATM] + Union Bank Of India ATM, UNION BANK, Tamilnad Mercantile Bank, TDCB ATM, State bank of india, State + Bank of India (SBI), State Bank ATM & CDM, South indian bank, South Indian bank, Sbi atm, STATE + BANK ATM, SOUTH INDIAN BANK ATM, SMG, SIB ATM, SBT ATM, PUNJAB NATIONAL BANK, India1 Atm, India + One ATM, IOB, INDIA ONE, IDCB, IDBI Bank ATM, IDBI, ICICI ATM, HDFC bank atm, HDFC ATM, Fedral Bank, + Federal Bank Ltd., ESAF, Dhanlaxmi Bank ATM, Dhanalaxmi Bank, City Union Bank, Central Bank, Catholic + Syrian Bank, Canara bank ATM, CSB ATM, Bank of india, Bank of India ATM, BOI ATM] officialLanguages: [ml] diff --git a/app/src/main/assets/country_metadata/IN-UP.yml b/app/src/main/assets/country_metadata/IN-UP.yml index 0fe665bf35..17ea7ab755 100644 --- a/app/src/main/assets/country_metadata/IN-UP.yml +++ b/app/src/main/assets/country_metadata/IN-UP.yml @@ -1,6 +1,6 @@ # Do not edit. Source files are in /res/country_metadata -atmOperators: [State Bank of India, HDFC Bank, SBI, Punjab National Bank, ICICI Bank, Bank of Baroda, Axis Bank, PNB, - ICICI, state bank of india, Union Bank of India, State Bank of India (SBI), State Bank, Bank of Baroda - ATM, Ballia, Axis Bank ATM] +atmOperators: [State Bank of India, HDFC Bank, Axis Bank, SBI, Punjab National Bank, ICICI Bank, Bank of Baroda, PNB, + ICICI, state bank of india, Union Bank of India, State Bank of India (SBI), State Bank, HDFC, Bank + of Baroda ATM, Ballia, Axis Bank ATM] chargingStationOperators: [AB] officialLanguages: [hi, ur] diff --git a/app/src/main/assets/country_metadata/IR.yml b/app/src/main/assets/country_metadata/IR.yml index 5e7546840b..4233f2f8c0 100644 --- a/app/src/main/assets/country_metadata/IR.yml +++ b/app/src/main/assets/country_metadata/IR.yml @@ -1,8 +1,8 @@ # Do not edit. Source files are in /res/country_metadata additionalStreetsignLanguages: [en] atmOperators: [بانک ملی, بانک ملت, بانک صادرات, بانک شهر, بانک سپه, بانک تجارت, بانک مسکن, بانک انصار, بانک رفاه, بانک - سامان, بانک پاسارگاد, بانک کشاورزی, خودپرداز بانک ملی, بانک قوامین, خودپرداز بانک ملت, پست بانک, - خودپرداز بانک سپه, بانک ملی ایران, خودپرداز بانک صادرات, خودپرداز بانک تجارت, بانک اقتصاد نوین, بانک + سامان, بانک کشاورزی, بانک پاسارگاد, خودپرداز بانک ملی, بانک قوامین, خودپرداز بانک ملت, پست بانک, + خودپرداز بانک صادرات, خودپرداز بانک سپه, بانک ملی ایران, خودپرداز بانک تجارت, بانک اقتصاد نوین, بانک پارسیان, بانک سینا, بانک آینده, خودپرداز بانک شهر, بانک رفاه کارگران, خودپرداز, ملی, خودپرداز بانک کشاورزی, بانک گردشگری, بانک حکمت ایرانیان, خودپرداز بانک پاسارگاد, قوامین, صادرات, خودپرداز بانک رفاه, خودپرداز بانک آینده, پاسارگاد, عابر بانک, خودپرداز بانک قوامین, خودپرداز بانک انصار, تجارت, diff --git a/app/src/main/assets/country_metadata/IT.yml b/app/src/main/assets/country_metadata/IT.yml index 909b9eeb30..dad68ec009 100644 --- a/app/src/main/assets/country_metadata/IT.yml +++ b/app/src/main/assets/country_metadata/IT.yml @@ -34,12 +34,12 @@ atmOperators: [Poste Italiane, Unicredit, Intesa Sanpaolo, Monte dei Paschi di S Dei Paschi Di Siena, Banca Fideuram, Banca Atestina di Credito Cooperativo, Banca Antonveneta, BNL Gruppo BNP Paribas, BCC di Sesto San Giovanni, BCC Caravaggio] chargingStationOperators: [Enel, Enel X, a2a, Alperia, ENEL, Alperia Smart Mobility, Agsm Verona Spa, Tesla Motors Inc., enel x, - Evway, ENEL X, Hera / AcegasApsAmga, Duferco, BlueTorino, A22, Tesla, Etraction, SEMM, Enel-X, ENEL - drive, Enel Drive, Comune di Firenze, A2A, enel, Lidl, Iren, Enel Distribuzione, Emobitaly, E-Moving, - Duferco Energia, enelx, enel X, alperia, Stazione di ricarica per auto elettriche, IrenGo, Enelx, EnelX, - EVBOX, EVAD, ENI, DriWe, Atac, Amag, 'http://www.lampionet.it', evway, Tesla Motors (Destination Charging), - Tesla Motors, SCAME, Repower, LIDL, Enel spa, Enel X, ECO fuel, Comune di Vicenza, Comune di Albiate, - Charge&Go, COGESER, AcegasApsAmga, ATAC] + Evway, ENEL X, Hera / AcegasApsAmga, Enel-X, Duferco, BlueTorino, A22, Tesla, Etraction, SEMM, ENEL + drive, Enel Drive, Comune di Firenze, A2A, enel, Regione Umbria, Lidl, Iren, Enel Distribuzione, + Emobitaly, E-Moving, Duferco Energia, ASM Terni, enelx, enel X, alperia, Stazione di ricarica per auto + elettriche, IrenGo, Enelx, EnelX, EVBOX, EVAD, ENI, E-motion, DriWe, Atac, Amag, 'http://www.lampionet.it', + evway, Tesla Motors (Destination Charging), Tesla Motors, SCAME, Repower, LIDL, Ionity, Enel spa, Enel X, + ECO fuel, Comune di Vicenza, Comune di Albiate, Charge&Go, COGESER, BeCharge, AcegasApsAmga, ATAC] clothesContainerOperators: [Cannone, Caritas Ambrosiana, Humana, UIC, Aamps, Caritas, AMIU, Exodus, Umanitaria Padana onlus, Hera, Cooperativa Sociale Lavoro e Solidarietà, Comune di Vanzago, COSMARI, AMA] isAdvisorySpeedLimitKnown: true diff --git a/app/src/main/assets/country_metadata/JP.yml b/app/src/main/assets/country_metadata/JP.yml index 871eaf99d6..46f6ee2782 100644 --- a/app/src/main/assets/country_metadata/JP.yml +++ b/app/src/main/assets/country_metadata/JP.yml @@ -1,7 +1,7 @@ # Do not edit. Source files are in /res/country_metadata additionalStreetsignLanguages: [ja-Latn] atmOperators: [ゆうちょ銀行, みずほ銀行, 三井住友銀行, セブン銀行, 三菱東京UFJ銀行, 三菱UFJ銀行, りそな銀行, イオン銀行, 七十七銀行, 横浜銀行, 秋田銀行, 京都銀行, 北都銀行, 埼玉りそな銀行, - プロミス, 仙台銀行, 東京スター銀行, アイフル, 千葉銀行, JA, 滋賀銀行, 三井住友銀行/SMBC, 東北労働金庫, 京都中央信用金庫, アコム, 但陽信用金庫, 百十四銀行, 武蔵野銀行, + プロミス, 仙台銀行, アイフル, 東京スター銀行, 千葉銀行, JA, 滋賀銀行, 三井住友銀行/SMBC, 東北労働金庫, 京都中央信用金庫, アコム, 但陽信用金庫, 百十四銀行, 武蔵野銀行, 常陽銀行, 北洋銀行, 荘内銀行, 北海道銀行, レイク, 東邦銀行, 但馬信用金庫, 中国銀行, みちのく銀行, きのくに信用金庫, JAバンク, 徳島銀行, 岩手銀行, 但馬銀行, Seven Bank, 青森銀行, 福岡銀行, 池田泉州銀行, 京都信用金庫, 七十七銀行/77Bank, きらやか銀行, MUFG, 高知信用金庫, 足利銀行, 紀陽銀行, 広島銀行, 南都銀行/Nanto Bank, 十六銀行, 京葉銀行, 三菱東京UFJ, 三菱UFJ, 七十七銀行/77Bank, ローソン銀行, スルガ銀行, JP Bank, Community Bank, ATM, 高知銀行, diff --git a/app/src/main/assets/country_metadata/MN.yml b/app/src/main/assets/country_metadata/MN.yml index 2fc68a2fb6..db5aa759dd 100644 --- a/app/src/main/assets/country_metadata/MN.yml +++ b/app/src/main/assets/country_metadata/MN.yml @@ -1,6 +1,6 @@ # Do not edit. Source files are in /res/country_metadata -atmOperators: [Хаан банк, Khan Bank, Golomt Bank, Хаан банк АТМ, Хаан Банк, Хаан, ХХБ, Төрийн банк АТМ, Төрийн банк, - Капитал банк АТМ, Голомт банк, Голомт Банк, Голомт, zam, Ger, Aa] +atmOperators: [Хаан банк, Khan Bank, Голомт банк, Golomt Bank, Хаан банк АТМ, Хаан Банк, Хаан, ХХБ, Төрийн банк АТМ, + Төрийн банк, Капитал банк АТМ, Голомт Банк, Голомт, zam, Ger, Aa] isLivingStreetKnown: true mobileCountryCode: 428 officialLanguages: [mn] diff --git a/app/src/main/assets/country_metadata/NL.yml b/app/src/main/assets/country_metadata/NL.yml index 27b5fa66b0..0898cf21ec 100644 --- a/app/src/main/assets/country_metadata/NL.yml +++ b/app/src/main/assets/country_metadata/NL.yml @@ -7,10 +7,10 @@ atmOperators: [ING, Rabobank, ABN AMRO, ABN Amro, Geldmaat, ABN-AMRO, ING Bank, Sneek-ZuidwestFriesland, Rabobank Peelland Zuid, Rabobank Land van Cuijk en Maasduinen, Rabobank Hilversum-Vecht en Plassen, Rabobank Helmond, Rabobank Dommelstreek, Rabo, GWK Travelex, ABNAMRO, Yourcash, Rabobank Weerterland en Cranendonck, Rabobank Walcheren/ Noord-Beveland, Rabobank Venray, - Rabobank Twente Oost, Rabobank Noordenveld West Groningen, Rabobank Groene Hart Noord, Rabobank Centraal - Zuid-Limburg, Rabobank Breda, Rabobank Bommelerwaard, Rabobank Amerstreek, Rabobank Alkmaar e.o., - RABO, YourCash, Rabobank Zuidwest-Brabant, Rabobank Voorne-Putten Rozenburg, Rabobank Tilburg en omstreken, - Rabobank Terneuzen-Sas van Gent, Rabobank Salland, Rabobank Parkstad Limburg, Rabobank Leeuwarden-Noordwest + Rabobank Twente Oost, Rabobank Groene Hart Noord, Rabobank Centraal Zuid-Limburg, Rabobank Breda, Rabobank + Bommelerwaard, Rabobank Amerstreek, Rabobank Alkmaar e.o., RABO, YourCash, Rabobank Zuidwest-Brabant, + Rabobank Voorne-Putten Rozenburg, Rabobank Tilburg en omstreken, Rabobank Terneuzen-Sas van Gent, Rabobank + Salland, Rabobank Parkstad Limburg, Rabobank Noordenveld West Groningen, Rabobank Leeuwarden-Noordwest Friesland, Rabobank Hulst, Rabobank Haarlem en Omstreken, Rabobank Drechtsteden, Rabobank Den Haag en omgeving, Rabobank Alblasserwaard Noord en Oost, Rabo Bank, GWK, Rabobank Zuid-Holland Midden, Rabobank West-Brabant Noord, Rabobank Vijfheerenlanden, Rabobank Valkenswaard en Waalre, Rabobank Schagen-Wieringerland, @@ -24,9 +24,9 @@ atmOperators: [ING, Rabobank, ABN AMRO, ABN Amro, Geldmaat, ABN-AMRO, ING Bank, Rabobank Noordoostpolder-Urk, Rabobank Noordoost Friesland, Rabobank Noord-Holland Noord, Rabobank Noord Gooiland, Rabobank Maashorst, Rabobank Maas en Waal, Rabobank Lopikerwaard, Rabobank Kromme Rijnstreek, Rabobank Kop van Noord-Holland, Rabobank Katwijk, Rabobank Het Haringvliet, Rabobank - Het Groene Woud Zuid, Rabobank Graafschap-Zuid, Rabobank De Stellingwerven, Rabobank Borger-Klenckeland, - Rabobank Bodegraven-Woerden, Rabobank Bernheze Maasland, Rabobank Assen-Beilen, Rabobank Assen en Noord-Drenthe, - Rabobank Amstel en Vecht, Postbank, Albert Heijn, ABNAmro, ABN Ambro, ABN AMRO Bank] + Het Groene Woud Zuid, Rabobank Graafschap-Zuid, Rabobank Borger-Klenckeland, Rabobank Bodegraven-Woerden, + Rabobank Bernheze Maasland, Rabobank Assen-Beilen, Rabobank Assen en Noord-Drenthe, Rabobank Amstel + en Vecht, Postbank, Albert Heijn, ABNAmro, ABN Ambro, ABN AMRO Bank] chargingStationOperators: [Allego, NUON, Fastned, Nuon, EVBOX, Ecotap, Vattenfall, NewMotion, EVnetNL, Rotterdam Elektrisch, Qbuzz, allego, Pitpoint, Gemeente Rotterdam, gemeente Rotterdam, ecotap, EVBox, EV-Box, We Drive Solar, Liander, Havendienst Gemeent Alkmaar, e-laad, PitPoint, LastMileSolutions, EVnet, Terberg Telecom, New Motion, diff --git a/app/src/main/assets/country_metadata/PH.yml b/app/src/main/assets/country_metadata/PH.yml index 72f4045663..257d7c910a 100644 --- a/app/src/main/assets/country_metadata/PH.yml +++ b/app/src/main/assets/country_metadata/PH.yml @@ -1,11 +1,11 @@ # Do not edit. Source files are in /res/country_metadata -atmOperators: [BPI, BDO, Bank of the Philippine Islands, Metrobank, Land Bank of the Philippines, Landbank, RCBC, BDO - Unibank, PNB, Philippine National Bank, Security Bank, DBP, Luzon Development Bank, Landbank of - the Philippines, Land Bank, Rizal Commercial Banking Corporation, Philippine Savings Bank, PSBank, - Metropolitan Bank and Trust Company, Chinabank, Banco de Oro, One Network Bank, Land Bank ATM, China - Bank, UCPB, Security Bank Corporation, Development Bank of the Philippines, Allied Bank, MetroBank, - LandBank, Bank of Commerce, Banco De Oro, Union Bank of the Philippines, First Consolidated Bank, Euronet, - DBP ATM, Bank of the Philippine Island, AUB, security bank, Veterans Bank, Unionbank, Union Bank, Philippine +atmOperators: [BPI, BDO, Bank of the Philippine Islands, Metrobank, Land Bank of the Philippines, Landbank, BDO Unibank, + RCBC, PNB, Philippine National Bank, Security Bank, Luzon Development Bank, DBP, Landbank of the Philippines, + Metropolitan Bank and Trust Company, Land Bank, Rizal Commercial Banking Corporation, Philippine Savings + Bank, PSBank, Chinabank, Banco de Oro, One Network Bank, Land Bank ATM, China Bank, UCPB, Security + Bank Corporation, Development Bank of the Philippines, Allied Bank, MetroBank, LandBank, Bank of + Commerce, Banco De Oro, Union Bank of the Philippines, First Consolidated Bank, Euronet, DBP ATM, + Bank of the Philippine Island, AUB, security bank, Veterans Bank, Unionbank, Union Bank, Philippine Business Bank, PS Bank, Metrobank ATM, Landbank ATM, LANDBANK, Citibank, ChinaBank, Bank of the Philipine Islands, pnb, bdo, Veteran's Bank, Various Banks, United Coconut Planters Bank, UCPB Savings Bank, PBCOM, Maybank, LBP, Gretchen R. Leonardo, East West Banking Corporation, CitySavings Bank, diff --git a/app/src/main/assets/country_metadata/PK.yml b/app/src/main/assets/country_metadata/PK.yml index 184ec062ed..026804133b 100644 --- a/app/src/main/assets/country_metadata/PK.yml +++ b/app/src/main/assets/country_metadata/PK.yml @@ -1,9 +1,9 @@ # Do not edit. Source files are in /res/country_metadata -atmOperators: [HBL, UBL, Askari Bank, MCB, Habib Bank Limited, Meezan Bank, HBL ATM, NBP, Dubai Islamic Bank, Allied - Bank, ubl, Standard Chartered Bank, JS Bank, Hbl, Faysal Bank, Bank Islami, Bank Alfalah, Bank Al +atmOperators: [HBL, UBL, Askari Bank, MCB, Meezan Bank, HBL ATM, Habib Bank Limited, NBP, Allied Bank, ubl, Standard + Chartered Bank, JS Bank, Hbl, Faysal Bank, Dubai Islamic Bank, Bank Islami, Bank Alfalah, Bank Al Habib, Allied Bank Limited, Summit Bank, Soneri Bank, National Bank, Meezan Bank Limited, Habib - Metro Bank, Habib Bank, ATM, mohsin house, hbl atm, United Bank Limited, UBL ATM, National Bank - of Pakistan, NIB Bank, Habib Bank Ltd, Habib Bank ATM, Bank AL Habib, Askari bank, Allied bank] + Metro Bank, Habib Bank, ATM, mohsin house, hbl atm, UBL ATM, National Bank of Pakistan, NIB Bank, + Habib Bank Ltd, Habib Bank ATM, Bank AL Habib, Askari bank, Allied bank] isLeftHandTraffic: true mobileCountryCode: 410 officialLanguages: [ur, en, pa] diff --git a/app/src/main/assets/country_metadata/PL.yml b/app/src/main/assets/country_metadata/PL.yml index 21521942f5..c56700f630 100644 --- a/app/src/main/assets/country_metadata/PL.yml +++ b/app/src/main/assets/country_metadata/PL.yml @@ -2,7 +2,7 @@ atmOperators: [Euronet, PKO BP, Bank Millennium S.A., Planet Cash, BZ WBK, Santander, Bank Spółdzielczy, PKO, Pekao SA, PKO Bank Polski, SGB, ING Bank Śląski, Pekao, ING, Pekao S.A., Grupa BPS, BPS, Bank Pekao, PKO BP SA, Cash4You, BZWBK, Bank Zachodni WBK, SKOK, eCard, PKO SA, Euronet Polska Sp. z o.o., PKO S.A., - Bank Pekao SA, BGŻ, Millennium, Global Cash, Santander Bank Polska, PEKAO SA, PBS, euronet, PEKAO, + Bank Pekao SA, BGŻ, Millennium, Global Cash, Santander Bank Polska, euronet, PEKAO SA, PBS, PEKAO, Euronet Polska, WBK, PlanetCash, Planet cash, PeKaO S.A., PKO BP S.A., BGŻ BNP Paribas, mBank, Santander Bank Polska S.A., Eurobank, Bank Zachodni WBK S. A., Bank Pekao S.A., BS, BNP Paribas, Spółdzielcza Grupa Bankowa, Krakowski Bank Spółdzielczy, Millennium Bank, ING Bank, Bankomat PKO BP, Bankomat, diff --git a/app/src/main/assets/country_metadata/RU.yml b/app/src/main/assets/country_metadata/RU.yml index d2093c4e05..1d0b6c769a 100644 --- a/app/src/main/assets/country_metadata/RU.yml +++ b/app/src/main/assets/country_metadata/RU.yml @@ -1,9 +1,9 @@ # Do not edit. Source files are in /res/country_metadata -atmOperators: [Сбербанк, Промсвязьбанк, '"ПАО ""Сбербанк"""', Сбербанк России, ПАО Сбербанк, Газпромбанк, Альфа-Банк, - ВТБ, Санкт-Петербург, ВТБ24, Банк ВТБ (ПАО), Росбанк, '"ОАО ""Сбербанк России"""', Россельхозбанк, - Балтийский банк, Ак Барс Банк, Уралсиб, ВТБ 24, Банк Москвы, МДМ Банк, ТрансКредитБанк, АК БАРС БАНК, - ЮниКредит Банк, Киви, Райффайзенбанк, Райффайзен, Бинбанк, Санкт Петербург, Почта Банк, Челябинвестбанк, - '"ПАО ""МИнБанк"""', '"Банк ""Уралсиб"""', КУБ, Терминал QIWI, Возрождение, Банк Приморье, '"Банк ""Открытие"""', +atmOperators: [Сбербанк, Промсвязьбанк, '"ПАО ""Сбербанк"""', Сбербанк России, ПАО Сбербанк, Газпромбанк, ВТБ, Альфа-Банк, + Санкт-Петербург, ВТБ24, Банк ВТБ (ПАО), Росбанк, '"ОАО ""Сбербанк России"""', Россельхозбанк, Балтийский + банк, Ак Барс Банк, Уралсиб, Банк Москвы, ВТБ 24, МДМ Банк, ТрансКредитБанк, АК БАРС БАНК, ЮниКредит + Банк, Киви, Райффайзенбанк, Райффайзен, Бинбанк, Санкт Петербург, Почта Банк, Челябинвестбанк, '"ПАО + ""МИнБанк"""', '"Банк ""Уралсиб"""', КУБ, Терминал QIWI, Возрождение, Банк Приморье, '"Банк ""Открытие"""', УБРиР, ПАО «МИнБанк», ПриватБанк, Петрокоммерц, Открытие, Екатеринбургский муниципальный банк, СКБ-Банк, Запсибкомбанк, Плюс Банк, '"ОАО ""Альфа-Банк"""', Московский Индустриальный Банк, Крайинвестбанк, ПАО КБ «УБРиР», ВТБ-24, Аверс, Альфа-банк, сбербанк, ОАО «АК БАРС» Банк, Московский индустриальный банк, @@ -11,7 +11,7 @@ atmOperators: [Сбербанк, Промсвязьбанк, '"ПАО ""Сбер Сургутнефтегазбанк, Номос-Банк, АО «Райффайзенбанк», '"ПАО ""БАНК СГБ"""', Курскпромбанк, АКБ «РосЕвроБанк» (АО), Челиндбанк, МТС Банк, Банк Возрождение, Sberbank, '"ПАО ""Почта Банк"""', '"ПАО АКБ ""Авангард"""', Русский Стандарт, УРАЛСИБ, Московский кредитный банк, Тинькофф, ОТП Банк, Кредит Европа Банк, '"ПАО - ""Сбербанк России"""', Экспресс-волга банк, СКБ-банк, МКБ, '"ПАО Банк ""ФК Открытие"""', Совкомбанк, + ""Сбербанк России"""', Экспресс-волга банк, СКБ-банк, МКБ, Совкомбанк, '"ПАО Банк ""ФК Открытие"""', Райффайзен банк, Банк Зенит, Аккобанк, Траст, РайффайзенБанк, ПАО «Банк Уралсиб», ОАО «МДМ Банк», '"Банк ""Отрытие"""', ЮниКредит, Транскредитбанк, Тинькофф Банк, Севергазбанк, Кузнецкбизнесбанк, БинБанк, Банк Санкт-Петербург, Банк ЗЕНИТ, '"ОАО ""Московский кредитный банк"""'] diff --git a/app/src/main/assets/country_metadata/UA.yml b/app/src/main/assets/country_metadata/UA.yml index 187a93674f..7cf00ecf52 100644 --- a/app/src/main/assets/country_metadata/UA.yml +++ b/app/src/main/assets/country_metadata/UA.yml @@ -8,8 +8,8 @@ atmOperators: [ПриватБанк, Альфа-Банк, Ощадбанк, Пр Експрес-Банк, Брокбізнесбанк, Universal Bank, KredoBank, Crédit Agricole, Укрінбанк, УкрГазБанк, КредоБанк, Индустриалбанк, UniCredit, Raiffeisen Bank Aval, Privat Bank, '"АБ ""УКРГАЗБАНК"""'] chargingStationOperators: ['"Перша національна мережа електрозаправних комплексів ""Тока"""', Одеська міська рада, АвтоЭнтерпрайз, - ЕлектроДрайв, Autoenterprise, AutoEnterprise, Yasno, ElectroUA, Автоэнтерпрайз, Автоентерпрайз, Electro - UA, AutoEnterprise 201, АвтоЕнтерпрайз, Tesla Club Ukraine, Go To-U, AutoVolt] + ЕлектроДрайв, Autoenterprise, AutoEnterprise, Yasno, ElectroUA, Автоэнтерпрайз, Автоентерпрайз, Silver + Fox Energy, Electro UA, AutoEnterprise 201, АвтоЕнтерпрайз, Tesla Club Ukraine, Go To-U, AutoVolt] clothesContainerOperators: [Емаус-Оселя] isAdvisorySpeedLimitKnown: true isLivingStreetKnown: true diff --git a/app/src/main/assets/country_metadata/US-MI.yml b/app/src/main/assets/country_metadata/US-MI.yml index f936d88725..8630eee3e8 100644 --- a/app/src/main/assets/country_metadata/US-MI.yml +++ b/app/src/main/assets/country_metadata/US-MI.yml @@ -1,6 +1,6 @@ # Do not edit. Source files are in /res/country_metadata -atmOperators: [MSUFCU, Chase, Bank of America, Michigan State Federal Credit Union, MSU Federal Credit Union, Fifth - Third Bank, PNC Bank, Michigan Tech Employees Federal Credit Union, Michigan State University Federal - Credit Union, Wells Fargo, Lake Trust Credit Union, Chase Bank] -chargingStationOperators: [Tesla Motors, Michigan State University, Consumers Energy, NRG Energy, Lansing Board of Water and Light, +atmOperators: [MSUFCU, Chase, Bank of America, PNC Bank, Michigan State Federal Credit Union, MSU Federal Credit Union, + Fifth Third Bank, Michigan Tech Employees Federal Credit Union, Michigan State University Federal Credit + Union, Wells Fargo, Lake Trust Credit Union, Chase Bank] +chargingStationOperators: [Michigan State University, Tesla Motors, Consumers Energy, NRG Energy, Lansing Board of Water and Light, Chargepoint, Tanger Outlet Mall Howell, Hyatt Place, Celebration Cinema] diff --git a/app/src/main/assets/osmfeatures/ast.json b/app/src/main/assets/osmfeatures/ast.json index 88eb86858a..093d8dd6ef 100644 --- a/app/src/main/assets/osmfeatures/ast.json +++ b/app/src/main/assets/osmfeatures/ast.json @@ -2005,10 +2005,6 @@ "type/route/ferry": { "name": "Ruta de ferry" }, - "type/route/foot": { - "name": "Ruta a pie", - "terms": "sienda, PR, GR, ruta" - }, "type/route/hiking": { "name": "Ruta escursionista", "terms": "Senderismu, Escursionismu" diff --git a/app/src/main/assets/osmfeatures/ca.json b/app/src/main/assets/osmfeatures/ca.json index 59af3f922e..6078b03f0c 100644 --- a/app/src/main/assets/osmfeatures/ca.json +++ b/app/src/main/assets/osmfeatures/ca.json @@ -2157,9 +2157,6 @@ "type/route/ferry": { "name": "Ruta de ferri" }, - "type/route/foot": { - "name": "Ruta a peu" - }, "type/route/hiking": { "name": "Ruta senderista" }, diff --git a/app/src/main/assets/osmfeatures/cs.json b/app/src/main/assets/osmfeatures/cs.json index 1b1953d3d0..d765f23be4 100644 --- a/app/src/main/assets/osmfeatures/cs.json +++ b/app/src/main/assets/osmfeatures/cs.json @@ -200,10 +200,18 @@ "amenity/biergarten": { "name": "Pivní zahrada" }, + "amenity/binoculars": { + "name": "Namontovaný dalekohled", + "terms": "dalekohled,veřejný dalekohled,rozhled,výhled,vyhlídka,teleskop" + }, "amenity/boat_rental": { "name": "Půjčovna lodí", "terms": "půjčovna lodí,půjčovna loděk,půjčovna člunů" }, + "amenity/boat_storage": { + "name": "Místo pro uložení lodí", + "terms": "břeh,úschova lodí,uložení lodí mimo vodu,na souši,parkování na souši,prostor pro úschovu lodí" + }, "amenity/bureau_de_change": { "name": "Směnárna", "terms": "směnárna,směna peněz,výměna peněz,exchange,valuty,valuta" @@ -356,6 +364,10 @@ "amenity/fast_food/ice_cream": { "name": "zmrzlina" }, + "amenity/fast_food/juice": { + "name": "Čerstvé ovocné šťávy", + "terms": "džus, rychlé občerstvení,šťáva,džusárna,ovocné nápoje,pití" + }, "amenity/fast_food/kebab": { "name": "Kebab rychlé občerstvení" }, @@ -443,6 +455,10 @@ "amenity/loading_dock": { "name": "nakládací rampa" }, + "amenity/lounger": { + "name": "Lehátka", + "terms": "veřejná lehátka,lehátka,lehátko,křeslo,veřejné sezení,odpočinek,sedadlo,sezení" + }, "amenity/love_hotel": { "name": "Hodinový hotel" }, @@ -456,6 +472,10 @@ "amenity/money_transfer": { "name": "místo pro peněžní převody" }, + "amenity/mortuary": { + "name": "Márnice", + "terms": "márnice,místo pro zemřelé,hřbitov,pohřbívání,mrtví,zemřelí,pohřeb,hrobník" + }, "amenity/motorcycle_parking": { "name": "Parkování pro motorky", "terms": "parking,parkování,garáž,motorka,motocykl" @@ -1533,6 +1553,9 @@ "demolished/building": { "name": "čerstvě zbouraná budova" }, + "disused/amenity": { + "name": "Nepoužívané zařízení" + }, "disused/railway": { "name": "nepoužívaný železniční prvek" }, @@ -1634,6 +1657,10 @@ "golf/cartpath": { "name": "cesta pro golfová vozítka" }, + "golf/clubhouse": { + "name": "Golfová klubovna", + "terms": "golf,golfový klub,základna,budova,golfový areál" + }, "golf/driving_range": { "name": "Dojezd" }, @@ -2782,6 +2809,10 @@ "man_made/tower/communication": { "name": "Komunikační věž" }, + "man_made/tower/cooling": { + "name": "Chladící věž", + "terms": "chladící věž,elektrárna,JE,jaderná elektrárna,chlazení" + }, "man_made/tower/defensive": { "name": "opevněná věž" }, @@ -2823,6 +2854,10 @@ "man_made/windmill": { "name": "Větrný mlýn" }, + "man_made/windpump": { + "name": "Větrný mlýn (pumpa)", + "terms": "větrný mlýn,čerpání vody,pumpování vody,čerpání ropy,pumpování ropy,poháněné větrem,pumpa poháněná větrem,větrná pumpa,čerpadlo" + }, "man_made/works": { "name": "Továrna", "terms": "montáž,výroba,pivovar,auto,závod,továrna,zpracování,rafinerie" @@ -2898,6 +2933,10 @@ "name": "Vřesoviště", "terms": "vřesoviště,vřes" }, + "natural/hot_spring": { + "name": "Termální pramen", + "terms": "termální pramen,termální jezero, horký pramen,geotermální" + }, "natural/mud": { "name": "Bahno" }, @@ -3401,6 +3440,10 @@ "name": "Autobusová zastávka", "terms": "autobusová zastávka,nástupiště autobusu,autobusové nástupiště,místo pro čekání na autobus,autobus,bus,MHD,VHD,HD,hromadná doprava,veřejná doprava,městská hromadná doprava,nástupiště" }, + "public_transport/platform/bus_tram_point": { + "name": "Zastávka tramvaje a autobusu", + "terms": "tram,tramvaj,šalina,bus,autobus,mhd,hromadná doprava,veřejná doprava,VHD,veřejná hromadná doprava,zastávka,stanoviště,nástupiště,zastavení,zastávka tramvaje a autobusu,tramvajová a autobusová zastávka" + }, "public_transport/platform/ferry": { "name": "nástupní hrana přívozu" }, @@ -4314,6 +4357,9 @@ "name": "Vinotéka", "terms": "vinotéka,víno,vinárna,vinařství,vino" }, + "telecom": { + "name": "Telekomunikační prvek" + }, "telecom/data_center": { "name": "Datové centrum" }, @@ -4406,6 +4452,10 @@ "name": "Informační tabule", "terms": "Informační tabule" }, + "tourism/information/board/welcome_sign": { + "name": "Uvítací tabule", + "terms": "uvítací,vítající,značka,tabule,cedule,vítající značka,vítající tabule" + }, "tourism/information/guidepost": { "name": "Rozcestník" }, @@ -4512,22 +4562,10 @@ "name": "Značka začátek/konec obce", "terms": "dopravní značka,DZ,začátek obce,konec obce,obec,začátek území obce,vesnice,město,konec města,konec vesnice,začátek města,začátek vesnice,značka začátku obce,značka konce obce" }, - "traffic_sign/city_limit_vertex": { - "name": "Značka začátek/konec obce", - "terms": "dopravní značka,DZ,začátek obce,konec obce,obec,začátek území obce,vesnice,město,konec města,konec vesnice,začátek města,začátek vesnice,značka začátku obce,značka konce obce" - }, "traffic_sign/maxspeed": { "name": "Značka omezení rychlosti", "terms": "dopravní značka omezení rychlosti,dopravní značka maximální rychlosti,maximální rychlost,maximální povolená rychlost,dopravní značení,značka,cedule,dopravní cedule,silniční značení,DZ,doprava,omezení rychlosti,rychlostní limit,rychlostní omezení,značka rychlosti" }, - "traffic_sign/maxspeed_vertex": { - "name": "Značka omezení rychlosti", - "terms": "dopravní značka omezení rychlosti,dopravní značka maximální rychlosti,maximální rychlost,maximální povolená rychlost,dopravní značení,značka,cedule,dopravní cedule,silniční značení,DZ,doprava,omezení rychlosti,rychlostní limit,rychlostní omezení,značka rychlosti" - }, - "traffic_sign_vertex": { - "name": "Dopravní značka", - "terms": "dopravní značka,dopravní značení,značka,cedule,dopravní cedule,silniční značení,DZ,doprava" - }, "type/boundary": { "name": "Hranice", "terms": "hranice,hraniční,čára" @@ -4608,8 +4646,8 @@ "terms": "trajekt,trasa,linka,loď,trasa trajektu" }, "type/route/foot": { - "name": "Pěší trasa", - "terms": "pěší trasa,trasa pro pěší,turistická značka,turistická trasa,značka pro pěší,klub českých turistů,kčt" + "name": "Turistická trasa", + "terms": "pěší trasa,trasa pro pěší,turistická značka,turistická trasa,značka pro pěší,klub českých turistů,kčt,stezka pro pěší,turistická stezka" }, "type/route/hiking": { "name": "Turistická trasa", diff --git a/app/src/main/assets/osmfeatures/da.json b/app/src/main/assets/osmfeatures/da.json index 0efc68fe45..94fbddc4bc 100644 --- a/app/src/main/assets/osmfeatures/da.json +++ b/app/src/main/assets/osmfeatures/da.json @@ -162,6 +162,10 @@ "name": "Cafe", "terms": "Cafe, Café" }, + "amenity/cafe/coffee_shop": { + "name": "Kaffebar", + "terms": "kaffe,bar,cafe" + }, "amenity/car_pooling": { "name": "Samkørselsstation", "terms": "delebil,samkørsel,mødested,gomore,ride share" @@ -432,6 +436,10 @@ "name": "Politi", "terms": "Politistation, Politi" }, + "amenity/post_depot": { + "name": "Postsorteringsfacilitet", + "terms": "post,forsendelse,pakke,distribution,deopt" + }, "amenity/post_office": { "name": "Postkontor", "terms": "Posthus, Postkontor" @@ -460,6 +468,10 @@ "name": "Genbrugsplads", "terms": "Genbrugsplads" }, + "amenity/research_institute": { + "name": "Forskningsinstitutsområde", + "terms": "forskning,institut,universitet,udvikling,videnskab" + }, "amenity/restaurant": { "name": "Restaurant", "terms": "Restaurant, Spisested, Spisehus" @@ -601,6 +613,10 @@ "name": "Pantautomat", "terms": "pant,retur,flaske,tomra" }, + "amenity/vending_machine/bread": { + "name": "Brødsalgsautomat", + "terms": "brød,automat" + }, "amenity/vending_machine/cigarettes": { "name": "Cigaretautomat", "terms": "Cigaretautomat, Tobaksautomat,tobak,cigaret" @@ -799,7 +815,7 @@ }, "barrier/lift_gate": { "name": "Løftebom", - "terms": "Løftebom, Bom" + "terms": "bom,port,løfte,hæve" }, "barrier/retaining_wall": { "name": "Støttemur", @@ -809,6 +825,10 @@ "name": "Stente", "terms": "Stente" }, + "barrier/swing_gate": { + "name": "Svingbom", + "terms": "bom,sving,rotere,port," + }, "barrier/toll_booth": { "name": "Vejafgifthus", "terms": "Vejafgifthus, Betalingsanlæg" @@ -1244,10 +1264,22 @@ "emergency/destination": { "name": "Udrykningskørsel destination" }, + "emergency/fire_extinguisher": { + "name": "Brandslukker", + "terms": "pulver,brand,slukker,skum," + }, + "emergency/fire_hose": { + "name": "Brandslange", + "terms": "slange,brand,ild" + }, "emergency/fire_hydrant": { "name": "Brandhane", "terms": "Brandhane" }, + "emergency/landing_site": { + "name": "Redningslandingsplads", + "terms": "redning,nødhjælp,akut,læge,hospital," + }, "emergency/life_ring": { "name": "Redningskrans", "terms": "redningsbælte" @@ -1283,6 +1315,14 @@ "entrance": { "name": "Indgang/Udgang" }, + "entrance/emergency": { + "name": "Nødudgang", + "terms": "udgang,nød,redning,brand," + }, + "entrance/emergency_ward_entrance": { + "name": "Skadestueindgang", + "terms": "indgang,skadestue,akut,læge,hospital,hjælp" + }, "ford": { "name": "Vadested", "terms": "Vadested" @@ -1412,6 +1452,10 @@ "name": "Elevator", "terms": "paternoster" }, + "highway/emergency_bay": { + "name": "Nødvigespor", + "terms": "nødspor,spor,redning,akut,fare,havari" + }, "highway/footway": { "name": "Gangsti", "terms": "Gangsti" @@ -1868,6 +1912,10 @@ "name": "Hundepark", "terms": "Hundepark" }, + "leisure/firepit": { + "name": "Bålsted", + "terms": "lejrbål,bål,ild" + }, "leisure/fitness_centre": { "name": "Gym / Fitnesscenter", "terms": "Gym / Fitnesscenter, Fitnesscenter" @@ -1880,6 +1928,10 @@ "name": "Udendørs fitnessplads", "terms": "Udendørs fitnessplads, Naturfitnessplads" }, + "leisure/fitness_station/sign": { + "name": "Motionsredskabsinstruktionsskilt", + "terms": "motion,fitness,redskab,instruktion,skilt" + }, "leisure/garden": { "name": "Have", "terms": "Have" @@ -2497,6 +2549,10 @@ "name": "Statsligt kontor", "terms": "Statslig kontor, Styrelse" }, + "office/government/prosecutor": { + "name": "Offentlig anklager", + "terms": "anklager,anklagemyndighed,advokat,jura,stat" + }, "office/government/register_office": { "name": "Tinglysningskontor", "terms": "Tinglysningskontor" @@ -3459,10 +3515,6 @@ "name": "Hastighedsbegrænsningsskilt", "terms": "hastighed,fart,skilt,max,maks" }, - "traffic_sign/maxspeed_vertex": { - "name": "Hastighedsbegrænsningsskilt", - "terms": "hastighed,fart,skilt,max,maks" - }, "type/boundary": { "name": "Grænse", "terms": "Grænse" @@ -3529,10 +3581,6 @@ "name": "Færgerute", "terms": "Færgerute" }, - "type/route/foot": { - "name": "Vandrerute", - "terms": "Vandrerute, Hikingrute" - }, "type/route/hiking": { "name": "Vandrerute", "terms": "Vandrerute, Vandretur, Gårute" @@ -3600,6 +3648,10 @@ "name": "Søtankstation", "terms": "Søtankstation, Bunkerolie" }, + "waterway/lock_gate": { + "name": "Skibssluse", + "terms": "skib,sluse,port,kanal,hæve,sænke,hæveværk,skibsfartssluse" + }, "waterway/river": { "name": "Flod/å", "terms": "Flod, Å" diff --git a/app/src/main/assets/osmfeatures/de.json b/app/src/main/assets/osmfeatures/de.json index e5a81d9217..0a9bbf8aab 100644 --- a/app/src/main/assets/osmfeatures/de.json +++ b/app/src/main/assets/osmfeatures/de.json @@ -212,10 +212,18 @@ "name": "Biergarten", "terms": "Biergarten" }, + "amenity/binoculars": { + "name": "Stationäres Aussichtsfernrohr", + "terms": "Aussichtsfernrohr,Münzfernrohr,Fernrohr,Aussicht,Fernblick,Fernglas,Feldstecher,Refraktor,Teleskop,Aussichtswarte,Aussichtsplatform,Doppelfernrohr,Naturbeobachtung,Landschaftsbeobachtung,Spektiv" + }, "amenity/boat_rental": { "name": "Bootsvermietung", "terms": "Bootsverleih, Bootsvermietung" }, + "amenity/boat_storage": { + "name": "Bootslagerplatz", + "terms": "Marina, Trockendock, Bootshaus" + }, "amenity/bureau_de_change": { "name": "Geldwechselstube", "terms": "Wechselstube, Geldwechselgeschäft, Währungsumtauschgeschäft, Bargeldumtauschgeschäft" @@ -228,7 +236,7 @@ "terms": "Kaffee, Café, Kaffeehaus, Cafébar, Bistro, Teehaus, Teestube" }, "amenity/cafe/bubble_tea": { - "name": "Bubble Tea Cafe", + "name": "Bubble-Tea-Café", "terms": "Boba,Bubble Milch Tee, Perlenmilchtee, taiwanesisches Teegetränk, Tapioca" }, "amenity/cafe/coffee_shop": { @@ -236,7 +244,7 @@ "terms": "Americano, Gebräu, Kaffee, Café, Cappuccino, Kakao, Tropf, Espresso, heiße Getränke, Latte, Macchiato, Tee, Verlängerter, Brauner" }, "amenity/car_pooling": { - "name": "Car Pooling Station", + "name": "Car-Pooling-Station", "terms": "Car Sharing, Car Pooling, Mitfahren" }, "amenity/car_rental": { @@ -260,7 +268,7 @@ "terms": "Ladestation für Elektrofahrzeuge, Ladestation, E-Tankstelle, Stromtankstelle, Ladestation für Elektroautos, Plug-in Hybridfahrzeuge, Pedelecs und E-Bikes." }, "amenity/childcare": { - "name": "Kindergrippenbetreuung, Kindertagesstätte", + "name": "Kinderkrippenbetreuung, Kindertagesstätte", "terms": "Kinderkrippe, Kindergarten" }, "amenity/cinema": { @@ -378,7 +386,7 @@ "terms": "Fish & Chips Fast Food, Fish & Chips Stand, Fish & Chips Fast Takeaway" }, "amenity/fast_food/hot_dog": { - "name": "Hot Dog Stand", + "name": "Hot-Dog-Stand", "terms": "Frankfurter, Hotdog Stand, Sandwich, Würstel, Wiener" }, "amenity/fast_food/ice_cream": { @@ -487,6 +495,10 @@ "name": "Laderampe", "terms": "Tür, Ladenbucht, verschiffen, entladen, Lagerhaus" }, + "amenity/lounger": { + "name": "Liege", + "terms": "Sessel, Stuhl, Bank, Sitzbank" + }, "amenity/love_hotel": { "name": "Stundenhotel", "terms": "Stundenhotel, Liebeshotel" @@ -503,13 +515,17 @@ "name": "Geldtransferstation", "terms": "Geldtransferstation, Bargeldtransfer" }, + "amenity/mortuary": { + "name": "Leichenhaus", + "terms": "Krematorium,Bestattung,Leichenbestatter,Leichenschauhaus,Leichenhalle,Parentationshalle" + }, "amenity/motorcycle_parking": { "name": "Motorradparkplatz", "terms": "Motorrad-Parkplatz" }, "amenity/music_school": { "name": "Musikschule", - "terms": "Musikschule" + "terms": "Musikschule,Gitarre,Klavier,Geige,Schlagzeug,Musikunterricht" }, "amenity/nightclub": { "name": "Diskothek, Nachtklub", @@ -531,7 +547,7 @@ "terms": "Mehrstöckige Parkgarage,Parkhaus" }, "amenity/parking/park_ride": { - "name": "Park & Ride Platz", + "name": "Park & Ride-Platz", "terms": "Pendlerparkplatz, Park&Pool, Park&Ride, P+R, öffentlicher Verkehr, U-Bahn, Eisenbahnparkplatz" }, "amenity/parking/underground": { @@ -639,8 +655,8 @@ "terms": "Post, Postamt, Poststelle" }, "amenity/prep_school": { - "name": "Vorbereitungsschule", - "terms": "Vorbereitungsschule" + "name": "Nachhilfeanbieter", + "terms": "Vorbereitungsschule,Schülerhilfe,Hausaufgaben,Studienkreis,Repetitorium,Nachhilfe,Lernhilfe" }, "amenity/prison": { "name": "Gefängnisanlage", @@ -678,7 +694,7 @@ "name": "Recycling" }, "amenity/recycling/container/electrical_items": { - "name": "E-Schrott-Container", + "name": "Elektroschrottcontainer", "terms": "Elektromüllconainer, E-Schrott-Container" }, "amenity/recycling/container/green_waste": { @@ -750,11 +766,11 @@ "terms": "Nudel-Restaurant" }, "amenity/restaurant/pizza": { - "name": "Pizza Restaurant", + "name": "Pizzeria", "terms": "Pizza Restaurant" }, "amenity/restaurant/seafood": { - "name": "Meeresfrüchte Restaurant", + "name": "Meeresfrüchte-Restaurant", "terms": "Meeresfrüchte Restaurant" }, "amenity/restaurant/steakhouse": { @@ -762,7 +778,7 @@ "terms": "Steakhouse" }, "amenity/restaurant/sushi": { - "name": "Sushi Restaurant", + "name": "Sushi-Restaurant", "terms": "Sushi Restaurant" }, "amenity/restaurant/thai": { @@ -966,7 +982,7 @@ "terms": "Frauenhygiene-Automat" }, "amenity/vending_machine/food": { - "name": "Lebensmittel-Verkaufs-Automat ", + "name": "Lebensmittel-Verkaufsautomat ", "terms": "Lebensmittel-Verkaufs-Automat" }, "amenity/vending_machine/fuel": { @@ -1719,6 +1735,9 @@ "demolished/building": { "name": "kürzlich abgerissenes Gebäude" }, + "disused/amenity": { + "name": "nicht benutzte Einrichtung" + }, "disused/railway": { "name": "Stillgelegte Eisenbahnstrecken..." }, @@ -1832,6 +1851,10 @@ "name": "Golfwagenweg", "terms": "Golfwagenweg" }, + "golf/clubhouse": { + "name": "Golf Klubhaus", + "terms": "Klubhaus, Goldklubhaus, Golfhaus, Golfclub" + }, "golf/driving_range": { "name": "Golf Driving Range", "terms": "Golf Driving Range" @@ -1941,7 +1964,7 @@ "terms": "Logopäde, Sprachtherapeutin" }, "highway": { - "name": "Größere Straßen..." + "name": "Straßen/Wege..." }, "highway/bridleway": { "name": "Reitweg", @@ -2120,15 +2143,15 @@ "terms": "Hauptverbindungsstraßenanschluss, Bundessstraßenanschluss, Hauptverbindungsstraßenauffahrt, Hauptverbindungsstraßenabfahrt, Fernstraßenanschluss, Fernstraßenauffahrt, Fernstraßenabfahrt, Bundesstraßenanschluss, Bundesstraßenauffahrt, Bundesstraßenabfahrt, Auffahrt, Abfahrt" }, "highway/raceway": { - "name": "Motorsport Rennbahn", + "name": "Motorsport-Rennbahn", "terms": "Motorsport, Rennbahn, Formel 1, Auto, Kart" }, "highway/raceway/karting": { - "name": "Kartsport Rennbahn", + "name": "Kartsport-Rennbahn", "terms": "Kartsport, Gokart, Rennen, Motorsport, Rennbahn, Auto, Kart" }, "highway/raceway/motocross": { - "name": "Motocross Rennbahn", + "name": "Motocross-Rennbahn", "terms": "Offroad, Rennen, Motorrennen, Motocross, Motorrrad, Motorsport" }, "highway/residential": { @@ -2591,7 +2614,7 @@ "terms": "Tanzschule" }, "leisure/disc_golf_course": { - "name": "Discgolf Anlage", + "name": "Discgolfanlage", "terms": "Discgolf, Frisbee Golf, fliegendes Scheibengolf, Frolf, ultimative" }, "leisure/dog_park": { @@ -2730,7 +2753,7 @@ "terms": "American-Football-Platz" }, "leisure/pitch/australian_football": { - "name": "Australian Football Feld", + "name": "Australian-Football-Feld", "terms": "Australian Football Feld, Australischer Football Feld" }, "leisure/pitch/badminton": { @@ -2779,7 +2802,7 @@ }, "leisure/pitch/netball": { "name": "Korbball Platz", - "terms": "Korbball Platz" + "terms": "Korbball-Platz" }, "leisure/pitch/rugby_league": { "name": "Rugby-League-Feld", @@ -2897,7 +2920,7 @@ "name": "Künstliches..." }, "man_made/adit": { - "name": "Bergwerk - Stolleneingang", + "name": "Bergwerk-Stolleneingang", "terms": "Stollen (horizontaler Tunnel im Bergbau), Stollenmundloch" }, "man_made/antenna": { @@ -2993,7 +3016,7 @@ "terms": "Deckel, Ablauf, Loch, Regen Abwasser, Sturm" }, "man_made/manhole/gas": { - "name": "Wartungszugang zu Gas-Leitungen", + "name": "Wartungszugang zu Gasleitungen", "terms": "Deckel, Gas, Hitze, Loch, Wartungszugang" }, "man_made/manhole/power": { @@ -3005,7 +3028,7 @@ "terms": "Deckel, Loch, Abwasser, Wartung" }, "man_made/manhole/telecom": { - "name": "Wartungszugang zu Telekomunikationskabeln", + "name": "Wartungszugang zu Telekommunikationskabeln", "terms": "Kabel, Deckel, Loch, Telekom, Telefon, Wartung" }, "man_made/manhole/water": { @@ -3069,7 +3092,7 @@ "terms": "Unterirdische Pipeline" }, "man_made/pipeline/valve": { - "name": "Pipeline Ventil", + "name": "Pipeline-Ventil", "terms": "Öl, Gas, Wasser, Abwasser, Abwasserkanal" }, "man_made/pumping_station": { @@ -3124,6 +3147,10 @@ "name": "Kommunikationsturm", "terms": "Antenne, Mobilfunkmast, verankerter Mast, Mobilfunkturm, Radiofunkmast, Radiofunkturm, Fersehfunkmast, Fernsehfunkturm" }, + "man_made/tower/cooling": { + "name": "Kühlturm", + "terms": "Kraftwerk" + }, "man_made/tower/defensive": { "name": "Befestigter Turm", "terms": "Befestigter Turm" @@ -3172,6 +3199,10 @@ "name": "Windmühle", "terms": "Windmühle" }, + "man_made/windpump": { + "name": "Windpumpe", + "terms": "Wasserpumpe, Windmühle, Windpumpe, Aerorotor" + }, "man_made/works": { "name": "Fabrik", "terms": "Fabrik, Werk, Betrieb, Fabriksanlage, Produktionsstätte, Fertigungsanlage" @@ -3259,6 +3290,10 @@ "name": "Heidelandschaft", "terms": "Heidelandschaft, Strauchheiden" }, + "natural/hot_spring": { + "name": "Thermalquelle", + "terms": "Geothermiequelle, Thermalquelle, Heißwasserpool" + }, "natural/mud": { "name": "Schlamm", "terms": "Schlamm, Schlick, Morast" @@ -3503,11 +3538,11 @@ "terms": "Versicherungsbüro" }, "office/it": { - "name": "Informations-Technologie-Firma", + "name": "Informationstechnologie-Firma", "terms": "Informations-Technologie-Firma" }, "office/lawyer": { - "name": "Anwalt", + "name": "Rechtsanwaltsbüro", "terms": "Jurist, Advokat, Rechtsanwalt, Notar" }, "office/lawyer/notary": { @@ -3845,6 +3880,10 @@ "name": "Bushaltestelle (Wartebereich)", "terms": "Bushaltestelle (Wartebereich)" }, + "public_transport/platform/bus_tram_point": { + "name": "Straßenbahn und Bus Haltestelle", + "terms": "Bus, Straßenbahn, Haltestelle, öffentlicher Verkehr, Schienen, Tram, Bim, Transport" + }, "public_transport/platform/ferry": { "name": "Fährterminal (Wartebereich)", "terms": "Fährterminal (Wartebereich)" @@ -3881,8 +3920,8 @@ "name": "Bahnsteig (Wartebereich)" }, "public_transport/platform/tram": { - "name": "Straßen-Haltestelle (Wartebereich)", - "terms": "Straßen-Haltestelle (Wartebereich)" + "name": "Straßenbahn-Haltestelle (Wartebereich)", + "terms": "Straßenbahn-Haltestelle, Wartebereich, öffentlicher Verkehr, Schienen, Oberleitungsbus, Transport, Tram, Bim" }, "public_transport/platform/tram_point": { "name": "Straßen-Haltestelle (Wartebereich)", @@ -3992,7 +4031,7 @@ "name": "Eisenbahnen..." }, "railway/abandoned": { - "name": " Abgebaute Eisenbahnstrecke ", + "name": "Abgebaute Eisenbahnstrecke", "terms": "Abgebaute Eisenbahnstrecke, Verfallene Eisenbahn, Aufgegebene Bahnstrecke" }, "railway/buffer_stop": { @@ -4253,7 +4292,7 @@ "terms": "Autohändler, Autohaus" }, "shop/car/second_hand": { - "name": "Gerbrauchtwagenhandlung", + "name": "Gebrauchtwagenhandlung", "terms": "KFZ, Gebrauchtwagenzentrum, Gebrauchtwagenhändler, Gebrauchtwagenverkauf, Occasion, Jahreswagen, Altfahrzeug, PKW, Gebrauchtwagenmarkt, Autohandlung, Autohaus, Werkstatt, Second Hand" }, "shop/car_parts": { @@ -4297,7 +4336,7 @@ "terms": "Bekleidungs-Geschäft, Klamottenladen, Kleiderladen, Modegeschäft, Modehaus" }, "shop/clothes/second_hand": { - "name": "Second-Hand Bekleidungsgeschäft", + "name": "Second-Hand-Bekleidungsgeschäft", "terms": "Gebrauchtwaren, Gebrauchtkleidung, Vintage, secondhand, zweite Hand, Altkleider, Kleider, Kleidung, Klamotten, Mode" }, "shop/clothes/underwear": { @@ -4589,11 +4628,11 @@ }, "shop/music": { "name": "Musikgeschäft", - "terms": "Musikladen, Musikgeschäft, Plattenladen" + "terms": "Musikladen, Musikgeschäft, Plattenladen,CD,LP,Schallplatten,Kassetten,Vinyl" }, "shop/musical_instrument": { "name": "Musikinstrumentegeschäft", - "terms": "Musikinstrumentengeschäft,Instrumentenladen" + "terms": "Musikinstrumentengeschäft,Instrumentenladen,Noten,Gitarre,Schlagzeug,Partitur" }, "shop/newsagent": { "name": "Zeitschriftenhandel", @@ -4897,7 +4936,7 @@ "terms": "Camping Lager, Zeltplatz, Campingplatz" }, "tourism/camp_site/backcountry": { - "name": "Wildnis Campingplatz", + "name": "Wildnis-Campingplatz", "terms": "Alpines Camping, Backpacker Camping, Waldcamping, informelles Camping, primitives Camping" }, "tourism/camp_site/group_only": { @@ -4936,6 +4975,10 @@ "name": "Informationstafel", "terms": "Informationsbrett, Infotafel, Infobrett" }, + "tourism/information/board/welcome_sign": { + "name": "Willkommensschild", + "terms": "Neuer Ort" + }, "tourism/information/guidepost": { "name": "Wegweiser", "terms": "Hinweistafel, Schild, Beschilderung" @@ -5052,22 +5095,10 @@ "name": "Ortsschild", "terms": "Ortsschild" }, - "traffic_sign/city_limit_vertex": { - "name": "Ortsschild", - "terms": "Ortsschild" - }, "traffic_sign/maxspeed": { "name": "Höchstgeschwindigkeits-Schild", "terms": "Höchstgeschwindigkeits-Schild" }, - "traffic_sign/maxspeed_vertex": { - "name": "Höchstgeschwindigkeits-Schild", - "terms": "Höchstgeschwindigkeits-Schild" - }, - "traffic_sign_vertex": { - "name": "Verkehrszeichen", - "terms": "Verkehrsschild, Verkehrszeichen" - }, "type/boundary": { "name": "Grenze", "terms": "Grenze" @@ -5156,8 +5187,8 @@ "terms": "Fährlinie" }, "type/route/foot": { - "name": "Fußweg", - "terms": "Fußweg, Spazierweg" + "name": "Fußwegroute", + "terms": "Fußwegroute" }, "type/route/hiking": { "name": "Wanderweg", @@ -5172,7 +5203,7 @@ "terms": "Stadtbahnlinie" }, "type/route/monorail": { - "name": "Monorail Linie", + "name": "Einschienenbahn-Linie", "terms": "Monorail Route" }, "type/route/pipeline": { diff --git a/app/src/main/assets/osmfeatures/el.json b/app/src/main/assets/osmfeatures/el.json index 0449e28883..56ca11ed11 100644 --- a/app/src/main/assets/osmfeatures/el.json +++ b/app/src/main/assets/osmfeatures/el.json @@ -2250,7 +2250,7 @@ "terms": "Πλευρικά Κορήματα, Κολλούβιο" }, "natural/scrub": { - "name": "Θαμνότοπος" + "name": "Χαμηλή Βλάστηση" }, "natural/spring": { "name": "Πηγή", @@ -2529,6 +2529,12 @@ "name": "Σημείο", "terms": "Σημείο" }, + "power": { + "name": "Στοιχεία Ηλεκτρικού Ρεύματος" + }, + "power/cable": { + "name": "Καλώδιο Ρεύματος" + }, "power/cable/underground": { "name": "Υπόγεια Καλωδίωση Ρεύματος" }, @@ -2559,6 +2565,18 @@ "power/plant": { "name": "Ηλεκτρικός Σταθμός" }, + "power/plant/source/coal": { + "name": "Ηλεκτροπαραγωγικός Σταθμός Άνθρακα" + }, + "power/plant/source/gas": { + "name": "Ηλεκτροπαραγωγικός Σταθμός Άερίου" + }, + "power/plant/source/hydro": { + "name": "Υδροηλεκτρικός Σταθμός" + }, + "power/plant/source/nuclear": { + "name": "Πυρηνικός Ηλεκτροπαραγωγικός Σταθμός" + }, "power/plant/source/solar": { "name": "Ηλιακή Φάρμα" }, @@ -3398,18 +3416,9 @@ "traffic_sign/city_limit": { "name": "Σήμανση Ορίου Πόλης" }, - "traffic_sign/city_limit_vertex": { - "name": "Σήμανση Ορίου Πόλης" - }, "traffic_sign/maxspeed": { "name": "Πινακίδα Ορίου Ταχύτητας" }, - "traffic_sign/maxspeed_vertex": { - "name": "Πινακίδα Ορίου Ταχύτητας" - }, - "traffic_sign_vertex": { - "name": "Πινακίδα Σήμανσης ΚΟΚ" - }, "type/boundary": { "name": "Όριο", "terms": "Όριο, Σύνορο" @@ -3471,9 +3480,6 @@ "name": "Διαδρομή Πορθμείου", "terms": "Διαδρομή πορθμείου, Δρομολόγιο πορθμείου" }, - "type/route/foot": { - "name": "Διαδρομή Πεζοπορίας" - }, "type/route/hiking": { "name": "Διαδρομή Ορεινής Ανάβασης" }, diff --git a/app/src/main/assets/osmfeatures/en-GB.json b/app/src/main/assets/osmfeatures/en-GB.json index 792deaefff..9691782a32 100644 --- a/app/src/main/assets/osmfeatures/en-GB.json +++ b/app/src/main/assets/osmfeatures/en-GB.json @@ -323,7 +323,7 @@ "name": "Food Bank" }, "amenity/social_facility/group_home": { - "name": "Elderly Group Home" + "name": "Retirement Home" }, "amenity/social_facility/homeless_shelter": { "name": "Homeless Shelter" @@ -2465,9 +2465,6 @@ "type/route/ferry": { "name": "Ferry Route" }, - "type/route/foot": { - "name": "Foot Route" - }, "type/route/hiking": { "name": "Hiking Route" }, diff --git a/app/src/main/assets/osmfeatures/es.json b/app/src/main/assets/osmfeatures/es.json index 58094c1fa2..0d00eb3c02 100644 --- a/app/src/main/assets/osmfeatures/es.json +++ b/app/src/main/assets/osmfeatures/es.json @@ -212,10 +212,18 @@ "name": "Biergarten (Bar al aire libre)", "terms": "cerveza, bar, terraza, jardín, al aire libre, biergarten" }, + "amenity/binoculars": { + "name": "Binoculares montados", + "terms": "Visor de observación, largavista, binocular, telescopio, visor, catalejo, soporte de visualización" + }, "amenity/boat_rental": { "name": "Alquiler de barcos", "terms": "alquiler de botes" }, + "amenity/boat_storage": { + "name": "Almacenamiento de barcos", + "terms": "varadero, dique seco, puerto deportivo, almacén de barcos, almacenaje de barcos, barcos, embarcaciones" + }, "amenity/bureau_de_change": { "name": "Cambio de moneda", "terms": "cambio de divisas, dinero, divisas, banco, monedas, billetes, dolares, euros, libras, yenes, casa de cambio, moneda extranjera" @@ -420,7 +428,7 @@ "terms": "fuente, chorro, surtidor ornamental" }, "amenity/fuel": { - "name": "Gasolinera", + "name": "Estación de servicio / Gasolinera", "terms": "gasolinera, surtidor, estación de servicio, combustible" }, "amenity/gambling": { @@ -487,6 +495,10 @@ "name": "Muelle de carga", "terms": "puerto, puerta, almacén, almacen, envío, envio, descarga, bahía de carga, bahia" }, + "amenity/lounger": { + "name": "Sillón de jardín / Tumbona", + "terms": "asiento, silla, banco" + }, "amenity/love_hotel": { "name": "Hotel para parejas", "terms": "hotel para parejas, parejas, telo, albergue transitorio, hotel alojamiento, motel" @@ -503,8 +515,12 @@ "name": "Estación de transferencia de dinero", "terms": "giro postal, cheque, factura, moneda, finanzas, transferencia bancaria, cable, persona a persona, efectivo a efectivo, intercambio" }, + "amenity/mortuary": { + "name": "Morgue", + "terms": "morgue, depósito de cadáveres, crematorio, funeraria, casa conmemorativa, mortuorio, enterrador" + }, "amenity/motorcycle_parking": { - "name": "Aparcamiento de motocicletas", + "name": "Estacionamiento de motos", "terms": "motocicleta, moto, aparcamiento, parking, estacionamiento, parqueadero, parqueo, parqueadero de motocicletas, estacionamiento de motocicletas, parqueo de motocicletas" }, "amenity/music_school": { @@ -523,7 +539,7 @@ "name": "Residencia de ancianos" }, "amenity/parking": { - "name": "Aparcamiento / Estacionamiento", + "name": "Estacionamiento / Aparcamiento", "terms": "estacionamiento, playa de estacionamiento, aparcadero, aparcamiento, aparcamento, auto, vehículo" }, "amenity/parking/multi-storey": { @@ -543,7 +559,7 @@ "terms": "entrada, salida, aparcamiento, parking, aparcadero, estacionamiento, garaje, parqueadero, parqueo" }, "amenity/parking_space": { - "name": "Plaza de aparcamiento / estacionamiento", + "name": "Plaza de estacionamiento", "terms": "lugar, zona, área, plaza, coche, carro, auto, automóvil, vehículo, aparcamiento, parking, aparcadero, estacionamiento, parqueadero, parqueo" }, "amenity/parking_space/disabled": { @@ -830,8 +846,8 @@ "terms": "Banco de alimentos" }, "amenity/social_facility/group_home": { - "name": "Residencia de la tercera edad", - "terms": "Hogar de mayores, ancianos, residencia, tercera edad" + "name": "Residencia de personas mayores", + "terms": "Hogar de mayores, Residencia de personas mayores, ancianos, residencia, tercera edad, mayores, viejos, abuelos" }, "amenity/social_facility/homeless_shelter": { "name": "Refugio para personas sin hogar", @@ -1409,7 +1425,7 @@ "terms": "centro de negocios, bloque de oficinas" }, "building/pavilion": { - "name": "Edificio Pavilion" + "name": "Edificio pabellón" }, "building/public": { "name": "Edificio público", @@ -1637,8 +1653,8 @@ "terms": "yeso, albañil, obra, construcción" }, "craft/plumber": { - "name": "Fontanero", - "terms": "fontanero, fontanería, plomero, plomería, desatascador, tubero" + "name": "Fontanero / Plomero", + "terms": "fontanero, fontanería, plomero, plomería, desatascador, tubero,gásfiter,plomera,fontanera,gasfitero,gasfitera" }, "craft/pottery": { "name": "Fabricante de cerámica (alfarero)", @@ -1718,6 +1734,9 @@ "demolished/building": { "name": "Edificio recientemente demolido" }, + "disused/amenity": { + "name": "Servicio en desuso" + }, "disused/railway": { "name": "Elemento ferroviario en desuso" }, @@ -1831,6 +1850,10 @@ "name": "Sendero del carrito de golf", "terms": "Carrito, carro, golf, sendero" }, + "golf/clubhouse": { + "name": "Casa club de golf", + "terms": "casa club, casa club de golf, casa de golf, tienda profesional, clubhouse" + }, "golf/driving_range": { "name": "Driving range", "terms": "práctica, área, area, golf" @@ -2175,7 +2198,7 @@ "terms": "Acceso de emergencia" }, "highway/service/parking_aisle": { - "name": "Pasillo de aparcamiento / estacionamiento", + "name": "Pasillo de estacionamiento", "terms": "pasillo, coche, carro, auto, automóvil, vehículo, aparcamiento, parking, aparcadero, estacionamiento, garaje, parqueadero, parqueo" }, "highway/services": { @@ -3053,12 +3076,12 @@ "terms": "pozo, pozo petrolero, petróleo, plataforma de perforación, torre de perforación, perforación de petróleo, plataforma petrolera" }, "man_made/pier": { - "name": "Embarcadero", - "terms": "Pilote, Embarcadero, entarimado" + "name": "Muelle", + "terms": "atraque, muelle, embarcadero, paseo marítimo" }, "man_made/pier/floating": { "name": "Muelle flotante", - "terms": "muelle, embarcadero, paseo marítimo" + "terms": "muelle, embarcadero, paseo marítimo, balsa" }, "man_made/pipeline": { "name": "Tubería", @@ -3124,6 +3147,10 @@ "name": "Torre de comunicación", "terms": "antena, torre de transmisión, torre de telefonía celular, torre de telefonía móvil, mástil de comunicación, torre de comunicación, torre adaptada, torre de telefonía móvil, mástil de radio, torre de radio, torre de televisión, mástil de transmisión, torre de transmisión, torre de televisión" }, + "man_made/tower/cooling": { + "name": "Torre de refrigeración", + "terms": "planta de energía, central eléctrica, torre de enfriamiento, enfriamiento, refrigeración" + }, "man_made/tower/defensive": { "name": "Torre fortificada", "terms": "Torre defensiva, torre del castillo" @@ -3172,6 +3199,10 @@ "name": "Molino de viento", "terms": "viento, eólico, granja, rueda, molino, turbina, extraer agua, bombeo" }, + "man_made/windpump": { + "name": "Bomba de agua eólica", + "terms": "aerorotor, bomba de agua, molino de viento, bomba de viento, bombeo eólico" + }, "man_made/works": { "name": "Fábrica", "terms": "factoría, manofactura, industria, taller, ensamblaje, planta, materia prima, fabricado, producción, fabricación, ingenio, procesadora, refinería, cervecería, azucarera" @@ -3256,9 +3287,13 @@ "terms": "prado, pradera, pradería, pastizal, pastos, herbazal, majada, dehesa" }, "natural/heath": { - "name": "Brezal / Landa", + "name": "Brezal", "terms": "brezal, landa, jaral, matorral, llanura, páramo, meseta, arenal, estepa, planicie, descampado, escajo, tojo" }, + "natural/hot_spring": { + "name": "Fuente termal", + "terms": "manantial geotermal, piscina termal, aguas termales" + }, "natural/mud": { "name": "Lodo", "terms": "lodo, barro, charco, pantano" @@ -3522,7 +3557,7 @@ "terms": "periódico, diario, semanario, revista" }, "office/ngo": { - "name": "ONG", + "name": "Oficina de ONG", "terms": "ONG, organización no gubernamental, Oficina de la ONG" }, "office/notary": { @@ -3639,7 +3674,7 @@ }, "place/isolated_dwelling": { "name": "Vivienda aislada", - "terms": "Viviendas aisladas" + "terms": "Viviendas aisladas, aislada" }, "place/locality": { "name": "Paraje", @@ -3771,11 +3806,11 @@ "terms": "generador, turbina, molino de viento, viento" }, "power/line": { - "name": "Línea de alta tensión", + "name": "Cable de alta tensión", "terms": "energía, línea, eléctrica, líneas eléctricas, linea electrica, lineas electricas" }, "power/minor_line": { - "name": "Línea eléctrica de media tensión", + "name": "Cable de media tensión", "terms": "media tensión, baja tensión" }, "power/plant": { @@ -3845,6 +3880,10 @@ "name": "Parada de bus", "terms": "autobús, bus, colectivo, plataforma, transporte público" }, + "public_transport/platform/bus_tram_point": { + "name": "Parada de tranvía y autobús", + "terms": "autobús, bus, colectivo, tren ligero, plataforma, tránsito público, transporte público, carril, tranvía, tránsito, transporte, trole, trolebus" + }, "public_transport/platform/ferry": { "name": "Plataforma de ferry", "terms": "bote, muelle, transbordador, plataforma, transporte público, muelle" @@ -4478,7 +4517,7 @@ }, "shop/hardware": { "name": "Ferretería", - "terms": "ferretería, herramientas" + "terms": "ferretería, herramientas, herrajes" }, "shop/health_food": { "name": "Tienda de comida saludable", @@ -4937,6 +4976,10 @@ "name": "Tablero de información", "terms": "tabla, tablón, cuadro, cartel, información, informativo, información turística" }, + "tourism/information/board/welcome_sign": { + "name": "Cartel de bienvenida", + "terms": "bienvenida, bienvenido, nueva ubicación, nuevo lugar, lugar, ciudad, pueblo, comunidad" + }, "tourism/information/guidepost": { "name": "Poste guía", "terms": "poste indicador, cartel, información, dirección, indicación" @@ -5053,22 +5096,10 @@ "name": "Señal de límite de ciudad", "terms": "señal, ciudad, aldea, pueblo, límite, frontera, ruta" }, - "traffic_sign/city_limit_vertex": { - "name": "Señal de límite de ciudad", - "terms": "señal, ciudad, aldea, pueblo, límite, frontera, ruta" - }, "traffic_sign/maxspeed": { "name": "Señal de límite de velocidad", "terms": "señal, cartel, señalización, velocidad máxima" }, - "traffic_sign/maxspeed_vertex": { - "name": "Señal de límite de velocidad", - "terms": "señal, cartel, señalización, velocidad máxima" - }, - "traffic_sign_vertex": { - "name": "Señal de tránsito", - "terms": "señal, cartel, señalización, tráfico, ruta, autopista, tránsito" - }, "type/boundary": { "name": "Límite", "terms": "frontera, límite, confín, linde, divisoria, borde" @@ -5158,7 +5189,7 @@ }, "type/route/foot": { "name": "Ruta a pie", - "terms": "ruta, itinerario, rumbo, dirección, trayecto, peatonal, pie, senderismo , camino, derrotero, vía" + "terms": "ruta a pie, ruta para caminar, senderismo, caminata" }, "type/route/hiking": { "name": "Ruta de senderismo", diff --git a/app/src/main/assets/osmfeatures/fa.json b/app/src/main/assets/osmfeatures/fa.json index 877637c29f..305592163e 100644 --- a/app/src/main/assets/osmfeatures/fa.json +++ b/app/src/main/assets/osmfeatures/fa.json @@ -291,7 +291,7 @@ }, "amenity/community_centre": { "name": "مرکز اجتماع", - "terms": "فرهنگسرا" + "terms": "فرهنگسرا، کانون، رویداد، اجتماعات" }, "amenity/community_centre/lgbtq": { "name": "مرکز انجمن هم‌جنس‌گرایان", @@ -3650,13 +3650,16 @@ "terms": "مبلمان حمام" }, "shop/beauty": { - "name": "فروشگاه زیبایی" + "name": "سالن زیبایی", + "terms": "آرایشگاه" }, "shop/beauty/nails": { - "name": "سالن آرایش ناخن" + "name": "سالن آرایش ناخن", + "terms": "مانیکور، پدیکور، ناخن، کاشت ناخن، سالن زیبایی، آرایشگاه" }, "shop/beauty/tanning": { - "name": "سالن برنزه" + "name": "سالن برنزه", + "terms": "آرایشگاه، سالن زیبایی" }, "shop/bed": { "name": "فروشگاه کالای خواب/ تشک" @@ -3897,7 +3900,8 @@ "terms": "شکار" }, "shop/interior_decoration": { - "name": "فروشگاه تزئینات داخلی" + "name": "فروشگاه تزئینات داخلی", + "terms": "دکور، دکوراسیون، دکوراسیون داخلی، فروشگاه دکوراسیون داخلی، لوستر" }, "shop/jewelry": { "name": "جواهرفروشی" @@ -4263,18 +4267,9 @@ "traffic_sign/city_limit": { "name": "علائم محدودیت در شهر" }, - "traffic_sign/city_limit_vertex": { - "name": "علائم محدودیت در شهر" - }, "traffic_sign/maxspeed": { "name": "تابلو محدودیت سرعت" }, - "traffic_sign/maxspeed_vertex": { - "name": "تابلو محدودیت سرعت" - }, - "traffic_sign_vertex": { - "name": "علائم راهنمایی و رانندگی" - }, "type/boundary": { "name": "مرز", "terms": "حدود ، حاشیه ، سرحدات" @@ -4344,9 +4339,6 @@ "name": "مسیر فرابر", "terms": "مسیر دریایی, مسیر فری" }, - "type/route/foot": { - "name": "مسیر پیاده" - }, "type/route/hiking": { "name": "مسیر پیاده‌گردی", "terms": "مسیر پیاده, مسیر پیاده‌روی" diff --git a/app/src/main/assets/osmfeatures/fi.json b/app/src/main/assets/osmfeatures/fi.json index 2381aae288..72c4e26fd7 100644 --- a/app/src/main/assets/osmfeatures/fi.json +++ b/app/src/main/assets/osmfeatures/fi.json @@ -56,6 +56,9 @@ "name": "Naruhissi", "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, naru, köysi, köysihissi" }, + "aeroway": { + "name": "Ilmailukohde" + }, "aeroway/aerodrome": { "name": "Lentokenttä", "terms": "lentokenttä, lentoasema, terminaali, lentokone, lentoterminaali" @@ -396,6 +399,9 @@ "amenity/money_transfer": { "name": "Rahansiirtopiste" }, + "amenity/mortuary": { + "name": "Ruumishuone" + }, "amenity/motorcycle_parking": { "name": "Moottoripyöräpysäköinti" }, @@ -703,6 +709,12 @@ "amenity/toilets/disposal/flush": { "name": "Vesivessa" }, + "amenity/toilets/disposal/pitlatrine": { + "name": "Huussi" + }, + "amenity/toilets/portable": { + "name": "Siirrettävä WC" + }, "amenity/townhall": { "name": "Kunnantalo", "terms": "kunnantalo, kaupungintalo, valtuusto," @@ -1026,6 +1038,9 @@ "name": "Keskeneräinen rakennus", "terms": "rakennus, rakennustyömaa, rakenteilla" }, + "building/cowshed": { + "name": "Navetta" + }, "building/detached": { "name": "Omakotitalo" }, @@ -1132,6 +1147,9 @@ "building/static_caravan": { "name": "Paikallaan pysyvä siirrettävä talo" }, + "building/sty": { + "name": "Sikala" + }, "building/temple": { "name": "Temppelirakennus" }, @@ -1167,6 +1185,9 @@ "craft": { "name": "Kädentaitoja vaativa kohde" }, + "craft/agricultural_engines": { + "name": "Maatalousmekaanikko" + }, "craft/basket_maker": { "name": "Koripaja", "terms": "kori, paju, pajukori, korivalmistaja, koripaja" @@ -1200,6 +1221,9 @@ "craft/chimney_sweeper": { "name": "Nuohooja" }, + "craft/cleaning": { + "name": "Siivouspalvelu" + }, "craft/clockmaker": { "name": "Kelloseppä" }, @@ -1242,6 +1266,9 @@ "craft/locksmith": { "name": "Lukkoseppä" }, + "craft/metal_construction": { + "name": "Metallityöntekijä" + }, "craft/painter": { "name": "Maalari", "terms": "maalaaja" @@ -1318,6 +1345,9 @@ "demolished/building": { "name": "Äskettäin purettu rakennus" }, + "disused/amenity": { + "name": "Poistunut palvelu" + }, "disused/railway": { "name": "Käytöstä poistettu rautatiekohde" }, @@ -1403,6 +1433,9 @@ "entrance/emergency": { "name": "Hätäuloskäynti" }, + "entrance/emergency_ward_entrance": { + "name": "Päivystyssisäänkäynti" + }, "ford": { "name": "Kahlauspaikka" }, @@ -1713,6 +1746,9 @@ "highway/tertiary_link": { "name": "Yhdystien ramppi" }, + "highway/toll_gantry": { + "name": "Avoin tietulli" + }, "highway/track": { "name": "Maatalous-/metsätie", "terms": "pikkutie, hiekkatie, metsätie, metsäkonetie, metsä, metsäkone, ura, ajoväylä" @@ -1931,6 +1967,9 @@ "name": "Laivastotukikohta", "terms": "sotilaallinen, sotilas, armeija, maanpuolustus, puolustus, puolustusvoimat, sodankäynti, sota, merivoimat, meri, rannikko, laivasto, laivat, laiva, sotalaiva, sotalaivat" }, + "landuse/military/obstacle_course": { + "name": "Sotilasesterata" + }, "landuse/military/range": { "name": "Sotilasampumarata", "terms": "ampumarata, rata, radat, ampumaradat, ampuminen, ase, harjoittelu, sotilaallinen, sotilas, armeija, maanpuolustus, puolustus, puolustusvoimat, sodankäynti, sota" @@ -2066,7 +2105,7 @@ "name": "Golfkenttä" }, "leisure/hackerspace": { - "name": "Koodausnurkkaus", + "name": "Hacklab", "terms": "hackerspace, hackspace, makerspace, hacklab, häckläb, ohjelmointi, ohjelmoija, koodaus, koodaaja, teknologia, rakentelu, värkkäys, värkkäily, paja, työpaja, tila, julkinen, labra, verstas, kaupunkiverstas" }, "leisure/horse_riding": { @@ -2202,6 +2241,9 @@ "name": "Uimahalli", "terms": "uimahalli, kylpylä, uima-allas, uintikeskus, uinti, uiminen, vesi, vesiurheilu, urheilu, vesiurheilukeskus, vesiurheiluhalli" }, + "leisure/sports_hall": { + "name": "Liikuntasali" + }, "leisure/stadium": { "name": "Stadion" }, @@ -2264,9 +2306,15 @@ "man_made/clearcut": { "name": "Avohakattu metsä" }, + "man_made/courtyard": { + "name": "Sisäpiha" + }, "man_made/crane": { "name": "Nosturi" }, + "man_made/cross": { + "name": "Risti" + }, "man_made/cutline": { "name": "Metsänraja", "terms": "hakkuuraja" @@ -2281,6 +2329,9 @@ "man_made/gasometer": { "name": "Kaasusäiliö" }, + "man_made/goods_conveyor": { + "name": "Tavaraliukuhihna" + }, "man_made/lighthouse": { "name": "Majakka" }, @@ -2339,6 +2390,9 @@ "man_made/pumping_station": { "name": "Pumppaamo" }, + "man_made/reservoir_covered": { + "name": "Peitetty tekojärvi" + }, "man_made/silo": { "name": "Siilo" }, @@ -2373,6 +2427,9 @@ "man_made/tower/communication": { "name": "Viestintätorni" }, + "man_made/tower/cooling": { + "name": "Jäähdytystorni" + }, "man_made/tower/defensive": { "name": "Vartiotorni" }, @@ -2466,6 +2523,9 @@ "natural/heath": { "name": "Nummi" }, + "natural/hot_spring": { + "name": "Kuuma lähde" + }, "natural/mud": { "name": "Muta" }, @@ -2921,6 +2981,9 @@ "name": "Linja-autopysäkki", "terms": "bussipysäkki, linja-autopysäkki, bussikatos, pysähtymispaikka, bussin pysähtymispaikka, linja-auton pysähtymispaikka, pysäkki, pysäkkisyvänne" }, + "public_transport/platform/bus_tram_point": { + "name": "Raitiotie- ja linja-autopysäkki" + }, "public_transport/platform/ferry": { "name": "Laivalaituri" }, @@ -3052,6 +3115,9 @@ "railway/construction": { "name": "Keskeneräinen rautatie" }, + "railway/crossing": { + "name": "Tasoristeys (kevyt liikenne)" + }, "railway/derail": { "name": "Raiteensulku" }, @@ -3064,6 +3130,9 @@ "railway/halt": { "name": "Seisake" }, + "railway/level_crossing": { + "name": "Tasoristeys (moottoriliikenne)" + }, "railway/light_rail": { "name": "Pikaraitiotie" }, @@ -3094,6 +3163,9 @@ "railway/rail/highspeed": { "name": "Suurnopeusrata" }, + "railway/railway_crossing": { + "name": "Raiteiden risteyskohta" + }, "railway/signal": { "name": "Rautatieopastin", "terms": "rautatie, juna, opastin, liikennevalo, signaali" @@ -3117,6 +3189,12 @@ "railway/tram": { "name": "Katuraitiotie" }, + "railway/tram_crossing": { + "name": "Raitiotien ja polun tasoristeys" + }, + "railway/tram_level_crossing": { + "name": "Raitiotien ja kadun tasoristeys" + }, "railway/tram_stop": { "name": "Katuraitiovaunun pysähtymiskohta" }, @@ -3133,6 +3211,9 @@ "seamark": { "name": "Merimerkintä" }, + "seamark/buoy_lateral": { + "name": "Kanavapoiju" + }, "seamark/buoy_lateral/green": { "name": "Vihreä poiju" }, @@ -3588,6 +3669,9 @@ "shop/supermarket": { "name": "Supermarketti" }, + "shop/supermarket/organic": { + "name": "Luomusupermarketti" + }, "shop/swimming_pool": { "name": "Uima-allasliike" }, @@ -3827,18 +3911,9 @@ "traffic_sign/city_limit": { "name": "Taajamaliikennemerkki" }, - "traffic_sign/city_limit_vertex": { - "name": "Taajamaliikennemerkki" - }, "traffic_sign/maxspeed": { "name": "Nopeusrajoitusliikennemerkki" }, - "traffic_sign/maxspeed_vertex": { - "name": "Nopeusrajoitusliikennemerkki" - }, - "traffic_sign_vertex": { - "name": "Liikennemerkki" - }, "type/boundary": { "name": "Raja" }, @@ -3848,6 +3923,12 @@ "type/connectivity": { "name": "Ajokaistajatkuvuus" }, + "type/destination_sign": { + "name": "Määränpääkyltti" + }, + "type/enforcement": { + "name": "Valvonta" + }, "type/enforcement/maxspeed": { "name": "Nopeuskamera" }, @@ -3970,7 +4051,7 @@ "name": "Oja" }, "waterway/dock": { - "name": "Telakka", + "name": "Telakka-allas", "terms": "laiva, laivanrakennus, laivateollisuus, teollisuus, rakentaminen, kuivatelakka, laivatelakka" }, "waterway/drain": { diff --git a/app/src/main/assets/osmfeatures/fr.json b/app/src/main/assets/osmfeatures/fr.json index ecb0ff69d7..a8cdd2dc24 100644 --- a/app/src/main/assets/osmfeatures/fr.json +++ b/app/src/main/assets/osmfeatures/fr.json @@ -460,6 +460,9 @@ "name": "Transfert d'argent", "terms": "transfert d'argent,western union,banque,argent,échange" }, + "amenity/mortuary": { + "name": "Morgue" + }, "amenity/motorcycle_parking": { "name": "Parking pour motocyclettes", "terms": "Parc à motos,Stationnement motos" @@ -2971,6 +2974,9 @@ "name": "Tour de communication", "terms": "tour de télécommunication,diffusion,antenne,téléphone portable,téléphone cellulaire,gsm,tour,radio,mât de transmission,pylône de transmission" }, + "man_made/tower/cooling": { + "name": "Tour aéroréfrigérante" + }, "man_made/tower/defensive": { "name": "Tour fortifiée", "terms": "Tour fortifiée,tour de chateau,tour de château,défense,tour défensive" @@ -3089,6 +3095,9 @@ "name": "Lande", "terms": "Bruyère" }, + "natural/hot_spring": { + "name": "Source chaude" + }, "natural/mud": { "name": "Boue", "terms": "Boue" @@ -3808,9 +3817,15 @@ "railway/monorail": { "name": "Rail pour monorail" }, + "railway/narrow_gauge": { + "name": "Voie étroite" + }, "railway/platform": { "name": "Quai de gare ferroviaire" }, + "railway/preserved": { + "name": "Chemin de fer touristique" + }, "railway/rail": { "name": "Rail pour train" }, @@ -4433,6 +4448,9 @@ "name": "Supermarché", "terms": "Supermarché" }, + "shop/supermarket/organic": { + "name": "Supermarché bio" + }, "shop/swimming_pool": { "name": "Magasin de matériel de piscine", "terms": "spa,cuve thermale,maintenance,piscine" @@ -4736,22 +4754,10 @@ "name": "Panneau de limite de commune", "terms": "limite de ville,ville,hameau,bord,fin de ville,début de ville" }, - "traffic_sign/city_limit_vertex": { - "name": "Panneau de limite de commune", - "terms": "limite de ville,ville,hameau,bord,fin de ville,début de ville" - }, "traffic_sign/maxspeed": { "name": "Panneau de limitation de vitesse", "terms": "limitation de vitesse,limite de vitesse,vitesse max,vitesse limite" }, - "traffic_sign/maxspeed_vertex": { - "name": "Panneau de limitation de vitesse", - "terms": "limitation de vitesse,limite de vitesse,vitesse max,vitesse limite" - }, - "traffic_sign_vertex": { - "name": "Panneau de signalisation", - "terms": "signalisation routière, panneau de signalisation" - }, "type/boundary": { "name": "Frontière", "terms": "Frontière" @@ -4827,10 +4833,6 @@ "name": "Itinéraire de ferry", "terms": "Route de traversier, Ligne de ferry" }, - "type/route/foot": { - "name": "Itinéraire pédestre", - "terms": "Sentier" - }, "type/route/hiking": { "name": "Itinéraire de randonnée", "terms": "Sentier pédestre" diff --git a/app/src/main/assets/osmfeatures/gl.json b/app/src/main/assets/osmfeatures/gl.json index be13c8de85..8316690bed 100644 --- a/app/src/main/assets/osmfeatures/gl.json +++ b/app/src/main/assets/osmfeatures/gl.json @@ -8,6 +8,9 @@ "name": "Panel publicitario", "terms": "panel, cartel, valo, valado, poste, piar, publicitario, publicidade, carteleira, propaganda" }, + "advertising/board": { + "name": "Taboleiro de anuncios" + }, "advertising/column": { "name": "Columna de publicidade", "terms": "columna, publicidade, anuncios, cilindro" @@ -127,7 +130,7 @@ "terms": "barbacoa, grella, asador, lume" }, "amenity/bench": { - "name": "Banco ou asento", + "name": "Banco", "terms": "asento,banco,bancada,banquillo,banqueta,banca" }, "amenity/bicycle_parking": { @@ -162,6 +165,9 @@ "name": "Alugueiro de embarcacións", "terms": "alugueiro, alugamento, locación, bote, barca, lancha, embarcación, embarcacións" }, + "amenity/boat_storage": { + "name": "Tenda de embarcacións" + }, "amenity/bureau_de_change": { "name": "Troco de divisas", "terms": "troco, cambio, divisa, moeda" @@ -229,7 +235,7 @@ }, "amenity/community_centre": { "name": "Centro comunitario", - "terms": "centro social, centro comunitario" + "terms": "centro social, centro comunitario, local social" }, "amenity/community_centre/lgbtq": { "name": "Centro comunitario LGBTQ+", @@ -297,11 +303,11 @@ "terms": "comida rápida, comida ferralla, comida lixo, comida preparada, pratos preparados, comida na rúa, comida de paso, hamburguesa, hotdog, pancho, polos fritidos, tacos, patacas fritidas, pizza, choripán, sandwitch, bocadillos, salchipapas, burrito, sopaipillas, quesadilla, nachos, arepa" }, "amenity/fast_food/burger": { - "name": "Comida rápida: Hamburguesa", + "name": "Comida rápida: Hamburguesas", "terms": "almorzo, cea, comedor, cea, xantar, grella, churrasco, comida, mesa, café, cafe" }, "amenity/fast_food/chicken": { - "name": "Comida rápida: Polo", + "name": "Comida rápida: Polos", "terms": "almorzo, cea, comedor, cea, xantar, grella, churrasco, comida, mesa, café, cafe" }, "amenity/fast_food/donut": { @@ -311,22 +317,25 @@ "name": "Comida rápida: Peixe e patacas fritidas" }, "amenity/fast_food/hot_dog": { - "name": "Comida rápida: Hot dog" + "name": "Comida rápida: Hot dogs" }, "amenity/fast_food/ice_cream": { - "name": "Comida rápida: Xeado" + "name": "Comida rápida: Xeados" + }, + "amenity/fast_food/juice": { + "name": "Comida rápida: Zumes" }, "amenity/fast_food/kebab": { - "name": "Comida rápida: Kebab" + "name": "Comida rápida: Kebabs" }, "amenity/fast_food/mexican": { "name": "Comida rápida: Mexicana" }, "amenity/fast_food/pizza": { - "name": "Comida rápida: Pizza" + "name": "Comida rápida: Pizzas" }, "amenity/fast_food/sandwich": { - "name": "Comida rápida: Sandwich" + "name": "Comida rápida: Sandwiches" }, "amenity/fire_station": { "name": "Parque de bombeiros", @@ -409,7 +418,7 @@ }, "amenity/monastery": { "name": "Área de mosteiro", - "terms": "mosteiro, área de mosteiro, igrexa, capela" + "terms": "mosteiro, área de mosteiro, igrexa, capela, adro, adral, atrio, igrexario" }, "amenity/money_transfer": { "name": "Estación de transferencia de diñeiro", @@ -542,6 +551,10 @@ "name": "Bar", "terms": "bar, café, cafetería, bebidas, alcohol, cervexa, bar de tapas, pinchos, alcol, furancho, cervexeria, cervexería, cervexaria, cervexaría, tapa, pincho, cerveceria, cervecería, pub inglés, pub irlandés" }, + "amenity/pub/irish": { + "name": "Pub irlandés", + "terms": "bar irlandés, local irlandés" + }, "amenity/pub/lgbtq": { "name": "Bar LGBTQ+", "terms": "bar gay, bar lésbico, bar lgbtq, bar lgbt, bar lgb, homosexual" @@ -580,8 +593,12 @@ "name": "Contedor de reciclaxe", "terms": "reciclaxe, colector, contenedor, contedor, lixo, basura, vidro, papel, carton" }, + "amenity/refugee_site": { + "name": "Campo de refuxiados" + }, "amenity/research_institute": { - "name": "Área de Instituto de Investigación" + "name": "Área de Instituto de Investigación", + "terms": "Centro de investigación, área de investigación, instituto de investigación, centro de innovación" }, "amenity/restaurant": { "name": "Restaurante", @@ -642,7 +659,8 @@ "name": "Restaurante vietnamita" }, "amenity/sanitary_dump_station": { - "name": "Eliminación de WC de caravanas" + "name": "Depósito sanitario para caravanas", + "terms": "desaugue, caravanas, desaugue de caravanas, cisterna, estanque" }, "amenity/school": { "name": "Área escolar", @@ -653,12 +671,12 @@ "terms": "abeiro, abrigo, refuxio, cuberto, pavillón, gazebo" }, "amenity/shelter/gazebo": { - "name": "Gazebo", - "terms": "gazebo,glorieta" + "name": "Acubillo", + "terms": "gazebo, acolleito, acubillo, abeiradoiro, refuxio" }, "amenity/shelter/lean_to": { "name": "Pendello", - "terms": "pendello" + "terms": "pendello, alboio, alpendre, cabanel, caustra, chapitel, cuberto, sobeira" }, "amenity/shelter/picnic_shelter": { "name": "Abeiro de pícnic", @@ -677,15 +695,16 @@ "terms": "área de fumadoiro, fumadoiro, fumar, área de fume, fume" }, "amenity/social_centre": { - "name": "Centro social" + "name": "Centro social", + "terms": "local social, centro comunitario" }, "amenity/social_facility": { "name": "Axuda Social", "terms": "servizos sociais, asistencia social" }, "amenity/social_facility/ambulatory_care": { - "name": "Ambulatory Care", - "terms": "atención ambulatoria, coidado ambulatorio" + "name": "Centro ambulatorio", + "terms": "ambulatorio, atención ambulatoria, coidado ambulatorio" }, "amenity/social_facility/food_bank": { "name": "Banco de Alimentos", @@ -699,7 +718,8 @@ "terms": "abeiro social, abeiro, refuxio social, refuxio, comedor social, albergue, centro, vadío, vagabundo, indixente, homeless" }, "amenity/social_facility/nursing_home": { - "name": "Residencia de Anciáns" + "name": "Residencia de Anciáns", + "terms": "xeriátrico, asilo, residencia de maiores, centro de coidados" }, "amenity/studio": { "name": "Estudio", @@ -722,7 +742,7 @@ "terms": "estudio de cine, estudio de cinema, produción de cine, producción, estudo de cine, produción de video, gravación de video, estudio de video, vídeo, rodaxe, plató, plato, prató, prato, rodar, cámara, camara" }, "amenity/taxi": { - "name": "Paraxe de taxi", + "name": "Parada de taxi", "terms": "taxi, parada, acopio de taxis, taxis, estacion, estación, carrera, final de carrera" }, "amenity/telephone": { @@ -739,14 +759,19 @@ }, "amenity/toilets": { "name": "Aseos", - "terms": "aseos, baños, WC" + "terms": "aseos, baños, WC, servizo, servizos, lavabo, latrina, retrete, váter, urinario, urinaria" }, "amenity/toilets/disposal/flush": { - "name": "Inodoros con cisterna" + "name": "Aseo con cisterna", + "terms": "aseos, aseo, baños, WC, cuarto de baño, servizo, servizos, lavabo, latrina, retrete, váter, urinario, urinaria" }, "amenity/toilets/disposal/pitlatrine": { "name": "Letrina de pozo" }, + "amenity/toilets/portable": { + "name": "Aseo portátil", + "terms": "aseos, aseo, baños, WC, cuarto de baño, servizo, servizos, lavabo, latrina, retrete, váter, urinario, urinaria" + }, "amenity/townhall": { "name": "Casa do Concello", "terms": "casa do concello, concello, consistorio, municipio, municipal, cabido" @@ -811,6 +836,9 @@ "amenity/vending_machine/ice_cream": { "name": "Expendedora de xeados" }, + "amenity/vending_machine/ice_cubes": { + "name": "Máquina expendedora de xeo" + }, "amenity/vending_machine/newspapers": { "name": "Expendedora de xornais", "terms": "expendedora, xornais, revistas, periódicos" @@ -962,7 +990,7 @@ }, "barrier/fence": { "name": "Valo", - "terms": "Valado, reixa, valo, cercado, alambrada, cerca" + "terms": "Valado, reixa, valo, cercado, alambrada, cerca, cerrado, cerrume, muro, peche, sebe" }, "barrier/fence/railing": { "name": "Reixa", @@ -1018,12 +1046,15 @@ "barrier/wall": { "name": "Muro" }, + "barrier/wall/noise_barrier": { + "name": "Barreira acústica" + }, "boundary": { "name": "Límite" }, "boundary/administrative": { "name": "Límite administrativo", - "terms": "límite administrativo, fronteira, término municipal" + "terms": "límite administrativo, fronteira, termo, termo municipal, término municipal" }, "bridge/support": { "name": "Piar de ponte", @@ -1042,11 +1073,11 @@ }, "building/barn": { "name": "Celeiro/Hórreo", - "terms": "celeiro, hórreo, cabazo, cabaceiro, cabaceira, piorno" + "terms": "celeiro, hórreo, cabazo, cabaceiro, cabaceira, piorno, barrela, barrelo, barreta, bastardo, combarro, cabaceira, cabaz, cabazo, calostra, calustra, caustra, piorno" }, "building/boathouse": { "name": "Pendello para embarcacións", - "terms": "pendello, botes, embarcacións, alboio, alpendre" + "terms": "pendello, botes, embarcacións, alboio, alpendre, caseta" }, "building/bungalow": { "name": "Bungaló" @@ -1056,7 +1087,7 @@ }, "building/cabin": { "name": "Cabana", - "terms": "casa, cabana, cabaña" + "terms": "casa, cabana, cabaña, casoupa, casoupo, chabola, barraca, cabanel, choza" }, "building/carport": { "name": "Cocheira cuberta" @@ -1116,7 +1147,8 @@ "name": "Invernadoiro" }, "building/hangar": { - "name": "Edificio do hangar" + "name": "Edificio do hangar", + "terms": "hangar, aeroporto, estacionamento, abrigo, avións, avions" }, "building/hospital": { "name": "Edificio de hospital" @@ -1126,25 +1158,30 @@ }, "building/house": { "name": "Casa", - "terms": "casa, vivenda" + "terms": "casa, vivenda, domicilio, morada, vivenda, lar, fogar, residencia" }, "building/houseboat": { "name": "Casa flotante", - "terms": "fogar, familia, residencia, vivenda, lar" + "terms": "fogar, familia, residencia, vivenda, lar, casa, vivenda, domicilio, morada, vivenda" }, "building/hut": { "name": "Refuxio", - "terms": "refuxio, choza, cabaña, cabana" + "terms": "refuxio, choza, cabana, cabaña, abeiradoiro, abeiro, abrigadoiro, abrigo, acolleito, acubillo" }, "building/industrial": { - "name": "Edificio industrial" + "name": "Edificio industrial", + "terms": "industria, industrial, nave, local, almacén" }, "building/kindergarten": { "name": "Edificio escolar infantil", "terms": "preescolar, xardín de infancia, guardería, infantil, párvulos, garderia, gardería, gardaria, parvulos, gardaría, párvulo, xardin de infancia, xardín infantil, xardin infantil, edificio, escola infantil, preescolar" }, "building/mosque": { - "name": "Edificio da mesquita" + "name": "Edificio da mesquita", + "terms": "templo, mezquita, musulmán" + }, + "building/office": { + "name": "Edificio de oficinas" }, "building/pavilion": { "name": "Edificio do pavillón" @@ -1158,20 +1195,24 @@ "terms": "residencial, vivenda, casa, apartamento, domicilio" }, "building/retail": { - "name": "Edificio de comercios" + "name": "Edificio de comercios", + "terms": "comercio, mercado,compra, tendas, negocio" }, "building/roof": { - "name": "Tellado" + "name": "Tellado", + "terms": "teito, lousado, tella, lousa" }, "building/ruins": { "name": "Edificio en ruínas", "terms": "ruina, ruinas, restos" }, "building/school": { - "name": "Edificio escolar" + "name": "Edificio escolar", + "terms": "escola, colexio, educación" }, "building/semidetached_house": { - "name": "Casa adosada" + "name": "Casa apegada", + "terms": "adosada, adosado, pegado, pegada, contínua" }, "building/service": { "name": "Edificio de servizo" @@ -1262,6 +1303,10 @@ "name": "Desenfeluxador", "terms": "feluxe, borra, borro, charrizo, cisco, parruma, sarrio, cheminea, chaminea, fumeira, fumeiro, fume, chimenea, fogón, hollín, limpiachimenea, limpeza de chemineas, deshollinador" }, + "craft/cleaning": { + "name": "Servizo de limpeza", + "terms": "limpeza, limpar, servizo, oficio" + }, "craft/clockmaker": { "name": "Reloxeiro", "terms": "reloxaría, reloxeiro, reloxo, tempo" @@ -1578,7 +1623,7 @@ "name": "Bus guiado" }, "highway/bus_stop": { - "name": "Paraxe de bus" + "name": "Parada de bus" }, "highway/corridor": { "name": "Corredor interior", @@ -1597,10 +1642,11 @@ }, "highway/crossing/unmarked": { "name": "Paso de peóns sen marcar", - "terms": "paso de peóns sen marcar" + "terms": "paso de peóns sen marcar, peonil, peonal" }, "highway/crossing/unmarked-raised": { - "name": "Paso de peóns sen marcar (Levantado)" + "name": "Paso de peóns sen marcar (Levantado)", + "terms": "peonil, peonal" }, "highway/crossing/zebra": { "name": "Paso de peóns marcado" @@ -1618,6 +1664,10 @@ "highway/cycleway/crossing": { "name": "Paso de bicicletas" }, + "highway/cycleway/crossing/bicycle_foot": { + "name": "Paso de peóns e de pista de ciclismo", + "terms": "peonil, peonal, ciclista, ciclismo, bicicleta" + }, "highway/cycleway/crossing/marked": { "name": "Paso de bicicletas marcado", "terms": "paso de bicicleta, cruzamento de carril bici, cruzamento de ciclovía, cruzamento de bicicleta, cruzamento de bici, cruzamento de senda ciclista" @@ -1631,7 +1681,7 @@ "terms": "montacargas, ascensor, elevador" }, "highway/emergency_bay": { - "name": "Lugar de paraxe de emerxencia", + "name": "Lugar de parada de emerxencia", "terms": "autopista, parada de emerxencia, autoestrada, autovía" }, "highway/footway": { @@ -1657,14 +1707,16 @@ "terms": "paso de cebra, cruzamento marcado, paso de peóns, lombo de burro, lombada, velocidade, calmador, redutor" }, "highway/footway/sidewalk": { - "name": "Beirarrúa" + "name": "Beirarrúa", + "terms": "calzada, paseo, berma" }, "highway/footway/unmarked": { "name": "Paso peonil sen marcar", "terms": "cruzamento sen marcar, paso de peóns sen marcar" }, "highway/footway/unmarked-raised": { - "name": "Paso de peóns sen marcar (Levantado)" + "name": "Paso de peóns sen marcar (Levantado)", + "terms": "peonil, peonal" }, "highway/footway/zebra": { "name": "Paso de peóns marcado" @@ -1937,16 +1989,19 @@ "terms": "predio, parcela, xardín comunitario, xardin, horta, horto, urbano, urbán, urbana, urbá, comunitaria, comunitario, leira" }, "landuse/aquaculture": { - "name": "Acuicultura" + "name": "Acuicultura", + "terms": "cría, crianza, cultivo, marisco, peixes, pescado, alga, algas, orgo, orgos, ouco, oucos, granxa, mar, auga" }, "landuse/basin": { - "name": "Conca" + "name": "Cunca" }, "landuse/brownfield": { - "name": "Soar urbanizado abandonado" + "name": "Soar urbanizado abandonado", + "terms": "terreo" }, "landuse/cemetery": { - "name": "Cemiterio" + "name": "Cemiterio", + "terms": "camposanto, necrópole, cementerio" }, "landuse/churchyard": { "name": "Adro" @@ -1964,10 +2019,11 @@ }, "landuse/farmland": { "name": "Terra de cultivo", - "terms": "terra de cultivo, leira, veiga, agro, eido" + "terms": "terra de cultivo, leira, veiga, agro, eido, pasto, agricultura, agro, eido, veiga, varcia, plantación" }, "landuse/farmyard": { - "name": "Granxa" + "name": "Granxa", + "terms": "facenda, explotación, agrícola" }, "landuse/flowerbed": { "name": "Xardín floral", @@ -1975,7 +2031,7 @@ }, "landuse/forest": { "name": "Bosque xestionado", - "terms": "talla, tala, bosque, madeira, árbore, arbore" + "terms": "talla, tala, bosque, madeira, árbore, arbore, monte" }, "landuse/garages": { "name": "Zona de garaxes privados", @@ -1983,7 +2039,7 @@ }, "landuse/grass": { "name": "Céspede", - "terms": "céspede, herba" + "terms": "céspede, herba, prado" }, "landuse/greenfield": { "name": "Soar urbanizábel", @@ -1994,26 +2050,27 @@ }, "landuse/harbour": { "name": "Peirao", - "terms": "peirao, porto, muelle" + "terms": "peirao, porto, molle, muelle, desembarcadoiro, embarcadoiro" }, "landuse/industrial": { "name": "Área industrial", "terms": "área industrial, parque industrial, industria, fábrica, area industrial, terreo industrial, poligono, polígono, fabrica, fábricas, industrial, zona industrial" }, "landuse/industrial/scrap_yard": { - "name": "Depósito de ferralla" + "name": "Depósito de ferralla", + "terms": "chatarra, ferragacho, vertedoiro" }, "landuse/industrial/slaughterhouse": { "name": "Matadoiro", - "terms": "matadoiro, carne, carnicería, carnizaría, becerro, polo, vaca, porco, aves de curral, curral" + "terms": "matadoiro, matachín, carne, carnicería, carnizaría, becerro, polo, vaca, porco, aves de curral, curral" }, "landuse/landfill": { "name": "Vertedoiro", - "terms": "vertedoiro, lixo, escombrera, basurero" + "terms": "vertedoiro, vertedeiro, lixo, escombreira, escombrera, basurero" }, "landuse/meadow": { "name": "Pradaría", - "terms": "prado, pasto, pradeira, herba" + "terms": "prado, pasto, pasteiro, pradeira, herba, varcia, veiga, varxa" }, "landuse/military": { "name": "Área militar", @@ -2040,7 +2097,7 @@ }, "landuse/orchard": { "name": "Área de froitais", - "terms": "froitais, froitas, pomar" + "terms": "froitais, froitas, pomar, árbores, maceira, pereira, pexego" }, "landuse/plant_nursery": { "name": "Viveiro de plantas", @@ -2051,7 +2108,7 @@ }, "landuse/quarry": { "name": "Canteira", - "terms": "canteira, pedra, minaría, mina, pedra, rocha, minerais" + "terms": "canteira, pedra, minaría, mina, pedra, rocha, minerais, pedreira, arguina" }, "landuse/railway": { "name": "Área ferroviaria" @@ -2078,7 +2135,7 @@ }, "landuse/vineyard": { "name": "Viña", - "terms": "viña, viñedo, uva" + "terms": "viña, viñedo, uva, videira, bacelar, bacelo" }, "landuse/winter_sports": { "name": "Área de deportes de inverno" @@ -2097,7 +2154,7 @@ "terms": "quiosco, templete, Quiosco de música, música, musica, palco, carpa" }, "leisure/beach_resort": { - "name": "Complexo turístico", + "name": "Estancia de praia", "terms": "resort, complexo, praia, complexo de praia, complexo hoteleiro, complejo hotelero, complexo hotelero" }, "leisure/bird_hide": { @@ -2105,8 +2162,8 @@ "terms": "observatorio, aves, paxaros" }, "leisure/bleachers": { - "name": "Chanzos", - "terms": "chanzos, banzos, bancada, gradas, multitude, banco, deportes, soporte, asento, asentos" + "name": "Bancadas", + "terms": "chanzos, banzos, bancada, gradas, multitude, banco, deportes, soporte, asento, asentos, tribuna" }, "leisure/bowling_alley": { "name": "Birlos", @@ -2114,7 +2171,7 @@ }, "leisure/common": { "name": "Terreo comunal", - "terms": "terras comunais, terreo comunal, comunal, terras comúns" + "terms": "tenza, tenzas, terras comunais, terreo comunal, comunal, terras comúns" }, "leisure/dance": { "name": "Sala de baile" @@ -2131,10 +2188,11 @@ "terms": "sala de escape, xogo de escape, escapar da habitación, sala de rompecabezas, crebacabezas, quebracabezas, sala de misións, escape room, sala de escape, cuarto de escape" }, "leisure/firepit": { - "name": "Pozo de lume" + "name": "Fogueira", + "terms": "pozo de lume, cacharela, cacheira, cachela, larada, lumarada, luminaria" }, "leisure/fishing": { - "name": "Lugar de pesca", + "name": "Couto de pesca", "terms": "lugar de pesca, pescador, pescar, pescantín" }, "leisure/fitness_centre": { @@ -2148,16 +2206,41 @@ "leisure/fitness_station": { "name": "Estación de ximnasia ao aire libre" }, + "leisure/fitness_station/balance_beam": { + "name": "Barra de equilibrio" + }, + "leisure/fitness_station/box": { + "name": "Barra de fitness" + }, + "leisure/fitness_station/horizontal_bar": { + "name": "Barra fixa horizontal" + }, + "leisure/fitness_station/horizontal_ladder": { + "name": "Escada horizontal" + }, + "leisure/fitness_station/hyperextension": { + "name": "Barra de extensións" + }, "leisure/fitness_station/parallel_bars": { "name": "Barras paralelas", "terms": "barra, exercicio, ximnasio, barras" }, + "leisure/fitness_station/push-up": { + "name": "Barra de flexións" + }, "leisure/fitness_station/rings": { - "name": "Aneis ou argolas para exercicio" + "name": "Argolas para exercicio", + "terms": "aneis de exercicio, argolas de exercicio" }, "leisure/garden": { "name": "Xardín" }, + "leisure/garden/botanical": { + "name": "Xardín botánico" + }, + "leisure/garden/community": { + "name": "Xardín comunitario" + }, "leisure/golf_course": { "name": "Campo de golf" }, @@ -2386,11 +2469,11 @@ }, "man_made/manhole/power": { "name": "Pozo de inspección de rede eléctrica", - "terms": "cuberta, buraco, burato, eléctrico, electricidade, pozo, inspección" + "terms": "cuberta, buraco, burato, eléctrico, electricidade, pozo, inspección, arqueta" }, "man_made/manhole/sewer": { "name": "Pozo de inspección de sumidoiro", - "terms": "cuberta, desagüe, buraco, burato, alcantarillado, pozo, inspección, sumidoiro, rede de sumidoiro, tapa de sumidoiro, inspeccion, auga, augas negras, alcantarilla, augas residuais, residual, refugallo, refugallos" + "terms": "cuberta, desagüe, buraco, burato, alcantarillado, pozo, inspección, sumidoiro, rede de sumidoiro, tapa de sumidoiro, inspeccion, auga, augas negras, alcantarilla, augas residuais, residual, refugallo, refugallos, arqueta" }, "man_made/manhole/telecom": { "name": "Pozo de inspección de telecomunicacións", @@ -2503,10 +2586,16 @@ "man_made/tunnel": { "name": "Área de túnel" }, + "man_made/utility_pole": { + "name": "Poste de servizos" + }, "man_made/wastewater_plant": { "name": "Depuradora de augas residuais", "terms": "depuradora, auga, planta depuradora, EDAR, augas residuais, saneamento, tratamento de augas residuais, depuración, PTAR" }, + "man_made/water_tap": { + "name": "Billa de auga" + }, "man_made/water_tower": { "name": "Torre de auga", "terms": "torre de auga, depósito de auga elevado, tanque de auga" @@ -2527,11 +2616,39 @@ "name": "Muíño de vento", "terms": "vento, eólico, granxa, roda, muíño, turbina, extraer auga, bombeo, muiño" }, + "man_made/windpump": { + "name": "Bomba eólica", + "terms": "bombeo eólico, muíño de vento, eólica" + }, "man_made/works": { - "name": "Fábrica" + "name": "Fábrica", + "terms": "factoría" + }, + "marker": { + "name": "Marco", + "terms": "marcador, indicador, placa, poste, fito, mollón, mouteira, marcote" + }, + "marker/utility": { + "name": "Identificador de servizo" + }, + "marker/utility/power": { + "name": "Indicador de distribución de enerxía" }, "military/bunker": { - "name": "Búnquer militar" + "name": "Búnker militar", + "terms": "Búnquer, búnquer militar, bunquer, casamata, refuxio, bombardeo" + }, + "military/checkpoint": { + "name": "Posto de control militar" + }, + "military/nuclear_explosion_site": { + "name": "Lugar de probas nucleares" + }, + "military/office": { + "name": "Oficina militar" + }, + "military/trench": { + "name": "Trincheira militar" }, "natural": { "name": "Elemento natural" @@ -2545,27 +2662,36 @@ "terms": "baía, baia, golfo, enseada, bahía, bahia, badia, abra, arnela, cala, enseada, golfo, rada" }, "natural/beach": { - "name": "Praia" + "name": "Praia", + "terms": "area, areal" }, "natural/cape": { - "name": "Cabo" + "name": "Cabo", + "terms": "extremo, punta, puntal, promontorio" }, "natural/cave_entrance": { "name": "Entrada de cova", "terms": "cova, gruta, caverna, entrada de cova, espenuca, pala, cafurna, furna, palafurna, lapa, pala, paleira, toba, tobal, tobeira, tobo, toco, toqueira, gorida, guarida, niño, buraca, burata, furoco, tumba, tomba" }, "natural/cliff": { - "name": "Cantil" + "name": "Cantil", + "terms": "acantilado" }, "natural/coastline": { "name": "Beiramar", - "terms": "liña de costa, costa, litoral, ribeira, beiramar" + "terms": "liña de costa, costa, litoral, ribeira, beiramar, mariña" }, "natural/fell": { - "name": "Outeiro" + "name": "Alto de montaña", + "terms": "fjall, outeiro, montaña, altos, cume, costa deforestada" + }, + "natural/geyser": { + "name": "Géyser", + "terms": "geyser, fonte, volcánico, volcánica" }, "natural/glacier": { - "name": "Glaciar" + "name": "Glaciar", + "terms": "glaciario" }, "natural/grassland": { "name": "Pradeira", @@ -2573,32 +2699,39 @@ }, "natural/heath": { "name": "Uceira", - "terms": "uceira, breixeira, moural, urceira, uzal, herba, arbustos, gamallos" + "terms": "uceira, breixeira, moural, urceira, uzal, herba, arbustos, gamallos, breixeira, moural, urceira, uzal, queiroa, queirogal" + }, + "natural/hot_spring": { + "name": "Augas termais", + "terms": "caldas, termas, hidrotermas, xeotermas, manancial" }, "natural/mud": { - "name": "Barro" + "name": "Barro", + "terms": "bulleiro, lama, lodo, trollo" }, "natural/peak": { "name": "Cumio", "terms": "pico, cumio, cume, montaña, monte, cúspide, bico, cima, cimeira, cimbra, curucho, curuto, petouto, pico, picoto, picouto, vértice" }, "natural/reef": { - "name": "Arrecife" + "name": "Arrecife", + "terms": "coral" }, "natural/ridge": { "name": "Crista", - "terms": "crista, cumieira, cumeira, cume, cumeada, tergo, serras, montañas, cresta, montaña, canto, crista elevada, bico, cima, cúspide, pico, petouto, picoto, picouto, cumio" + "terms": "crista, cumieira, cumeira, cume, cumeada, tergo, serras, serra, montañas, cresta, crista, montaña, canto, crista elevada, bico, cima, cúspide, pico, petouto, picoto, picouto, cumio, cordilleira, cadea" }, "natural/rock": { - "name": "Rocha incrustada", - "terms": "rocha, pedra, pena, penedo, roca, con, farallón" + "name": "Penas e grandes rochas", + "terms": "rocha, pedra, pena, penedo, roca, con, farallón, fragueiro, fragueira" }, "natural/saddle": { "name": "Paso de montaña", - "terms": "porto de montaña, paso de montaña" + "terms": "porto de montaña, paso de montaña, porto, paso, val de montaña, val, aba, estreito" }, "natural/sand": { - "name": "Area" + "name": "Area", + "terms": "areal, gran, xabre, sábrego" }, "natural/scree": { "name": "Pedregal", @@ -2606,14 +2739,19 @@ }, "natural/scrub": { "name": "Matogueira", - "terms": "matogueira, arbustos, toxeira, toxos, silveira, breña, coucheira, fraguiza, vedramio" + "terms": "matogueira, matagueira, arbustos, toxeira, toxos, silveira, breña, coucheira, fraguiza, vedramio, mato" + }, + "natural/shingle": { + "name": "Callao", + "terms": "canto rolado, canto, cantos, croio, croios, seixo, callaos, bocha, cañó, coio, croio, pelouro, riarengo, xoga, pedra, deposito de cantos, acumulación de cantos" }, "natural/shrub": { - "name": "Arbusto" + "name": "Arbusto", + "terms": "mato, matoxal, vexetación, leñosa, planta" }, "natural/spring": { "name": "Manancial", - "terms": "manancial, fonte, auga" + "terms": "manancial, fonte, auga, gurgullo, gurgullón, manancial, groto, illó, manancial" }, "natural/stone": { "name": "Pedra solta", @@ -2638,7 +2776,7 @@ "terms": "río, auga, lago, laguna, albufeira, ibón, lagoa, estanque, embalse, encoro, pantano, balsa, corpo de auga, augas, lámina de auga, poza de auga, charca, agua, regato, rego, pozo, poza, burgas, termas" }, "natural/water/basin": { - "name": "Conca" + "name": "Cunca" }, "natural/water/canal": { "name": "Área da canle" @@ -2649,15 +2787,15 @@ }, "natural/water/moat": { "name": "Foso", - "terms": "foso" + "terms": "foso, castelo, muralla, defensa, fortaleza" }, "natural/water/pond": { "name": "Estanque", - "terms": "auga, estanque, lagoa, charca" + "terms": "auga, estanque, lagoa, charca, encalco" }, "natural/water/reservoir": { "name": "Encoro", - "terms": "encoro, presa, embalse, estanque" + "terms": "encoro, presa, embalse, estanque, encalco, represa, vaira" }, "natural/water/river": { "name": "Área de río", @@ -2667,11 +2805,12 @@ "name": "Área do regato" }, "natural/water/wastewater": { - "name": "Conca de augas residuais", + "name": "Cunca de augas residuais", "terms": "bazofia, desperdicio, desproveito, reboutallo, sobra, varredura, refugo, excrementos, caca, feces, merda, refugallo, mierda, augas residuais, residuos, conca de asentamento, conca clarificadora, cuenca" }, "natural/wetland": { - "name": "Pantano" + "name": "Zona húmida", + "terms": "humidal, húmido, braña, lameiro, estuario, marisma, pantano, turbeira, mangleiro, esteiro" }, "natural/wood": { "name": "Bosque natural", @@ -2708,6 +2847,9 @@ "office/company": { "name": "Oficina corporativa" }, + "office/consulting": { + "name": "Oficina de consultoría" + }, "office/coworking": { "name": "Espacio de cotraballo" }, @@ -2754,6 +2896,9 @@ "name": "Oficina gobernamental", "terms": "oficina gobernamental, oficina do goberno" }, + "office/government/prosecutor": { + "name": "Fiscalía" + }, "office/government/register_office": { "name": "Oficina de rexistro civil" }, @@ -2807,6 +2952,9 @@ "name": "Oficina de investigación", "terms": "investigación, desenvolvemento, I+D, laboratorio" }, + "office/surveyor": { + "name": "Oficina de agrimensor" + }, "office/tax_advisor": { "name": "Oficina de xestor fiscal" }, @@ -2823,6 +2971,19 @@ "name": "Oficina de servizos públicos de auga", "terms": "servizo público, servicio público, publico, auga, agua, saneamento" }, + "piste/downhill": { + "name": "Pista de esquí de velocidade" + }, + "piste/ice_skate": { + "name": "Pista de patinaxe sobre xeo", + "terms": "pista de xeo, patinaxe sobre xeo, pistas, patíns, skates, xeo, pista, xelo" + }, + "piste/nordic": { + "name": "Pista de esquí de fondo" + }, + "piste/skitour": { + "name": "Pista de esquí de travesía" + }, "place": { "name": "Lugar" }, @@ -2966,13 +3127,13 @@ "name": "Plataforma de aeroporto" }, "public_transport/platform/aerialway_point": { - "name": "Paraxe / Plataforma de vía aérea" + "name": "Parada / Plataforma de avións" }, "public_transport/platform/bus": { "name": "Plataforma de bus" }, "public_transport/platform/bus_point": { - "name": "Paraxe de bus", + "name": "Parada de bus", "terms": "autobús, bus, colectivo, plataforma, transporte público, parada" }, "public_transport/platform/ferry": { @@ -2980,48 +3141,48 @@ "terms": "bote, muelle, transbordador, plataforma, transporte público, peirao, barco" }, "public_transport/platform/ferry_point": { - "name": "Paraxe / Plataforma de ferri" + "name": "Parada / Plataforma de ferri" }, "public_transport/platform/light_rail": { "name": "Plataforma de tren lixeiro" }, "public_transport/platform/light_rail_point": { - "name": "Paraxe / Plataforma de tren lixeiro" + "name": "Parada / Plataforma de tren lixeiro" }, "public_transport/platform/monorail": { "name": "Plataforma de monorraíl" }, "public_transport/platform/monorail_point": { - "name": "Paraxe / Plataforma de monorraíl" + "name": "Parada / Plataforma de monorraíl" }, "public_transport/platform/subway": { "name": "Plataforma de metro" }, "public_transport/platform/subway_point": { - "name": "Paraxe / Plataforma de metro" + "name": "Parada / Plataforma de metro" }, "public_transport/platform/train": { "name": "Plataforma de trens" }, "public_transport/platform/train_point": { - "name": "Paraxe / Plataforma de trens" + "name": "Parada / Plataforma de trens" }, "public_transport/platform/tram": { "name": "Plataforma de tranvía" }, "public_transport/platform/tram_point": { - "name": "Paraxe / Plataforma de tranvía", + "name": "Parada / Plataforma de tranvía", "terms": "eléctrico, tren lixeiro, plataforma, transporte público, ferrocarril, tranvía, pista, tránsito, transporte" }, "public_transport/platform/trolleybus": { - "name": "Paraxe / Plataforma de trolebús" + "name": "Parada / Plataforma de trolebús" }, "public_transport/platform/trolleybus_point": { - "name": "Paraxe de trolebús", + "name": "Parada de trolebús", "terms": "autobús, eléctrico, plataforma, transporte público, tranvía, sen rieles, trolley, trolebús, transporte, bus, trollei, trole, sen raís, bus, parada" }, "public_transport/platform_point": { - "name": "Paraxe / Plataforma de transporte público", + "name": "Parada / Plataforma de transporte público", "terms": "plataforma, transporte público, tránsito, transporte, parada" }, "public_transport/station": { @@ -3046,47 +3207,47 @@ "name": "Estación de tranvía" }, "public_transport/stop_area": { - "name": "Área de paraxe do transporte público", + "name": "Área de parada de transporte público", "terms": "transporte público, parada, punto de detención" }, "public_transport/stop_position": { - "name": "Ubicación de paraxe do transporte público", + "name": "Ubicación de parada de transporte público", "terms": "punto detención, transporte público, tránsito, transporte, aéreo, autobús, ferry, tren lixeiro, tranvía, tren, monorraíl, metro, trolebús, parada, bus, ferri" }, "public_transport/stop_position_aerialway": { - "name": "Ubicación de paraxe da vía aérea", + "name": "Lugar de parada de avións", "terms": "punto detención, transporte público, tránsito, transporte, teleférico, telecabina, góndola, transportador, parada" }, "public_transport/stop_position_bus": { - "name": "Punto de paraxe do autobús", + "name": "Lugar de parada de bus", "terms": "punto detención, transporte público, tránsito, transporte, autobús, bus, minibús, parada" }, "public_transport/stop_position_ferry": { - "name": "Ubicación de paraxe do ferri", + "name": "Lugar de parada de ferri", "terms": "punto detención, transporte público, tránsito, transporte, naval, marítimo, bote, barco, ferry, buque, lancha, muelle, dársena, ferri, peirao, parada" }, "public_transport/stop_position_light_rail": { - "name": "Ubicación de paraxe do tren lixeiro", + "name": "Lugar de parada de tren lixeiro", "terms": "punto detención, transporte público, tránsito, transporte, tren, ferrocarril, tren lixeiro, parada" }, "public_transport/stop_position_monorail": { - "name": "Ubicación de paraxe do monorraíl", + "name": "Lugar de parada de monorraíl", "terms": "punto detención, transporte público, tránsito, transporte, tren, ferrocarril, monorraíl, monocarril, bus, parada" }, "public_transport/stop_position_subway": { - "name": "Ubicación de paraxe do metro", + "name": "Lugar de parada de metro", "terms": "punto detención, transporte público, tránsito, transporte, tren, ferrocarril, metro, subterráneo, parada" }, "public_transport/stop_position_train": { - "name": "Ubicación de paraxe do tren", + "name": "Lugar de parada do tren", "terms": "punto detención, transporte público, tránsito, transporte, tren, ferrocarril, parada" }, "public_transport/stop_position_tram": { - "name": "Ubicación de paraxe do tranvía", + "name": "Lugar de parada de tranvía", "terms": "punto detención, transporte público, tránsito, transporte, tren, ferrocarril, tranvía, parada" }, "public_transport/stop_position_trolleybus": { - "name": "Ubicación de paraxe do trolebús", + "name": "Lugar de parada de trolebús", "terms": "punto detención, transporte público, tránsito, transporte, tren, ferrocarril, bus, autobús, trolebús, bus, parada" }, "railway": { @@ -3097,14 +3258,15 @@ "terms": "carris,ferrovia,fora de servizo,ferroviarias,ferroviarios,camiños de ferro,camiños-de-ferro,liña férrea,comboios,vía de tren, via, via de tren, ferrovia, ferrovía, ferrocarril, liña ferrea, via férrea, vía férrea, carris,ferrovia,ferroviarias,ferroviarios,camiños de ferro,camiños-de-ferro,liña férrea,comboios,vía de tren, via, via de tren, ferrovia, ferrovía, ferrocarril, liña ferrea, via férrea, vía férrea" }, "railway/buffer_stop": { - "name": "Toupeira (paraxe de buffer)", + "name": "Toupeira (parada de buffer)", "terms": "parachoques deslizante, tope, amortiguador, quitamedos, topera, topeira, toupeira" }, "railway/construction": { "name": "Ferrovía en construción" }, "railway/crossing": { - "name": "Paso a nivel peonil" + "name": "Ferrovía - Cruce de camiño", + "terms": "ferrocarril, tren, peonil, peonal" }, "railway/derail": { "name": "Calzo descarrilador" @@ -3120,7 +3282,8 @@ "name": "Estación de trens (Halt / Request)" }, "railway/level_crossing": { - "name": "Paso a nivel de estrada" + "name": "Ferrovía - Cruce de estrada", + "terms": "ferrocarril, tren, estrada" }, "railway/light_rail": { "name": "Ferrovía de tren lixeiro" @@ -3155,7 +3318,8 @@ "terms": "raíl, carril, camiño de ferro, ferrocarril, ferrovía, liña férrea, riel, tren, rail, vía, vía permanente, vía férrea, via, tren bala, tren rápido, tren de alta velocidade, HSR, velocidade alta, LAV, lav, AVE, ave, AVANT, avant" }, "railway/railway_crossing": { - "name": "Paso a nivel oblicuo" + "name": "Ferrovía - Cruce de ferrovía", + "terms": "ferrocarril, tren" }, "railway/signal": { "name": "Sinal ferroviario" @@ -3171,7 +3335,8 @@ "terms": "boca, entrada de metro, entrada de subte, entrada, ingreso, acceso, subte, subterráneo, subterraneo, metro, escaleiras, escadas, ascensor, boca de metro, entrada do metro, saída, saida, porta, entrada" }, "railway/switch": { - "name": "Agulla de ferrovía" + "name": "Agulla de ferrovía", + "terms": "desvío, ferrocarril, ferrovía" }, "railway/train_wash": { "name": "Instalación de lavado de trens" @@ -3180,8 +3345,14 @@ "name": "Vía de tranvía", "terms": "tranvía, tranvia, vía, via" }, + "railway/tram_crossing": { + "name": "Tranvía - cruce de camiño" + }, + "railway/tram_level_crossing": { + "name": "Tranvía - cruce de estrada" + }, "railway/tram_stop": { - "name": "Paraxe de tranvía" + "name": "Parada de tranvía" }, "relation": { "name": "Relación", @@ -3428,6 +3599,9 @@ "shop/laundry": { "name": "Lavandaría" }, + "shop/laundry/self_service": { + "name": "Lavandaría autoservizo" + }, "shop/leather": { "name": "Tenda de peles" }, @@ -3707,6 +3881,9 @@ "tourism/information/map": { "name": "Mapa" }, + "tourism/information/office": { + "terms": "centro de información, oficina turística" + }, "tourism/information/terminal": { "name": "Terminal de información" }, @@ -3716,6 +3893,9 @@ "tourism/museum": { "name": "Museo" }, + "tourism/museum/history": { + "name": "Museo de historia" + }, "tourism/picnic_site": { "name": "Merendeiro ou zona de pícnic", "terms": "picnic, esparcemento, merendeiro, sitio de picnic, lugar de picnic, zona de picnic" @@ -3771,26 +3951,30 @@ "traffic_sign/city_limit": { "name": "Sinal de límite de cidade" }, - "traffic_sign/city_limit_vertex": { - "name": "Sinal de límite de cidade" - }, "traffic_sign/maxspeed": { "name": "Sinal de límite da velocidade" }, - "traffic_sign/maxspeed_vertex": { - "name": "Sinal de límite da velocidade" - }, "type/boundary": { - "name": "Límite" + "name": "Límite", + "terms": "fronteira, raia" }, "type/boundary/administrative": { "name": "Límite administrativo" }, + "type/connectivity": { + "name": "Conexión vial" + }, + "type/destination_sign": { + "name": "Sinal de destino" + }, + "type/enforcement/maxspeed": { + "name": "Límite de velocidade controlado" + }, "type/multipolygon": { "name": "Multipolígono" }, "type/public_transport/stop_area_group": { - "name": "Grupo de área da paraxe de transporte", + "name": "Grupo de área de parada de transporte", "terms": "transporte público, parada, punto de detención" }, "type/restriction": { @@ -3817,6 +4001,9 @@ "type/restriction/only_straight_on": { "name": "Só cara adiante" }, + "type/restriction/only_u_turn": { + "name": "Só cambio de sentido" + }, "type/route": { "name": "Ruta" }, @@ -3833,9 +4020,6 @@ "name": "Liña de ferri", "terms": "ruta, rota, liña, ferri, itinerario, rumbo, dirección, traxecto, ferry, transbordador, buque, barco" }, - "type/route/foot": { - "name": "Roteiro a pé" - }, "type/route/hiking": { "name": "Roteiro de sendeirismo" }, @@ -3849,6 +4033,9 @@ "name": "Ruta de tubaxe", "terms": "ruta, rota, tubería, tubaría, gasoduto, oleoduto, conduto, cañería, duto, ducto, tubaxe, tubo" }, + "type/route/piste": { + "name": "Ruta / Pista de esquí" + }, "type/route/power": { "name": "Ruta de rede eléctrica", "terms": "liña de alta tensión, cable, cabo, electricidade, enerxía, rede elećtrica, liña electrica, ruta" @@ -3883,14 +4070,16 @@ "terms": "astillero, varadeiro, bote, lancha, embarcación, varadoiro, barco, barcos, embarcacion" }, "waterway/canal": { - "name": "Canle" + "name": "Canle", + "terms": "cal, caldeira, calexa, quenlla, cano, rego" }, "waterway/canal/lock": { "name": "Canle de esclusa", "terms": "canal, esclusa, canle" }, "waterway/dam": { - "name": "Encoro" + "name": "Encoro", + "terms": "encalco, embalse, presa, represa estanque, pantano, vaira" }, "waterway/ditch": { "name": "Birta" @@ -3903,7 +4092,8 @@ "terms": "drenaxe, sumidoiro, sumideiro, acougadoiro, desacougadoiro, pluviais, augas, chuvia, chuva, choiva, desagüe, sumidero, alcantarilla, alcantarillado, resumidero, gabia, foxo, foio, cuneta, focha, fochanca, focho, covo" }, "waterway/fish_pass": { - "name": "Paso de peixes" + "name": "Paso fluvial", + "terms": "canle fluvial, augas arriba, desove, paso de peixes, peixe, escada, piscícola, anguías, salmón, represa, reprodución" }, "waterway/fuel": { "name": "Gasolineira para embarcacións" @@ -3918,21 +4108,26 @@ }, "waterway/river": { "name": "Río", - "terms": "río, rio, regato, afluente, auga, regacho, vertente, agua, rama, arroio, curso, esteiro, estuario, foz, riachuelo, ribeira, corrente, curso de auga, auga, agua, beira, marxe" + "terms": "río, rio, regato, regacho, afluente, auga, regacho, vertente, agua, rama, arroio, curso, esteiro, estuario, foz, riachuelo, ribeira, corrente, curso de auga, auga, agua, beira, marxe" }, "waterway/riverbank": { "name": "Beira de río" }, "waterway/sanitary_dump_station": { - "name": "Inodoro para embarcacións" + "name": "Aseo para embarcacións", + "terms": "aseos, aseo, baños, WC, cuarto de baño, servizo, servizos, lavabo, latrina, retrete, váter, urinario, urinaria" }, "waterway/stream": { "name": "Regato", - "terms": "río, regato, rego, torrente, auga" + "terms": "río, regato, regacho, rego, torrente, auga" }, "waterway/stream_intermittent": { "name": "Regato intermitente" }, + "waterway/tidal_channel": { + "name": "Río de esteiro", + "terms": "canle, costeiro, rías, ría, mar, esteiro, estuario, mar, litoral, mariño, salgado, regado, rego, insua, salobre, marea, mangal" + }, "waterway/water_point": { "name": "Auga potábel para embarcacións", "terms": "auga potable, auga, agua, porto, embarcación, porto deportivo, mariña, marina, barco, paquebote, nave, paquete, lancha, peirao" diff --git a/app/src/main/assets/osmfeatures/hu.json b/app/src/main/assets/osmfeatures/hu.json index 30a25ea823..509fa10b32 100644 --- a/app/src/main/assets/osmfeatures/hu.json +++ b/app/src/main/assets/osmfeatures/hu.json @@ -3942,18 +3942,9 @@ "traffic_sign/city_limit": { "name": "Lakott terület határát jelző tábla" }, - "traffic_sign/city_limit_vertex": { - "name": "Lakott terület határát jelző tábla" - }, "traffic_sign/maxspeed": { "name": "Sebességkorlátozást jelző tábla" }, - "traffic_sign/maxspeed_vertex": { - "name": "Sebességkorlátozást jelző tábla" - }, - "traffic_sign_vertex": { - "name": "Jelzőtábla" - }, "type/boundary": { "name": "Határvonal", "terms": "Határ" @@ -4021,10 +4012,6 @@ "name": "Kompútvonal", "terms": "Kompjárat útvonal" }, - "type/route/foot": { - "name": "Gyalogos útvonal", - "terms": "Gyalog útvonal" - }, "type/route/hiking": { "name": "Turistaút", "terms": "Túraút, gyalogtúra" @@ -4109,7 +4096,7 @@ "terms": "üzemanyag,dízel,gázolaj,csónak,hajó, hajóbenzinkút, bunkerolaj" }, "waterway/lock_gate": { - "name": "Zsilip", + "name": "Zsilipkapu", "terms": "csatorna" }, "waterway/milestone": { diff --git a/app/src/main/assets/osmfeatures/in.json b/app/src/main/assets/osmfeatures/in.json index 371c31db4a..0f8a3c4105 100644 --- a/app/src/main/assets/osmfeatures/in.json +++ b/app/src/main/assets/osmfeatures/in.json @@ -1334,9 +1334,6 @@ "type/route/ferry": { "name": "Rute Feri" }, - "type/route/foot": { - "name": "Rute Jalan Kaki" - }, "type/route/hiking": { "name": "Rute Pendakian" }, diff --git a/app/src/main/assets/osmfeatures/it.json b/app/src/main/assets/osmfeatures/it.json index e4f28fac44..21b3749e87 100644 --- a/app/src/main/assets/osmfeatures/it.json +++ b/app/src/main/assets/osmfeatures/it.json @@ -11,10 +11,16 @@ "name": "Cartellone pubblicitario", "terms": "pubblicità,cartellone,promozione,propaganda,réclame,manifesto" }, + "advertising/board": { + "name": "Bacheca" + }, "advertising/column": { "name": "Espositore pubblicitario cilindrico", "terms": "espositore pubblicitario,espositori,cilindro,cilindrico,pubblicità,cartellone,totem" }, + "advertising/totem": { + "name": "Totem pubblicitario" + }, "aerialway": { "name": "Caratteristiche del trasporto a fune" }, @@ -30,10 +36,16 @@ "name": "Sciovia", "terms": "sci,teleferica,skilift,lift" }, + "aerialway/gondola": { + "name": "Cabinovia" + }, "aerialway/goods": { "name": "Teleferica", "terms": "funivia,cavo,gru,merci" }, + "aerialway/j-bar": { + "name": "Ski-lift" + }, "aerialway/magic_carpet": { "name": "Tapis roulant", "terms": "tappeto,scorrevole,mobile,magico,cintura,cinghia,nastro,snowboard,superficie,trasportatore" @@ -54,6 +66,9 @@ "name": "Manovia", "terms": "manovia" }, + "aerialway/t-bar": { + "name": "Ski-lift ad àncora" + }, "aerialway/zip_line": { "name": "Teleferica", "terms": "aereo,aerea,volo,volante,pista,corsia,volpe volante,vela,foefie,fune,tirolese,traverso,zipline,zip,corda" @@ -83,6 +98,10 @@ "aeroway/holding_position": { "name": "Circuito di attesa per aeromobili" }, + "aeroway/jet_bridge": { + "name": "Manicotto d’imbarco", + "terms": "pontile,passerella,imbarco,manicotto,passeggeri,portale,connettore,gate" + }, "aeroway/parking_position": { "name": "Posizione di parcheggio per aeromobili" }, @@ -90,6 +109,9 @@ "name": "Pista di decollo/atterraggio", "terms": "pista di atterraggio" }, + "aeroway/spaceport": { + "name": "Spazioporto" + }, "aeroway/taxiway": { "name": "Pista di rullaggio", "terms": "rullaggio,pista,aeroporto,manovra" @@ -175,10 +197,16 @@ "name": "Biergarten", "terms": "birreria,distesa,birra,alcol,bevuta" }, + "amenity/binoculars": { + "name": "Binocolo Montato" + }, "amenity/boat_rental": { "name": "Noleggio barche", "terms": "noleggio barche,noleggio,barche,porto,negozio" }, + "amenity/boat_storage": { + "name": "Rimessaggio Barche" + }, "amenity/bureau_de_change": { "name": "Cambiavalute", "terms": "cambi,ufficio cambi,cambio,valuta,cambiovaluta" @@ -190,6 +218,9 @@ "name": "Caffè", "terms": "bistrot,caffè,thè,te,bar,caffetteria" }, + "amenity/cafe/bubble_tea": { + "name": "Bubble Tea Caffetteria" + }, "amenity/cafe/coffee_shop": { "name": "Caffetteria" }, @@ -291,7 +322,8 @@ "terms": "dojo,karate,judo,arti marziali" }, "amenity/dressing_room": { - "name": "Camerino" + "name": "Camerino", + "terms": "camerino,cabina,cabina di prova" }, "amenity/drinking_water": { "name": "Fontanella", @@ -336,6 +368,10 @@ "amenity/fast_food/ice_cream": { "name": "Fast Food di gelati" }, + "amenity/fast_food/juice": { + "name": "Fast food di succhi di frutta", + "terms": "bar,caffè,caffetteria,bevande,frutta,bevuta,drink,succhi,frappé,frullati" + }, "amenity/fast_food/kebab": { "name": "Fast Food di kebab", "terms": "bar,colazione,caffè,mensa,cena,drivein,mangiare,grigliata,pranzo,tavolo,kebab,kebap,shawarma" @@ -371,6 +407,9 @@ "name": "Stazione di servizio", "terms": "distributore,gas, benzina,diesel,gpl,carburante,benzinaio,gasolio,nafta" }, + "amenity/gambling": { + "name": "Sala da Gioco" + }, "amenity/grave_yard": { "name": "Cimitero", "terms": "cimitero,tombe" @@ -563,6 +602,10 @@ "name": "Pub", "terms": "pub,birreria,locale" }, + "amenity/pub/irish": { + "name": "Pub irlandese", + "terms": "guinness,dublino,irlanda" + }, "amenity/pub/lgbtq": { "name": "Pub LGBTQ+", "terms": "gay pub,lesbica,lesbiche,lgbtq,lgb,bisex,omosessuale,trans,queen" @@ -589,6 +632,9 @@ "amenity/recycling/container/electrical_items": { "name": "Cassonetto per la raccolta di RAEE" }, + "amenity/recycling/container/green_waste": { + "name": "Contenitore dei rifiuti naturali" + }, "amenity/recycling_centre": { "name": "Centro di riciclaggio", "terms": "Centro riciclo" @@ -600,6 +646,9 @@ "amenity/refugee_site": { "name": "Campo profughi" }, + "amenity/research_institute": { + "name": "Istituto di ricerca" + }, "amenity/restaurant": { "name": "Ristorante", "terms": "bar,caffetteria,caffè,ristorante self-service,braceria,trattoria,negozio di ciambelle,bettola,griglieria,venditore di hamburger,venditore di hotdog,pizzeria" @@ -768,6 +817,9 @@ "name": "Latrina a fossa", "terms": "tazza,scarico,caduta,fossa,pozzo,buca,toilet,gabinetto,latrina" }, + "amenity/toilets/portable": { + "name": "WC portatile" + }, "amenity/townhall": { "name": "Municipio", "terms": "sala del comune,palazzo di governo,tribunale,municipio" @@ -794,10 +846,12 @@ "terms": "distributore automatico,macchinetta" }, "amenity/vending_machine/bottle_return": { - "name": "Macchina per il Reso delle Bottiglie" + "name": "Macchina per il reso delle bottiglie", + "terms": "reso bottiglie" }, "amenity/vending_machine/bread": { - "name": "Macchina di Vendita del Pane" + "name": "Macchina di vendita del pane", + "terms": "pane, baguette" }, "amenity/vending_machine/cigarettes": { "name": "Distributore automatico di sigarette", @@ -816,7 +870,8 @@ "terms": "distributore automatico,macchinetta,bevande,bottiglie,bottigliette" }, "amenity/vending_machine/eggs": { - "name": "Macchina di Vendita delle Uova" + "name": "Macchina di vendita delle uova", + "terms": "uova" }, "amenity/vending_machine/electronics": { "name": "Macchinetta accessori elettrici", @@ -941,6 +996,9 @@ "name": "Labirinto", "terms": "parco a tema,parco tematico,parco di divertimento,parco divertimenti,parco dei divertimenti,giostra,giostre,attrazione,divertimento,labirinto,dedalo" }, + "attraction/pirate_ship": { + "name": "Nave dei pirati" + }, "attraction/roller_coaster": { "name": "Montagne russe", "terms": "montagne russe,parco a tema,attrazioni,divertimento,divertimenti,giostra,luna park" @@ -1017,6 +1075,9 @@ "barrier/hedge": { "name": "Siepe" }, + "barrier/height_restrictor": { + "name": "Limitatore di altezza" + }, "barrier/kerb": { "name": "Cordolo", "terms": "bordo,marciapiede" @@ -1049,10 +1110,16 @@ "name": "Muro di contenimento", "terms": "Muro di contenimento" }, + "barrier/spikes": { + "name": "Striscia chiodata" + }, "barrier/stile": { "name": "Scaletta", "terms": "Scaletta" }, + "barrier/swing_gate": { + "name": "Sbarra a rotazione" + }, "barrier/toll_booth": { "name": "Casello", "terms": "Casello autostradale" @@ -1065,6 +1132,9 @@ "name": "Muro", "terms": "Muro" }, + "barrier/wall/noise_barrier": { + "name": "Barriera antirumore" + }, "boundary": { "name": "Confine" }, @@ -1076,7 +1146,7 @@ "name": "Supporto ponte" }, "bridge/support/pier": { - "name": "pilone" + "name": "Pilone" }, "building": { "name": "Edificio", @@ -1136,6 +1206,9 @@ "name": "Edificio in costruzione", "terms": "cantiere,struttura,in costruzione" }, + "building/cowshed": { + "name": "Stalla" + }, "building/detached": { "name": "Casa indipendente", "terms": "abitazione indipendente,indipendente" @@ -1305,6 +1378,10 @@ "name": "Mestiere", "terms": "artigianato, produzione locale" }, + "craft/agricultural_engines": { + "name": "Meccanico di motori agricoli", + "terms": "mietitrebbie,fattoria,equipaggiamento,attrezzi,mietitrici,mietitori,trattori" + }, "craft/basket_maker": { "name": "Cestaio", "terms": "Cestaio,Intrecciatore di vimini" @@ -1478,16 +1555,26 @@ "terms": "azienda vinicola, azienda vitivinicola" }, "cycleway/asl": { - "name": "Linea di Stop Avanzata" + "name": "Linea di Stop Avanzata", + "terms": "box di fermata avanzato,asl,box bici,cassetta per biciclette,stop biciclette" + }, + "demolished/building": { + "name": "Edificio demolito di recente" + }, + "disused/amenity": { + "name": "Servizio in disuso" + }, + "disused/railway": { + "name": "Elemento ferroviario in disuso" }, "disused/shop": { - "name": "Negozio in Disuso" + "name": "Negozio in disuso" }, "embankment": { "name": "Terrapieno" }, "emergency": { - "name": "Elementi di soccorso" + "name": "Elemento di soccorso" }, "emergency/ambulance_station": { "name": "Stazione ambulanze", @@ -1495,10 +1582,10 @@ }, "emergency/defibrillator": { "name": "Defibrillatore", - "terms": "dae,defibrillatore" + "terms": "dae,defibrillatore,aed" }, "emergency/designated": { - "name": "Accesso di emergenza designato" + "name": "Accesso di emergenza riservato" }, "emergency/destination": { "name": "Destinazione d'uso accesso di emergenza" @@ -1522,6 +1609,9 @@ "name": "Kit di primo soccorso", "terms": "bende,bendaggi,garze,cerotti,disinfettante,sterile,sterili,medicine,kit,pronto soccorso,medico,primo soccorso,soccorso" }, + "emergency/landing_site": { + "name": "Area di atterraggio elicotteri per emergenza" + }, "emergency/life_ring": { "name": "Salvagente", "terms": "boa di salvataggio,annegamento,giubbotto,salvataggio,ciambella" @@ -1682,9 +1772,12 @@ "name": "Logopedista", "terms": "voce,parola,linguaggio,comunicazione,terapista,terapia" }, + "highway": { + "name": "Elemento stradale" + }, "highway/bridleway": { "name": "Ippovia", - "terms": "ippovia, percorso per cavalli, percorso equestre" + "terms": "ippovia,percorso per cavalli,percorso equestre" }, "highway/bus_guideway": { "name": "Binario per autobus" @@ -1694,10 +1787,10 @@ }, "highway/construction": { "name": "Strada chiusa", - "terms": "chiusura,costruzione,strada chiusa,lavori in corso,lavori stradali" + "terms": "chiusura,costruzione,strada chiusa,lavori in corso,lavori stradali,strada in costruzione" }, "highway/corridor": { - "name": "Corridoio interno", + "name": "Corridoio", "terms": "corridoio" }, "highway/crossing": { @@ -1824,6 +1917,9 @@ "name": "Sentiero", "terms": "Sentiero" }, + "highway/path/boardwalk": { + "name": "Passerella di legno" + }, "highway/pedestrian_area": { "name": "Area pedonale", "terms": "piazza,piazza pedonale,centro,pedonale,area" @@ -2060,6 +2156,9 @@ "name": "Svincolo", "terms": "svincolo,uscita" }, + "landuse": { + "name": "Caratteristica di uso del terreno" + }, "landuse/aquaculture": { "name": "Acquacoltura", "terms": "pesci,crostacei,alghe,gambero,gamberi,gamberetti,aragoste,maricoltura,algacoltura,allevamento,molluschi,cozze,ostriche,orate" @@ -2096,6 +2195,9 @@ "name": "Fattoria", "terms": "Aia" }, + "landuse/flowerbed": { + "name": "Aiuola" + }, "landuse/forest": { "name": "Foresta gestita" }, @@ -2212,6 +2314,9 @@ "landuse/winter_sports": { "name": "Area sport invernali" }, + "leisure": { + "name": "Caratteristica di benessere" + }, "leisure/adult_gaming_centre": { "name": "Sala da gioco", "terms": "gioco d'azzardo,casinò,bisca" @@ -2258,6 +2363,9 @@ "leisure/escape_game": { "name": "Escape Room" }, + "leisure/firepit": { + "name": "Focolare" + }, "leisure/fishing": { "name": "Punto per la pesca", "terms": "pesca,pescatore,punto,pesce,esca" @@ -2504,6 +2612,9 @@ "name": "Linea", "terms": "Linea" }, + "man_made": { + "name": "Elementi creati dall’uomo" + }, "man_made/adit": { "name": "Cunicolo", "terms": "adito,miniera,ingresso" @@ -2527,6 +2638,9 @@ "name": "Bunker silo", "terms": "insilato,silaggio,stoccaggio,immagazzinamento,magazzino" }, + "man_made/cairn": { + "name": "Ometto di pietra" + }, "man_made/chimney": { "name": "Ciminiera", "terms": "torre,camino" @@ -2538,10 +2652,17 @@ "man_made/crane": { "name": "Gru" }, + "man_made/cross": { + "name": "Croce" + }, "man_made/cutline": { "name": "Linea di demarcazione", "terms": "Linea di taglio" }, + "man_made/dovecote": { + "name": "Colombaia", + "terms": "uccelli,volatili,colombe,colombara,piccioni,piccionaia" + }, "man_made/dyke": { "name": "Argine", "terms": "argine,terrapieno,rialzo" @@ -2558,6 +2679,10 @@ "name": "Gasometro", "terms": "gazometro" }, + "man_made/goods_conveyor": { + "name": "Trasporto di merce su nastro", + "terms": "nastro trasportatore,catena,cintura,rulli" + }, "man_made/lighthouse": { "name": "Faro", "terms": "Faro" @@ -2699,46 +2824,68 @@ "name": "Palo di Servizi Pubblici" }, "man_made/wastewater_plant": { - "name": "Impianto di depurazione delle acque" + "name": "Impianto di depurazione delle acque", + "terms": "impianto di trattamento acque,trattamento acque,depuratore,depurazione acque" }, "man_made/water_tap": { - "name": "Rubinetto dell'acqua" + "name": "Rubinetto dell'acqua", + "terms": "acqua potabile,rubinetto" }, "man_made/water_tower": { - "name": "Torre idrica" + "name": "Torre idrica", + "terms": "torre idrica,acquedotto" }, "man_made/water_well": { "name": "Pozzo", "terms": "Pozzo" }, "man_made/water_works": { - "name": "Impianto Idrico", + "name": "Impianto idrico", "terms": "Impianto idrico" }, "man_made/watermill": { - "name": "Mulino ad acqua" + "name": "Mulino ad acqua", + "terms": "mulino,mulino ad acqua" }, "man_made/windmill": { - "name": "Mulino a vento" + "name": "Mulino a vento", + "terms": "mulino,mulino a vento" }, "man_made/works": { "name": "Fabbrica", "terms": "industria,manifattura,officina,opificio,stabilimento,laboratorio" }, + "marker": { + "name": "Segnalatore", + "terms": "indicatore,segnalatore,marker,palo" + }, + "marker/utility": { + "name": "Segnalatore linea sotterranea", + "terms": "indicatore gasdotto,segnalatore gasdotto,segnalatore,indicatore,palo,utility marker" + }, + "marker/utility/power": { + "name": "Segnalatore rete elettrica", + "terms": "segnalatore rete elettrica,rete elettrica,palo,indicatore rete elettrica,cavo elettrico" + }, "military/bunker": { - "name": "Bunker militare" + "name": "Bunker militare", + "terms": "bunker,base,esercito" }, "military/checkpoint": { - "name": "Posto di Blocco Militare" + "name": "Posto di blocco militare", + "terms": "posto di blocco,militari,base,esercito" }, "military/nuclear_explosion_site": { - "name": "Sito esplosione nucleare" + "name": "Sito esplosione nucleare", + "terms": "esplosione,cratere,sito,nucleare" }, "military/office": { - "name": "Ufficio militare" + "name": "Ufficio militare", + "terms": "ufficio,militare,base" }, "military/trench": { - "name": "Trincea militare" + "name": "Trincea militare", + "terms": "trincea,guerra,buco," }, "natural": { "name": "Elemento naturale" @@ -2768,18 +2915,20 @@ "terms": "Rupe,parete,dirupo,scogliera,scogliera a picco" }, "natural/coastline": { - "name": "Linea di costa" + "name": "Linea di costa", + "terms": "spiaggia,costa" }, "natural/fell": { "name": "Prateria montana", "terms": "prati,pascoli,alpi,montagna,alta quota,incolti,tundra,erba,alpeggio,fieno" }, "natural/geyser": { - "name": "Geyser" + "name": "Geyser", + "terms": "geyser,gaiser,sorgente esplosiva,acque calde,vapore" }, "natural/glacier": { "name": "Ghiacciaio", - "terms": "Ghiacciaio" + "terms": "ghiacciaio" }, "natural/grassland": { "name": "Prateria", @@ -2787,14 +2936,19 @@ }, "natural/heath": { "name": "Brughiera", - "terms": "Brughiera" + "terms": "brughiera" + }, + "natural/hot_spring": { + "name": "Sorgente calda", + "terms": "sorgente geotermica,piscina termale,sorgente" }, "natural/mud": { "name": "Fango", "terms": "fango,fangoso,umido,bagnato,terra bagnata,melmoso,paludoso,palude" }, "natural/peak": { - "name": "Picco" + "name": "Picco", + "terms": "picco,cresta,corona,montagna,collina,pinnacolo,sommità" }, "natural/reef": { "name": "Scogliera", @@ -2805,10 +2959,11 @@ "terms": "cresta" }, "natural/rock": { - "name": "Masso" + "name": "Masso fissato", + "terms": "masso,pietra,roccia" }, "natural/saddle": { - "name": "Sella", + "name": "Valico", "terms": "passo,valico,sella,forcella" }, "natural/sand": { @@ -2820,18 +2975,28 @@ "terms": "ghiaione,frana,scarica,ghiaia,sassi,pietraia,sassaia,pietre" }, "natural/scrub": { - "name": "Boscaglia" + "name": "Boscaglia", + "terms": "cespuglio,boscaglia,arbusto" + }, + "natural/shingle": { + "name": "Spiaggia di ciottoli", + "terms": "ghiaia,ciottolato,sassi,spiaggia" }, "natural/shrub": { - "name": "Arbusto" + "name": "Arbusto", + "terms": "arbusto,cespuglio" }, "natural/spring": { "name": "Sorgente", - "terms": "Sorgente" + "terms": "sorgente" + }, + "natural/stone": { + "name": "Roccia non fissata", + "terms": "roccia,pietra" }, "natural/tree": { "name": "Albero", - "terms": "Albero" + "terms": "albero" }, "natural/tree_row": { "name": "Filare di alberi", @@ -3551,7 +3716,7 @@ "name": "Boutique" }, "shop/brewing_supplies": { - "name": "Negozio di Forniture per Birrerie" + "name": "Negozio di forniture per la produzione di birra" }, "shop/butcher": { "name": "Macellaio", @@ -3601,21 +3766,21 @@ }, "shop/chocolate": { "name": "Cioccolateria", - "terms": "Cioccolateria" + "terms": "cioccolateria,cacao" }, "shop/clothes": { "name": "Negozio di abbigliamento", - "terms": "Negozio vestiti" + "terms": "negozio vestiti,negozio di vestiti,abbigliamento" }, "shop/clothes/second_hand": { - "name": "Negozio di Abiti Usati" + "name": "Negozio di abiti usati" }, "shop/clothes/underwear": { "name": "Negozio di intimo", "terms": "boutique,negozio,reggiseni,boxer,mutande,fashion,lingerie,slip,calzini,intimo,body,pigiama,pijama,perizoma,camicia da notte" }, "shop/clothes/wedding": { - "name": "Negozio di Abiti per Matrimonio" + "name": "Negozio di abiti per matrimonio" }, "shop/coffee": { "name": "Negozio di caffè", @@ -3662,7 +3827,7 @@ "terms": "Negozio Fai da te" }, "shop/doors": { - "name": "Negozio di Porte" + "name": "Negozio di porte" }, "shop/dry_cleaning": { "name": "Lavanderia", @@ -3699,7 +3864,7 @@ "name": "Negozio di moda" }, "shop/fashion_accessories": { - "name": "Negozio di Accessori Moda" + "name": "Negozio di accessori di moda" }, "shop/fireplace": { "name": "Negozio di caminetti", @@ -3718,7 +3883,7 @@ "terms": "Corniceria" }, "shop/frozen_food": { - "name": "Negozio di Cibo Surgelato" + "name": "Negozio di cibo surgelato" }, "shop/fuel": { "name": "Negozio di carburanti" @@ -3781,7 +3946,7 @@ "terms": "Negozio Hi-Fi" }, "shop/hobby": { - "name": "Negozio di Hobbystica" + "name": "Negozio di hobbystica" }, "shop/houseware": { "name": "Casalinghi", @@ -3957,7 +4122,7 @@ "terms": "Negozio scarpe" }, "shop/spices": { - "name": "Negozio di Spezie" + "name": "Negozio di spezie" }, "shop/sports": { "name": "Negozio di articoli sportivi", @@ -4021,7 +4186,7 @@ "terms": "Agenzia di viaggi" }, "shop/trophy": { - "name": "Negozio di Coppe" + "name": "Negozio di coppe" }, "shop/tyres": { "name": "Gommista", @@ -4066,6 +4231,10 @@ "name": "Grossista", "terms": "Negozio di commercio all'ingrosso" }, + "shop/wigs": { + "name": "Negozio di parrucche", + "terms": "capelli,estensioni,parrucchino,toupet" + }, "shop/window_blind": { "name": "Negozio di tapparelle e serrande", "terms": "Serramenti" @@ -4255,20 +4424,9 @@ "name": "Segnale di inizio centro abitato", "terms": "paese,villaggio,case sparse,confine,bordo,strada,via" }, - "traffic_sign/city_limit_vertex": { - "name": "Segnale di inizio centro abitato", - "terms": "paese,villaggio,case sparse,confine,bordo,strada,via" - }, "traffic_sign/maxspeed": { "name": "Cartello di limite di velocità" }, - "traffic_sign/maxspeed_vertex": { - "name": "Cartello di limite di velocità" - }, - "traffic_sign_vertex": { - "name": "Segnale stradale", - "terms": "strada,carreggiata,segnale,cartello,pericolo,triangolo,precedenza,divieto,obbligo" - }, "type/boundary": { "name": "Confine", "terms": "Confine" @@ -4343,10 +4501,6 @@ "name": "Linea traghetti", "terms": "Itinerario traghetto" }, - "type/route/foot": { - "name": "Percorso pedonale", - "terms": "Itinerario pedonale" - }, "type/route/hiking": { "name": "Percorso escursionistico", "terms": "sentiero,escursione,gita,rotta,percorso,passeggiata,cammino" diff --git a/app/src/main/assets/osmfeatures/ja.json b/app/src/main/assets/osmfeatures/ja.json index d41bd9dcb2..97bb16a7e1 100644 --- a/app/src/main/assets/osmfeatures/ja.json +++ b/app/src/main/assets/osmfeatures/ja.json @@ -212,10 +212,18 @@ "name": "ビアガーデン", "terms": "ビアガーデン, ビアホール, ビール, 酒, 飲む, 呑む, 飲食店, アルコール" }, + "amenity/binoculars": { + "name": "双眼鏡", + "terms": "双眼鏡, 展望所, 眺望, 風景" + }, "amenity/boat_rental": { "name": "貸しボート", "terms": "貸しボート, ボート, 公園, 娯楽, レジャー, 舟, 池, 公園, 観光" }, + "amenity/boat_storage": { + "name": "ボート店", + "terms": "ボート店, お店, 店舗, ボートハウス" + }, "amenity/bureau_de_change": { "name": "両替所", "terms": "両替商, お金, 金融, 両替" @@ -484,8 +492,12 @@ "terms": "図書館, ライブラリ, ライブラリー, 教育, 本" }, "amenity/loading_dock": { - "name": "貨物の搬出入口", - "terms": "貨物の搬出入口, 貨物搬入口, 貨物積出口, 荷受, 荷出" + "name": "出入口(貨物)", + "terms": "貨物の搬出入口, 貨物搬入口, 貨物積出口, 荷受, 荷出, 貨物出口, 貨物入口, 出口, 入口, 出入口(貨物)" + }, + "amenity/lounger": { + "name": "サマーベッド", + "terms": "サンラウンジャー, 寝椅子, サマーベッド" }, "amenity/love_hotel": { "name": "ラブホテル", @@ -503,6 +515,10 @@ "name": "海外送金所", "terms": "海外送金所, 国際送金所, 送金, 金融, 振替, お金" }, + "amenity/mortuary": { + "name": "死体安置所", + "terms": "死体安置所, 遺体安置所, モルグ, 死体保管所, 死体置き場, 死体公示場, 霊安室" + }, "amenity/motorcycle_parking": { "name": "オートバイの駐車場", "terms": "バイクの駐車場, 二輪駐車場, 二輪駐輪場, 駐車場, 駐輪場, オートバイ, モーターサイクル" @@ -540,7 +556,7 @@ }, "amenity/parking_entrance": { "name": "出入口(駐車場)", - "terms": "駐車場の出入口, 自動車, 出入り口, 出入口, 駐車場" + "terms": "駐車場の出入口, 自動車, 出入り口, 出入口, 駐車場, 出口, 入口" }, "amenity/parking_space": { "name": "駐車区画(1台ごとの)", @@ -1719,6 +1735,9 @@ "demolished/building": { "name": "建物(取り壊し済み)" }, + "disused/amenity": { + "name": "閉鎖施設" + }, "disused/railway": { "name": "鉄道(廃棄済み)" }, @@ -1814,8 +1833,8 @@ "terms": "非常口, 出口, 緊急" }, "entrance/emergency_ward_entrance": { - "name": "救急外来入口", - "terms": "救急外来入口, 救急車搬送口, 急患, 救急車" + "name": "出入口(救急外来)", + "terms": "救急外来入口, 救急車搬送口, 急患, 救急車, 出入口(救急外来), 出口, 入口" }, "ford": { "name": "洗い越し", @@ -1832,6 +1851,10 @@ "name": "ゴルフカート用の道", "terms": "ゴルフカート用の道, ゴルフ, ゴルフカート, ゴルフ場" }, + "golf/clubhouse": { + "name": "クラブハウス", + "terms": "クラブハウス, ゴルフ" + }, "golf/driving_range": { "name": "打ちっぱなし", "terms": "打ちっぱなし, ゴルフ, ゴルフ練習場, ゴルフ場, スポーツ, 打ちっ放し" @@ -3038,16 +3061,16 @@ "terms": "立坑, マインシャフト, 鉱山, 垂直坑道, 垂直坑" }, "man_made/monitoring_station": { - "name": "監視ステーション", - "terms": "監視ステーション" + "name": "観測点", + "terms": "観測点, 観測装置, アメダス, 水位計, 地震計, 測定局, 監視ステーション" }, "man_made/obelisk": { "name": "オベリスク", "terms": "オベリスク, 装飾的記念柱, 記念碑, 記念柱" }, "man_made/observatory": { - "name": "観測ドーム", - "terms": "観測ドーム, 観測所" + "name": "観測所", + "terms": "観測所, 測候所, 天文台, 観測ドーム" }, "man_made/petroleum_well": { "name": "油田", @@ -3106,8 +3129,8 @@ "terms": "監視カメラ, 監視" }, "man_made/survey_point": { - "name": "観測設備", - "terms": "観測設備, 観測地点, 測候所" + "name": "測量標", + "terms": "測量標, 三角点, 水準点, 電子基準点, 測量標識" }, "man_made/torii": { "name": "鳥居", @@ -3125,6 +3148,10 @@ "name": "塔(通信)", "terms": "塔(通信), 通信塔, 塔, タワー" }, + "man_made/tower/cooling": { + "name": "冷却塔", + "terms": "冷却塔, 塔" + }, "man_made/tower/defensive": { "name": "防衛塔", "terms": "防衛塔" @@ -3173,6 +3200,10 @@ "name": "風車", "terms": "風車" }, + "man_made/windpump": { + "name": "水汲み風車", + "terms": "水汲み風車, 風車" + }, "man_made/works": { "name": "工場", "terms": "工場" @@ -3230,7 +3261,7 @@ }, "natural/cave_entrance": { "name": "出入口(洞窟)", - "terms": "洞窟の入口, 洞穴, 出入口, 出入り口" + "terms": "洞窟の入口, 洞穴, 出入口, 出入り口, 出口, 入口, 出入口(洞窟)" }, "natural/cliff": { "name": "崖", @@ -3260,6 +3291,10 @@ "name": "荒地", "terms": "荒地, 植物" }, + "natural/hot_spring": { + "name": "温泉(日本国外)", + "terms": "温泉(日本国外), 温泉" + }, "natural/mud": { "name": "泥地", "terms": "泥地, 泥" @@ -3390,7 +3425,7 @@ }, "office/accountant": { "name": "会計事務所(主に法人向け)", - "terms": "会計事務所, 税理士, 税理士事務所, 会計士, 公認会計士" + "terms": "会計事務所, 会計士, 公認会計士" }, "office/administrative": { "name": "地方行政事務所" @@ -3558,8 +3593,8 @@ "terms": "測量会社" }, "office/tax_advisor": { - "name": "税金アドバイザー", - "terms": "税金アドバイザー, 節税アドバイザー" + "name": "税理士事務所", + "terms": "税理士事務所, 税理士, 税金アドバイザー, 節税アドバイザー" }, "office/telecommunication": { "name": "通信会社事務所", @@ -3846,6 +3881,10 @@ "name": "バス停", "terms": "バス停, バス停留所, 停留所, バス乗り場, BS, バスストップ" }, + "public_transport/platform/bus_tram_point": { + "name": "路面電車・バス停", + "terms": "電停, 停留所, 駅, 停車場, 路面電車, 路面電車停留所, のりば, 路面電車・バス停, バス停" + }, "public_transport/platform/ferry": { "name": "旅客船プラットホーム", "terms": "フェリー乗り場, フェリー, 港, 船着場, 船, 客船, 旅客船, フェリーターミナル, 舟, 連絡船, 渡し船, 渡船, のりば, ホーム, プラットホーム, 旅客船プラットホーム" @@ -4083,7 +4122,7 @@ }, "railway/subway_entrance": { "name": "出入口(地下鉄)", - "terms": "地下鉄の出入口, 出入り口, 出入口, 地下鉄, 出口, 入口" + "terms": "地下鉄の出入口, 出入り口, 出入口, 地下鉄, 出口, 入口, 出入口(地下鉄)" }, "railway/switch": { "name": "分岐器", @@ -4938,6 +4977,10 @@ "name": "観光情報掲示板", "terms": "情報掲示板, 案内, 観光, 観光案内, インフォメーション, 案内板, 観光情報, 掲示板, 案内地図, 地図, マップ" }, + "tourism/information/board/welcome_sign": { + "name": "歓迎案内板", + "terms": "歓迎案内板, 歓迎, ようこそ, 歓迎掲示板" + }, "tourism/information/guidepost": { "name": "道標", "terms": "道標, ガイドポスト, 案内" @@ -5054,22 +5097,10 @@ "name": "市町村境界標識", "terms": "市町村境界標識, 市町村界標識, 市町村境, 行政界" }, - "traffic_sign/city_limit_vertex": { - "name": "市町村境界標識", - "terms": "市町村境界標識, 市町村界標識, 市町村境, 行政界" - }, "traffic_sign/maxspeed": { "name": "速度制限標識", "terms": "速度制限標識, 速度制限" }, - "traffic_sign/maxspeed_vertex": { - "name": "速度制限標識", - "terms": "速度制限標識, 速度制限" - }, - "traffic_sign_vertex": { - "name": "交通標識", - "terms": "交通標識, 道路標識" - }, "type/boundary": { "name": "境界", "terms": "境界, 境界線" @@ -5158,8 +5189,8 @@ "terms": "フェリールート, 航路" }, "type/route/foot": { - "name": "徒歩ルート", - "terms": "徒歩ルート" + "name": "ウォーキングルート", + "terms": "歩行ルート, ウォーキングルート, ルート, 歩行経路, ウォーキング" }, "type/route/hiking": { "name": "ハイキングルート", diff --git a/app/src/main/assets/osmfeatures/ko.json b/app/src/main/assets/osmfeatures/ko.json index b13e14c5fd..73c2719d42 100644 --- a/app/src/main/assets/osmfeatures/ko.json +++ b/app/src/main/assets/osmfeatures/ko.json @@ -4153,18 +4153,9 @@ "traffic_sign/city_limit": { "name": "시 경계 표지판" }, - "traffic_sign/city_limit_vertex": { - "name": "시 경계 표지판" - }, "traffic_sign/maxspeed": { "name": "제한 속도 표지판" }, - "traffic_sign/maxspeed_vertex": { - "name": "제한 속도 표지판" - }, - "traffic_sign_vertex": { - "name": "교통 표지판" - }, "type/boundary": { "name": "경계", "terms": "경계" @@ -4231,9 +4222,6 @@ "type/route/ferry": { "name": "페리 노선" }, - "type/route/foot": { - "name": "도보 노선" - }, "type/route/hiking": { "name": "하이킹 노선" }, diff --git a/app/src/main/assets/osmfeatures/lt.json b/app/src/main/assets/osmfeatures/lt.json index 8e9f94c3b8..7faa827c70 100644 --- a/app/src/main/assets/osmfeatures/lt.json +++ b/app/src/main/assets/osmfeatures/lt.json @@ -1800,9 +1800,6 @@ "type/route/ferry": { "name": "Kelto maršrutas" }, - "type/route/foot": { - "name": "Pėsčiųjų maršrutas" - }, "type/route/hiking": { "name": "Žygių maršrutas" }, diff --git a/app/src/main/assets/osmfeatures/nl.json b/app/src/main/assets/osmfeatures/nl.json index f998c72bff..2919aa25a7 100644 --- a/app/src/main/assets/osmfeatures/nl.json +++ b/app/src/main/assets/osmfeatures/nl.json @@ -1,5 +1,8 @@ { "presets": { + "addr/interpolation": { + "name": "Adres interpolatie " + }, "address": { "name": "Adres", "terms": "contact,plaats,adresgegevens,straat,huisnummer" @@ -21,6 +24,9 @@ "advertising/totem": { "name": "Advertentiezuil" }, + "aerialway": { + "name": "Kabelbaanobjecten" + }, "aerialway/cable_car": { "name": "Kabelbaan met één of twee cabines", "terms": "skilift" @@ -69,6 +75,9 @@ "aerialway/zip_line": { "name": "Tokkelbaan" }, + "aeroway": { + "name": "Luchtvaartobjecten" + }, "aeroway/aerodrome": { "name": "Luchthaven", "terms": "vliegveld" @@ -88,6 +97,9 @@ "name": "Helipad", "terms": "helihaven,helikopterhaven,helikopterdek,landingsplaats" }, + "aeroway/holding_position": { + "name": "Vliegtuigwachtplaats" + }, "aeroway/jet_bridge": { "name": "Vliegtuigslurf" }, @@ -184,6 +196,9 @@ "name": "Biergarten", "terms": "bier,terras,café" }, + "amenity/binoculars": { + "name": "Vaste verrekijkers" + }, "amenity/boat_rental": { "name": "Bootverhuur", "terms": "boten,huren" @@ -199,6 +214,9 @@ "name": "Cafetaria", "terms": "cafetaria,tea-room,tearoom,tea room,koffiehuis,koffie,thee,vieruurtje,cake,taart" }, + "amenity/cafe/bubble_tea": { + "name": "Bubbelthee café" + }, "amenity/cafe/coffee_shop": { "name": "Koffiehuis" }, @@ -356,6 +374,9 @@ "amenity/fast_food/sandwich": { "name": "Broodjesfastfoodzaak" }, + "amenity/ferry_terminal": { + "name": "Veerbootterminal" + }, "amenity/fire_station": { "name": "Brandweerkazerne", "terms": "brandweerwagens,brandweerbasis,brandweerstation" @@ -402,6 +423,9 @@ "name": "Internetcafé", "terms": "cyberspace,cybercafé" }, + "amenity/karaoke_box": { + "name": "Karaokehokje" + }, "amenity/kindergarten": { "name": "Gebied van Crèche/Kleuterschool" }, @@ -698,10 +722,16 @@ "name": "Rookgebied", "terms": "rookzone,kankerzone,rookpaviljoen" }, + "amenity/social_centre": { + "name": "Buurthuis" + }, "amenity/social_facility": { "name": "Sociale Faciliteit", "terms": "OCMW,kansarmen,hulp,hulpcentrum" }, + "amenity/social_facility/ambulatory_care": { + "name": "Ambulante zorg" + }, "amenity/social_facility/food_bank": { "name": "Voedselbank", "terms": "voedselbank" @@ -939,6 +969,13 @@ "name": "Darkride", "terms": "spookhuis,thema-attractie" }, + "attraction/drop_tower": { + "name": "Vrije val", + "terms": "Valtoren" + }, + "attraction/kiddie_ride": { + "terms": "kinderattractie" + }, "attraction/log_flume": { "name": "Boomstammen" }, @@ -959,6 +996,9 @@ "attraction/summer_toboggan": { "name": "Zomerrodelbaan" }, + "attraction/swing_carousel": { + "name": "Zweefmolen" + }, "attraction/train": { "name": "Toeristentrein", "terms": "treintje" @@ -1262,7 +1302,7 @@ "terms": "hutje,tuinhuis" }, "building/stable": { - "name": "Stal", + "name": "Paardenstal", "terms": "dieren,paarden,vee,stalling" }, "building/stadium": { @@ -1314,6 +1354,9 @@ "name": "Vakmanschap", "terms": "stiel,kunde,handwerk" }, + "craft/agricultural_engines": { + "name": "Mechanieken voor landbouwmotoren" + }, "craft/basket_maker": { "name": "Mandenvlechter", "terms": "mand,vlecht,handwerk" @@ -1593,7 +1636,7 @@ "name": "Toegang voor hulpdiensten: ja" }, "entrance": { - "name": "Ingang/uitgang", + "name": "Ingang/Uitgang", "terms": "ingang,uitgang,deur" }, "entrance/emergency": { @@ -1618,6 +1661,9 @@ "name": "Golfcart pad", "terms": "handicart pad,golfbuggy pad" }, + "golf/driving_range": { + "name": "Driving range (golf)" + }, "golf/fairway": { "name": "Fairway", "terms": "golf" @@ -1630,6 +1676,9 @@ "name": "Golf Hole", "terms": "gat,doel" }, + "golf/lateral_water_hazard": { + "name": "Laterale waterhindernis" + }, "golf/path": { "name": "Golfwandelpad" }, @@ -2076,12 +2125,33 @@ "historic/wreck": { "name": "Scheepswrak" }, + "indoor": { + "name": "Object binnen in een gebouw" + }, "indoor/area": { "name": "Gebied binnen in een gebouw" }, "indoor/corridor": { "name": "Gang in een gebouw" }, + "indoor/corridor_line": { + "name": "Gang in een gebouw" + }, + "indoor/door": { + "name": "Binnendeur" + }, + "indoor/elevator": { + "name": "Liftschacht in een gebouw" + }, + "indoor/room": { + "name": "Kamer" + }, + "indoor/stairs": { + "name": "Trappengang in een gebouw" + }, + "indoor/wall": { + "name": "Binnenmuur" + }, "internet_access/wlan": { "name": "Wi-Fi-hotspot" }, @@ -2089,6 +2159,12 @@ "name": "Kruispunt", "terms": "kruising,toegangspunt,afslag,oprit,rotonde" }, + "landuse": { + "name": "Landgebruik" + }, + "landuse/allotments": { + "name": "Volkstuinen" + }, "landuse/aquaculture": { "name": "Aquacultuur", "terms": "viskweek,vissenboerderij,visboerderij,oesterkweek,algenkweek,algenboerderij,algenboerderij" @@ -2111,6 +2187,10 @@ "name": "Commercieel gebied", "terms": "kantoren,bedrijven,bedrijvenpark" }, + "landuse/construction": { + "name": "Bouwterrein", + "terms": "werfzone,werf" + }, "landuse/farm": { "name": "Landbouwgrond" }, @@ -2122,6 +2202,9 @@ "name": "Boerenerf", "terms": "boerderij,hoeve,landbouw,hofstee" }, + "landuse/flowerbed": { + "name": "Bloemenbed" + }, "landuse/forest": { "name": "Beheerd bos" }, @@ -2185,10 +2268,16 @@ "name": "Marinebasis", "terms": "militair,leger,zeemacht" }, + "landuse/military/obstacle_course": { + "name": "Militair hindernissenparcours" + }, "landuse/military/range": { "name": "Militair schietterrein", "terms": "oefenterrein,leger" }, + "landuse/military/training_area": { + "name": "Militair oefenterrein" + }, "landuse/orchard": { "name": "Boomgaard", "terms": "boomgaard" @@ -2233,6 +2322,12 @@ "name": "Wijngaard", "terms": "wijngaard" }, + "landuse/winter_sports": { + "name": "Gebied voor wintersport" + }, + "leisure": { + "name": "Vrijetijd" + }, "leisure/adult_gaming_centre": { "name": "Speelzaal (met kansspelmachines)", "terms": "casino,slot machine,slots,gokken,slotmachine" @@ -2272,10 +2367,22 @@ "name": "Dansschool", "terms": "dansonderwijs,dansconservatorium,conservatorium" }, + "leisure/disc_golf_course": { + "name": "Frisbeegolfparcours", + "terms": "Diskgolfparcours" + }, "leisure/dog_park": { "name": "Hondenpark", "terms": "losloopgebied voor honden" }, + "leisure/escape_game": { + "name": "Escaperoom", + "terms": "escape challenge,escape game,exit game,ontsnappingsspel,ontsnapkamer" + }, + "leisure/firepit": { + "name": "Vuurplaats", + "terms": "Vuurput" + }, "leisure/fishing": { "name": "Visstek", "terms": "visplaats,hengelplaats" @@ -2339,6 +2446,12 @@ "name": "Tuin", "terms": "openbare tuin,kruidentuin" }, + "leisure/garden/botanical": { + "name": "Botanische tuin" + }, + "leisure/garden/community": { + "name": "Volkstuin" + }, "leisure/golf_course": { "name": "Golfbaan", "terms": "golfterrein" @@ -2416,6 +2529,9 @@ "name": "Bowls-baan", "terms": "koersbal,bowls" }, + "leisure/pitch/chess": { + "name": "Groot schaakbord" + }, "leisure/pitch/cricket": { "name": "Cricketveld" }, @@ -2423,6 +2539,9 @@ "name": "Paardrijpiste", "terms": "bak,dressuur,paardenbak,manegebak" }, + "leisure/pitch/field_hockey": { + "name": "Veldhockeyveld" + }, "leisure/pitch/netball": { "name": "Netballveld" }, @@ -2434,6 +2553,9 @@ "name": "Rugby Union-veld", "terms": "rugby,american football,football" }, + "leisure/pitch/shuffleboard": { + "name": "Sjoelbak" + }, "leisure/pitch/skateboard": { "name": "Skatepark" }, @@ -2471,6 +2593,9 @@ "name": "Botenhelling", "terms": "trailerhelling,tewaterlating,te water laten,boot,helling,boothelling" }, + "leisure/slipway_point": { + "name": "Botenhelling" + }, "leisure/sports_centre": { "name": "Sportcentrum of -complex", "terms": "sportcentrum,sportcomplex,bloso" @@ -2482,10 +2607,16 @@ "name": "Zwembadfaciliteit", "terms": "zwemmen,waterbad,duiken" }, + "leisure/sports_hall": { + "name": "Sporthal" + }, "leisure/stadium": { "name": "Stadion", "terms": "arena" }, + "leisure/swimming_area": { + "name": "Natuurlijk zwemgebied" + }, "leisure/swimming_pool": { "name": "Zwembad", "terms": "zwemmen,water" @@ -2494,6 +2625,9 @@ "name": "Racepiste (niet-motorsport)", "terms": "stadion,stadium,fietsen,parcours,velodroom,pisterijden,baanwielrennen,skatebaan,skatepiste" }, + "leisure/track/cycling": { + "name": "Fietscircuit" + }, "leisure/track/horse_racing": { "name": "Paardenrenbaan", "terms": "hippodroom,paardenrennen" @@ -2502,6 +2636,9 @@ "name": "Hardloopbaan", "terms": "hardlooppiste,looppiste,atletiekpiste" }, + "leisure/trampoline_park": { + "name": "Trampolinepark" + }, "leisure/water_park": { "name": "Waterpretpark", "terms": "subtropisch zwembad,zwembad,duiken,zwemmen" @@ -2510,6 +2647,9 @@ "name": "Lijn", "terms": "anders,overige,iets anders,algemeen" }, + "man_made": { + "name": "Aangelegd" + }, "man_made/adit": { "name": "Horizontale mijn- of grotingang", "terms": "ingang,ondergronds,grot,mijn,adit" @@ -2518,6 +2658,9 @@ "name": "Antenne", "terms": "zender,ontvanger,radio,zendmast" }, + "man_made/beacon": { + "name": "Baken" + }, "man_made/beehive": { "name": "Bijenkorf" }, @@ -2525,9 +2668,15 @@ "name": "Golfbreker", "terms": "golven,havenbescherming,kustbescherming,stortsteengolfbreker,caissongolfbreker,drijvende golfbreker,palengolfbreker,havengolfbreker,strekdammen" }, + "man_made/bridge": { + "name": "Gebied van een brug" + }, "man_made/bunker_silo": { "name": "Bunkersilo" }, + "man_made/cairn": { + "name": "Cairn (steengraf)" + }, "man_made/chimney": { "name": "Industriële schoorsteen", "terms": "schoorsteen,schouw" @@ -2535,14 +2684,26 @@ "man_made/clearcut": { "name": "Gekapt bos" }, + "man_made/courtyard": { + "name": "Binnenplaats" + }, "man_made/crane": { "name": "Permanente kraan", "terms": "kraan,containerkraan,havenkraan" }, + "man_made/cross": { + "name": "Kruis" + }, "man_made/cutline": { "name": "Gerooide lijn", "terms": "scheidingslijn" }, + "man_made/dovecote": { + "name": "Duivenhok" + }, + "man_made/dyke": { + "name": "Dijk" + }, "man_made/embankment": { "name": "Dijk" }, @@ -2554,10 +2715,40 @@ "name": "Gashouder", "terms": "voorraadtank,gastank,gasopslagtank,oude gastank" }, + "man_made/goods_conveyor": { + "name": "Lopende band (goederen)", + "terms": "goederenrolband,goederenloopband" + }, + "man_made/groyne": { + "name": "Krib (dam)" + }, "man_made/lighthouse": { "name": "Vuurtoren", "terms": "lichtbaken" }, + "man_made/manhole": { + "name": "Putdeksel", + "terms": "riooldeksel" + }, + "man_made/manhole/drain": { + "name": "Straatkolk" + }, + "man_made/manhole/gas": { + "name": "Putdeksel voor gasvoorzieningen" + }, + "man_made/manhole/power": { + "name": "Putdeksel voor elektriciteitsvoorzieningen" + }, + "man_made/manhole/sewer": { + "name": "Riooldeksel", + "terms": "Putdeksel voor rioolvoorzieningen" + }, + "man_made/manhole/telecom": { + "name": "Putdeksel voor telecomvoorzieningen" + }, + "man_made/manhole/water": { + "name": "Putdeksel voor watervoorzieningen" + }, "man_made/mast": { "name": "Mast", "terms": "zendmast,antenne,zendtoren,gsm-mast,toren,communicatiemast,radiomast,tv-mast" @@ -2583,6 +2774,9 @@ "name": "Meetstation", "terms": "observatiestation,meetapparatuur,observatieapparatuur,weerstation,seismische sensor,luchtkwaliteitmeetstation,luchtmeetstation,gps-meetstation,gps-grondstation,gnss-station,gnss-grondstation" }, + "man_made/obelisk": { + "name": "Obelisk" + }, "man_made/observatory": { "name": "Observatorium", "terms": "sterrenwacht,astronomisch observatorium,meteorologisch observatorium" @@ -2606,10 +2800,17 @@ "man_made/pipeline/underground": { "name": "Ondergrondse pijpleiding" }, + "man_made/pipeline/valve": { + "name": "Klep (pijplijn)", + "terms": "aflsuitklep,ventiel" + }, "man_made/pumping_station": { "name": "Gemaal (waterpompstation)", "terms": "pompstation,waterpompstation" }, + "man_made/reservoir_covered": { + "name": "Overdekt reservoir" + }, "man_made/silo": { "name": "Silo", "terms": "veevoeder,graansilo" @@ -2618,6 +2819,12 @@ "name": "Opslagtank", "terms": "olietank,silo" }, + "man_made/storage_tank/water": { + "name": "Watertank" + }, + "man_made/street_cabinet": { + "name": "Straatkast" + }, "man_made/surveillance": { "name": "Bewaking", "terms": "bewakingscamera,cctv" @@ -2629,6 +2836,10 @@ "name": "Landmeetkundig referentiepunt", "terms": "geodesisch punt,geodesisch referentiepunt" }, + "man_made/torii": { + "name": "Torii", + "terms": "Japanse poort,vogelzitstok,Shintō schrijn" + }, "man_made/tower": { "name": "Toren" }, @@ -2638,16 +2849,28 @@ "man_made/tower/communication": { "name": "Communicatietoren" }, + "man_made/tower/defensive": { + "name": "Versterkte toren" + }, "man_made/tower/minaret": { "name": "Minaret" }, "man_made/tower/observation": { "name": "Observatietoren" }, + "man_made/tunnel": { + "name": "Gebied van een tunnel" + }, + "man_made/utility_pole": { + "name": "Paal voor nutsvoorzieningen" + }, "man_made/wastewater_plant": { "name": "Waterzuiveringsinstallatie", "terms": "waterzuiveringsstation,zuiveringsstation,WZI" }, + "man_made/water_tap": { + "name": "Waterkraan" + }, "man_made/water_tower": { "name": "Watertoren" }, @@ -2668,6 +2891,34 @@ "name": "Fabriek", "terms": "assemblage,brouwerij,autofabriek,productie,industrie,raffinaderij" }, + "marker": { + "name": "Markering" + }, + "marker/utility": { + "name": "Markering van nutsvoorzieningen" + }, + "marker/utility/power": { + "name": "Markering van elektriciteitsvoorzieningen" + }, + "military/bunker": { + "name": "Militaire bunker" + }, + "military/checkpoint": { + "name": "Militair controlepunt" + }, + "military/nuclear_explosion_site": { + "name": "Gebied van een nucleaire explosie" + }, + "military/office": { + "name": "Militair kantoor" + }, + "military/trench": { + "name": "Militaire gracht", + "terms": "Loopgraaf" + }, + "natural": { + "name": "Natuurlijk" + }, "natural/bare_rock": { "name": "Onbedekte rots", "terms": "rotsformatie,blote rots" @@ -2679,6 +2930,9 @@ "name": "Strand", "terms": "kust,zandstrand,duinen,steenstrand" }, + "natural/cape": { + "name": "Kaap" + }, "natural/cave_entrance": { "name": "Ingang van Grot", "terms": "spelonk" @@ -2695,6 +2949,9 @@ "name": "Fjell", "terms": "berggebied,lage bergen,berkenbos,Scandinavische bergen" }, + "natural/geyser": { + "name": "Geiser" + }, "natural/glacier": { "name": "IJsgletsjer", "terms": "gletsjer" @@ -2722,6 +2979,9 @@ "name": "Bergkam", "terms": "kam,bergtop,top" }, + "natural/rock": { + "name": "Rots (bevestigd)" + }, "natural/saddle": { "name": "Zadelpunt", "terms": "bergkam,kam,top,bergtop,pas,bergpas" @@ -2737,9 +2997,18 @@ "name": "Scrubland", "terms": "kreupelhout,ruigte,savanne,prairie,pampa" }, + "natural/shingle": { + "name": "Kiezelstrand" + }, + "natural/shrub": { + "name": "Scrubland" + }, "natural/spring": { "name": "Bron" }, + "natural/stone": { + "name": "Steen (niet bevestigd)" + }, "natural/tree": { "name": "Boom" }, @@ -2760,10 +3029,17 @@ "natural/water/basin": { "name": "Basin" }, + "natural/water/canal": { + "name": "Gebied van een kanaal" + }, "natural/water/lake": { "name": "Meer", "terms": "ven" }, + "natural/water/moat": { + "name": "Slotgracht", + "terms": "kasteelgracht,walgracht" + }, "natural/water/pond": { "name": "Vijver", "terms": "meer,ven,poel,plas" @@ -2772,10 +3048,22 @@ "name": "Reservoir", "terms": "waterbekken,bekken,waterreservoir" }, + "natural/water/river": { + "name": "Gebied van een rivier" + }, + "natural/water/stream": { + "name": "Gebied van een stroom" + }, + "natural/water/wastewater": { + "name": "Afvalwaterbassin" + }, "natural/wetland": { "name": "Moeras of drassig gebied", "terms": "drasland,moerassen en waterrijke gebieden,drassig gebied" }, + "natural/wood": { + "name": "Natuurlijk bos" + }, "network/type/node_network": { "name": "Knooppunt van recreatief netwerk" }, @@ -2810,6 +3098,10 @@ "name": "Kantoor van non-profitorganisatie", "terms": "non-profitorganisatiekantoor,ngo-kantoor,vzw-kantoor,verenigingskantoor,kantoor van vereniging zonder winstoogmerk,vereniging zonder winstoogmerk,kantoor van vzw,kantoor van ngo" }, + "office/bail_bond_agent": { + "name": "Borgtochtgeldschieter", + "terms": "bailbondsman" + }, "office/charity": { "name": "Kantoor van liefdadigheidsinstelling", "terms": "liefdadigheidsinstellingskantoor" @@ -2818,16 +3110,25 @@ "name": "Kantoor van bedrijf", "terms": "bedrijfskantoor,hoofdkwartier" }, + "office/consulting": { + "name": "Adviesbureau" + }, "office/coworking": { "name": "Coworking-kantoor", "terms": "samenwerken,coworking,coworking-kantoor,kantoor,gedeeld kantoor,coworking-plaats,coworking-omgeving" }, + "office/diplomatic": { + "name": "Diplomatisch kantoor" + }, "office/diplomatic/consulate": { "name": "Consulaat" }, "office/diplomatic/embassy": { "name": "Ambassade" }, + "office/diplomatic/liaison": { + "name": "Kantoor van een liaison" + }, "office/educational_institution": { "name": "Kantoor van onderwijsinstelling", "terms": "educatieve instelling,onderricht,onderwijsinstelling" @@ -2848,6 +3149,9 @@ "name": "Privékantoor van financiële instelling", "terms": "financieel kantoor" }, + "office/financial_advisor": { + "name": "Financieel adviseur" + }, "office/forestry": { "name": "Bosbeheerkantoor", "terms": "boswachtkantoor,kantoor van boswachters" @@ -2860,6 +3164,10 @@ "name": "Overheidskantoor", "terms": "overheidsdienst" }, + "office/government/prosecutor": { + "name": "Kantoor van de officier van justitie", + "terms": "openbaar aanklager,procureur des Konings,procureur-generaal,Openbaar Ministerie" + }, "office/government/register_office": { "name": "Burgerlijke stand", "terms": "dienst bevolking,bevolking,identiteitskaart,geboorte,trouwakte,trouw,huwelijk,burgerlijk,overlijdens,sterfte,scheiding,echtscheiding" @@ -2906,6 +3214,9 @@ "office/physician": { "name": "Arts" }, + "office/political_party": { + "name": "Kantoor van een politieke partij" + }, "office/private_investigator": { "name": "Kantoor van privédetective", "terms": "privédetectivekantoor,rechercheurskantoor,onderzoekerskantoor" @@ -2944,10 +3255,34 @@ "name": "Kantoor van watermaatschappij", "terms": "watermaatschappij*,waterleidingsmaatschappij*" }, + "piste/downhill": { + "name": "Ski afdaling" + }, + "piste/downhill/halfpipe": { + "name": "Halfpipe (wintersport)" + }, + "piste/hike": { + "name": "Sneewschoen- of winterwandelpad" + }, + "piste/ice_skate": { + "name": "Ijsschaatspiste" + }, + "piste/nordic": { + "name": "Langlaufpiste" + }, + "piste/piste": { + "name": "Wintersportpad" + }, "piste/skitour": { "name": "Toerskipad", "terms": "ski-alpinismepad,ski mountaineering,skilooppad,langlaufpiste" }, + "piste/sled": { + "name": "Sleepiste" + }, + "piste/sleigh": { + "name": "Arresleepiste" + }, "place": { "name": "Plaats" }, @@ -3006,6 +3341,9 @@ "name": "Dorp", "terms": "gehucht,woonkern,kern,buurt,buurtschap,vlek,kerkdorp,oort,gemeente" }, + "playground": { + "name": "Speeltuinuitrusting " + }, "playground/balance_beam": { "name": "Evenwichtsbalk als speeltuig", "terms": "balk,balanceerbalk" @@ -3018,6 +3356,9 @@ "name": "Mandschommel", "terms": "schommel" }, + "playground/climbing_frame": { + "name": "Klimweb" + }, "playground/cushion": { "name": "Springkussen" }, @@ -3032,6 +3373,9 @@ "name": "Speelplein-draaimolen", "terms": "draaimolentje,zwierder,molentje,ronddraaiend platform" }, + "playground/sandpit": { + "name": "Zandbak" + }, "playground/seesaw": { "name": "Wip" }, @@ -3045,10 +3389,22 @@ "playground/swing": { "name": "Schommel" }, + "playground/zipwire": { + "name": "Tokkelbaan" + }, "point": { "name": "Punt", "terms": "anders,overige,iets anders,algemeen" }, + "polling_station": { + "name": "Tijdelijk stembureau" + }, + "power": { + "name": "Stroomvoorziening" + }, + "power/cable": { + "name": "Elektriciteitskabel" + }, "power/cable/underground": { "name": "Ondergrondse hoogspanningskabel", "terms": "grondkabel,ondergrondse kabel,elektriciteitskabel,ondergrondse elektriciteitskabel,stroomkabel,ondergrondse stroomkabel" @@ -3084,6 +3440,24 @@ "name": "Gebied van elektriciteitscentrale", "terms": "elektriciteitscentrale,koolcentrale,kolencentrale,stoomcentrale,STEG-centrale,oliecentrale,gascentrale,biomassacentrale,geothermische centrale,waterkrachtcentrale,kerncentrale,krachtcentrale,energiecentrale" }, + "power/plant/source/coal": { + "name": "Steenkoolcentrale" + }, + "power/plant/source/gas": { + "name": "Gascentrale" + }, + "power/plant/source/hydro": { + "name": "Hydro-elektrische centrale" + }, + "power/plant/source/nuclear": { + "name": "Nucleaire centrale" + }, + "power/plant/source/solar": { + "name": "Zonnepark" + }, + "power/plant/source/wind": { + "name": "Windpark" + }, "power/pole": { "name": "Elektriciteitspaal", "terms": "stroom,laagspanning,laagspanningsleiding,elektriciteitsnet,elektriciteitskabel" @@ -3108,21 +3482,63 @@ "name": "Openbaarvervoershalte", "terms": "spoorwegperron,spoorwegplatform,treinperron,treinplatform,tramperron,tramhalte,tramplatform,metroperron,metrohalte,metroplatform,busperron,bushalte,busplatform,platform" }, + "public_transport/platform/aerialway": { + "name": "Kabelbaanperron" + }, + "public_transport/platform/aerialway_point": { + "name": "Kabelbaanhalte/-perron" + }, + "public_transport/platform/bus": { + "name": "Busperron" + }, "public_transport/platform/bus_point": { "name": "Bushalte" }, + "public_transport/platform/ferry": { + "name": "Ferryperron" + }, + "public_transport/platform/ferry_point": { + "name": "Ferryhalte/-perron" + }, + "public_transport/platform/light_rail": { + "name": "Lightrailperron" + }, + "public_transport/platform/light_rail_point": { + "name": "Lightrailhalte/-perron" + }, + "public_transport/platform/monorail": { + "name": "Monorailperron" + }, "public_transport/platform/monorail_point": { "name": "Monorailperron" }, "public_transport/platform/subway": { "name": "Metroperron" }, + "public_transport/platform/subway_point": { + "name": "Metrohalte/-perron" + }, + "public_transport/platform/train": { + "name": "Treinperron" + }, + "public_transport/platform/train_point": { + "name": "Train Stop / Platform" + }, "public_transport/platform/tram": { "name": "Tramperron" }, + "public_transport/platform/tram_point": { + "name": "Treinhalte/-perron" + }, + "public_transport/platform/trolleybus": { + "name": "Trolleybusperron" + }, "public_transport/platform/trolleybus_point": { "name": "Trolleybushalte" }, + "public_transport/platform_point": { + "name": "Openbaarvervoershalte/-perron" + }, "public_transport/station": { "name": "Openbaarvervoershalte" }, @@ -3132,6 +3548,9 @@ "public_transport/station_bus": { "name": "Busstation" }, + "public_transport/station_ferry": { + "name": "Ferry terminal" + }, "public_transport/station_light_rail": { "name": "Lightrailstation", "terms": "lichtspoorstation,tramtreinstation,sneltramstation,lichtgewichttreinstation,spoorwegstation" @@ -3195,6 +3614,9 @@ "public_transport/stop_position_trolleybus": { "name": "Trolleybusstopplaats" }, + "railway": { + "name": "Spoorwegvoorziening" + }, "railway/abandoned": { "name": "Voormalige spoorweg (sporen weggehaald)", "terms": "in onbruik geraakte spoorbaan,ongebruikte spoorweg,oude spoorweg,rails,oude rails,sporen,oude sporen,oude treinroute,treinroute,ongebruikte spoorweg,verloederde spoorweg" @@ -3203,6 +3625,12 @@ "name": "Stootblok", "terms": "stootjuk" }, + "railway/construction": { + "name": "Spoorweg in aanleg" + }, + "railway/crossing": { + "name": "Spoorwegovergang" + }, "railway/derail": { "name": "Ontspoorblok", "terms": "ontspoorinrichting,stopontspoorblok" @@ -3211,13 +3639,49 @@ "name": "Ongebruikte spoorweg (sporen nog aanwezig)", "terms": "in onbruik geraakte spoorbaan,verloederde spoorweg,oude spoorweg,voormalige spoorweg,rails,oude rails,sporen,oude sporen,oude treinroute,treinroute,voormalige spoorweg,verloederde spoorweg" }, + "railway/funicular": { + "name": "Kabelspoorweg" + }, "railway/halt": { - "name": "Treinstation op aanvraag" + "name": "Treinstation (op aanvraag)" + }, + "railway/level_crossing": { + "name": "Spoorwegovergang (weg)" + }, + "railway/light_rail": { + "name": "Lightrailspoor" }, "railway/milestone": { "name": "Afstandspaal aan spoorweg", "terms": "hectometerpaaltje aan spoorweg,kilometerpaaltje aan spoorweg,mijlpaal,spoorwegmijlpaal,spoorwegafstandspaal" }, + "railway/miniature": { + "name": "Minispoorweg" + }, + "railway/monorail": { + "name": "Rail van monorail" + }, + "railway/monorail/hanging": { + "name": "Hangende rails van monorail" + }, + "railway/narrow_gauge": { + "name": "Smalspoor" + }, + "railway/platform": { + "name": "Spoorperron" + }, + "railway/preserved": { + "name": "Erfgoed spoorweg" + }, + "railway/rail": { + "name": "Spoorweg" + }, + "railway/rail/highspeed": { + "name": "Hogesnelheidslijn" + }, + "railway/railway_crossing": { + "name": "Spoorwegovergang tussen meerdere sporen" + }, "railway/signal": { "name": "Spoorwegsein", "terms": "sein,treinsein" @@ -3225,6 +3689,9 @@ "railway/station": { "name": "Treinstation" }, + "railway/subway": { + "name": "Metrospoor" + }, "railway/subway_entrance": { "name": "Ingang van metrostation", "terms": "metro-ingang" @@ -3237,9 +3704,21 @@ "name": "Treinwasstraat", "terms": "train wash" }, + "railway/tram": { + "name": "Tramspoor" + }, + "railway/tram_crossing": { + "name": "Tramspoorwegovergang" + }, + "railway/tram_level_crossing": { + "name": "Tramspoorwegovergang (weg)" + }, "railway/tram_stop": { "name": "Tramhalte" }, + "railway/yard": { + "name": "Opstelterrein" + }, "relation": { "name": "Relatie", "terms": "relation" @@ -3281,6 +3760,9 @@ "name": "Slijterij", "terms": "alcoholwinkel" }, + "shop/anime": { + "name": "Anime-/Mangawinkel" + }, "shop/antiques": { "name": "Antiquair", "terms": "antiekwinkel" @@ -3333,6 +3815,9 @@ "name": "Fietswinkel", "terms": "fietsenwinkel" }, + "shop/boat": { + "name": "Bootwinkel" + }, "shop/bookmaker": { "name": "Bookmaker (gokkantoor)", "terms": "bookmaker" @@ -3344,18 +3829,31 @@ "shop/boutique": { "name": "Boetiek" }, + "shop/brewing_supplies": { + "name": "Winkel voor brouwbenodigdheden" + }, "shop/butcher": { "name": "Slagerij", "terms": "slagerij,beenhouwerij" }, + "shop/camera": { + "name": "Winkel voor camerabenodigdheden" + }, "shop/candles": { "name": "Kaarsenwinkel", "terms": "kaarsen,parafine,was,gezelligheid,lont" }, + "shop/cannabis": { + "name": "Cannabiswinkel", + "terms": "coffeeshop" + }, "shop/car": { "name": "Autoshowroom", "terms": "autodealer,autowinkel,toonzaal,autotoonzaal,garage,autogarage" }, + "shop/car/second_hand": { + "name": "Tweedehands autodealer" + }, "shop/car_parts": { "name": "Auto-onderdelenwinkel", "terms": "automaterialenwinkel,automaterialenhandel,auto-onderdelenhandel" @@ -3394,10 +3892,22 @@ "name": "Kledingzaak", "terms": "kledingwinkel,kledinghandel,kledij" }, + "shop/clothes/second_hand": { + "name": "Tweedehands kledingwinkel" + }, + "shop/clothes/underwear": { + "name": "Winkel voor ondergoed" + }, + "shop/clothes/wedding": { + "name": "Trouwkledingwinkel" + }, "shop/coffee": { "name": "Koffiewinkel", "terms": "koffiebonen,koffiemolen" }, + "shop/collector": { + "name": "Winkel voor verzamelobjecten" + }, "shop/computer": { "name": "Computerwinkel", "terms": "IT,ICT,hardware,software,electronica,laptop" @@ -3421,6 +3931,10 @@ "name": "Outdoorzaak", "terms": "kampeerzaak,landelijk,scoutingwinkel,jacht,ruiter,paardrijden,tuinmachines" }, + "shop/craft": { + "name": "Winkel voor schilder- en tekengereedschap", + "terms": "kunst*,verf*,kader,hobby,borstel" + }, "shop/curtain": { "name": "Gordijnenwinkel", "terms": "gordijnenwinkel,gordijnenzaak" @@ -3441,6 +3955,9 @@ "name": "Bouwmarkt, doe-het-zelfwinkel", "terms": "DHZ-winkel,DIY-winkel,kluswinkel" }, + "shop/doors": { + "name": "Deurenwinkem" + }, "shop/dry_cleaning": { "name": "Stomerij", "terms": "droogkuis,nieuwkuis" @@ -3449,6 +3966,9 @@ "name": "E-sigarettenwinkel", "terms": "e-cigarettewinkel" }, + "shop/electrical": { + "name": "Winkel voor elektriciteitsbenodigdheden" + }, "shop/electronics": { "name": "Huishoudtoestellen-/Witgoedwinkel", "terms": "huishoudelektro,witgoed,elektro,electro,wasmachine,keuken,vaatwasmachine,afwasmachine" @@ -3457,6 +3977,9 @@ "name": "Seksshop", "terms": "erotiek,sex shop" }, + "shop/erotic/lgbtq": { + "name": "LGBTQ+ erotische winkel" + }, "shop/fabric": { "name": "Stofwinkel", "terms": "kledij,naaien" @@ -3468,6 +3991,9 @@ "shop/fashion": { "name": "Modewinkel" }, + "shop/fashion_accessories": { + "name": "Modeaccessoirewinkel" + }, "shop/fireplace": { "name": "Haardwinkel", "terms": "kachelwinkel" @@ -3476,6 +4002,9 @@ "name": "Hengelsportwinkel", "terms": "visserswinkel,visserijwinkel,visgereiwinkel,netten,vislijnen" }, + "shop/flooring": { + "name": "Vloerwinkel" + }, "shop/florist": { "name": "Bloemenwinkel", "terms": "bloemist,bloemenzaak" @@ -3484,6 +4013,9 @@ "name": "Kaderwinkel", "terms": "schilderijen,kunst,kadrering" }, + "shop/frozen_food": { + "name": "Winkel voor bevroren voedsel" + }, "shop/fuel": { "name": "Tankstation", "terms": "benzinestation,dieselstation,brandstofstation" @@ -3507,6 +4039,9 @@ "name": "Gasflessenwinkel", "terms": "methaan,ethaan,propaan,butaan,gaswinkel,gastank,aardgas,lpg" }, + "shop/general": { + "name": "Algemene winkel" + }, "shop/gift": { "name": "Cadeauwinkel", "terms": "cadeauzaak,geschenkwinkel" @@ -3543,12 +4078,20 @@ "name": "Hifi-/Bruingoedwinkel", "terms": "audio,bruingoed,hifi,stereoinstallatie" }, + "shop/hobby": { + "name": "Hobbywinkel" + }, + "shop/household_linen": { + "name": "Winkel voor huishoudelijk linnen", + "terms": "lakens,dekens,vaatdoeken,handdoeken,washandjes,tafelkleden,bedovertrekken,gordijnen,tafelkleden,kussenslopen" + }, "shop/houseware": { "name": "Huisraadwinkel", "terms": "huiswaar,elektronica,meubilair,meubels,huishoudelijke elektronica,gebruiksvoorwerpen" }, "shop/hunting": { - "name": "Jachtwinkel" + "name": "Jachtwinkel", + "terms": "pijlen,bogen,kogels,kruisbogen,geweren,vallen" }, "shop/interior_decoration": { "name": "Binnenhuisdecoratiewinkel", @@ -3570,15 +4113,25 @@ "name": "Wasserette", "terms": "wassalon" }, + "shop/laundry/self_service": { + "name": "Wasserette met zelfbediening", + "terms": "wasserette,wasserij,wassalon" + }, "shop/leather": { "name": "Lederwinkel", "terms": "handtassen,leerwinkel,schoenen" }, + "shop/lighting": { + "name": "Verlichtingswinkel", + "terms": "TL-lampen,spaarlampen,halogeenlampen,LED-lampen,armaturen,lampen" + }, "shop/locksmith": { - "name": "Slotenmaker" + "name": "Slotenmaker", + "terms": "sleutels,slotenmaker,slot" }, "shop/lottery": { - "name": "Loterij" + "name": "Loterij", + "terms": "krasloten,loterij,lotto,gokken" }, "shop/mall": { "name": "Winkelcentrum", @@ -3591,16 +4144,24 @@ "shop/medical_supply": { "name": "Winkel voor Medische Hulpmiddelen" }, + "shop/military_surplus": { + "name": "Winkel voor militair overschot" + }, "shop/mobile_phone": { "name": "Mobieletelefoonwinkel", "terms": "gsm-winkel,telefoonwinkel,telefoonzaak,gsm-zaak,mobieltjeswinkel,mobieltjeszaak" }, + "shop/model": { + "name": "Modelwinkel", + "terms": "hobby,schaalmodellen,RC,model,modelbouw" + }, "shop/money_lender": { "name": "Particuliere Gelduitleendienst", "terms": "pandhuis,lommerd,lombard,kredietinstelling,lenen,geld,bank van lening" }, "shop/motorcycle": { - "name": "Motorwinkel" + "name": "Motorwinkel", + "terms": "motorfiets,moto,brommer" }, "shop/motorcycle_repair": { "name": "Motorreparatie" @@ -3628,6 +4189,9 @@ "name": "Winkel voor Benodigdheden voor Buitenactiviteiten", "terms": "trekking,fietsen,hike,gps,kamperen,tent" }, + "shop/outpost": { + "name": "Voorpost van een online retailer" + }, "shop/paint": { "name": "Verfwinkel", "terms": "verfhandel,verfzaak" @@ -3660,6 +4224,15 @@ "name": "Fotowinkel", "terms": "camera,film" }, + "shop/pottery": { + "name": "Winkel voor aardewerk" + }, + "shop/printer_ink": { + "name": "Winkel voor printerinkt" + }, + "shop/psychic": { + "name": "Medium (esoterie)" + }, "shop/pyrotechnics": { "name": "Vuurwerkwinkel", "terms": "vuurpijlen,buskruit,nieuwjaar" @@ -3672,6 +4245,9 @@ "name": "Religieuze winkel", "terms": "liturgisch centrum,kerk,godsdienstwinkel,kruisbeelden,souvenirwinkel" }, + "shop/rental": { + "name": "Verhuurwinkel" + }, "shop/scuba_diving": { "name": "Duikwinkel", "terms": "diepzeeduiken,duiken,duiksport,scuba" @@ -3687,10 +4263,16 @@ "name": "Naaiwinkel", "terms": "naaimachine,stofwinkel" }, + "shop/shoe_repair": { + "name": "Schoenenreparatiewinkel" + }, "shop/shoes": { "name": "Schoenenwinkel", "terms": "schoenenzaak,schoenenhandel" }, + "shop/spices": { + "name": "Winkel voor kruiden" + }, "shop/sports": { "name": "Sportzaak", "terms": "sportwinkel,sportkledij,sportattributen,sporttoebehoren,sportgerief" @@ -3706,6 +4288,12 @@ "name": "Supermarkt", "terms": "supermarkt,grootwarenhuis" }, + "shop/supermarket/organic": { + "name": "Organische supermarkt" + }, + "shop/swimming_pool": { + "name": "Winkel voor zwembadbenodigdheden" + }, "shop/tailor": { "name": "Kleermaker", "terms": "maatwerk,kleren,kledij,kostuum" @@ -3718,6 +4306,9 @@ "name": "Theewinkel", "terms": "theehuis" }, + "shop/telecommunication": { + "name": "Telecomwinkel" + }, "shop/ticket": { "name": "Ticketverkoop", "terms": "toegangskaartjes,ticketjes" @@ -3730,6 +4321,9 @@ "name": "Tabakwinkel", "terms": "sigarettenwinkel" }, + "shop/tool_hire": { + "name": "Gereedschapsverhuur" + }, "shop/toys": { "name": "Speelgoedwinkel", "terms": "speelgoedwinkel" @@ -3742,6 +4336,9 @@ "name": "Reisbureau", "terms": "reisbureau" }, + "shop/trophy": { + "name": "Trofeewinkel" + }, "shop/tyres": { "name": "Bandenwinkel" }, @@ -3782,6 +4379,9 @@ "name": "Groothandel", "terms": "groothandelszaak" }, + "shop/wigs": { + "name": "Pruikenwinkel" + }, "shop/window_blind": { "name": "Jaloeziewinkel", "terms": "zonwering,luiken,jaloezieën" @@ -3790,9 +4390,18 @@ "name": "Wijnhandel", "terms": "wijnwinkel,wijnproeverij,wijnzaak,wijnerij" }, + "telecom": { + "name": "Telecom-object" + }, "telecom/data_center": { "name": "Datacenter" }, + "telecom/exchange": { + "name": "Telefooncentrale" + }, + "tourism": { + "name": "Toerisme-object" + }, "tourism/alpine_hut": { "name": "Berghut" }, @@ -3833,10 +4442,19 @@ "name": "Toeristische attractie", "terms": "bezienswaardigheid,toeristische trekpleister,trekpleister" }, + "tourism/camp_pitch": { + "name": "Staplaats (camping)" + }, "tourism/camp_site": { "name": "Camping", "terms": "kamperen,kampeertenten,kampeerwagenpark" }, + "tourism/camp_site/backcountry": { + "name": "Off-piste camping" + }, + "tourism/camp_site/group_only": { + "name": "Groepcamping" + }, "tourism/caravan_site": { "name": "Caravan-/kampeerwagenterrein", "terms": "caravans,kampeerwagens,campers,motorhomes,mobilehomes,terrein voor kampeerwagens" @@ -3869,6 +4487,9 @@ "name": "Informatiebord", "terms": "uitlegbord,informatie" }, + "tourism/information/board/welcome_sign": { + "name": "Welkomstbord" + }, "tourism/information/guidepost": { "name": "Wandel-, fiets-, e.d. -wegwijzer", "terms": "wegwijzer,wandelroutewegwijzer,fietsroutewegwijzer,routewegwijzer,route,wandelwegwijzer,fietswegwijzer" @@ -3877,6 +4498,17 @@ "name": "Kaart", "terms": "plan,plattegrond,informatie" }, + "tourism/information/office": { + "name": "Toerismekantoor", + "terms": "bezoekerscentrum" + }, + "tourism/information/route_marker": { + "name": "Routemarkering", + "terms": "routebordje" + }, + "tourism/information/terminal": { + "name": "Informatieterminal" + }, "tourism/motel": { "name": "Motel", "terms": "motorhotel" @@ -3885,6 +4517,9 @@ "name": "Museum", "terms": "museum" }, + "tourism/museum/history": { + "name": "Museum over geschiedenis" + }, "tourism/picnic_site": { "name": "Picknickplek", "terms": "park" @@ -3912,6 +4547,12 @@ "tourism/zoo/petting": { "name": "Kinderboerderij" }, + "tourism/zoo/safari": { + "name": "Safaripark" + }, + "tourism/zoo/wildlife": { + "name": "Wildpark" + }, "traffic_calming": { "name": "Verkeersremmer", "terms": "drempel,heuvel,langzaam,snelheid" @@ -3957,22 +4598,10 @@ "name": "Verkeersbord stadsgrens", "terms": "plaats,dorp,nederzetting,grens,rand,bord stadsgrens" }, - "traffic_sign/city_limit_vertex": { - "name": "Verkeersbord stadsgrens", - "terms": "plaats,dorp,nederzetting,grens,rand,bord stadsgrens" - }, "traffic_sign/maxspeed": { "name": "Verkeersbord maximumsnelheid", "terms": "maximumsnelheid,maximale snelheid,snelheidslimietbord" }, - "traffic_sign/maxspeed_vertex": { - "name": "Verkeersbord maximumsnelheid", - "terms": "maximumsnelheidsbord,maximale snelheid,snelheidslimietbord" - }, - "traffic_sign_vertex": { - "name": "Verkeersbord", - "terms": "bord" - }, "type/boundary": { "name": "Grens" }, @@ -3980,12 +4609,24 @@ "name": "Bestuurlijke grens", "terms": "administratieve grens" }, + "type/connectivity": { + "name": "Rijstrookverbinding" + }, + "type/destination_sign": { + "name": "Bewegwijzeringsbord" + }, "type/enforcement": { "name": "Controle" }, + "type/enforcement/maxspeed": { + "name": "Controle op de snelheidslimiet" + }, "type/multipolygon": { "name": "Meervoudige polygoon" }, + "type/public_transport/stop_area_group": { + "name": "Groep van een haltecomplex" + }, "type/restriction": { "name": "Beperking" }, @@ -4041,8 +4682,7 @@ "terms": "ferrytraject,veerponttraject" }, "type/route/foot": { - "name": "Wandelroute", - "terms": "hikingroute,trekkingroute" + "name": "Wandelroute" }, "type/route/hiking": { "name": "Hikingtraject", @@ -4086,6 +4726,9 @@ "name": "Tramtraject", "terms": "tramroute" }, + "type/route/trolleybus": { + "name": "Trolleybusroute" + }, "type/route_master": { "name": "Openbaarvervoerstraject", "terms": "lijn,buslijn,tramlijn,metrolijn,treintraject,treinlijn" @@ -4098,6 +4741,9 @@ "name": "Waterloop", "terms": "waterweg,rivier,stroom,verloop,afwatering,beek,vaart,kanaal" }, + "waterway": { + "name": "Waterweg" + }, "waterway/boatyard": { "name": "Scheepswerf", "terms": "bootwerf,scheepsherstellingen,bootherstellingen,droogdok,bouwdok" @@ -4125,6 +4771,10 @@ "name": "Afvoer", "terms": "greppel,gracht" }, + "waterway/fish_pass": { + "name": "Vistrap", + "terms": "vispassage" + }, "waterway/fuel": { "name": "Maritiem tankstation", "terms": "schip,brandstof" @@ -4155,6 +4805,9 @@ "name": "Soms droge stroom", "terms": "stroom die soms droog straat,droge stroom,seizoensstroom,wadi,ford" }, + "waterway/tidal_channel": { + "name": "Getijdenkanaal" + }, "waterway/water_point": { "name": "Waterpunt voor boten", "terms": "drinkwatertank,watertank" diff --git a/app/src/main/assets/osmfeatures/no.json b/app/src/main/assets/osmfeatures/no.json index f1f6d365ed..0d4ac62876 100644 --- a/app/src/main/assets/osmfeatures/no.json +++ b/app/src/main/assets/osmfeatures/no.json @@ -625,15 +625,27 @@ "attraction/carousel": { "name": "Karusell" }, + "attraction/dark_ride": { + "name": "Spøkelsetog" + }, "attraction/log_flume": { "name": "Tømmerrenne" }, "attraction/maze": { "name": "Labyrint" }, + "attraction/river_rafting": { + "name": "Vannbane" + }, "attraction/roller_coaster": { "name": "Berg-og-dal-bane" }, + "attraction/summer_toboggan": { + "name": "Sommerkjelke" + }, + "attraction/swing_carousel": { + "name": "Svingkarusell" + }, "attraction/train": { "name": "Turisttog" }, @@ -643,9 +655,21 @@ "barrier": { "name": "Hinder" }, + "barrier/block": { + "name": "Barriereblokk" + }, + "barrier/bollard": { + "name": "Pullert" + }, + "barrier/bollard_line": { + "name": "Pullertrekke" + }, "barrier/border_control": { "name": "Grensekontroll" }, + "barrier/cattle_grid": { + "name": "Fanghekk" + }, "barrier/chain": { "name": "Kjede" }, @@ -682,9 +706,24 @@ "barrier/retaining_wall": { "name": "Støttemur" }, + "barrier/sally_port": { + "name": "Sortiport" + }, + "barrier/spikes": { + "name": "Spikermatte" + }, + "barrier/stile": { + "name": "Stente" + }, + "barrier/swing_gate": { + "name": "Svingport" + }, "barrier/toll_booth": { "name": "Bomstasjon" }, + "barrier/turnstile": { + "name": "Rotasjonsport" + }, "barrier/wall": { "name": "Mur" }, @@ -997,6 +1036,18 @@ "craft/winery": { "name": "Vingård" }, + "demolished/building": { + "name": "Nylig Revet Bygning" + }, + "disused/amenity": { + "name": "Nedlagt Bekvemmelighet" + }, + "disused/railway": { + "name": "Nedlagt Jernbane Funksjon" + }, + "disused/shop": { + "name": "Nedlagt Butikk" + }, "embankment": { "name": "Dike" }, @@ -1009,6 +1060,12 @@ "emergency/defibrillator": { "name": "Defibrillator" }, + "emergency/designated": { + "name": "Dedikert Nødtilgang " + }, + "emergency/fire_alarm": { + "name": "Brannalarm Telefonboks" + }, "emergency/fire_extinguisher": { "name": "Brannslukningsapparat" }, @@ -1027,6 +1084,12 @@ "emergency/lifeguard": { "name": "Livvakt" }, + "emergency/no": { + "name": "Nødtilgang Nei" + }, + "emergency/official": { + "name": "Offisiell Nødadgang" + }, "emergency/phone": { "name": "Nødtelefon" }, @@ -1042,6 +1105,9 @@ "entrance/emergency": { "name": "Nødutgang" }, + "entrance/emergency_ward_entrance": { + "name": "Inngang til legevakt" + }, "ford": { "name": "Vadested" }, @@ -2530,12 +2596,6 @@ "traffic_sign/maxspeed": { "name": "Fartsgrenseskilt" }, - "traffic_sign/maxspeed_vertex": { - "name": "Fartsgrenseskilt" - }, - "traffic_sign_vertex": { - "name": "Trafikkskilt" - }, "type/boundary": { "name": "Grense" }, @@ -2587,9 +2647,6 @@ "type/route/ferry": { "name": "Fergerute" }, - "type/route/foot": { - "name": "Gangrute" - }, "type/route/hiking": { "name": "Oppmerket sti" }, diff --git a/app/src/main/assets/osmfeatures/pl.json b/app/src/main/assets/osmfeatures/pl.json index e60e9bd4e0..4d47985712 100644 --- a/app/src/main/assets/osmfeatures/pl.json +++ b/app/src/main/assets/osmfeatures/pl.json @@ -202,7 +202,7 @@ }, "amenity/bicycle_rental": { "name": "Wypożyczalnia rowerów", - "terms": "wypożyczalnia" + "terms": "wypożyczalnia, rowery" }, "amenity/bicycle_repair_station": { "name": "Samoobsługowa stacja naprawy rowerów", @@ -212,10 +212,18 @@ "name": "Ogródek piwny", "terms": "ogródek piwny, bar plażowy, beach bar" }, + "amenity/binoculars": { + "name": "Lornetka", + "terms": "lornetka, luneta, punkt obserwacyjny, punkt widokowy" + }, "amenity/boat_rental": { "name": "Wypożyczalnia łodzi", "terms": "wynajem łodzi" }, + "amenity/boat_storage": { + "name": "Przechowalnia łodzi", + "terms": "przechowalnia łodzi, marina, łódź, łodzie" + }, "amenity/bureau_de_change": { "name": "Kantor", "terms": "wymiana walut" @@ -241,7 +249,7 @@ }, "amenity/car_rental": { "name": "Wypożyczalnia samochodów", - "terms": "wypożyczalnia samochodów" + "terms": "wypożyczalnia samochodów, samochody" }, "amenity/car_sharing": { "name": "Stacja miejskiej wypożyczalni samochodów", @@ -344,7 +352,7 @@ }, "amenity/driving_school": { "name": "Szkoła nauki jazdy", - "terms": "prawo jazdy" + "terms": "szkoła nauki jazdy, nauka jazdy, szkolenia kierowców, prawo jazdy" }, "amenity/embassy": { "name": "Ambasada/konsulat" @@ -384,6 +392,10 @@ "amenity/fast_food/ice_cream": { "name": "Bar z lodami" }, + "amenity/fast_food/juice": { + "name": "Bar z sokami/koktajlami", + "terms": "bar, kawiarnia, świeżo wyciskane soki, napoje, koktajle, smoothies" + }, "amenity/fast_food/kebab": { "name": "Bar z kebabem", "terms": "kebab, kebap, gyros, giros, shoarma, shaorma" @@ -483,6 +495,10 @@ "name": "Dok załadunkowy", "terms": "dok załadunkowy" }, + "amenity/lounger": { + "name": "Leżak", + "terms": "leżaki" + }, "amenity/love_hotel": { "name": "Love hotel", "terms": "love hotel,dla par,xxx,krótki pobyt" @@ -499,6 +515,10 @@ "name": "Placówka przekazów pieniężnych", "terms": "pieniądze, gotówka, Western Union" }, + "amenity/mortuary": { + "name": "Kostnica", + "terms": "kostnica, krematorium" + }, "amenity/motorcycle_parking": { "name": "Parking dla motocykli", "terms": "miejsce postojowe dla motocyklów" @@ -885,6 +905,10 @@ "name": "Latryna", "terms": "latryna, wychodek, sławojka" }, + "amenity/toilets/portable": { + "name": "Przenośna toaleta", + "terms": "przenośna toaleta" + }, "amenity/townhall": { "name": "Ratusz", "terms": "władze miasta,ratusz,urząd miasta,urząd gminy,starostwo" @@ -1711,6 +1735,9 @@ "demolished/building": { "name": "Niedawno wyburzony budynek" }, + "disused/amenity": { + "name": "Nieużywany obiekt/udogodnienie" + }, "disused/railway": { "name": "Nieużywany obiekt kolejowy" }, @@ -1824,6 +1851,10 @@ "name": "Ścieżka dla wózka golfowego", "terms": "droga, ścieżka dla wózka golfowego, wózek golfowy" }, + "golf/clubhouse": { + "name": "Klub golfowy", + "terms": "klub golfowy" + }, "golf/driving_range": { "name": "Strzelnica golfowa", "terms": "strzelnica golfowa" @@ -2551,8 +2582,8 @@ "terms": "salon gier, automaty wrzutowe, gry wideo, gry video, symulatory jazdy, symulatory jazdy, symulator lotu, pinball, wirtualna rzeczywistość, rzeczywistość wirtualna" }, "leisure/bandstand": { - "name": "Estrada", - "terms": "estrada,scena,występy" + "name": "Muszla koncertowa / estrada", + "terms": "muszla koncertowa, estrada, scena, arena, podium, występy, amfiteatr, trybuna, trybuny" }, "leisure/beach_resort": { "name": "Resort nadmorski", @@ -2832,7 +2863,7 @@ }, "leisure/sports_centre": { "name": "Centrum sportowe", - "terms": "centrum sportowe, ośrodek sportowy, ośrodek sportów, kompleks sportowy" + "terms": "centrum sportowe, ośrodek sportowy, ośrodek sportów, kompleks sportowy, klub sportowy" }, "leisure/sports_centre/climbing": { "name": "Ścianka wspinaczkowa", @@ -3015,7 +3046,7 @@ }, "man_made/mast/communication/mobile_phone": { "name": "Maszt telefonii komórkowej", - "terms": "antena,maszt komórkowy,maszt telefonii komórkowej,wieża telefonii komórkowej,maszt komunikacyjny,wieża komunikacyjna,maszt transmisyjny,wieża transmisyjna" + "terms": "antena,maszt komórkowy,maszt telefonii komórkowej,wieża telefonii komórkowej,maszt komunikacyjny,wieża komunikacyjna,maszt transmisyjny,wieża transmisyjna, bts" }, "man_made/mast/communication/radio": { "name": "Maszt radiowy", @@ -3115,7 +3146,11 @@ }, "man_made/tower/communication": { "name": "Wieża komunikacyjna", - "terms": "antena,wieża nadawcza,maszt telefoniczny,maszt komórkowy,maszt komunikacyjny,wieża komunikacyjna,maszt telefonii komórkowej,maszt radiowy,wieża radiowa,wieża telewizyjna,maszt transmisyjny,wieża transmisyjna,wieża tv" + "terms": "antena,wieża nadawcza,maszt telefoniczny,maszt komórkowy,maszt komunikacyjny,wieża komunikacyjna,maszt telefonii komórkowej,maszt radiowy,wieża radiowa,wieża telewizyjna,maszt transmisyjny,wieża transmisyjna,wieża tv, bts" + }, + "man_made/tower/cooling": { + "name": "Chłodnia kominowa", + "terms": "chłodnia kominowa, wieża chłodnicza, fabryka" }, "man_made/tower/defensive": { "name": "Wieża obronna", @@ -3165,6 +3200,10 @@ "name": "Wiatrak", "terms": "wiatrak" }, + "man_made/windpump": { + "name": "Pompa wiatrowa", + "terms": "pompa wiatrowa, pompa wodna, wiatrak" + }, "man_made/works": { "name": "Fabryka", "terms": "zakład produkcyjny" @@ -3252,6 +3291,10 @@ "name": "Wrzosowisko", "terms": "wrzosowisko, krzewy, krzewinki, zieleń" }, + "natural/hot_spring": { + "name": "Źródło termalne", + "terms": "źródło termalne, źródło ciepłe, źródło gorące, gorące źródło, gorące źródła, cieplica, cieplice" + }, "natural/mud": { "name": "Błoto", "terms": "błotne" @@ -3373,8 +3416,8 @@ "terms": "rekreacyjna trasa ponumerowanych węzłów" }, "noexit/yes": { - "name": "Brak przejścia/przejazdu", - "terms": "Brak przejścia/przejazdu" + "name": "Brak dalszej kontynuacji", + "terms": "Brak przejścia/przejazdu,koniec" }, "office": { "name": "Biuro", @@ -3838,6 +3881,10 @@ "name": "Przystanek autobusowy", "terms": "przystanek autobusowy, autobus" }, + "public_transport/platform/bus_tram_point": { + "name": "Przystanek tramwajowo-autobusowy", + "terms": "przystanek tramwajowo-autobusowy, przystanek tramwajowy, przystanek autobusowy, tramwaj, autobus" + }, "public_transport/platform/ferry": { "name": "Przystanek / Peron promu", "terms": "przystanek promu, peron, przystanek, prom, łódź, łódka, dok, port, nabrzeże, pomost, transport publiczny, transport, przewozy" @@ -4707,7 +4754,7 @@ }, "shop/storage_rental": { "name": "Przechowalnia rzeczy (długoterminowa)", - "terms": "przechowalnia rzeczy, magazyny samoobsługowe, wynajem magazynów" + "terms": "przechowalnia rzeczy, magazyny samoobsługowe, wynajem magazynów, komórki do wynajęcia, magazyny do wynajęcia" }, "shop/supermarket": { "name": "Supermarket", @@ -4930,6 +4977,10 @@ "name": "Tablica informacyjna", "terms": "informacja, obwieszczenia" }, + "tourism/information/board/welcome_sign": { + "name": "Tablica powitalna (miasta)", + "terms": "tablica powitalna miasta, witamy w mieście" + }, "tourism/information/guidepost": { "name": "Drogowskaz", "terms": "drogowskaz" @@ -5046,22 +5097,10 @@ "name": "Znak granicy miasta", "terms": "znak granicy miasta, granica miasta, granica miejscowości, znak drogowy" }, - "traffic_sign/city_limit_vertex": { - "name": "Znak granicy miasta", - "terms": "znak granicy miasta, granica miasta, granica miejscowości, znak drogowy" - }, "traffic_sign/maxspeed": { "name": "Znak ograniczenia prędkości", "terms": "znak ograniczenia prędkości, ograniczenie prędkości, maksymalna prędkość, znak drogowy" }, - "traffic_sign/maxspeed_vertex": { - "name": "Znak ograniczenia prędkości", - "terms": "znak ograniczenia prędkości, ograniczenie prędkości, maksymalna prędkość, znak drogowy" - }, - "traffic_sign_vertex": { - "name": "Znak drogowy", - "terms": "znak drogowy,droga,ulica" - }, "type/boundary": { "name": "Granica", "terms": "granica" @@ -5151,7 +5190,7 @@ }, "type/route/foot": { "name": "Trasa piesza", - "terms": "trasa piesza" + "terms": "trasa piesza, szlak pieszy" }, "type/route/hiking": { "name": "Szlak pieszy", diff --git a/app/src/main/assets/osmfeatures/pt-BR.json b/app/src/main/assets/osmfeatures/pt-BR.json index c6ef7a9a59..bc1129358a 100644 --- a/app/src/main/assets/osmfeatures/pt-BR.json +++ b/app/src/main/assets/osmfeatures/pt-BR.json @@ -16,7 +16,8 @@ "terms": "Quadro de notícias" }, "advertising/column": { - "name": "Coluna de publicidade" + "name": "Coluna de publicidade", + "terms": "Coluna de publicidade" }, "advertising/poster_box": { "name": "Caixa de pôster", @@ -66,8 +67,8 @@ "terms": "Telesqui de prato" }, "aerialway/pylon": { - "name": "Torre de Suporte de Teleférico", - "terms": "Torre de Suporte de Teleférico" + "name": "Torre de suporte de teleférico", + "terms": "Torre de suporte de teleférico" }, "aerialway/rope_tow": { "name": "Telecorda", @@ -93,7 +94,7 @@ "terms": "Plataforma de estacionamento" }, "aeroway/gate": { - "name": "Portão de Embarque", + "name": "Portão de embarque", "terms": "Portão de Embarque, Portão de desembarque, embarque, desembarque, aeroporto" }, "aeroway/hangar": { @@ -117,7 +118,7 @@ "terms": "Posição de estacionamento de aeronaves" }, "aeroway/runway": { - "name": "Pista de Pouso e Decolagem", + "name": "Pista de pouso e decolagem", "terms": "Pista de pouso e decolagem" }, "aeroway/spaceport": { @@ -125,11 +126,11 @@ "terms": "Base de lançamento espacial" }, "aeroway/taxiway": { - "name": "Pista de Taxiamento", + "name": "Pista de taxiamento", "terms": "Taxiway" }, "aeroway/terminal": { - "name": "Terminal de Aeroporto", + "name": "Terminal de aeroporto", "terms": "aeroporto, edifício, terminal aeroportuário, embarque, desembarque, viagem, turismo, avião, helicóptero" }, "aeroway/windsock": { @@ -151,15 +152,15 @@ "terms": "cruzar, gato, cão, cadela, cachorro, pet motel, reprodução de animais," }, "amenity/animal_shelter": { - "name": "Abrigo de Animais", + "name": "Abrigo de animais", "terms": "canil, cachorro, gato, pet" }, "amenity/arts_centre": { - "name": "Centro Cultural", + "name": "Centro cultural", "terms": "Centro de Artes, Artes, Centro Artístico, Teatro, Cinema, Espetáculo, Exposições, Galeria, Exposição, Cultura, Espaço Cultural, Pintura, Artes Plásticas" }, "amenity/atm": { - "name": "Caixa Eletrônico", + "name": "Caixa eletrônico", "terms": "caixa eletrônico, ATM, Banco, caixa automático, terminal bancário, terminal" }, "amenity/bank": { @@ -199,27 +200,35 @@ "terms": "Armazém de bicicletas" }, "amenity/bicycle_rental": { - "name": "Estação de Bicicletas Públicas", + "name": "Estação de bicicletas públicas", "terms": "Estação de Bicicletas Públicas, Compartilhamento de Bicicletas, Bike sharing, bicicletas comunitárias, bicicletas livres, bicicletas compartilhadas" }, "amenity/bicycle_repair_station": { - "name": "Estação de Reparo de Bicicletas", + "name": "Estação de reparo de bicicletas", "terms": "Bicicleta, Ciclismo, Reparo, Oficina de Bicicletas" }, "amenity/biergarten": { "name": "Biergarten", "terms": "cerveja, cerva, birra, cervejaria," }, + "amenity/binoculars": { + "name": "Binóculos montados", + "terms": "Binóculos montados" + }, "amenity/boat_rental": { - "name": "Aluguel de Barcos", - "terms": "Aluguel de Embarcações" + "name": "Aluguel de barcos", + "terms": "Aluguel de embarcações" + }, + "amenity/boat_storage": { + "name": "Armazenamento de barco", + "terms": "Armazenamento de barco" }, "amenity/bureau_de_change": { - "name": "Casa de Câmbio", + "name": "Casa de câmbio", "terms": "Moedas, Câmbio, Troca de valores," }, "amenity/bus_station": { - "name": "Terminal / Estação de Ônibus" + "name": "Terminal / Estação de ônibus" }, "amenity/cafe": { "name": "Cafeteria", @@ -246,7 +255,7 @@ "terms": "Estação de compartilhamento de carros" }, "amenity/car_wash": { - "name": "Lava a Jato", + "name": "Lava a jato", "terms": "Lavagem de Veículos, Lava jato, lava rápido, lava-a-jato, lava-jato" }, "amenity/casino": { @@ -258,23 +267,23 @@ "terms": "Estação de carregamento, Estação de Recarga, Estação de Carga Elétrica, Tomada de Cargamento, Tomada de Recarga" }, "amenity/childcare": { - "name": "Berçário ou Creche", + "name": "Berçário ou creche", "terms": "Berçário, Creche, Maternal, Jardim de infância, Cuidados infantis" }, "amenity/cinema": { "name": "Cinema", - "terms": "Cinema, Sala de Cinema" + "terms": "Cinema, Sala de cinema" }, "amenity/clinic": { - "name": "Clínica ou Posto de Saúde", + "name": "Clínica ou posto de saúde", "terms": "clínica, consultório, posto de saúde, unidade de saúde, unidade básica de saúde, ubs, pronto atendimento, enfermaria, doutor, médico, atendimento médico especializado, hospital" }, "amenity/clinic/abortion": { - "name": "Clínica de Aborto", + "name": "Clínica de aborto", "terms": "aborto, interrupção da gravidez" }, "amenity/clinic/fertility": { - "name": "Clínica de Fertilidade", + "name": "Clínica de fertilidade", "terms": "fertilidade, inseminação artificial, congelamento de esperma, fertilização in-vitro" }, "amenity/clock": { @@ -290,11 +299,11 @@ "terms": "Colégio técnico, Ensino profissionalizante, Educação profissional" }, "amenity/community_centre": { - "name": "Centro Comunitário", + "name": "Centro comunitário", "terms": "Centro comunitário, Salão de festas e eventos, centro social, associação de moradores" }, "amenity/community_centre/lgbtq": { - "name": "Centro Comunitário LGBTQ+", + "name": "Centro comunitário LGBTQ+", "terms": "Centro Comunitário LGBTQ+" }, "amenity/compressed_air": { @@ -302,7 +311,7 @@ "terms": "Ar Comprimido, calibragem, calibrar, pneu, bicicleta" }, "amenity/conference_centre": { - "name": "Centro de Convenções", + "name": "Centro de convenções", "terms": "Centro de Convenções" }, "amenity/courthouse": { @@ -321,7 +330,7 @@ "terms": "Dentista, Odontologista" }, "amenity/dive_centre": { - "name": "Centro de Mergulho", + "name": "Centro de mergulho", "terms": "Centro de Mergulho" }, "amenity/doctors": { @@ -338,17 +347,17 @@ }, "amenity/drinking_water": { "name": "Bebedouro", - "terms": "Água Potável, Bebedouro, fonte" + "terms": "Água potável, Bebedouro, fonte" }, "amenity/driving_school": { - "name": "Auto Escola", + "name": "Auto escola", "terms": "Escola de direção, escola de motoristas, auto-escola, autoescola" }, "amenity/embassy": { "name": "Embaixada" }, "amenity/events_venue": { - "name": "Local de Eventos", + "name": "Local de eventos", "terms": "Local de Eventos" }, "amenity/exhibition_centre": { @@ -364,7 +373,7 @@ "terms": "lanchonete, fast food, comida rápida, hambúrguer, restaurante, lanche" }, "amenity/fast_food/chicken": { - "name": "Frango Frito", + "name": "Frango frito", "terms": "frango, lanchonete, comida rápida, fast food, chicken fry" }, "amenity/fast_food/donut": { @@ -372,7 +381,7 @@ "terms": "donut fast food, donut, doughnut, dónute, rosca, rosquinha" }, "amenity/fast_food/fish_and_chips": { - "name": "Peixe e Batatas Fritas", + "name": "Peixe e batatas fritas", "terms": "lanchonete, comida rápida, fast food, restaurante, alimentação, peixe, fritas," }, "amenity/fast_food/hot_dog": { @@ -382,6 +391,10 @@ "amenity/fast_food/ice_cream": { "name": "Comida rápida de gelados" }, + "amenity/fast_food/juice": { + "name": "Casa de Sucos", + "terms": "suqueria, fast food, lanchonete, sucos, bebidas, sumo, frutas" + }, "amenity/fast_food/kebab": { "name": "Kebab", "terms": "lanchonete, comida rápida, fast food, restaurante, alimentação, kebab, shawarma, falafel, comida árabe, árabe" @@ -402,11 +415,11 @@ "name": "Terminal da balsa" }, "amenity/fire_station": { - "name": "Posto de Bombeiros", + "name": "Posto de bombeiros", "terms": "Posto de Bombeiros, Bombeiros, Central de Bombeiros, corpo de bombeiros" }, "amenity/food_court": { - "name": "Praça de Alimentação", + "name": "Praça de alimentação", "terms": "praça de alimentação, área de alimentação, comida, alimentação, restaurantes, lanchonete, comida rápida, fast food" }, "amenity/fountain": { @@ -414,7 +427,7 @@ "terms": "Fonte luminosa, Fonte Aquática" }, "amenity/fuel": { - "name": "Posto de Combustível", + "name": "Posto de combustível", "terms": "Posto de Gasolina, Combustíveis, Posto de Combustíveis, Combustível, Diesel, Gasolina, GNV, Etanol, Abastecimento, Carro" }, "amenity/gambling": { @@ -481,6 +494,10 @@ "name": "Doca de carregamento", "terms": "Doca de carregamento" }, + "amenity/lounger": { + "name": "Espreguiçadeira", + "terms": "Espreguiçadeira" + }, "amenity/love_hotel": { "name": "Motel", "terms": "hotel de beira de estrada, hotel, pousada, romântico, amor, love hotel" @@ -496,6 +513,10 @@ "name": "Estação de transferência de dinheiro", "terms": "Estação de transferência de dinheiro" }, + "amenity/mortuary": { + "name": "Necrotério", + "terms": "Necrotério" + }, "amenity/motorcycle_parking": { "name": "Estacionamento de motos", "terms": "Estacionamento de motocicletas, estacionamento de motos, estacionamento" @@ -560,19 +581,19 @@ "terms": "Cabine de foto" }, "amenity/place_of_worship": { - "name": "Local de Prática Religiosa", + "name": "Local de prática religiosa", "terms": "Local de Culto, Lugar de Adoração, Abadia, Basílica, Betel, Catedral, Mor, Capela, Igreja, Aprisco, Casa de Deus, Casa de oração, Casa de adoração, Mesquita, Oratório, Paróquia, Santuário, Sinagoga, Tabernáculo, Templo" }, "amenity/place_of_worship/buddhist": { - "name": "Templo Budista", + "name": "Templo budista", "terms": "Templo Budista" }, "amenity/place_of_worship/christian": { - "name": "Igreja Cristã", + "name": "Igreja cristã", "terms": "Igreja cristã, cristianismo" }, "amenity/place_of_worship/christian/jehovahs_witness": { - "name": "Salão do Reino das Testemunhas de Jeová", + "name": "Salão do reino das testemunhas de jeová", "terms": "Salão do Reino das Testemunhas de Jeová" }, "amenity/place_of_worship/christian/la_luz_del_mundo": { @@ -580,31 +601,31 @@ "terms": "A luz do templo mundial" }, "amenity/place_of_worship/christian/quaker": { - "name": "Casa de Reunião dos Amigos ", + "name": "Casa de reunião dos amigos ", "terms": "Casa de Reunião dos Amigos" }, "amenity/place_of_worship/hindu": { - "name": "Templo Hindu", + "name": "Templo hindu", "terms": "garbhargriha,mandir,mandu,puja,santuário,hinduísmo, templo" }, "amenity/place_of_worship/jewish": { - "name": "Sinagoga Judaica", + "name": "Sinagoga judaica", "terms": "Sinagoga judaica, judeus, judaísmo" }, "amenity/place_of_worship/muslim": { - "name": "Mesquita Muçulmana", + "name": "Mesquita muçulmana", "terms": "Mesquita muçulmana, islamismo, mosque" }, "amenity/place_of_worship/shinto": { - "name": "Santuário Xintoísta", + "name": "Santuário xintoísta", "terms": "templo, xintoísmo, kami, torii, portal, japonês" }, "amenity/place_of_worship/sikh": { - "name": "Templo Sique", + "name": "Templo sique", "terms": "sikhi, religião, siquismo, sikhismo, templo sikhi," }, "amenity/place_of_worship/taoist": { - "name": "Templo Taoísta", + "name": "Templo taoísta", "terms": "daoista, daoismo, Taoismo, tauismo, monastério, templo taoista, templo tauista," }, "amenity/planetarium": { @@ -628,7 +649,7 @@ "terms": "Escritório de classificação de correspondência" }, "amenity/post_office": { - "name": "Agência de Correios", + "name": "Agência de correios", "terms": "Correios, Encomendas, Transporte, Log, Cargas" }, "amenity/prep_school": { @@ -643,6 +664,10 @@ "name": "Bar / Boteco", "terms": "pub, botequim, boteco, buteco, bar, botequim, butequim, chopperia, choperia" }, + "amenity/pub/irish": { + "name": "Pub Irlândês", + "terms": "pub, irlanda, bar, irlandês, bebida" + }, "amenity/pub/lgbtq": { "name": "Pub LGBTQ+", "terms": "Pub LGBTQ+" @@ -656,7 +681,7 @@ "terms": "águas termais, fonte termal, onsen, banho turco, banho japonês, chuveiro público" }, "amenity/public_bookcase": { - "name": "Biblioteca ao Ar Livre", + "name": "Biblioteca ao ar livre", "terms": "Biblioteca ao Ar Livre, Biblioteca Pública" }, "amenity/ranger_station": { @@ -675,11 +700,11 @@ "terms": "Recipiente de resíduos verdes" }, "amenity/recycling_centre": { - "name": "Centro de Reciclagem", + "name": "Centro de reciclagem", "terms": "Material Reciclável, Dejetos, Material sólido, Reciclagem, Resíduos, lixo, vidro, garrafa, lata" }, "amenity/recycling_container": { - "name": "Container para Reciclagem", + "name": "Container para reciclagem", "terms": "reciclagem, lixo, lixeira, lata de reciclagem, lata de lixo, dejetos, resíduos, material reciclável" }, "amenity/refugee_site": { @@ -687,7 +712,7 @@ "terms": "Campo de refugiados" }, "amenity/research_institute": { - "name": "Área do Instituto de Pesquisa", + "name": "Área do instituto de pesquisa", "terms": "Área do Instituto de Pesquisa" }, "amenity/restaurant": { @@ -695,47 +720,47 @@ "terms": "Alimentação, Comida, Refeitório" }, "amenity/restaurant/american": { - "name": "Restaurante Americano", + "name": "Restaurante americano", "terms": "Restaurante Americano" }, "amenity/restaurant/asian": { - "name": "Restaurante Asiático", + "name": "Restaurante asiático", "terms": "Asiático, comida asiática, restaurante, ásia" }, "amenity/restaurant/chinese": { - "name": "Restaurante Chinês", + "name": "Restaurante chinês", "terms": "comida chinesa, yakisoba, lamen," }, "amenity/restaurant/french": { - "name": "Restaurante Francês", + "name": "Restaurante francês", "terms": "Restaurante Francês, comida francesa, frança, comida mediterrânea, restaurante mediterrâneo" }, "amenity/restaurant/german": { - "name": "Restaurante Alemão", + "name": "Restaurante alemão", "terms": "Comida Alemã, alemanha, restaurante, salsicha, cerveja" }, "amenity/restaurant/greek": { - "name": "Restaurante Grego", + "name": "Restaurante grego", "terms": "comida grega, comida mediterrânea, restaurante mediterrâneo" }, "amenity/restaurant/indian": { - "name": "Restaurante Indiano", + "name": "Restaurante indiano", "terms": "comida Indiana, índia, restaurante asiático, comida asiática," }, "amenity/restaurant/italian": { - "name": "Restaurante Italiano", + "name": "Restaurante italiano", "terms": "Restaurante italiano, comida italiana, macarrão, pasta, pizza" }, "amenity/restaurant/japanese": { - "name": "Restaurante Japonês", + "name": "Restaurante japonês", "terms": "comida Japonesa, sushi, temaki, teriaki," }, "amenity/restaurant/mexican": { - "name": "Restaurante Mexicano", + "name": "Restaurante mexicano", "terms": "comida Mexicana, tex-mex, nachos, guacamole, tortillas" }, "amenity/restaurant/noodle": { - "name": "Restaurante de Lámen", + "name": "Restaurante de lámen", "terms": "ramen, lamen, noodle," }, "amenity/restaurant/pizza": { @@ -755,19 +780,19 @@ "terms": "sushi, sashimi, comida japonesa, restaurante, alimentação, comida asiática, restaurante asiático, restaurante japonês" }, "amenity/restaurant/thai": { - "name": "Restaurante Tailandês", + "name": "Restaurante tailandês", "terms": "tailândia, comida tailandesa, comida asiática, restaurante asiático" }, "amenity/restaurant/turkish": { - "name": "Restaurante Turco", + "name": "Restaurante turco", "terms": "Restaurante, turquia, comida turca, kebab, falafel, shawarma, homus, tahine" }, "amenity/restaurant/vietnamese": { - "name": "Restaurante Vietnamita", + "name": "Restaurante vietnamita", "terms": "Restaurante, vietnã, restaurante asiático, comida asiática, alimentação," }, "amenity/sanitary_dump_station": { - "name": "Ponto de Descarga de Dejetos (para trailers)", + "name": "Ponto de descarga de dejetos (para trailers)", "terms": "Depósito de Toaletes de Trailers, depósito de banheiro de trailers, depósito sanitário, trailer, despejo de banheiro, despejo sanitário" }, "amenity/school": { @@ -775,7 +800,7 @@ "terms": "área escolar, terreno escolar, pátio escolar, colégio, ensino fundamental, ensino médio, educação, instituição de ensino" }, "amenity/shelter": { - "name": "Abrigo contra Intempéries", + "name": "Abrigo contra intempéries", "terms": "abrigo contra intempéries, abrigo, proteção da chuva" }, "amenity/shelter/gazebo": { @@ -806,7 +831,7 @@ "terms": "Centro social" }, "amenity/social_facility": { - "name": "Unidade de Assistência Social", + "name": "Unidade de assistência social", "terms": "Assistência Social, assistente social, Serviço Social" }, "amenity/social_facility/ambulatory_care": { @@ -826,7 +851,7 @@ "terms": "refúgio para desabrigados, abrigo para sem-teto, albergue, abrigo, mendigo, sopão, sem-teto" }, "amenity/social_facility/nursing_home": { - "name": "Casa de Repouso", + "name": "Casa de repouso", "terms": "Enfermagem, casa de saúde, lar de repouso, lar de idosos, asilo, lar de vida assistida, lar de saúde, casa de velhinhos," }, "amenity/studio": { @@ -854,7 +879,7 @@ "terms": "táxi, cooperativa" }, "amenity/telephone": { - "name": "Telefone Público", + "name": "Telefone público", "terms": "Telefone, Orelhão" }, "amenity/theatre": { @@ -866,11 +891,11 @@ "terms": "Anfiteatro" }, "amenity/toilets": { - "name": "Banheiros Públicos", + "name": "Banheiros públicos", "terms": "Banheiros, Sanitário, WC, Lavabo, Toalete" }, "amenity/toilets/disposal/flush": { - "name": "Banheiros com Descarga", + "name": "Banheiros com descarga", "terms": "Banheiro" }, "amenity/toilets/disposal/pitlatrine": { @@ -882,11 +907,11 @@ "terms": "Banheiro portátil" }, "amenity/townhall": { - "name": "Paço Municipal ou Prefeitura", + "name": "Paço municipal ou prefeitura", "terms": "Prefeitura" }, "amenity/townhall/city": { - "name": "Câmara Municipal", + "name": "Câmara municipal", "terms": "Câmara Municipal" }, "amenity/toy_library": { @@ -894,7 +919,7 @@ "terms": "Biblioteca de brinquedos" }, "amenity/university": { - "name": "Universidade ou Faculdade", + "name": "Universidade ou faculdade", "terms": "Área de Universidade, Faculdade, Área de Faculdade, Centro Universitário" }, "amenity/vacuum_cleaner": { @@ -906,7 +931,7 @@ "terms": "Inspeção veicular" }, "amenity/vending_machine": { - "name": "Máquina de Venda", + "name": "Máquina de venda", "terms": "Totem de vendas, Máquina de Venda Automática, Dispenser, Máquina Automática de Vendas" }, "amenity/vending_machine/bottle_return": { @@ -918,30 +943,30 @@ "terms": "Máquina de venda automática de pão" }, "amenity/vending_machine/cigarettes": { - "name": "Máquina de Venda de Cigarros", + "name": "Máquina de venda de cigarros", "terms": "cigarro, venda de cigarro" }, "amenity/vending_machine/coffee": { - "name": "Máquina de Venda de Café" + "name": "Máquina de venda de café" }, "amenity/vending_machine/condoms": { - "name": "Máquina de Venda de Preservativos", + "name": "Máquina de venda de preservativos", "terms": "máquina de venda de camisinhas, preservativos, camisinha" }, "amenity/vending_machine/drinks": { - "name": "Máquina de Venda de Bebidas", + "name": "Máquina de venda de bebidas", "terms": "Máquina de Venda de Bebidas, máquina de refrigerante, refrigerante, lata, latinha" }, "amenity/vending_machine/eggs": { - "name": "Máquina de venda automática de ovos", + "name": "Máquina de venda de ovos", "terms": "Máquina de venda automática de ovos" }, "amenity/vending_machine/electronics": { - "name": "Máquina de Venda de Eletrônicos", + "name": "Máquina de venda de eletrônicos", "terms": "Máquina de venda automática de eletrônicos" }, "amenity/vending_machine/elongated_coin": { - "name": "Máquina de Venda de Moedas Achatadas", + "name": "Máquina de venda de moedas achatadas", "terms": "Máquina de venda automática de moedas" }, "amenity/vending_machine/excrement_bags": { @@ -949,27 +974,27 @@ "terms": "Dispensador de saco de excrementos" }, "amenity/vending_machine/feminine_hygiene": { - "name": "Máquina de Vendas - Higiene Feminina", + "name": "Máquina de vendas de higiene feminina", "terms": "produtos de higiene feminina, camisinha, preservativo, absorvente, tampão, cuidados pessoais, higiene, mulher" }, "amenity/vending_machine/food": { - "name": "Máquina de Venda de Comida", + "name": "Máquina de venda de comida", "terms": "Máquina de venda automática de alimentos" }, "amenity/vending_machine/fuel": { - "name": "Bomba de Gasolina", + "name": "Bomba de gasolina", "terms": "bomba de gasolina,bomba de combustível,bomba de diesel,gasolina,combustível,propano,diesel,biodiesel" }, "amenity/vending_machine/ice_cream": { - "name": "Máquina de Venda de Sorvete", + "name": "Máquina de venda de sorvete", "terms": "Máquina de venda automática de sorvetes" }, "amenity/vending_machine/ice_cubes": { - "name": "Máquina de venda automática de gelo", + "name": "Máquina de venda de gelo", "terms": "Máquina de venda automática de gelo" }, "amenity/vending_machine/newspapers": { - "name": "Máquina de Venda de Jornais", + "name": "Máquina de venda de jornais", "terms": "jornais, revistas, venda de jornal, notícia, banca de jornal, periódicos, tabloides" }, "amenity/vending_machine/parcel_pickup": { @@ -985,15 +1010,15 @@ "terms": "máquina de vendas de bilhete de estacionamento, carro, bilhete de estacionamento" }, "amenity/vending_machine/public_transport_tickets": { - "name": "Máquina de Vendas de Bilhete de Transporte", + "name": "Máquina de vendas de bilhete de transporte", "terms": "Transporte público, ônibus, Trem, Metrô, Ticket, Bilhete" }, "amenity/vending_machine/stamps": { - "name": "Máquina de Venda de Selos", + "name": "Máquina de venda de selos", "terms": "Máquina de venda automática de postagem" }, "amenity/vending_machine/sweets": { - "name": "Máquina de Venda de Lanches", + "name": "Máquina de venda de lanches", "terms": "salgados, doces, petiscos, salgadinhos, snacks, chicletes, biscoitos, balas" }, "amenity/veterinary": { @@ -1013,11 +1038,11 @@ "terms": "lixo, resíduos, container de lixo" }, "amenity/waste_transfer_station": { - "name": "Estação de Transferência de Resíduos", + "name": "Estação de transferência de resíduos", "terms": "Transferência de lixo, Dejetos" }, "amenity/water_point": { - "name": "Torneira de Água Potável", + "name": "Torneira de água potável", "terms": "Água potável, Abastecimento" }, "amenity/watering_place": { @@ -1048,7 +1073,7 @@ "terms": "Cerca de animal" }, "attraction/big_wheel": { - "name": "Roda Gigante", + "name": "Roda gigante", "terms": "roda panorâmica, parque de diversões, brinquedo, parque temático" }, "attraction/bumper_car": { @@ -1064,11 +1089,11 @@ "terms": "maxambomba, trivoli, parque de diversões, cavalos" }, "attraction/dark_ride": { - "name": "Trem Fantasma", + "name": "Trem fantasma", "terms": "brinquedo, parque de diversões, terror, medo" }, "attraction/drop_tower": { - "name": "Torre de Queda Livre", + "name": "Torre de queda livre", "terms": "1" }, "attraction/kiddie_ride": { @@ -1091,7 +1116,7 @@ "terms": "Passeio pelas corredeiras do rio" }, "attraction/roller_coaster": { - "name": "Montanha Russa", + "name": "Montanha russa", "terms": "brinquedo, trem, trilhos, parque de diversão, parque de diversões, parque temático, aventura" }, "attraction/summer_toboggan": { @@ -1103,7 +1128,7 @@ "terms": "Carrossel de giro" }, "attraction/train": { - "name": "Trem Turístico", + "name": "Trem turístico", "terms": "parque temático, caminhão trem, trem da alegria, trem de passeio, trem para turismo" }, "attraction/water_slide": { @@ -1143,7 +1168,7 @@ "terms": "muralha, muro, parede" }, "barrier/cycle_barrier": { - "name": "Barreira para Bicicletas", + "name": "Barreira para bicicletas", "terms": "barreira para bicicletas, bloqueio para bicicletas" }, "barrier/ditch": { @@ -1154,7 +1179,7 @@ "name": "Entrada" }, "barrier/fence": { - "name": "Cerca ou Grade", + "name": "Cerca ou grade", "terms": "cerca, grade" }, "barrier/fence/railing": { @@ -1170,7 +1195,7 @@ "terms": "Mureta" }, "barrier/hedge": { - "name": "Cerca Viva", + "name": "Cerca viva", "terms": "Cerca viva" }, "barrier/height_restrictor": { @@ -1202,11 +1227,11 @@ "terms": "Porteira Giratória, quebra cabeça, quebra costela, passa um, passador, imbricação" }, "barrier/lift_gate": { - "name": "Cancela Elevatória", + "name": "Cancela elevatória", "terms": "cancela, barreira elevatória" }, "barrier/retaining_wall": { - "name": "Muro de Contenção", + "name": "Muro de contenção", "terms": "parede de retenção, barreira de retenção" }, "barrier/sally_port": { @@ -1218,15 +1243,15 @@ "terms": "Faixa de espigão, Espigões de trânsito, Picador de pneus,Ferrões, Ferrão, Dispositivo de esvaziamento de pneus" }, "barrier/stile": { - "name": "Travessia em Cerca/Muro", - "terms": "Passagem Fixa por Barreira" + "name": "Travessia em cerca/muro", + "terms": "Passagem fixa por barreira" }, "barrier/swing_gate": { "name": "Balanço de portão", "terms": "Balanço de portão" }, "barrier/toll_booth": { - "name": "Cabine de Pedágio", + "name": "Cabine de pedágio", "terms": "Pedágio" }, "barrier/turnstile": { @@ -1245,7 +1270,7 @@ "name": "Limite" }, "boundary/administrative": { - "name": "Limite Administrativo", + "name": "Limite administrativo", "terms": "Fronteira Administrativa, Limite Administrativo, Divisa" }, "bridge/support": { @@ -1296,7 +1321,7 @@ "terms": "Igreja, Edificação de Capela, Prédio de Capela, Capela, Lugar de Adoração, Religião, templo" }, "building/church": { - "name": "Edifício de Igreja", + "name": "Edifício de igreja", "terms": "Edifício de Igreja, igreja, paróquia, lugar de adoração, templo, capela, catedral, prédio de igreja" }, "building/civic": { @@ -1304,7 +1329,7 @@ "terms": "edifício cívico" }, "building/college": { - "name": "Edifício de Escola Técnica", + "name": "Edifício de escola técnica", "terms": "Colégio técnico, Ensino profissionalizante, Educação profissional, prédio de escola técnica" }, "building/commercial": { @@ -1335,7 +1360,7 @@ "terms": "Casa de fazenda" }, "building/farm_auxiliary": { - "name": "Edifício da Fazenda", + "name": "Edifício de fazenda", "terms": "Edifício da Fazenda" }, "building/garage": { @@ -1379,7 +1404,7 @@ "terms": "Cabana" }, "building/industrial": { - "name": "Edifício Industrial", + "name": "Edifício industrial", "terms": "Edifício Industrial, prédio industrial" }, "building/kindergarten": { @@ -1403,7 +1428,7 @@ "terms": "Edifício Público, prédio público" }, "building/residential": { - "name": "Edifício Residencial", + "name": "Edifício residencial", "terms": "Edifício Residencial, prédio residencial, apartamentos, condomínio" }, "building/retail": { @@ -1415,7 +1440,7 @@ "terms": "Telhado, Cobertura, teto" }, "building/ruins": { - "name": "Edifício em Ruínas", + "name": "Edifício em ruínas", "terms": "ruínas, edifício abandonado" }, "building/school": { @@ -1439,11 +1464,11 @@ "terms": "Estábulo" }, "building/stadium": { - "name": "Edifício de Estádio", + "name": "Edifício de estádio", "terms": "estádio, esportes, ginásio de esportes" }, "building/static_caravan": { - "name": "Casa Transportável", + "name": "Casa transportável", "terms": "Casa Transportável" }, "building/sty": { @@ -1455,7 +1480,7 @@ "terms": "Templo, igreja, lugar de adoração, capela, local sagrado" }, "building/terrace": { - "name": "Fileira de Casas", + "name": "Fileira de casas", "terms": "Fileira de Casas" }, "building/train_station": { @@ -1466,7 +1491,7 @@ "terms": "Edifício de transporte" }, "building/university": { - "name": "Edifício Universitário", + "name": "Edifício universitário", "terms": "Edifício Universitário, Faculdade, Edifício de Faculdade, prédio universitário, bloco universitário, prédio de faculdade, prédio de universidade, edifício de universidade" }, "building/warehouse": { @@ -1509,7 +1534,7 @@ "terms": "Serralheiro, Ferreiro" }, "craft/boatbuilder": { - "name": "Fabricante de Barcos", + "name": "Fabricante de barcos", "terms": "Barcos, Estaleiro, Veleiro" }, "craft/bookbinder": { @@ -1525,7 +1550,7 @@ "terms": "Carpinteiro, Marceneiro, marcenaria, Carpintaria" }, "craft/carpet_layer": { - "name": "Instalador de Carpete", + "name": "Instalador de carpete", "terms": "Colocador de Carpete, instalação" }, "craft/caterer": { @@ -1533,7 +1558,7 @@ "terms": "Fornecedor de Mantimentos, Aprovisionador, cozinheiro, encomenda, marmita, PF, refeição," }, "craft/chimney_sweeper": { - "name": "Limpador de Chaminé", + "name": "Limpador de chaminé", "terms": "limpador de chaminés, limpeza de chaminés, chaminés" }, "craft/cleaning": { @@ -1614,7 +1639,7 @@ "terms": "Fotógrafo" }, "craft/photographic_laboratory": { - "name": "Laboratório Fotográfico", + "name": "Laboratório fotográfico", "terms": "Laboratório Fotográfico" }, "craft/plasterer": { @@ -1634,7 +1659,7 @@ "terms": "Rigger" }, "craft/roofer": { - "name": "Reparador de Telhados", + "name": "Reparador de telhados", "terms": "Telheiro" }, "craft/saddler": { @@ -1642,7 +1667,7 @@ "terms": "Seleiro" }, "craft/sailmaker": { - "name": "Fabricante de Velas Náuticas", + "name": "Fabricante de velas náuticas", "terms": "Veleiro" }, "craft/sawmill": { @@ -1650,7 +1675,7 @@ "terms": "Serraria" }, "craft/scaffolder": { - "name": "Montador de Andaimes", + "name": "Montador de andaimes", "terms": "Montador de Andaimes" }, "craft/sculptor": { @@ -1689,7 +1714,7 @@ "terms": "Relógios, Relojoaria, relógio de pulso, Conserto de relógios, Reparos de relógios" }, "craft/window_construction": { - "name": "Fabricante de Janelas", + "name": "Fabricante de janelas", "terms": "Janeleiro" }, "craft/winery": { @@ -1703,6 +1728,9 @@ "demolished/building": { "name": "Edifício recentemente demolido" }, + "disused/amenity": { + "name": "Amenidade em desuso" + }, "disused/railway": { "name": "Recurso ferroviário em desuso" }, @@ -1713,10 +1741,10 @@ "name": "Aterro Elevado" }, "emergency": { - "name": "Recurso de Emergência" + "name": "Recurso de emergência" }, "emergency/ambulance_station": { - "name": "Posto de Ambulâncias", + "name": "Posto de ambulâncias", "terms": "Primeiros socorros, Parada de Ambulâncias, Garagem de Ambulâncias" }, "emergency/defibrillator": { @@ -1727,7 +1755,7 @@ "name": "Acesso de Emergência Designado" }, "emergency/destination": { - "name": "Acesso de Emergência como Destino" + "name": "Acesso de emergência como destino" }, "emergency/fire_alarm": { "name": "Caixa de chamada de alarme de incêndio", @@ -1769,10 +1797,10 @@ "name": "Acesso de Emergência Não Permitido" }, "emergency/official": { - "name": "Acesso de Emergência Oficial" + "name": "Acesso de emergência oficial" }, "emergency/phone": { - "name": "Telefone de Emergência", + "name": "Telefone de emergência", "terms": "Telefone de Emergência" }, "emergency/private": { @@ -1809,7 +1837,7 @@ "name": "Vau" }, "golf/bunker": { - "name": "Banco de Areia", + "name": "Banco de areia", "terms": "Bunker, Banco de Areia, Banca de Areia, Poça de Areia, Obstáculo de Areia" }, "golf/cartpath": { @@ -1857,7 +1885,7 @@ "terms": "posto de saúde, Unidade de Pronto Atendimento, Unidade Básica de Saúde, enfermaria, clínica, doutor, consultório médico, serviços médicos, serviço médico, serviço de saúde, atendimento médico, médico, médica, saúde, hospital, dentista, fisioterapia" }, "healthcare/alternative": { - "name": "Medicina Alternativa", + "name": "Medicina alternativa", "terms": "acupuntura, antroposofia, cinesiologia aplicada, aromaterapia, ayurveda, homeopatia, hidroterapia, hipnose, naturopatia, osteopatia, reflexologia, reiki, shiatsu, tradicional, tuiná, unani" }, "healthcare/alternative/chiropractic": { @@ -1869,7 +1897,7 @@ "terms": "audiólogo, fonoaudiólogo, ouvido, audição" }, "healthcare/birthing_center": { - "name": "Casa de Parto", + "name": "Casa de parto", "terms": "Centro de Parto Normal, Maternidade, Parto normal, parteira, obstetrícia, nascimento, hospital, clínica, saúde, bebê, infantil" }, "healthcare/blood_donation": { @@ -3109,6 +3137,10 @@ "name": "Torre de comunicação", "terms": "Torre de comunicação" }, + "man_made/tower/cooling": { + "name": "Torre de refrigeração", + "terms": "Torre de refrigeração" + }, "man_made/tower/defensive": { "name": "Torre fortificada", "terms": "Torre fortificada" @@ -3157,6 +3189,10 @@ "name": "Moinho de Vento", "terms": "moinho de vento, eólico, moinho, catavento" }, + "man_made/windpump": { + "name": "Moinho de vento", + "terms": "Moinho de vento" + }, "man_made/works": { "name": "Fábrica", "terms": "Fábrica, Planta de produção, chão de fábrica," @@ -3244,6 +3280,10 @@ "name": "Urzal", "terms": "Urzal, vegetação, arbustos, charneca" }, + "natural/hot_spring": { + "name": "Fonte termal", + "terms": "Fonte termal" + }, "natural/mud": { "name": "Lama", "terms": "solo, lamaçal, mangue, lama, cobertura de solo" @@ -3830,6 +3870,10 @@ "name": "Ponto de Ônibus", "terms": "Ponto de Ônibus, Parada de Ônibus" }, + "public_transport/platform/bus_tram_point": { + "name": "Ponto de bonde e ônibus", + "terms": "Ponto de bonde e ônibus" + }, "public_transport/platform/ferry": { "name": "Plataforma de Balsa", "terms": "Plataforma de Balsa" @@ -4920,6 +4964,10 @@ "name": "Painel de Informações", "terms": "Painel de Informações Turísticas" }, + "tourism/information/board/welcome_sign": { + "name": "Placa de boas vindas", + "terms": "Placa de boas vindas" + }, "tourism/information/guidepost": { "name": "Poste de Sinalização", "terms": "Poste de Informações Turísticas" @@ -5033,22 +5081,10 @@ "name": "Sinal de limite de cidade", "terms": "Sinal de limite de cidade" }, - "traffic_sign/city_limit_vertex": { - "name": "Sinal de limite de cidade", - "terms": "Sinal de limite de cidade" - }, "traffic_sign/maxspeed": { "name": "Sinal de limite de velocidade", "terms": "Sinal de limite de velocidade" }, - "traffic_sign/maxspeed_vertex": { - "name": "Sinal de limite de velocidade", - "terms": "Sinal de limite de velocidade" - }, - "traffic_sign_vertex": { - "name": "Sinal de trânsito", - "terms": "Sinal de trânsito" - }, "type/boundary": { "name": "Fronteira", "terms": "Fronteira" @@ -5137,8 +5173,8 @@ "terms": "Rota de Barco, Rota de Ferry, Ferry Boat" }, "type/route/foot": { - "name": "Rota de Pedestres", - "terms": "Rota de Caminhada" + "name": "Percurso de pedestre", + "terms": "Percurso de pedestre" }, "type/route/hiking": { "name": "Rota de Caminhada", diff --git a/app/src/main/assets/osmfeatures/pt.json b/app/src/main/assets/osmfeatures/pt.json index 02ab7f50fd..43102a0d85 100644 --- a/app/src/main/assets/osmfeatures/pt.json +++ b/app/src/main/assets/osmfeatures/pt.json @@ -212,10 +212,18 @@ "name": "Jardim de cerveja", "terms": "Jardim da Cerveja, esplanada,biergarten" }, + "amenity/binoculars": { + "name": "Binóculo panorâmico", + "terms": "miradouro,mirante,viewpoint,vista,panorâmica,telescópio,óculo,binóculos,observação,paisagem" + }, "amenity/boat_rental": { "name": "Aluguer de barcos", "terms": "boat rental, aluguer de barcos, aluguer, locação, barco, barcos, aluga, aluga-se" }, + "amenity/boat_storage": { + "name": "Depósito de barcos", + "terms": "barco,embarcação,embarcações,doca seca" + }, "amenity/bureau_de_change": { "name": "Agência de câmbio", "terms": "currency exchange, troca de dinheiro, câmbio, cambiar, cambista, dinheiro" @@ -268,7 +276,7 @@ "terms": "filme, filmes, cinema,hollywood" }, "amenity/clinic": { - "name": "Centro Clínico", + "name": "Centro de saúde / Clínica", "terms": "Clinic, Clínica, Centro de Saúde, Unidade de Saúde, Posto de Saúde, Unidade de Saúde Familiar, USF, Agrupamento de Centros de Saúde, ASF, Unidade Local de Saúde, Unidade Básica de Saúde, UBS,urgências,posto médico," }, "amenity/clinic/abortion": { @@ -487,6 +495,10 @@ "name": "Cais de carga", "terms": "Cargas,descargas,cargas e descargas,carregamento,doca de carga, carga rodoviária, descarga rodoviária" }, + "amenity/lounger": { + "name": "Espreguiçadeira", + "terms": "camilha,preguiceira,cama,recosto,lounger" + }, "amenity/love_hotel": { "name": "Motel para casais", "terms": "Motel" @@ -503,6 +515,10 @@ "name": "Serviço de transferência de dinheiro", "terms": "transferência de dinheiro, transferir dinheiro, envio de dinheiro, Western Union, MoneyGram, enviar dinheiro" }, + "amenity/mortuary": { + "name": "Morgue", + "terms": "necrotério,médico-legista" + }, "amenity/motorcycle_parking": { "name": "Parque de motas", "terms": "Estacionamento para motas, estacionamento para motociclos, estacionamento, motas,motociclos,parque de estacionamento,estacionar" @@ -1974,8 +1990,8 @@ "terms": "passadeira levantada, passadeira elevada,lomba,travessia,pedestre,peões" }, "highway/crossing/unmarked": { - "name": "Travessia sem marcas", - "terms": "passagem de pedestres não marcada, passadeira não marcada, passadeira sem marcas,atravessamento,pedestre,peões,passadeira" + "name": "Travessia sem marcações", + "terms": "passagem de pedestres não marcada, passadeira não marcada, passadeira sem marcas,atravessamento,pedestre,peões,passadeira,faixa de segurança" }, "highway/crossing/unmarked-raised": { "name": "Passadeira não marcada (elevada)", @@ -3125,6 +3141,10 @@ "name": "Torre de comunicação", "terms": "torre de telecomunicações, radiodifusão, antena, telefone celular, telefone móvel, torre, rádio, mastro de transmissão, pilão de transmissão,televisão,telecomunicações,telecomunicação,transmissão" }, + "man_made/tower/cooling": { + "name": "Torre de refrigeração", + "terms": "energia,vapor,calor,central,elétrica,arrefecimento,esfriamento,arrefecer,esfriar,nuclear" + }, "man_made/tower/defensive": { "name": "Torre fortificada", "terms": "fortified tower, bergfried, fortified defensive tower, keep, donjon, torre fortificada, torre da cerca, torre de menagem, torre de atalaia,baluarte,castelo" @@ -3173,6 +3193,10 @@ "name": "Moinho de vento", "terms": "Windmill,moinho,mó,vento,cereais" }, + "man_made/windpump": { + "name": "Bomba eólica", + "terms": "aerotor,bomba de água,moinho de vento,moinho eólico,vento,poço,catavento,bombear,bombeamento,torre,petróleo,gás" + }, "man_made/works": { "name": "Fábrica", "terms": "indústria,manofatura,manofaturação,fabrico,fabricar,works,edifício,refinaria,estrutura,fabricação,produção" @@ -3260,6 +3284,10 @@ "name": "Charneca", "terms": "heath,vegetação,urze,torga,quiroga,queiró,magoriça,tojal,urzal,plantas,área,zona,gândara,esteva,giestas,tojo" }, + "natural/hot_spring": { + "name": "Fonte termal", + "terms": "nascente,geotermal,geotérmica,geotermismo,água termal," + }, "natural/mud": { "name": "Lama", "terms": "terra molhada, lama, lamaçal, lameiros, lameiro, lameirão, lameirões, lamacento, lamacenta" @@ -3481,7 +3509,7 @@ }, "office/government": { "name": "Escritório governamental", - "terms": "government office, governo, estado, segurança social, dgv, instituto de emprego, instituto do emprego, centro de emprego, direcção-geral, direção-geral, çoja do cidadão" + "terms": "government office, governo, estado, segurança social, dgv, instituto de emprego, instituto do emprego, centro de emprego, direcção-geral, direção-geral, loja do cidadão" }, "office/government/prosecutor": { "name": "Gabinete de procuradoria", @@ -3846,6 +3874,10 @@ "name": "Paragem de autocarro", "terms": "paragem, paragem de autocarro, embarque, autocarro, machimbombo, toca-toca, otocarro, microlete, camionete, camioneta, carreira, ônibus" }, + "public_transport/platform/bus_tram_point": { + "name": "Paragem de autocarro e elétrico", + "terms": "autocarro,carreira,ônibus,parada,transporte,bonde" + }, "public_transport/platform/ferry": { "name": "Plataforma de ferry", "terms": "plataforma, ferry, paragem, estação de ferry, barco, atracadouro, atracagem, atracar, embarque, embarcar,travessia" @@ -4078,7 +4110,7 @@ "name": "Estação ferroviária" }, "railway/subway": { - "name": "Metropolitano", + "name": "Linha de metro", "terms": "metro, metropolitano, subterrâneo,subway,transportes públicos,carris,linha férrea,caminhos-de-ferro,caminhos de ferro,ferrovia" }, "railway/subway_entrance": { @@ -4938,6 +4970,10 @@ "name": "Painel de informação", "terms": "placa de informação, informação, informações, painel, placar, placard, placa, painel informativo,informações,turísticas,turismo,mapa,indicações,orientações" }, + "tourism/information/board/welcome_sign": { + "name": "Placa de boas-vindas", + "terms": "placard,board,outdoor,boas-vindas,bem-vindos,recepção,receção" + }, "tourism/information/guidepost": { "name": "Poste com direções", "terms": "poste de direções, poste com direções, poste com direções, direção, direção, direções, direções, sinalética, sinalética direções, destinos,indicações" @@ -5054,22 +5090,10 @@ "name": "Placa de limite de povoação", "terms": "limite da cidade, cidade, aldeia, borda, fim da cidade, início da cidade,rodoviária,estrada" }, - "traffic_sign/city_limit_vertex": { - "name": "Placa de limite de povoação", - "terms": "limite da cidade, cidade, aldeia, borda, fim da cidade, início da cidade,rodoviária,estrada" - }, "traffic_sign/maxspeed": { "name": "Sinal de limite de velocidade", "terms": "velocidade máxima, limite de velocidade,estrada,rodoviária" }, - "traffic_sign/maxspeed_vertex": { - "name": "Sinal de limite de velocidade", - "terms": "velocidade máxima, limite de velocidade,estrada,rodoviária" - }, - "traffic_sign_vertex": { - "name": "Sinal de trânsito", - "terms": "sinais de trânsito, sinal de estrada, sinalização,sinal rodoviário" - }, "type/boundary": { "name": "Fronteira", "terms": "limite,orla,divisão" @@ -5159,7 +5183,7 @@ }, "type/route/foot": { "name": "Rota pedestre", - "terms": "rota pedonal, percurso pedestre, percurso pedonal, circuito pedonal, peão" + "terms": "rota pedonal,percurso pedestre,percurso pedonal,circuito pedonal,circuito pedestre,percurso recomendado,pequena rota,grande rota,trekking,trail" }, "type/route/hiking": { "name": "Rota de caminhada", diff --git a/app/src/main/assets/osmfeatures/ru.json b/app/src/main/assets/osmfeatures/ru.json index 6ad18af022..c1c78a6c87 100644 --- a/app/src/main/assets/osmfeatures/ru.json +++ b/app/src/main/assets/osmfeatures/ru.json @@ -2154,10 +2154,12 @@ "terms": "Водозабор" }, "man_made/watermill": { - "name": "Водяная мельница" + "name": "Водяная мельница", + "terms": "вода,мельница,колесо" }, "man_made/windmill": { - "name": "Ветряная мельница" + "name": "Ветряная мельница", + "terms": "Ветер,мельница" }, "man_made/works": { "name": "Завод", @@ -2234,6 +2236,9 @@ "name": "Дикий кустарник", "terms": "Кустарник, Кусты, Кустовник, Подлесок, Лозняк, Чапыжник" }, + "natural/shrub": { + "name": "Куст" + }, "natural/spring": { "name": "Родник", "terms": "Ручей, Ключ, источник" @@ -2257,10 +2262,22 @@ "name": "Водоём", "terms": "Вода, Водоём" }, + "natural/water/basin": { + "name": "Бассейн", + "terms": "дренаж,переток,дождь,канава" + }, + "natural/water/canal": { + "name": "Канал", + "terms": "Судоходный канал, оросительный канал" + }, "natural/water/lake": { "name": "Озеро", "terms": "озеро" }, + "natural/water/moat": { + "name": "Ров", + "terms": "защитный ров,канава" + }, "natural/water/pond": { "name": "Пруд", "terms": "пруд" @@ -2269,6 +2286,18 @@ "name": "Водохранилище", "terms": "Водохранилище, Рукотворное озеро, Водоместилище," }, + "natural/water/river": { + "name": "Река", + "terms": "река,русло" + }, + "natural/water/stream": { + "name": "Ручей", + "terms": "Ручей,русло,поток" + }, + "natural/water/wastewater": { + "name": "Пруд отстойник", + "terms": "нечистоты, канализация, водоочистка, водосток, отстойник" + }, "natural/wetland": { "name": "Болото", "terms": "болото, заболоченная территория" @@ -3523,18 +3552,9 @@ "traffic_sign/city_limit": { "name": "Знак населённый пункт" }, - "traffic_sign/city_limit_vertex": { - "name": "Знак населённый пункт" - }, "traffic_sign/maxspeed": { "name": "Знак ограничения скорости" }, - "traffic_sign/maxspeed_vertex": { - "name": "Знак ограничения скорости" - }, - "traffic_sign_vertex": { - "name": "Дорожный знак" - }, "type/boundary": { "name": "Граница", "terms": "Граница" @@ -3598,10 +3618,6 @@ "name": "Паромный маршрут", "terms": "паром, паромная переправа" }, - "type/route/foot": { - "name": "Пешеходный маршрут", - "terms": "Пеший маршрут, Пешеходный маршрут" - }, "type/route/hiking": { "name": "Маршрут пешего туризма", "terms": "туризм, туристическая прогулка, маршрут" diff --git a/app/src/main/assets/osmfeatures/sk.json b/app/src/main/assets/osmfeatures/sk.json index b3b1e44356..bda3ce4771 100644 --- a/app/src/main/assets/osmfeatures/sk.json +++ b/app/src/main/assets/osmfeatures/sk.json @@ -3095,18 +3095,9 @@ "traffic_sign/city_limit": { "name": "Značka začiatku/konca obce" }, - "traffic_sign/city_limit_vertex": { - "name": "Značka začiatku/konca obce" - }, "traffic_sign/maxspeed": { "name": "Značka obmedzenia rýchlosti" }, - "traffic_sign/maxspeed_vertex": { - "name": "Značka obmedzenia rýchlosti" - }, - "traffic_sign_vertex": { - "name": "Dopravná značka" - }, "type/boundary": { "name": "Hranica", "terms": "hranica,štátna hranica,statna hranica,kraj,okres" @@ -3173,10 +3164,6 @@ "name": "Trajektová trasa", "terms": "Trajektova trasa,trajekt,linka,linka trajektu,trasa kompy" }, - "type/route/foot": { - "name": "Turistická trasa", - "terms": "turisticka trasa,pesia trasa,pešia trasa" - }, "type/route/hiking": { "name": "Turistická trasa", "terms": "turisticka trasa,hiking,trekking,trasa,trek,tura,túra,turistika" diff --git a/app/src/main/assets/osmfeatures/sv.json b/app/src/main/assets/osmfeatures/sv.json index 45bc04a7ed..b896924bb6 100644 --- a/app/src/main/assets/osmfeatures/sv.json +++ b/app/src/main/assets/osmfeatures/sv.json @@ -212,10 +212,18 @@ "name": "Ölträdgård", "terms": "ölträdgård, Biergarten, uteservering, servering, ölcafé, utecafé, trädgårdspub, utepub, pub, öl, sprit, utebar, trädgårdsbar, bar, krog" }, + "amenity/binoculars": { + "name": "Fast monterad kikare", + "terms": "Fast monterad kikare, kikare, teleskop, utsikt" + }, "amenity/boat_rental": { "name": "Båtuthyrning", "terms": "Båtuthyrning, båtlån, båtleasing, lånebåt, hyrbåt" }, + "amenity/boat_storage": { + "name": "Båtförvaring", + "terms": "Båtförvaring, båthus, torrdocka, marina, båtuppställning, uppställning, båt" + }, "amenity/bureau_de_change": { "name": "Växlingskontor", "terms": "Växlingskontor, växling, valuta, pengar, pengaväxling, resecheckar, pengaväxlare" @@ -487,6 +495,10 @@ "name": "Lastkaj", "terms": "lastkaj, lastbrygga, gods, lastning, utlastning, inlastning, dörr, frakt, fraktbrygga, lagerhus, lager" }, + "amenity/lounger": { + "name": "Solstol(ar)", + "terms": "Solstolar, stolar, bänkar, solning, soldäck" + }, "amenity/love_hotel": { "name": "Kärlekshotell", "terms": "Kärlekshotell, sexhotell, korttidshotell, hotell" @@ -503,6 +515,10 @@ "name": "Pengaöverföring", "terms": "Pengaöverföring, pengar, valuta, valutaöverföring, räkning, faktura, betalning, finans, kontanter, betalning, utbetalning, inbetalning" }, + "amenity/mortuary": { + "name": "Bårhus", + "terms": "bårhus, likbod, krematorium, begravningsbyrå, minneshem, begravningsplats, likförvaring, död, lik" + }, "amenity/motorcycle_parking": { "name": "Motorcykelparkering", "terms": "Motorcykelparkering, parkering motorcykel, ställplats, motorcykelställ, parkering, motorcykel, parkeringsplats, parkeringsplats motorcykel" @@ -1223,18 +1239,38 @@ "name": "Stödmur", "terms": "Stödmur, nivåskillnad" }, + "barrier/sally_port": { + "name": "Befäst entréport", + "terms": "Befäst entréport, borgport, slottsport, entréport, entré, port" + }, + "barrier/spikes": { + "name": "Spikremsa", + "terms": "Spikremsa, spikmatta, enkelriktning, stingers, stopppinnar, däckdeflationsanordning, däckförstörare, trafikspikar" + }, "barrier/stile": { "name": "Övergång", "terms": "Övergång, trappa" }, + "barrier/swing_gate": { + "name": "Svänggrind", + "terms": "Svänggrind, grind, bom, spärr, avspärrning" + }, "barrier/toll_booth": { "name": "Tullstation", "terms": "Tullstation, införselavgift, importavgift, skatt, tullhus, tullmyndighet, gränstull, tullkontroll, tullvisitation, vägavgift" }, + "barrier/turnstile": { + "name": "Vändkors", + "terms": "Vändkors, spärr, spärrkors" + }, "barrier/wall": { "name": "Mur", "terms": "Mur, vägg, murverk, skyddsvärn, befästning, hinder, barriär" }, + "barrier/wall/noise_barrier": { + "name": "Ljudbarriär", + "terms": "Ljudbarriär, akustisk barriär, ljudvägg, ljudhinder, akustiskt hinder, bullerskärm, bullerhinder, ljud, buller, akustik" + }, "boundary": { "name": "Gräns" }, @@ -1309,6 +1345,10 @@ "name": "Byggnad under uppförande", "terms": "Byggnad under konstruktion, Byggnad under uppförande, byggarbete, bygge, byggarbetsplats, byggnation, byggnadsplats" }, + "building/cowshed": { + "name": "Kostall", + "terms": "Ladugård, kostall, kalvar, kvigor, ko, tjurar, mjölk, mjölkstall" + }, "building/detached": { "name": "Fristående hus", "terms": "Villa, hus, småhus, enfamiljshus, enbostadshus, kåk, egnahem, fristående hus, friliggande hus, envåningshus, fristående villa, friliggande villa" @@ -1345,7 +1385,8 @@ "terms": "växthus, drivhus, orangeri, driveri, vinterträdgård, växtodling, blomsterhus, odlingshus" }, "building/hangar": { - "name": "Hangar" + "name": "Hangar", + "terms": "Hangarbyggnad, hangar, flyg, flygplan, flyggarage" }, "building/hospital": { "name": "Sjukhusbyggnad", @@ -1435,6 +1476,10 @@ "name": "Villavagn", "terms": "Villavagn, husvagn, campingvagn" }, + "building/sty": { + "name": "Svinstia", + "terms": "Svinstia, stia, svin, gris, sugga, kulting, bås, grisbås, grislada, grisladugård, svinladugård" + }, "building/temple": { "name": "Tempelbyggnad", "terms": "Tempelbyggnad, tempel, andaktsrum, bönhus, bönehus, böneplats, dyrkan, fristad, gud, guds hus, gudshus, helgedom, mission, religion, religiös, religiös anläggning, religiöst område, tempelområde, tillbedjan, tro" @@ -1477,6 +1522,10 @@ "name": "Hantverk", "terms": "Hantverk, skrå, slöjd, hantverkare" }, + "craft/agricultural_engines": { + "name": "Jordbruksmekaniker", + "terms": "Jordbruksmekaniker, Jordbruksmaskiner, skördetröskor, lantbruksmaskiner, skördare, traktorer, mekaniker, motormekaniker, jordbruk" + }, "craft/basket_maker": { "name": "Korgtillverkare", "terms": "Korgtillverkare, korg, korgtillverkning, korgflätning, Korgslöjd" @@ -1557,10 +1606,22 @@ "name": "Glasmästare", "terms": "glasblåsare, fönster, solskydd, glaskonst, glas, målat glas" }, + "craft/handicraft": { + "name": "Hantverksverkstad", + "terms": "Hantverksverkstad, Hantverkare, hantverk, konsthantverk, slöjd, handarbete, hantverk, snideri, sömnad, hemslöjd, vävning, textil, vävstuga, snickeri" + }, + "craft/hvac": { + "name": "Arbetsplats för värme, ventilation och luftkonditionering", + "terms": "HVAC, VVS, rörmokare, värme, ventilation, sanitet, avlopp, vatten, vattenförsörjning, styrsystem, övervakningssystem, inomhusklimat, energiförsörjning, tryckluft, gas, sprinkler, uppvärmning, installationsteknik, kyla, luftkonditionering, air condition, ventilation, luftkonditionering, AC" + }, "craft/insulator": { "name": "Isolering", "terms": "Isolering, isolerare, isolationsmaterial, värmeisolering, ljudisolering" }, + "craft/joiner": { + "name": "Finsnickare", + "terms": "Finsnickare, snickare, möbler, träarbetare, slöjd" + }, "craft/key_cutter": { "name": "Nyckeltillverkning", "terms": "Nyckeltillverkning, nyckel, nycklar, nyckelkopiering, nyckelring, nyckelringar, hänglås" @@ -1568,6 +1629,10 @@ "craft/locksmith": { "name": "Låssmed" }, + "craft/metal_construction": { + "name": "Metallarbete", + "terms": "Metallarbete, metallarbetare, kallbearbetning, metallindustri, svets, svetsare, svetsning" + }, "craft/painter": { "name": "Målare", "terms": "Målare, färg, målarmästare, måleri, måleriarbetare, lackering, penslar, tapeter, tapetserare, tapetsering" @@ -1629,7 +1694,8 @@ "terms": "Skomakare, skor" }, "craft/signmaker": { - "name": "Skyltmakare" + "name": "Skyltmakare", + "terms": "Skyltmakare, skyltar, skylttillverkare, neon, neonskyltar" }, "craft/stonemason": { "name": "Stenhuggare", @@ -1662,6 +1728,22 @@ "name": "Vinfabrik", "terms": "Vinfabrik, vineri, vinframställnig, vin, vinproduktion, Vinframställning" }, + "cycleway/asl": { + "name": "Cykelbox", + "terms": "Cykelbox, asl, cykelstopp, cykelstoppmarkering" + }, + "demolished/building": { + "name": "Nyligen riven byggnad" + }, + "disused/amenity": { + "name": "Oanvänd facilitet" + }, + "disused/railway": { + "name": "Oanvänt järnvägsobjekt" + }, + "disused/shop": { + "name": "Nedlagd affär" + }, "embankment": { "name": "Vägbank" }, @@ -1691,7 +1773,8 @@ "terms": "Brandsläckare, Brandpost, brand, vattenpost, brandsläckning, vattenpost, brandslang, eldsläckare, handbrandsläckare, skumsläckare, pulversläckare, vattensläckare, kolsyresläckare, koldioxidsläckare" }, "emergency/fire_hose": { - "name": "Brandslang" + "name": "Brandslang", + "terms": "Brandslang, brandpost, vattenpost, brandsläckning, brandsläckare, brand, eldsläckare" }, "emergency/fire_hydrant": { "name": "Brandpost", @@ -1701,6 +1784,10 @@ "name": "Första hjälpen", "terms": "Första hjälpen, första hjälpen kit, första hjälpen låda, förbandslåda, förband, bandage, plåster, plåster, sår, brännsår, sårvård" }, + "emergency/landing_site": { + "name": "Nödlandningsplats", + "terms": "Nödlandningsplats, helikopter, Helikopterplatta, Helipad" + }, "emergency/life_ring": { "name": "Livboj", "terms": "livboj, frälsarkrans, livräddningsboj, livräddning" @@ -1709,6 +1796,10 @@ "name": "Badvakt", "terms": "badvakt, livräddare, CPR, räddning, strandvakt, Lifeguard" }, + "emergency/mountain_rescue": { + "name": "Fjällräddning", + "terms": "fjällräddning, bergsräddning, räddning" + }, "emergency/no": { "name": "Åtkomst för utryckningsfordon – Nej" }, @@ -1741,6 +1832,10 @@ "name": "Nödutgång", "terms": "Nödutgång, branddörr, brandutgång, dörr, utgång" }, + "entrance/emergency_ward_entrance": { + "name": "Entré till akutmottagning", + "terms": "Entré till akutmottagning, akutmottagning, akuten, olycksmottagning, akutavdelning, ambulansmottagning" + }, "ford": { "name": "Vadställe", "terms": "Vadställe, vad, övergångsställe" @@ -1756,6 +1851,10 @@ "name": "Väg för golfbil", "terms": "golf, golfbana, Väg för golfbil, golfbil, gångväg, golfgångväg, stig, gång" }, + "golf/clubhouse": { + "name": "Golfklubbhus", + "terms": "Klubbhus, golfhus, fritid, golfklubbhus, golfklubb, kansli, golfkansli" + }, "golf/driving_range": { "name": "Driving Range", "terms": "golf, golfövning, driver, övning, Driving Range, drivingrange, driverang" @@ -1816,6 +1915,14 @@ "name": "Blodgivarcentral", "terms": "Blodgivarcentral, blodcentral, blodgivare, blodgivning, bloddonation, ge blod, donera blod, blodbank, blodtransfusion, aferes, plasmaferes, Plateletpheresis, stamcellsdonation" }, + "healthcare/counselling": { + "name": "Rådgivningscenter", + "terms": "Rådgivningscenter, rådgivning, sexrådgivning, sexualrådgivning, kostrådgivning" + }, + "healthcare/dentist/orthodontics": { + "name": "Ortodontist", + "terms": "Ortodontist, tandreglering, tandställning, tandvård, tand, tänder, tandläkare" + }, "healthcare/hospice": { "name": "Hospis (palliativ vård)", "terms": "Hospis, Palliativ vård, död, döende, terminalvård" @@ -1930,10 +2037,18 @@ "name": "Hiss", "terms": "Hiss" }, + "highway/emergency_bay": { + "name": "Nöduppställningsplats", + "terms": "Nöduppställningsplats, nödstopp, nödtelefon, Nödstoppplats, uppställning, stopp, haveri, motorstopp" + }, "highway/footway": { "name": "Gångväg", "terms": "gångväg, gc-väg, löparbana, motionsspår, promenad, gångbana" }, + "highway/footway/access_aisle": { + "name": "Åtkomstgång", + "terms": "Åtkomstgång, lastzoon, handikapparkeringsåtkomstzon, parkeringsgång, gångväg, rullstolsgång" + }, "highway/footway/conveying": { "name": "Rullande trottoar", "terms": "gångrullband, rullande gåband, rullande gångbana, rullande trottoar, rullband, Rullgångbana, rullramp, rulltrottoar, transportband, transportband för människor, transportband för personer" @@ -2003,7 +2118,12 @@ "name": "Stig", "terms": "Stig, gång, led, spår, vandringsled, vandra, vandring, promenad, löparbana, motionsspår" }, + "highway/path/boardwalk": { + "name": "Spång", + "terms": "Spång, brädväg, brädor, plankor, plankstig, stig, gångväg" + }, "highway/path/informal": { + "name": "Informell stig", "terms": "genväg, viltstig, kostig" }, "highway/pedestrian_area": { @@ -2046,6 +2166,10 @@ "name": "Okänd väg", "terms": "okänd väg, ospecificerad, okänd, obekant, främmande, outforskad" }, + "highway/road/bridge": { + "name": "Okänd vägbro", + "terms": "Okänd vägbro, bro, väg" + }, "highway/secondary": { "name": "Sekundär väg", "terms": "Sekundär väg, sekundärväg, länsväg, huvudväg" @@ -2110,6 +2234,10 @@ "name": "Anslutning, tertiär väg", "terms": "Anslutning, påfart, avfart, länsväg, huvudgata, tertiär väg" }, + "highway/toll_gantry": { + "name": "Portal för vägtull", + "terms": "Portal för vägtull, vägtullsportal, vägtull, portal, kamera för registreringsnummer, automatisk vägtull, tullportal, vägavgift, vägavgiftsportal, portal för vägavgift" + }, "highway/track": { "name": "Jordbruks-/skogsväg", "terms": "Bruksväg, traktorväg, skogsväg, åkerväg, virkesväg, timmerväg, traktor, skogsmaskin, åker, timmer, jordbruk, brandväg, brandgata, jordbruksväg" @@ -2122,6 +2250,10 @@ "name": "Trafiksignaler", "terms": "Trafikljus, trafiksignal, stoppljus, signalljus, ljus, stoppljus, trafikljus" }, + "highway/trailhead": { + "name": "Start av led", + "terms": "Start av led, ledstart, led, spårstart, vandring, vandringsstart, start av vandringsled, cykelled, start av cykelled" + }, "highway/trunk": { "name": "Stamväg", "terms": "stamväg, huvudväg, europaväg, riksväg, motortrafikled" @@ -2154,6 +2286,10 @@ "name": "Gränssten", "terms": "Gränssten, milsten, Gränsmärke, råmärke, gränsröse" }, + "historic/building": { + "name": "Historisk byggnad", + "terms": "Historisk byggnad, byggnad, historisk, historiskt, slott, sevärdighet, museum" + }, "historic/castle": { "name": "Slott", "terms": "Slott, borg, palats, resident, herrsäte, fästning" @@ -2194,6 +2330,10 @@ "name": "Monument", "terms": "monument, Minnesmärke, monument" }, + "historic/pillory": { + "name": "Historisk skampåle", + "terms": "Historisk skampåle, skampåle, attraktion, stupa, spöpåle" + }, "historic/ruins": { "name": "Ruiner", "terms": "Ruin, lämning, rest, husras, förfallen byggnad, ödehus" @@ -2259,6 +2399,10 @@ "landuse": { "name": "Markanvändning" }, + "landuse/allotments": { + "name": "Koloniområde", + "terms": "Kolonilott, lott, täppa, koloniträdgård, odlingslott, koloniområde" + }, "landuse/aquaculture": { "name": "Akvakultur", "terms": "Fiskodling, vattenbruk, akvakultur, fisk, skaldjur, alger, vattenväxter, utplantering av fisk, Ostronodling, musselodling, pärlodling, räkor" @@ -2296,6 +2440,10 @@ "name": "Bondgård", "terms": "Bondgård, gård, jordbruk, lantbruk, lantegendom, lantgård" }, + "landuse/flowerbed": { + "name": "Rabatt", + "terms": "Rabatt, plantering, blomträdgård, blommor, blomsterrabatt" + }, "landuse/forest": { "name": "Skog (brukad)", "terms": "Skog, skogsvård, skogsområde, skogstrakt, träd, skogsdunge, dunge, lund, skogsplantering, skogsplan, timmer" @@ -2360,10 +2508,18 @@ "name": "Marinbas", "terms": "Marinbas, marint förband, marinen, flottan, amfibiekåren, Kustartilleriet, flottilj, flottbas, örlogsbas" }, + "landuse/military/obstacle_course": { + "name": "Militär hinderbana", + "terms": "Militär hinderbana, militär, armé, militärbas, vakt, marin, Hinderbana, hoppbana, hinderlöpning, hinderlopp" + }, "landuse/military/range": { "name": "Militärt övningsområde", "terms": "Militärt övningsområde, övningsområde, skjutbana" }, + "landuse/military/training_area": { + "name": "Militärt övningsfält", + "terms": "militärt Övningsfält, övningsfällt, skjutbana, övningsområde, luftförsvar, armé, militärbas, träning, övning, trupp, krig" + }, "landuse/orchard": { "name": "Fruktodling", "terms": "Fruktodling, fruktträdgård, fruktträd, äppelträd" @@ -2414,6 +2570,9 @@ "name": "Vintersportområde", "terms": "Vintersportområde, vintersport, pist, pistområde, skidområde, skidbacke, skidort, snöbrädesområde, snowboardområde, skidor, alpint, snowboard, skidåkning" }, + "leisure": { + "name": "Fritidsobjekt" + }, "leisure/adult_gaming_centre": { "name": "Center för vuxenspel", "terms": "Center för vuxenspel, vuxenspel, spelmaskiner, spel, spelmaskin, flipperspel, flipper" @@ -2455,12 +2614,17 @@ "terms": "Dansskola, bugg, foxtrot, gamaldans, swing, jive, vals, dans, danskurs, dansutbildning, tiodans, salsa, tango" }, "leisure/disc_golf_course": { - "name": "Frisbeegolfbana" + "name": "Frisbeegolfbana", + "terms": "Frisbeegolfbana, Frisbee, Frisbeegolf, Frisbee golf" }, "leisure/dog_park": { "name": "Hundpark", "terms": "Hundpark, hundrastgård, hund, rastgård, hundgård, kennel" }, + "leisure/escape_game": { + "name": "Escape Room", + "terms": "Escape Room, quest room, escape game, rymningsspel, pusselrum" + }, "leisure/firepit": { "name": "Eldstad", "terms": "Eldstad, eldgrop, lägerplats, lägereld, brasa, grill, grillplats, grillning, eldning, campingbrasa" @@ -2529,6 +2693,14 @@ "name": "Trädgård", "terms": "Trädgård, park, plantering, örtgård, odlingslott, botanisk trädgård, botanisk, botanik, zoologisk trädgård" }, + "leisure/garden/botanical": { + "name": "Botanisk trädgård", + "terms": "Botanisk trädgård, trädgård, botanisk, botanik, växtsamling, ovanliga växter, park, plantering" + }, + "leisure/garden/community": { + "name": "Koloniområde", + "terms": "Kolonilott, lott, täppa, koloniträdgård, odlingslott, koloniområde" + }, "leisure/golf_course": { "name": "Golfbana", "terms": "Golfbana, golf, golfanläggning, golfcenter" @@ -2609,6 +2781,10 @@ "name": "Bowlsplan", "terms": "Bowls, Shortmat" }, + "leisure/pitch/chess": { + "name": "Stort schackbräde", + "terms": "Stort schackbräde, schackbräde, schack, schackbord, schackbräda, gårdsschack, parkschack, trädgårdsschack" + }, "leisure/pitch/cricket": { "name": "Cricketplan", "terms": "Cricket, Cricketplan, kricket, kricketplan" @@ -2618,10 +2794,12 @@ "terms": "ridning, rida, häst, Ridskola, hästridning, stall, ryttare, häst*, ridklubb, ridhus, dressyr, hästhoppning, trav, galopp" }, "leisure/pitch/field_hockey": { - "name": "Landhockeyplan" + "name": "Landhockeyplan", + "terms": "Landhockeyplan, Landhockey" }, "leisure/pitch/horseshoes": { - "name": "Kasta hästsko" + "name": "Kasta hästsko", + "terms": "Kasta hästsko, hästsko" }, "leisure/pitch/netball": { "name": "Nätbollsplan", @@ -2636,7 +2814,8 @@ "terms": "Rugby Union-plan, rugby union, rugby, rugger, rugby football, rugbyplan" }, "leisure/pitch/shuffleboard": { - "name": "Shuffleboardbana" + "name": "Shuffleboardbana", + "terms": "Shuffleboardbana, Shuffleboard, golvShuffleboard, bordsShuffleboard" }, "leisure/pitch/skateboard": { "name": "Skateboardpark", @@ -2694,10 +2873,18 @@ "name": "Badanläggning", "terms": "Badanläggning, badhall, simhall, simbassäng, bassäng, swimmingpool, pool, simning, badhus, motionssim, tävlingssim" }, + "leisure/sports_hall": { + "name": "Sporthall", + "terms": "Sporthall, idrottshall, gym, sportarena, inomhusidrott" + }, "leisure/stadium": { "name": "Stadium", "terms": "Stadium, arena" }, + "leisure/swimming_area": { + "name": "Naturbadområde", + "terms": "Naturbadområde, naturbad, bad, strand, badstrand, dyka, vatten, badsjö, klippbad" + }, "leisure/swimming_pool": { "name": "Simbassäng", "terms": "Simbassäng, bassäng, swimmingpool, pool, simning, simma" @@ -2707,7 +2894,8 @@ "terms": "Tävlingsbana, cykeltävling, cykellopp, hundkapplöpning, hästkapplöpning, galoppbana, travbana, löpbana, löpning, kapplöpningsbana, galoppbana" }, "leisure/track/cycling": { - "name": "Tävlingsbana (Cykel)" + "name": "Tävlingsbana (Cykel)", + "terms": "Cykelspår, cykelväg, cykelstig, cykel, cykelbana" }, "leisure/track/horse_racing": { "name": "Tävlingsbana (Hästkapplöpning)", @@ -2717,6 +2905,10 @@ "name": "Tävlingsbana (Löpning)", "terms": "Tävlingsbana, Löpning, kapplöpningsbana, löpbana, löparbana, sprint, språng, springa" }, + "leisure/trampoline_park": { + "name": "Trampolinpark", + "terms": "Trampolinpark, trampolin, studsmatta, hoppa, studsa" + }, "leisure/water_park": { "name": "Äventyrsbad / Vattenpark", "terms": "Äventyrsbad, Vattenpark, vattenlekpark, vattenland" @@ -2736,6 +2928,14 @@ "name": "Antenn", "terms": "Antenn, mast, sändning, mobil, mobilmast, kommunikation, radio, tv, radiomast, tv-mast, överföring" }, + "man_made/beacon": { + "name": "Fyrbåk", + "terms": "Fyrbåk, beacon, båk, fyr, vårdkase, sjömärke, ledfyr, böte" + }, + "man_made/beehive": { + "name": "Bikupa", + "terms": "Bikupa, bi, bifarm, honung, pollinering, pollinisation, bikupa" + }, "man_made/breakwater": { "name": "Vågbrytare", "terms": "Vågbrytare, pir, hamnarm, vågskydd, fördämning, hamnpir" @@ -2748,6 +2948,10 @@ "name": "Plansilo", "terms": "Plansilo, Ensilage, pressfoder, silo, lager, foder, djurfoder, spannmålslagring, spannmål, spannmålssilo,fodersilo" }, + "man_made/cairn": { + "name": "Stenröse", + "terms": "Stenröse, röse, stenhög, rös, stenrös, röjningsröse, gränsrösen, råmärken stenar, stenstapel" + }, "man_made/chimney": { "name": "Skorsten", "terms": "skorsten, rökgång" @@ -2756,14 +2960,30 @@ "name": "Kalhygge", "terms": "kalhygge, hygge, skog, timmer, träd, trä, Slutavverkning, avverkning, föryngringsyta, föryngringsavverkning, avskogning, skövlat skogsområde, avverkningsområde" }, + "man_made/courtyard": { + "name": "Innergård", + "terms": "innergård, torg, gård, gårdsplan, borggård, innetorg, inhägnad öppet område" + }, "man_made/crane": { "name": "Kran", "terms": "Kran, lyftkran, vinsch, travers, telfer" }, + "man_made/cross": { + "name": "Kors", + "terms": "Kors, krucifix, vägkors, pilgrim, kristet kors, kristendom, jesuskors" + }, "man_made/cutline": { "name": "Snittlinje i skog", "terms": "Snittlinje, skiljelinje, rågång, gränslinje, gräns, brandgata, skogssektion, skidspår, pipeline, rörgata, pipelinegata, jaktgata, skogsområde, domän" }, + "man_made/dovecote": { + "name": "Duvslag", + "terms": "Duvslag, duvor, duva, fåglar, fågel, duvbostad, fågelholk, brevduvor, duvhus" + }, + "man_made/dyke": { + "name": "Vall (mot vatten)", + "terms": "skyddsvall, vall, Fördämningsvall, flodvall. vattenvall, strandvall" + }, "man_made/embankment": { "name": "Vägbank", "terms": "Upphöjning, barnvall, vall, bank, Vägbank" @@ -2776,6 +2996,14 @@ "name": "Gasklocka", "terms": "Gasklocka, gasbehållare, gas, gasometer, cistern, gascistern, stadsgas, naturgas" }, + "man_made/goods_conveyor": { + "name": "Transportband", + "terms": "Transportband, Transportörsystem,  transportband, rullbanor, bandtransportörer och palltransportörsystem" + }, + "man_made/groyne": { + "name": "Hövd, vågbrytare vinkelrätt mot kusten", + "terms": "hövd, vågbrytare, pir, erosion, erosionsskydd" + }, "man_made/lighthouse": { "name": "Fyr", "terms": "Fyr, fyrtorn, fyrskepp" @@ -2784,6 +3012,30 @@ "name": "Gatubrunn", "terms": "Gatubrunn, brunn, dagvattenbrunn, dagvatten, avlopp, telekom, telefoni, manhålslucka, Brunnslock, manlucka, manhål, avloppsbrunn, a-brunn, Brandpost, Rensbrunn" }, + "man_made/manhole/drain": { + "name": "Dagvattenbrunn", + "terms": "Dagvattenbrunn, dagvatten, brunn, avrinning, regn, regnvatten, avlopp" + }, + "man_made/manhole/gas": { + "name": "Gatubrunn för gas", + "terms": "Manhålslucka för gas, gatubrunn, brunn, gas, manhålslucka, Brunnslock, manlucka, manhål, gas-brunn" + }, + "man_made/manhole/power": { + "name": "Manhålslucka för elkraft", + "terms": "Manhålslucka för elkraft, gatubrunn, brunn, el, elkraft, manhålslucka, Brunnslock, manlucka, manhål, el-brunn, ström" + }, + "man_made/manhole/sewer": { + "name": "Manhålslucka för avlopp", + "terms": "Manhålslucka för avlopp, gatubrunn, brunn, avlopp, manhålslucka, Brunnslock, manlucka, manhål, avloppsbrunn" + }, + "man_made/manhole/telecom": { + "name": "Manhålslucka för telekom", + "terms": "Manhålslucka för telekom, gatubrunn, brunn, telekom, tele, telefoni, manhålslucka, Brunnslock, manlucka, manhål, telekom-brunn, kabel, telekabel, telefon" + }, + "man_made/manhole/water": { + "name": "Manhålslucka för vattenförsörjning", + "terms": "Manhålslucka för vattenförsörjning, gatubrunn, brunn, vattenförsörjning, manhålslucka, Brunnslock, manlucka, manhål, vatenbrunn, dricksvatten, vatten, vattenförsörjning" + }, "man_made/mast": { "name": "Mast", "terms": "Mast, antenn, sändarmast, mobiltelefonmast, mobilmast, kommunikationsmast, kommunikationstorn, stagas torn, mobiltelefon torn, radiomast, tv-torn, tv-mast, överföringsmast, överföringstorn, antennbärare, sändarstation, slavsändare" @@ -2813,7 +3065,8 @@ "terms": "Mätstation, mätning, observation, väderstation, väder, jordbävning, seismologi, Seismolog, luftmätning, luftkvalité , luftkvalitet, gps, övervakningsstation, vattennivå, observationsrör, radon, ljud, trafik, trafikmätning" }, "man_made/obelisk": { - "name": "Obelisk" + "name": "Obelisk", + "terms": "Obelisk, pelare" }, "man_made/observatory": { "name": "Observatorium", @@ -2827,14 +3080,30 @@ "name": "Pir", "terms": "Pir , vågbrytare, hamnarm, hamnpir, kaj" }, + "man_made/pier/floating": { + "name": "Flytande pir", + "terms": "Flytande pir,pir, vågbrytare, hamnarm, hamnpir, kaj, brygga, flytande brygga, strandpromenad" + }, "man_made/pipeline": { "name": "Pipeline", "terms": "Pipeline, rörledning, ledning, oljeledning, avloppsledning, vattenledning" }, + "man_made/pipeline/underground": { + "name": "Underjordisk pipeline", + "terms": "Underjordisk pipeline, pipeline, underjordiskt rör, rör, olja, naturgas, gas, vatten, avlopp, oljepipeline, vattenrör, avloppsrör" + }, + "man_made/pipeline/valve": { + "name": "Kran till pipeline", + "terms": "Kran till pipeline, kran till rör, pipelinekran, pipelineventil, kran, ventil, olja, naturgas, gas, vatten, avlopp" + }, "man_made/pumping_station": { "name": "Pumpstation", "terms": "Pumpstation, pump, avloppspump, dräneringspump, vattenpump, oljepump, spillvattenspump, pumpaggregat" }, + "man_made/reservoir_covered": { + "name": "Övertäckt reservoir", + "terms": "Övertäckt reservoar, underjordisk reservoar, vattenreservoar, vattentank" + }, "man_made/silo": { "name": "Silo", "terms": "Ensilage, pressfoder, silo, lager, foder, djurfoder, spannmålslagring, spannmål, spannmålssilo,fodersilo" @@ -2847,6 +3116,10 @@ "name": "Vattentank", "terms": "Vattentank, cistern, vattentorn, vattencistern, vattenlager" }, + "man_made/street_cabinet": { + "name": "Teknikskåp", + "terms": "Kopplingsskåp, Gatuskåp, kabel-TV, kabeltv, övervakning, teknikskåp, telekommunikation, trafikljuskontroll, telefoni, elskåp, teleskåp" + }, "man_made/surveillance": { "name": "Övervakning", "terms": "Övervakning, övervakningskamera, övervakningsutrustning, kamera, bevakning, bevakningskamera, bevakning, bevakningskamera" @@ -2859,6 +3132,10 @@ "name": "Trianguleringspunkt", "terms": "Trianguleringspunkt, triangulering, kartritning, fixpunkt" }, + "man_made/torii": { + "name": "Torii", + "terms": "Torii, japansk port, Shinto shrine,  shintohelgedom, Jinja, fågelsittpinne" + }, "man_made/tower": { "name": "Torn", "terms": "torn, radiotorn" @@ -2871,6 +3148,14 @@ "name": "Kommunikationstorn", "terms": "radiomast, radiotorn, mast, antenn, mobilmast, mobilantenn, radioantenn, sändartorn, mobiltelefon, radiomast, TV-torn, TV-mast, radiosändning, kommunikationsmast, kommunikationstorn, transmissionsmast, överföringstorn, överföringsmast" }, + "man_made/tower/cooling": { + "name": "Kyltorn", + "terms": "Kyltorn, kraftverk, kraftstation, elkraftverk, elkraftstation, kärnkraftverk, kolkraftverk" + }, + "man_made/tower/defensive": { + "name": "Befäst torn", + "terms": "Befäst torn, försvarstorn, borgtorn, borg, torn, befästningstorn, befästning, försvar" + }, "man_made/tower/minaret": { "name": "Minaret", "terms": "Minaret, minâra, bönetorn, islam, muslim, moské, muezzin, böneutropare, Muaddhin" @@ -2879,6 +3164,10 @@ "name": "Utkikstorn", "terms": "Utkikstorn, utsiktstorn, observationstorn, utsiktspost, observationspost, brandtorn" }, + "man_made/tunnel": { + "name": "Tunnelområde", + "terms": "Tunnel, tunnelområde, underjordisk, underjordisk passage, underpassage" + }, "man_made/utility_pole": { "name": "El-/Telefonstolpe", "terms": "elstolpe, telefonstolpe, kraftledningsstolpe, stolpe, elledningsstolpe" @@ -2887,6 +3176,10 @@ "name": "Avloppsreningsverk", "terms": "Avloppsreningsverk, reningsverk, avloppsverk, avlopp, vattenreningsverk, vattenrening" }, + "man_made/water_tap": { + "name": "Vattenkran", + "terms": "Vattenkran, dricksvatten, kran, vatten, vattenfontän, vattenpunkt, vattenkälla" + }, "man_made/water_tower": { "name": "Vattentorn", "terms": "Vattentorn, vattenreservoar, vatten" @@ -2907,14 +3200,34 @@ "name": "Väderkvarn", "terms": "Väderkvarn, vindmölla, vädemölle, vindkraft, kvarn, mölla" }, + "man_made/windpump": { + "name": "Vindpump", + "terms": "Vindpump, aerorotor, vattenpump, väderkvarn, vindkraftverk, vindkraft, vind, pump, vattenpump" + }, "man_made/works": { "name": "Fabrik", "terms": "Fabrik, montering, bryggeri, bil, plast, bearbetning, tillverkning, raffinaderi, fabrikstillverkning, industri, verkstad, fabriksbyggnad, monteringsanläggning, bearbetningsanläggning, möbeltillverkning, oljeraffinaderi" }, + "marker": { + "name": "Markör", + "terms": "Markör, identifierare, märkning, platta, stolpe, post, skylt, milsten" + }, + "marker/utility": { + "name": "Markör av samhällsservice", + "terms": "Markör av samhällsservice, markör av gasledning, gas, identifierare, märkning, markör, platta, stolpe, post, skylt, oljemarkör, oljeledning, markör av oljeledning, rörmarkering, ledningsmarkering, ledningsmarkör" + }, + "marker/utility/power": { + "name": "Kraftledningsmarkör", + "terms": "Markör, identifierare, märkning, platta, stolpe, post, skylt, Kraftledningsmarkör, kraftledning, elledning, markör av kraftledning, markering av kraftledning" + }, "military/bunker": { "name": "Militär bunker", "terms": "militär bunker, bunker, flygförsvar, militär, arme, försvar, marin, flottan, krig" }, + "military/checkpoint": { + "name": "Militär kontrollpunkt", + "terms": "militär kontrollpunkt, Kontrollpunkt, kontrollstation, vägspärr, militär kontroll, luftvapen, luftförsvar, militär, armé, bas, flotta, marin, soldat, krig, försvar, trupp, vakt" + }, "military/nuclear_explosion_site": { "name": "Område för kärnvapenprov", "terms": "Område för kärnvapenprov, kärnvapenprov, kärnvapen, vapentest" @@ -2923,6 +3236,13 @@ "name": "Militärkontor", "terms": "militärkontor, flygvapen, armé, bas, värva, flotta, marin, rekrytera, rekrytering, soldat, krig, militär, försvar, befälskontor" }, + "military/trench": { + "name": "Militär skyttegrav", + "terms": "Militär skyttegrav, militärt dike, skyttevärn, värn" + }, + "natural": { + "name": "Naturobjekt" + }, "natural/bare_rock": { "name": "Kala klippor ", "terms": "kala klippor, klippor, häll, berghäll" @@ -2935,6 +3255,10 @@ "name": "Strand", "terms": "Strand, sandstrand, badstrand, grusstrand, badplats, strandlinje, badställe, flodstrand" }, + "natural/cape": { + "name": "Kap (stor udde)", + "terms": "kap, cape, udde, bukt, vik, kust, erosion" + }, "natural/cave_entrance": { "name": "Grottingång", "terms": "Grottingång, grotta, grottsystem, bergrum, berghåla, grottöppning, bergsöppning, grotthål" @@ -2951,6 +3275,10 @@ "name": "Fjäll", "terms": "Fjäll, trädgräns, högfjäll, fjällandskap" }, + "natural/geyser": { + "name": "Gejser", + "terms": "Gejser, källa, varmvatten, hydrogeologi, hydrotermisk explosion, ånga, het källa" + }, "natural/glacier": { "name": "Glaciär", "terms": "Glaciär, landis, ismassa, jökel, gletscher" @@ -2963,6 +3291,10 @@ "name": "Hed", "terms": "hed, äng, gräs, slättmark, slätt, tundra, stäpp, alvar, kalmark" }, + "natural/hot_spring": { + "name": "Het källa", + "terms": "het källa, termalkälla, Gejser" + }, "natural/mud": { "name": "Lera", "terms": "Lera, våtmark, sankmark och sumpmark, lerigt, gyttja, dy, sörja, gegga" @@ -2979,6 +3311,10 @@ "name": "Ås", "terms": "ås, höjd, bergsrygg, kam, kulle, krön, berg, bergsområde, högland, horst" }, + "natural/rock": { + "name": "Klippa/stenbumling fäst i berggrund", + "terms": "Klippa/stenbumling fäst i berggrund, klippa, sten, stenbumling, bumling, berggrund" + }, "natural/saddle": { "name": "Bergskam", "terms": "Bergskam, bergskrön, bergskrön, berg, dal, dalgång" @@ -2995,10 +3331,22 @@ "name": "busksnår", "terms": "busksnår, Buskskog, snår, sly" }, + "natural/shingle": { + "name": "Grus (singel)", + "terms": "Grus, singel, strand, småsten, flodbädd, rundade stenfragment, klapperstensfält, klappersten" + }, + "natural/shrub": { + "name": "Buskmark", + "terms": "Buskmark, buskar, buskage" + }, "natural/spring": { "name": "Källa", "terms": "källa, vattenställe, vattenhål, källsprång, källåder, källflöde, källdrag, springflöde" }, + "natural/stone": { + "name": "Klippa/stenbumling friliggande", + "terms": "Klippa/stenbumling friliggande, sten, stenbumling, klippa, friliggande sten" + }, "natural/tree": { "name": "Träd", "terms": "träd,trä,trädstam,stam,barrträd,lövträd,gran,ek,björk,stock" @@ -3031,6 +3379,10 @@ "name": "Sjö", "terms": "Sjö, insjö, innanhav, vattensamling, pöl, lagun, tjärn, göl, vatten" }, + "natural/water/moat": { + "name": "Vallgrav", + "terms": "vallgrav, kanal" + }, "natural/water/pond": { "name": "Tjärn", "terms": "damm, tjärn, göl, liten sjö, kvarndamm, tjärn" @@ -3047,6 +3399,10 @@ "name": "Bäckområde", "terms": "Bäckområde,vattendrag, bäck, dike, biflöde, flöde, ström, flod, flöde, rännil, biflod" }, + "natural/water/wastewater": { + "name": "Avloppsvattenbassäng", + "terms": "Avloppsvattenbassäng, avföring, skit, avloppsvatten, reningsverk, reningsbassäng, segmenteringsbassäng" + }, "natural/wetland": { "name": "Våtmark", "terms": "Våtmark, sankmark, myr, sump, kärr, mosse, torvmark, sumpmark, träsk, moras, mad" @@ -3055,6 +3411,10 @@ "name": "Naturskog", "terms": "naturskog, skog, Urskog, djungel, bush, regnskog, vildmark, träd" }, + "network/type/node_network": { + "name": "Nod i rekreationsvägsnätverk", + "terms": "Nod i rekreationsvägsnätverk, nodnätverk, cykelnätverk, cykelled, vandringsled, vandringsnätverk" + }, "noexit/yes": { "name": "Återvändsgata", "terms": "Återvändsgränd, blindgata återvändsgata, vägslut" @@ -3086,6 +3446,10 @@ "name": "Frivilligorganisation", "terms": "Frivilligorganisation, Frivillig, volontär, frivilligarbetare, biståndsarbetare, förening, ideell, icke vinstdrivande, organisation, samhälle" }, + "office/bail_bond_agent": { + "name": "Bail Bond-agent", + "terms": "Bail Bond-agent, borgen" + }, "office/charity": { "name": "Välgörenhetsorganisation", "terms": "Välgörenhetsorganisation, Välgörenhet, hjälpverksamhet, bistånd, biståndsorganisation" @@ -3094,15 +3458,29 @@ "name": "Företagskontor", "terms": "Företagskontor, kontor, företag, expedition, kundmottagning" }, + "office/consulting": { + "name": "Konsultkontor", + "terms": "Konsultkontor, konsult, konsulter, konsultföretag" + }, "office/coworking": { "name": "Dagkontor", "terms": "Dagkontor, lånekontor, fjärrarbetsplats, distansarbete, Coworking, Kontorsplats, kontorsarbetsplats, konferensrum, mötesrum, affärslounger, tillfällig arbetsplats, tillfälligt kontor, kontor" }, + "office/diplomatic": { + "name": "Diplomatkontor", + "terms": "Diplomatkontor, diplomat, ambassadör, statssändebud, envoyé, ambassad, ambassadkontor, konsulat" + }, "office/diplomatic/consulate": { - "name": "Konsulat" + "name": "Konsulat", + "terms": "Diplomatkontor, diplomat, ambassadör, statssändebud, envoyé, ambassad, ambassadkontor, konsulat" }, "office/diplomatic/embassy": { - "name": "Ambassad" + "name": "Ambassad", + "terms": "Diplomatkontor, diplomat, ambassadör, statssändebud, envoyé, ambassad, ambassadkontor, konsulat" + }, + "office/diplomatic/liaison": { + "name": "Kontaktkontor", + "terms": "Diplomatkontor, diplomat, ambassadör, statssändebud, envoyé, ambassad, ambassadkontor, konsulat, kontaktkontor, sambandsman, sambandsmän, sambandscentral" }, "office/educational_institution": { "name": "Utbildningskontor", @@ -3125,7 +3503,8 @@ "terms": "Bankkontor, finanskontor, ekonomi, finans, bank, ekonomisk" }, "office/financial_advisor": { - "name": "Finansiell rådgivare" + "name": "Finansiell rådgivare", + "terms": "Finansiell rådgivare, rådgivare, bankman, arv, sparande, aktier, pension, kapitalförvaltning, ekonomi, bank, ekonomisk, bankkontor, finanskontor" }, "office/forestry": { "name": "Skogsbolag", @@ -3139,6 +3518,10 @@ "name": "Myndighet", "terms": "Myndighet, myndighetskontor, statlig myndighet" }, + "office/government/prosecutor": { + "name": "Åklagarmyndighet", + "terms": "Åklagarmyndighet, åklagare, justitieminister, distriktsadvokat, åtal" + }, "office/government/register_office": { "name": "Registreringsbyrå", "terms": "Registreringsbyrå, borgerlig vigsel, stadshus, registrerade enhet, inskrivningskontor, registreringskontor, Folkbokföring, Skattemyndigheten, mantalslängder" @@ -3228,6 +3611,18 @@ "name": "Vattenleverantör", "terms": "Vattenleverantör, Dricksvatten, vattenbolag" }, + "piste/downhill": { + "name": "Utförsåkning", + "terms": "Utförsåkning, skidor, alpint, snowboard, pist, skidbacke, slalombacke" + }, + "piste/downhill/halfpipe": { + "name": "Halfpipe för vintersport", + "terms": "Utförsåkning, skidor, skida, alpint, snowboard, pist, skidbacke, slalombacke, halfpipe, half pipe, half-pipe, Halfpipe för vintersport, vintersport" + }, + "piste/hike": { + "name": "Snöskor- / vintervandring", + "terms": "Snöskorvandring, vintervandring, snöskor, vandring, pist, skidor, vandringsled" + }, "piste/ice_skate": { "name": "Skridskoled", "terms": "Skridskoled, skridskor, skridskobana, isbana, skridskorink, rink, is, skridskoåkning, pist" @@ -3329,6 +3724,10 @@ "name": "Korggunga", "terms": "Korggunga, korg, gunga, gungställning, kompisgunga, fågelbogunga, lekplats, lekområde, lekpark, lek" }, + "playground/climbing_frame": { + "name": "Klätterställning", + "terms": "Klätterställning, klättra, klättring, lekplats, lekområde, lekpark, lek" + }, "playground/cushion": { "name": "Hoppkudde", "terms": "hoppkudde, lekplats, lekområde, lekpark, lek" @@ -3345,6 +3744,10 @@ "name": "Karusell (lekplats)", "terms": "karusell, lekplats, lekområde, lekpark, lek" }, + "playground/sandpit": { + "name": "Sandlåda", + "terms": "sandlåda, sand, lekplats, lekområde, lekpark, lek" + }, "playground/seesaw": { "name": "Gungbräda", "terms": "gungbräda, lekplats, lekområde, lekpark, lek" @@ -3361,6 +3764,10 @@ "name": "Gungställning", "terms": "Gunga,Gungställning, lekplats, lekområde, lekpark, lek" }, + "playground/zipwire": { + "name": "Linbana (lekplats)", + "terms": "linbana, lekplats, lekområde, lekpark, lek" + }, "point": { "name": "Punkt", "terms": "Punkt, fläck, läge, ställe, plats" @@ -3455,6 +3862,14 @@ "name": "Transformator", "terms": "Transformator, nätstation, elomvandling" }, + "public_transport/platform": { + "name": "Plattform för kollektivtrafik", + "terms": "Plattform, väntplats, påstigningsplats, avsats, perrong, kollektivtrafik, transport, transit" + }, + "public_transport/platform/aerialway": { + "name": "Linbaneplattform", + "terms": "linbana, aerialway, Linbanehållplats, linbaneplattform, linbaneterminal, linbanestopp, hållplats, plattform, terminal, stopp, kollektivtrafik, linjetrafik, transit, transport" + }, "public_transport/platform/aerialway_point": { "name": "Hållplats / Plattform för linbana" }, @@ -3466,6 +3881,10 @@ "name": "Busshållplats", "terms": "Busstopp, busshållplats, buss, hållplats, anhalt, station, busstation," }, + "public_transport/platform/bus_tram_point": { + "name": "Spårvagns- & busstopp", + "terms": "Spårvagns- & busstopp, spårvagnstopp, spårvagnshållplats, busstopp, busshållplats, spårvagn, spårväg, spårvagn, spårvägshållplats, spårvagnsterminal, buss, hållplats, anhalt, station, busstation, plattform, kollektivtrafik, spår" + }, "public_transport/platform/ferry": { "name": "Färjeplattform", "terms": "färjeplattform, plattform, stopp, båtstopp, färjestopp, båthållplats, Färjeterminal, terminal, färja, båtterminal, båthållplats, Färjehållplats, Färjestation, båt, brygga, pir, kollektivtrafik, linjetrafik, station, transit, transport" @@ -3621,7 +4040,8 @@ "terms": "Stoppbock, Buffert, Buffertstopp, stoppblock" }, "railway/construction": { - "name": "Järnväg under konstruktion" + "name": "Järnväg under konstruktion", + "terms": "Järnväg under konstruktion, järnväg under byggnad, järnväg under uppförande, järnväg, byggarbete, bygge, byggarbetsplats, byggnation, byggnadsplats" }, "railway/crossing": { "name": "Järnvägskorsning (stig)", @@ -3635,6 +4055,10 @@ "name": "Oanvänd järnväg", "terms": "Oanvänd järnväg, övergiven järnväg, övergiven tågbana, oanvänd tågbana" }, + "railway/funicular": { + "name": "Bergbana ", + "terms": "Bergbana, linbana, klippbana" + }, "railway/halt": { "name": "Mindre järnvägshållplats" }, @@ -3658,6 +4082,10 @@ "name": "Monorail", "terms": "Monorail, enskensbana, balkbana, räls, spår, kollektivtrafik, linjetrafik, transport" }, + "railway/monorail/hanging": { + "name": "Hängande monorail-spår", + "terms": "Hängande monorail-spår, hängande järnväg, hängande enskensbana, hängande balkbana" + }, "railway/narrow_gauge": { "name": "Smalspårbana", "terms": "Smalspårbana, smalspår, smalspårig, smalspårig bana, smalspårig järnväg, järnväg" @@ -3665,6 +4093,10 @@ "railway/platform": { "name": "Järnvägsperrong" }, + "railway/preserved": { + "name": "Museijärnväg", + "terms": "Museijärnväg, historisk järnväg, historiskt tåg, bevarad järnväg, ångtåg, turisttåg, turistjärnväg" + }, "railway/rail": { "name": "Räls", "terms": "Räls, järnvägsspår, spår, bana" @@ -3673,6 +4105,10 @@ "name": "Höghastighetsbana", "terms": "Höghastighetsbana, snabbspår, höghastighet, Järnväg, snabbjärnväg, räls, järnvägsspår, spår, bana" }, + "railway/railway_crossing": { + "name": "Korsning järnväg/järnväg", + "terms": "Korsande järnvägsspår, diamantkorsning, korsning, järnvägskorsning, plankorsning, tågkorsning, järnväg-järnvägskorsning,spårkors, spårkryss" + }, "railway/signal": { "name": "Järnvägssignal", "terms": "järnvägssignal, signal, ljus, järnvägsljus, semafor, försignal, huvudsignal, dvärgsignal" @@ -3700,9 +4136,21 @@ "name": "Spårvägsspår", "terms": "spårvägsspår, Spårvagn, spårväg, motorvagn" }, + "railway/tram_crossing": { + "name": "Korsning spårvagn/gångväg", + "terms": "Korsande spårvagnsspår, korsande spårvägsspår, korsning, korsande, plankorsning, spårvagnskorsning, spårvägsskorsning" + }, + "railway/tram_level_crossing": { + "name": "Korsning spårvagn/väg", + "terms": "Korsande spårvagnsspår, korsande spårvägsspår, korsning, korsande, plankorsning, spårvagnskorsning, spårvägsskorsning" + }, "railway/tram_stop": { "name": "Stopposition för spårvagn" }, + "railway/yard": { + "name": "Godsbangård", + "terms": "Godsbangård, godsvagnstopp, godstågstation, järnvägsstation, järnvägsgård, bangård, rangerbangård, kombiterminal, Växlingsbangårdar" + }, "relation": { "name": "Relation", "terms": "Relation, relaterat, förbindelse, förhållande, samband, anknytning, koppling, kontext" @@ -3714,13 +4162,29 @@ "seamark": { "name": "Sjömärke" }, + "seamark/beacon_isolated_danger": { + "name": "Punktmärke", + "terms": "Punktmärke, iala" + }, + "seamark/beacon_lateral": { + "name": "Farledsmärke", + "terms": "Farledsmärke, fastmärke, lateralmärke, farledsmärke, farled, iala" + }, + "seamark/buoy_lateral": { + "name": "Farledsboj ", + "terms": "Farledsboj, boj, farled, lateralboj, farledsmärke, lateralmärke" + }, "seamark/buoy_lateral/green": { "name": "Grön prick", - "terms": "grön prick, lateralmärke, styrbordsmärke" + "terms": "grön prick, grön boj, lateralmärke, styrbordsmärke, flytande styrbordsmärke, iala" }, "seamark/buoy_lateral/red": { "name": "Röd prick", - "terms": "röd prick, lateralmärke, babordsmärke" + "terms": "röd prick, röd boj, lateralmärke, babordsmärke, flytande babordsmärke" + }, + "seamark/mooring": { + "name": "Förtöjning", + "terms": "Förtöjning, pollare, boj, förtöjningspåle, knap, krysshult, påle" }, "shop": { "name": "Affär", @@ -3734,6 +4198,10 @@ "name": "Vin-och-spritaffär", "terms": "Vinaffär, spritaffär, vin- och sprit, vin- och spritaffär, systemet, systembolaget, bolaget, alkohol, öl, vin, sprit" }, + "shop/anime": { + "name": "Anime/Manga-affär", + "terms": "Anime/Manga-affär, anime, manga, japan, cosplay, figurer, dakimakura" + }, "shop/antiques": { "name": "Antikaffär", "terms": "Antikaffär, antikshop, antikt, antikvitetsaffär, antikvariat" @@ -3801,10 +4269,18 @@ "shop/boutique": { "name": "Boutique (Dyra kläder och accessoarer)" }, + "shop/brewing_supplies": { + "name": "Affär för hembryggningstillbehör", + "terms": "Affär för hembryggningstillbehör, hembryggning, bryggning, vin, öl, vinbryggning, vintillverkning, ölbryggning, öltillverkning" + }, "shop/butcher": { "name": "Slaktare", "terms": "slaktare,kött,köttaffär,köttstyckare,charkuterist,charkuterihandlare,styckare,chark" }, + "shop/camera": { + "name": "Affär för kameratillbehör", + "terms": "Affär för kameratillbehör, kameratillbehör. kamera, kameratillbehöraffär, film, objektiv, linser, foto, fotografering" + }, "shop/candles": { "name": "Ljusaffär", "terms": "Ljusaffär, ljus, värmeljus, mysljus, stearinljus, ljusstakar" @@ -3817,6 +4293,10 @@ "name": "Bilhandlare", "terms": "Bilhandlare, bilsäljare, bilförsäljning, bilfirma, bilverkstad, bilreparatör, biltillbehör" }, + "shop/car/second_hand": { + "name": "Bilhandlare med begagnade bilar", + "terms": "Bilhandlare med begagnade bilar, bilar, begagnade bilar, begagnat" + }, "shop/car_parts": { "name": "Biltillbehör", "terms": "Bildelar, biltillbehör, reservdelar, bilreservdelar, motor" @@ -3857,14 +4337,26 @@ "name": "Klädaffär", "terms": "Klädaffär, kläder, klädbutik, ekipering" }, + "shop/clothes/second_hand": { + "name": "Affär med secondhandkläder", + "terms": "Affär för secondhandkläder, secondhandkläder, secondhand, kläder, klädbutik, blusar, klänningar, byxor, begagnade, skjortor, shorts, kjolar, byxor, kostymer" + }, "shop/clothes/underwear": { "name": "Underklädersaffär", "terms": "Underklädersaffär, underkläder, bh, trosor, kalsonger, mode, underklänning, sockar, strumpor, lingeri, damunderkläder" }, + "shop/clothes/wedding": { + "name": "Affär med bröllopskläder", + "terms": "Affär med bröllopskläder, brud, brudgum, brudtärna, smoking, frack, bröllopsklänning, brudklänning, bröllop, festkläder" + }, "shop/coffee": { "name": "Kaffeaffär", "terms": "kaffeaffär, kaffeböner, kaffebönor, kaffepulver, bryggkaffe, kaffe" }, + "shop/collector": { + "name": "Affär med samlarobjekt", + "terms": "Affär med samlarobjekt, antikviteter, mynt, samling, samlare, serier, dockor, figurer, Numismatik, mynt, medaljer, filateli, frimärken'" + }, "shop/computer": { "name": "Datorbutik", "terms": "Datorbutik, datoraffär, data, dator, datorer, datorhårdvara, datorprogram, datorförsäljning" @@ -3889,6 +4381,10 @@ "name": "Lanthandel", "terms": "Lanthandel, landet" }, + "shop/craft": { + "name": "Konst- & hantverksbutik", + "terms": "Konst, Konsthantverk, konstverk, hantverk, slöjd" + }, "shop/curtain": { "name": "Gardinaffär", "terms": "Gardinaffär, gardiner, draperier, drapera, fönster" @@ -3909,6 +4405,10 @@ "name": "Byggmarknad", "terms": "Byggmarknad, bygghandel, Gör-det-själv, gördetsjälv, gör det själv, byggvaruhus, indie, byggsatser, byggsats, verktyg, järnaffär, handverktyg, elverktyg, heminredning, inredning, byggmaterial" }, + "shop/doors": { + "name": "Affär med dörrar", + "terms": "Affär med dörrar, dörrar, dörr, dörrförsäljning, dörreparation, dörrepatör" + }, "shop/dry_cleaning": { "name": "Kemtvätt", "terms": "Kemtvättar, kemisk tvätt" @@ -3917,6 +4417,10 @@ "name": "Affär för elektroniska cigaretter", "terms": "Affär för elektroniska cigaretter, e-cigarett, elektrisk cigarett, elcigarett" }, + "shop/electrical": { + "name": "Affär med elutrustning", + "terms": "Affär med elutrustning, elutrustning, el, kabel, kablage, kablar, elektronik, fläkt, LED, belysning, amatur, kraft" + }, "shop/electronics": { "name": "Elektronikbutik", "terms": "Elektronikbutik, hemelektronik, TV, radio, dator, datorer, kylskåp, spisar, vitvaror, tvättmaskin, torktumlare, hushållsapparater, kablar, batterier, apparater, ljud" @@ -3940,6 +4444,10 @@ "shop/fashion": { "name": "Modebutik" }, + "shop/fashion_accessories": { + "name": "Affär för modeaccessoarer", + "terms": "Affär för modeaccessoarer, väskor, parfym, doft, hattar, smycken, handväskor, halsdukar, solglasögon, paraply, plånböcker, klockor, modeaccessoarer, accessoarer" + }, "shop/fireplace": { "name": "Kaminbutik", "terms": "eldstad, eldstäder, kamin, kakelugn, gaskamin" @@ -3948,6 +4456,10 @@ "name": "Fiskeaffär", "terms": "Fiskeaffär, fiskeutrustning, sommarfiske, vinterfiske, levande bete, bete, fiske, fiska, fisk, fiskare" }, + "shop/flooring": { + "name": "Affär för golv", + "terms": "golv, parkett, klinkergolv, golvläggning" + }, "shop/florist": { "name": "Florist", "terms": "Florist, blommor, blomförsäljning, bukett, blomsterbindare, blomsterhandlare" @@ -3956,6 +4468,10 @@ "name": "Ramaffär", "terms": "Ramaffär, ramar, inramning" }, + "shop/frozen_food": { + "name": "Affär för fryst mat", + "terms": "Fryst mat, frysmat, snabbmat, matlådor, fryst, frys, färdigmat, färdigrätt, färdigrätter, mat, lunch" + }, "shop/fuel": { "name": "Bränsleaffär", "terms": "Bränsleaffär, bränslebutik, bränsle, motorbränsle, kol, träkol, eldningsolja, motorbränsle, propan, LPG, fotogen" @@ -3968,6 +4484,10 @@ "name": "Möbelaffär", "terms": "Möbelaffär, möbelgrossist, möbelvaruhus, inredning, stolar, soffor, soffa, stol, bord, hylla" }, + "shop/games": { + "name": "Affär för brädspel", + "terms": "Affär för brädspel, brädspel, kortspel, tärningsspel, spelbutik, live action-rollspel, miniatyrer krigsspel, strategispel, spel, spelbutik" + }, "shop/garden_centre": { "name": "Trädgårdscenter", "terms": "Trädgårdscenter, plantskola, blommor, blomkrukor, krukväxter, buskar, träd, trädgårdsväxter, trädgård, trädgårdsverktyg, planteringsjord, jord, landskap, kompost, jord" @@ -4020,6 +4540,10 @@ "name": "Hobbyaffär", "terms": "Hobbyaffär, hobby, manga, model, modellbygge, modellflyg, modelljärnväg" }, + "shop/household_linen": { + "name": "Affär för hushållstextilier", + "terms": "Affär för hushållstextilier, textilier, linne, påslakan, bäddning, överkast, filtar, dukar, gardiner, näsdukar, servetter, örngott, kläder, lakan, handdukar, sängtextilier, hushållstextilier" + }, "shop/houseware": { "name": "Husgeråd", "terms": "husgeråd, köksredskap, bestick, porslin, prydnadsföremål, hem, hushåll" @@ -4032,6 +4556,10 @@ "name": "Inredningsaffär", "terms": "Inredningsaffär, inredning, dekoration" }, + "shop/jewelry": { + "name": "Juvelerare", + "terms": "Juvelerare, smycken, halsband, ring, ringar, örhänge, örhängen, klocka, klockor, guld, silver, diamant, pärla, pärlor, armband" + }, "shop/kiosk": { "name": "Kiosk", "terms": "Kiosk, gatukök, tidningar, godis, cigaretter, tobak, snus, dryck, läsk, butik, snabbmat, glass, korv" @@ -4042,7 +4570,11 @@ }, "shop/laundry": { "name": "Tvättinrättning", - "terms": "Tvättinrättning, tvätteri, tvättemat, tvättstuga, tvättautomat" + "terms": "Tvättinrättning, tvätteri, tvättemat, tvättomat, tvättstuga, tvättautomat, tvätt" + }, + "shop/laundry/self_service": { + "name": "Tvättinrättning med självbetjäning", + "terms": "Tvättinrättning med självbetjäning, Tvättinrättning, tvätteri, tvättemat, tvättstuga, tvättautomat, tvättomat, mynttvätt, tvätt" }, "shop/leather": { "name": "Läderaffär", @@ -4072,10 +4604,18 @@ "name": "Medicinsk utrustning ", "terms": "medicinsk utrustning, Träningsbollar, Bandage, Kryckor, ledstöd, Ortopedteknik, blodtrycksmätare, Glucometer,glukometer, hjälpmedel, rullstol" }, + "shop/military_surplus": { + "name": "Affär med militäröverskott", + "terms": "Affär med militäröverskott, militäröverskott, militärt överskott, överskottslagret, armé, militär, arméöverskott, marinöverskott, krigsöverskott, vapen, militärkläder, militärutrustning" + }, "shop/mobile_phone": { "name": "Mobiltelefoner", "terms": "Mobiltelefoner, mobiltelefon, mobiltelefoni, telefon, telefonbutik, mobiltelefonbutik" }, + "shop/model": { + "name": "Affär för byggmodeller", + "terms": "hobby, modellbyggnad, modellfigurer, modellpaket, modellbutik, skalmodeller, modellflyg, modellbåtar, modellbygge" + }, "shop/money_lender": { "name": "Långivare", "terms": "Långivare, utlåning, utlåningsinstitution, mikrolån, telefonlån, pantbank" @@ -4112,6 +4652,10 @@ "name": "Friluftsaffär", "terms": "Friluftsaffär, camping, campingutrustning, vandring, vandringsutrustning, tält, klätterutrustning, klättring, friluftsliv, uteliv" }, + "shop/outpost": { + "name": "Utlämning av online-beställningar", + "terms": "Utlämning av online-beställningar, online, internet, utlämning, paket, paketutlämning, posten" + }, "shop/paint": { "name": "Färgbutik", "terms": "Färgbutik, färg, målarfärg, målning" @@ -4144,10 +4688,18 @@ "name": "Fotoaffär ", "terms": "fotoaffär, bild, foto, video, fotografi, fotoredigering, framkallning, ram, kameratillbehör, kamera, kameror, filmkamera, fotokamera, konvertering, film" }, + "shop/pottery": { + "name": "Keramikaffär", + "terms": "Keramikaffär, keramik, krukor, vaser" + }, "shop/printer_ink": { "name": "Butik för skrivarbläck", "terms": "Butik för skrivarbläck, kopieringsbläck, skrivarbläck, faxbläck, bläck, skrivartoner, toner, skrivare, kopiator, fax" }, + "shop/psychic": { + "name": "Medium / Psykisk", + "terms": "Medium, Psykisk, spårdam, astrologi, kristallkula, spådom, seare, ande" + }, "shop/pyrotechnics": { "name": "Fyrverkerier", "terms": "fyrverkerier, smällare, tomtebloss, raketer, nyårsraketer, pyroteknik" @@ -4180,10 +4732,18 @@ "name": "Sybutik", "terms": "sybutik. sömnadsbutik, sy, sömnad, nå, tråd, tyg, garn, symaskin" }, + "shop/shoe_repair": { + "name": "Skomakare", + "terms": "Skomakare, skor, skoreparatör, skoreparation" + }, "shop/shoes": { "name": "Skoaffär", "terms": "Skoaffär, skor, skobutik" }, + "shop/spices": { + "name": "Affär för kryddor", + "terms": "Affär för kryddor, kryddor, chili, kanel, curry, ingefära, örter, peppar, saffran, salt, kryddbutik, kryddor, gurkmeja, wasabi" + }, "shop/sports": { "name": "Sportaffär", "terms": "Sportaffär, sportutrustning, sportkläder, träningskläder, träningsutrustning, träningsskor, löpskor" @@ -4197,9 +4757,13 @@ "terms": "Hyrlager, långtidslager, vinterförvaring, förråd, magasinera, Magasinering, förvaring, förrådsutrymme, båtförvaring, säsongsförvaring, möbelförvaring, bilförvaring, husvagnsförvaring" }, "shop/supermarket": { - "name": "Snabbköp", + "name": "Mataffär", "terms": "självbetjäningsbutik, självköp, supermarket, snabbköp, dagligvarubutik, affär, mataffär, livsmedel, livsmedelsbutik, mat" }, + "shop/supermarket/organic": { + "name": "Organisk mataffär", + "terms": "Organisk mataffär, organiskt, mataffär, snabbköp, supermarket, naturlig mat, mat, naturligt, organisk mat" + }, "shop/swimming_pool": { "name": "Butik för pooltillbehör", "terms": "Pooltillbehörsbutik, badtunna, poolbutik, poolutrustningsbutik, poolinstallationsbutik, poolunderhållsbutik, poolbutikleveransbutik´, poolinstallation, poolunderhåll, poolservice, pool, basäng, jacussy" @@ -4216,6 +4780,10 @@ "name": "Te-butik", "terms": "Te, the, te, påste, örtte, thé, teblad" }, + "shop/telecommunication": { + "name": "Telekombutik", + "terms": "Telekombutik, kommunikation, internetleverantör, isp, nätverk, telefon, röst, talkommunikation, tele, internet" + }, "shop/ticket": { "name": "Biljettförsäljning", "terms": "Biljettförsäljning, biljetter, biljettkassa, biljettsäljare, biljettkontor, biljettlucka, biljettåterförsäljare" @@ -4228,6 +4796,10 @@ "name": "Tobaksbutik", "terms": "Tobaksbutik, tobak, rökning, pipa, pipor, snus, cigaretter, cigarett, cigarr, cigarrer, röktillbehör" }, + "shop/tool_hire": { + "name": "Verktygsuthyrning", + "terms": "Verktygsuthyrning, uthyrning av verktyg, verktyg, byggmaskiner, byggverktyg, uthyrning, hyrning" + }, "shop/toys": { "name": "Leksaksaffär", "terms": "Leksaksaffär, leksaker, barnsaker" @@ -4240,6 +4812,10 @@ "name": "Resebyrå", "terms": "Resebyrå, reseagent, biljettförsäljning, charter, charterflyg, charterresa" }, + "shop/trophy": { + "name": "Affär för troféer", + "terms": "Affär för troféer, trofé, trofe, troféer, trofeer, priser, belöningar, utmärkelser, gravyrer, medaljer, plackat, trofébutik" + }, "shop/tyres": { "name": "Däckfirma", "terms": "Däckfirma, däckbyte, hjulbyte, däckförsäljning, hjulförsäljning, fälgar, däck, hjul, fälg, balansering," @@ -4283,6 +4859,10 @@ "name": "Grosistaffär", "terms": "grosist, Grosistaffär, Partihandel, grosshandel, grossistverksamhet, grosshandel, engros, mängdhandel, grossistlager, lagerklubb, grossistklubb" }, + "shop/wigs": { + "name": "Affär för peruker", + "terms": "Affär för peruker, peruker, hårförlängning, löshår, tupé" + }, "shop/window_blind": { "name": "Persienner", "terms": "Persienner, spjälgardin, jalusi, markis, rullgardin, spjäljalusi" @@ -4291,6 +4871,17 @@ "name": "Vinaffär", "terms": "Vinaffär, systembolaget, systemet, vin, vinförsäljning" }, + "telecom": { + "name": "Telekomobjekt" + }, + "telecom/data_center": { + "name": "Datacenter", + "terms": "Datacenter, datorsystem, datasystem, datalagring, informationsteknologi, IT, serverfarm, serverrum, serverhall, molnet, telekommunikation, it-center, datorcenter" + }, + "telecom/exchange": { + "name": "Telefonstation", + "terms": "telefonstation, telekommunikation, telefonväxel" + }, "tourism": { "name": "Turistobjekt" }, @@ -4346,6 +4937,14 @@ "name": "Campingplats", "terms": "Campingplats, camping, husvagn, tält, campinganläggning" }, + "tourism/camp_site/backcountry": { + "name": "Vildmarkscamping", + "terms": "Vildmarkscamping, friluftscamping, vildmark, enkel camping, naturcamping, campingplats, informell camping, primitiv camping" + }, + "tourism/camp_site/group_only": { + "name": "Gruppcampingplats", + "terms": "Gruppcampingplats, campingplats för grupp, lägerplats, campingplats, scoutcamping, ungdomscamping" + }, "tourism/caravan_site": { "name": "Ställplats", "terms": "Ställplats, campingplats, camping, husvagnscamping, husbilscamping, fricamping" @@ -4378,6 +4977,10 @@ "name": "Informationstavla", "terms": "Informationstavla, turistinformation, information, fakta, karta, historisk information, kollektivtrafik, avgång*" }, + "tourism/information/board/welcome_sign": { + "name": "Välkomstskylt", + "terms": "Välkomstskylt, skylt, välkommen, välkomna" + }, "tourism/information/guidepost": { "name": "Vägvisare", "terms": "Vägvisare, Guidepost, Vägmärke, stigvisning, vandringsskyllt" @@ -4386,6 +4989,10 @@ "name": "Karta", "terms": "Karta, navigering, industrikarta, vägkarta, *karta, informationstavla, information, cykelkarta, stadskarta" }, + "tourism/information/office": { + "name": "Turistbyrå", + "terms": "Turistbyrå, turistinformation, resebyrå, turistkontor, turist, turism, informationskontor, reseguide, turistinformationscenter, besökscenter, besöksinformationscenter, välkomstcenter" + }, "tourism/information/route_marker": { "name": "Spårmarkör", "terms": "Spårmarkör, ledmarkör, stigmarkör, ruttmarkör, spår, led, stig, rutt, ruttflagga, stenhög, vägmarkör, vandringsled, vandring, skoterled, skidled, ridled" @@ -4402,6 +5009,10 @@ "name": "Museum", "terms": "museum, samling, konstsamling, museibyggnad, vetenskap, historia, historik, historia, konst, arkeologi, utställning, galleri" }, + "tourism/museum/history": { + "name": "Historiskt museum", + "terms": "Historiskt museum, museum, historia, artefakter, diorama, utställningar, utställning, grund, hall, institution, historisk, stadsmuseum" + }, "tourism/picnic_site": { "name": "Picknickplats", "terms": "Picknickplats, rastplats, picknick, utflykt, camping, campingplats" @@ -4486,22 +5097,10 @@ "name": "Skyllt för tättbebyggt område", "terms": "Trafikskyllt, skyllt, vägskyllt, vägmärke, vägvisare, trafikmärke, Tättbebyggt område, stad, ort, tätort, stadsgräns, gräns" }, - "traffic_sign/city_limit_vertex": { - "name": "Skyllt för tättbebyggt område", - "terms": "Trafikskyllt, skyllt, vägskyllt, vägmärke, vägvisare, trafikmärke, Tättbebyggt område, stad, ort, tätort, stadsgräns, gräns" - }, "traffic_sign/maxspeed": { "name": "Hastighetsskylt", "terms": "Trafikskyllt, skyllt, vägskyllt, vägmärke, vägvisare, trafikmärke, Hastighetsskylt, Hastighetsbegränsning, fart, hastighet, maxhastighet, maxfart, hastighet, fart" }, - "traffic_sign/maxspeed_vertex": { - "name": "Hastighetsskylt", - "terms": "Trafikskyllt, skyllt, vägskyllt, vägmärke, vägvisare, trafikmärke, Hastighetsskylt, Hastighetsbegränsning, fart, hastighet, maxhastighet, maxfart, hastighet, fart" - }, - "traffic_sign_vertex": { - "name": "Vägmärke", - "terms": "Trafikskyllt, skyllt, vägskyllt, vägmärke, vägvisare, trafikmärke" - }, "type/boundary": { "name": "Gräns", "terms": "Gräns, gränslinje, administrativ gräns" @@ -4510,14 +5109,27 @@ "name": "Administrativ gräns", "terms": "Administrativ gräns, gräns, stat, territorium, administrativ enhet" }, + "type/connectivity": { + "name": "Filkoppling", + "terms": "Filkoppling, filer, sammankoppling av filer, vägfil, anslutning, filbyte" + }, + "type/destination_sign": { + "name": "Destinationsskylt", + "terms": "Destinationsskylt, vägvisning, vägvisare, skylt, destination, vägskylt" + }, "type/enforcement": { "name": "Trafiksäkerhetsutrustning", "terms": "Trafiksäkerhetsutrustning, trafiksäkerhet, övervakning, fartkontroll, hastighetskontroll, fartkamera, hastighetskamera," }, + "type/enforcement/maxspeed": { + "name": "Fartkamera", + "terms": "Fartkamera, trafiksäkerhetskamera, hastighetskamera, hastighet, fart, radar, Trafiksäkerhetsutrustning, trafiksäkerhet, övervakning, fartkontroll, hastighetskontroll" + }, "type/multipolygon": { "name": "Multipolygon" }, "type/public_transport/stop_area_group": { + "name": "Grupp av stopp för kollektivtrafik", "terms": "bytespunkt, transit, resecenter, station, terminal, byte, kollektivtrafik, linjetrafik, transport, hållplats, knutpunkt" }, "type/restriction": { @@ -4578,7 +5190,7 @@ }, "type/route/foot": { "name": "Vandringsled", - "terms": "Vandringsrutt, vandringsled, stig" + "terms": "Vandringsrutt, vandringsled, stig, gångrutt, gångled, vandring, gång" }, "type/route/hiking": { "name": "Vandringsled", @@ -4624,6 +5236,10 @@ "name": "Spårvagnsrutt", "terms": "Spårvagnsrutt, spårvagn, spårvagnsnät, spårvagnsräls, spårvagnsförbindelse" }, + "type/route/trolleybus": { + "name": "Trådbussrutt", + "terms": "Trådbussrutt, trådbuss, buss, bussrutt, kollektivtrafik, spårlös, spårvagn, vag, transit, transport" + }, "type/route_master": { "name": "Huvudrutt", "terms": "Huvudrutt, huvudförbindelse, huvudväg" @@ -4636,6 +5252,9 @@ "name": "Vattendrag", "terms": "Vattenväg, vattenflöde, vattendrag" }, + "waterway": { + "name": "Vattenvägobjekt" + }, "waterway/boatyard": { "name": "Båtvarv", "terms": "Båtvarv, varv, båtställplats, vinterförvaring,uppläggningsplats" @@ -4645,7 +5264,8 @@ "terms": "Kanal, vattenväg, vattenled" }, "waterway/canal/lock": { - "name": "Sluss" + "name": "Sluss", + "terms": "Sluss, kanalsluss, vattenlås, ränna, slusskammare, slussbassäng" }, "waterway/dam": { "name": "Fördämning", @@ -4663,10 +5283,18 @@ "name": "Dränering", "terms": "dränering, avrinning, dagvatten, dagvattenavrinning" }, + "waterway/fish_pass": { + "name": "Fisktrappa", + "terms": "Fisktrappa, ålstege, ålpassering, fiskstege, fiskvandring, fiskpassage, fisklås, fisksteg, fiskväg, fiskstege" + }, "waterway/fuel": { "name": "Sjömack", "terms": "Sjömack, båtmack, bränslestation, tankstation båtbensninmack, båtmensinstation" }, + "waterway/lock_gate": { + "name": "Slussport", + "terms": "Slussport, sluss, kanal" + }, "waterway/milestone": { "name": "Milsten vid vattendrag", "terms": "Milsten vid vattendrag, sjöfart, kilometerstolpe, kilometertavla, avståndsmärke, milsten, referenstavla, kilometerpåle" @@ -4690,6 +5318,10 @@ "name": "Periodiskt vattendrag", "terms": "Periodiskt vattendrag, tillfälligt vattendrag, periodiskt, tillfälligt, Arroyo, bäck, avrinning, dränering, översvämning, rännil, biflöde, vattendrag, dike, dagvatten, dränering, avrinning" }, + "waterway/tidal_channel": { + "name": "Tidvattenskanal", + "terms": "Tidvattenskanal, kust, tidvatten, marin, salt kärr, tidvattenbäck, tidvatten, tidvatteninlopp, vattenväg" + }, "waterway/water_point": { "name": "Dricksvatten för båt", "terms": "Dricksvatten för båt, Dricksvatten, vattenpåfyllning, vattentank" diff --git a/app/src/main/assets/osmfeatures/tr.json b/app/src/main/assets/osmfeatures/tr.json index 2feecdbef2..94bfefb0e7 100644 --- a/app/src/main/assets/osmfeatures/tr.json +++ b/app/src/main/assets/osmfeatures/tr.json @@ -8,6 +8,9 @@ "name": "Reklam Panosu", "terms": "Reklam Panosu, Bilbord" }, + "aerialway": { + "name": "Havayolu Özelliği" + }, "aerialway/cable_car": { "name": "Teleferik", "terms": "Teleferik" @@ -20,6 +23,9 @@ "name": "Kayak Teleferiği", "terms": "Kayak Teleferiği" }, + "aerialway/gondola": { + "name": "Gondol Kalkışı" + }, "aerialway/goods": { "name": "Taşıma Teleferiği", "terms": "Taşıma Teleferiği, Mal Teleferiği" @@ -44,10 +50,16 @@ "name": "Çekme Halat Teleferik", "terms": "Çekme Halat Teleferik" }, + "aerialway/t-bar": { + "name": "T-Bar Kalkışı" + }, "aeroway/aerodrome": { "name": "Havaalanı", "terms": "Havaalanı" }, + "aeroway/apron": { + "name": "Havaalanı Apronu" + }, "aeroway/gate": { "name": "Kapı", "terms": "Kapı" @@ -238,6 +250,9 @@ "name": "Fast Food", "terms": "Fast Food, Hazır Yiyecek" }, + "amenity/ferry_terminal": { + "name": "Feribot Terminali" + }, "amenity/fire_station": { "name": "İtfaiye", "terms": "İtfaiye" @@ -278,6 +293,9 @@ "name": "İnternet Kafe", "terms": "İnternet Kafe" }, + "amenity/kindergarten": { + "name": "Anaokulu Sahası" + }, "amenity/library": { "name": "Kütüphane", "terms": "Kütüphane" @@ -317,6 +335,9 @@ "amenity/parking/underground": { "name": "Yeraltı Park Yeri" }, + "amenity/parking_entrance": { + "name": "Kapalı Otopark Giriş / Çıkış" + }, "amenity/parking_space": { "name": "Park Yeri", "terms": "Park Yeri" @@ -538,6 +559,9 @@ "name": "İçecek Otomatı", "terms": "İçecek Otomatı" }, + "amenity/vending_machine/excrement_bags": { + "name": "Dışkı Torbası Dağıtıcı" + }, "amenity/vending_machine/feminine_hygiene": { "name": "Kadın Sağlık Otomatı", "terms": "Kadın Sağlık Otomatik Satış Makinası" @@ -546,6 +570,9 @@ "name": "Gazete Satış Makinası", "terms": "Gazete Satış Makinası, Gazete Otomatı" }, + "amenity/vending_machine/parcel_pickup_dropoff": { + "name": "Paket Alma / Bırakma Dolabı" + }, "amenity/vending_machine/parking_tickets": { "name": "Park Fişi Otomatı", "terms": "Park Fişi Otomatı" @@ -590,6 +617,9 @@ "name": "Alan", "terms": "Alan, Bölge" }, + "area/highway": { + "name": "Yol Alanı" + }, "attraction/amusement_ride": { "name": "Eğlence Yolculuğu" }, @@ -600,6 +630,9 @@ "name": "Dönme Dolap", "terms": "Dönme Dolap" }, + "attraction/bumper_car": { + "name": "Çarpışan Arabalar" + }, "attraction/bungee_jumping": { "name": "Bungee Jumping", "terms": "Bungee Jumping" @@ -800,6 +833,9 @@ "name": "Endüstriyel Bina", "terms": "Sanayi Binası" }, + "building/kindergarten": { + "name": "Anaokulu Bina" + }, "building/mosque": { "name": "Cami", "terms": "Cami" @@ -962,6 +998,12 @@ "name": "Camcı", "terms": "Camcı" }, + "craft/handicraft": { + "name": "El Sanatları Çalışma Alanı" + }, + "craft/hvac": { + "name": "ISH Çalışma Alanı" + }, "craft/insulator": { "name": "Kaloriferci", "terms": "Kaloriferci" @@ -973,6 +1015,9 @@ "craft/locksmith": { "name": "Anahtarcı" }, + "craft/metal_construction": { + "name": "Dökümcü" + }, "craft/painter": { "name": "Boyacı", "terms": "Boyacı" @@ -993,6 +1038,9 @@ "name": "Tesisatçı", "terms": "Tesisatçı, Su Tesisatçısı, Sıhhi Tesisatçı" }, + "craft/pottery": { + "name": "Çömlekçi" + }, "craft/rigger": { "name": "Kablocu", "terms": "Kablocu" @@ -1082,6 +1130,9 @@ "emergency/life_ring": { "name": "Can Simidi" }, + "emergency/mountain_rescue": { + "name": "Dağ Arama Kurtarma" + }, "emergency/no": { "name": "Acil Erişim Yok" }, @@ -1101,6 +1152,9 @@ "emergency/yes": { "name": "Acil Erişim" }, + "entrance": { + "name": "Giriş / Çıkış" + }, "ford": { "name": "Sığ Geçit, Akarsu Üzerinde Geçit Yeri", "terms": "Geçit, Sığ Yer" @@ -1242,6 +1296,9 @@ "name": "Yürüyüş Yolu", "terms": "Yürüyüş Yolu, Yaya Yolu" }, + "highway/footway/conveying": { + "name": "Yürüyen Bant" + }, "highway/footway/crossing": { "name": "Yaya Geçidi" }, @@ -1474,6 +1531,9 @@ "landuse": { "name": "Arazi Kullanım Özelliği" }, + "landuse/allotments": { + "name": "Bahçe Tahsisleri" + }, "landuse/aquaculture": { "name": "Su Kültürü", "terms": "Su Kültürü" @@ -1481,6 +1541,9 @@ "landuse/basin": { "name": "Havza" }, + "landuse/brownfield": { + "name": "Kahverengi Alan" + }, "landuse/cemetery": { "name": "Mezarlık", "terms": "Mezarlık" @@ -1509,6 +1572,9 @@ "landuse/forest": { "name": "Düzenlenmiş Orman" }, + "landuse/garages": { + "name": "Garaj Arazisi Kullanımı" + }, "landuse/grass": { "name": "Çimenlik", "terms": "Çimenlik, Yeşil Alan" @@ -1565,6 +1631,9 @@ "name": "Atış Sahası", "terms": "Atış Sahası, Poligon" }, + "landuse/military/training_area": { + "name": "Askeri Eğitim Alan" + }, "landuse/orchard": { "name": "Bağ", "terms": "Bağ, Bahçe, Bostan, Meyve Bahçesi" @@ -1639,6 +1708,33 @@ "name": "Açıkhava Spor Yeri", "terms": "Açıkhava Spor Yeri" }, + "leisure/fitness_station/box": { + "name": "Egzersiz Kutusu" + }, + "leisure/fitness_station/horizontal_bar": { + "name": "Egzersiz Yatay Bar" + }, + "leisure/fitness_station/hyperextension": { + "name": "Hiperekstansiyon İstasyonu" + }, + "leisure/fitness_station/parallel_bars": { + "name": "Paralel Çubuklar" + }, + "leisure/fitness_station/push-up": { + "name": "Push-Up İstasyonu" + }, + "leisure/fitness_station/rings": { + "name": "Egzersiz Halkaları" + }, + "leisure/fitness_station/sign": { + "name": "Egzersiz Talimatı İşareti" + }, + "leisure/fitness_station/sit-up": { + "name": "Sit-Up İstasyonu" + }, + "leisure/fitness_station/stairs": { + "name": "Egzersiz Merdivenleri" + }, "leisure/garden": { "name": "Bahçe", "terms": "Bahçe, Bostan, Park" @@ -1647,6 +1743,9 @@ "name": "Golf Sahası", "terms": "Golf Sahası" }, + "leisure/hackerspace": { + "name": "Bilgisayar Korsanı Alanı" + }, "leisure/horse_riding": { "name": "At Binicilik Spor Kulübü", "terms": "At Binicilik Spor Kulübü, Binicilik Spor Kulübü, At Binme Yeri" @@ -1697,6 +1796,9 @@ "name": "Sahil Voleybolu Sahası", "terms": "Sahil Voleybolu Sahası" }, + "leisure/pitch/boules": { + "name": "Boules/Bocce Kortu" + }, "leisure/pitch/bowls": { "name": "Açıkhava Top Oyun Sahası", "terms": "Açıkhava Top Oyun Sahası" @@ -1780,6 +1882,9 @@ "name": "Çizgi", "terms": "Çizgi" }, + "man_made": { + "name": "İnsan Yapımı Özellik" + }, "man_made/adit": { "name": "Tünel Girişi", "terms": "Tünel Girişi, Maden Girişi" @@ -1798,6 +1903,9 @@ "name": "Baca", "terms": "Baca" }, + "man_made/courtyard": { + "name": "Avlu" + }, "man_made/crane": { "name": "Vinç" }, @@ -1805,6 +1913,9 @@ "name": "Yangın Durduma Hattı", "terms": "Yangın Durduma Hattı" }, + "man_made/dovecote": { + "name": "Güvercinlik" + }, "man_made/embankment": { "name": "Toprak Dolgu" }, @@ -1816,6 +1927,9 @@ "name": "Gazölçer", "terms": "Gazölçer" }, + "man_made/groyne": { + "name": "Kemer Pervazı" + }, "man_made/lighthouse": { "name": "Deniz Feneri", "terms": "Deniz Feneri, Fener" @@ -1897,6 +2011,9 @@ "name": "Fabrika", "terms": "Fabrika, Sanayi" }, + "natural": { + "name": "Doğal Özellik" + }, "natural/bare_rock": { "name": "Kayalık Bölge", "terms": "Kayalık Bölge, Kayalar, Kaya Dizisi" @@ -1996,6 +2113,9 @@ "name": "Sulak Alan", "terms": "Sulak Alan, Sulak Arazi" }, + "natural/wood": { + "name": "Doğal Odun" + }, "noexit/yes": { "name": "Çıkış Yok", "terms": "Çıkış Yok" @@ -2124,6 +2244,9 @@ "office/physician": { "name": "Hekim" }, + "office/political_party": { + "name": "Siyasi Parti Ofisi" + }, "office/private_investigator": { "name": "Dedektif", "terms": "Dedektif Şubesi" @@ -2177,6 +2300,9 @@ "name": "Ada", "terms": "Ada" }, + "place/islet": { + "name": "Adacık" + }, "place/isolated_dwelling": { "name": "Mesken", "terms": "Mesken" @@ -2189,6 +2315,9 @@ "name": "Mahalle", "terms": "Mahalle" }, + "place/plot": { + "name": "Arsa" + }, "place/quarter": { "name": "Semt", "terms": "Mahalle, Muhit" @@ -2209,13 +2338,46 @@ "name": "Köy", "terms": "Köy" }, + "playground/balance_beam": { + "name": "Denge Aleti" + }, + "playground/basket_swing": { + "name": "Sepet Salıncak" + }, + "playground/climbing_frame": { + "name": "Tırmanma Çerçevesi" + }, + "playground/cushion": { + "name": "Zıplayan Minder" + }, + "playground/horizontal_bar": { + "name": "Barfiks Bar" + }, + "playground/rocker": { + "name": "Oyuncak At Binici" + }, + "playground/sandpit": { + "name": "Kum Havuzu" + }, + "playground/seesaw": { + "name": "Tahterevalli" + }, "playground/slide": { "name": "Kaydırak" }, + "playground/structure": { + "name": "Yapı" + }, + "playground/swing": { + "name": "Salıncak" + }, "point": { "name": "Nokta", "terms": "Nokta, Konum" }, + "power": { + "name": "Güç Özelliği" + }, "power/cable/underground": { "name": "Yeraltı Enerji Kablosu" }, @@ -2243,6 +2405,9 @@ "name": "Trafo", "terms": "Trafo" }, + "power/switch": { + "name": "Güç Düğmesi" + }, "power/tower": { "name": "Yüksek Gerilim Direği", "terms": "Yüksek Gerilim Direği" @@ -2251,6 +2416,9 @@ "name": "Transformatör", "terms": "Transformatör" }, + "public_transport/platform": { + "name": "Taşıma Platformu" + }, "public_transport/platform/bus": { "name": "Otobüs Platformu" }, @@ -2347,30 +2515,69 @@ "name": "Troleybüs Yolcu İndirme/Bindirme Noktası", "terms": "Raysız Tramvay Yol Üstü İndirme/Bindirme Noktası" }, + "railway": { + "name": "Demiryolu Özelliği" + }, "railway/abandoned": { "name": "Terk Edilmiş Demiryolu", "terms": "Terk Edilmiş Demiryolu" }, + "railway/crossing": { + "name": "Demiryolu-Yol Geçişi" + }, "railway/disused": { "name": "Kullanılmayan Demiryolu", "terms": "Kullanılmayan Demiryolu" }, + "railway/funicular": { + "name": "Füniküler Yolu" + }, + "railway/halt": { + "name": "Tren İstasyonu (Dur / İstek)" + }, + "railway/level_crossing": { + "name": "Demiryolu-Karayolu Geçişi" + }, + "railway/milestone": { + "name": "Demiryolu Kilometre Taşı" + }, + "railway/monorail": { + "name": "Tek Raylı Yol" + }, + "railway/narrow_gauge": { + "name": "Dar Demiryolu" + }, "railway/platform": { "name": "Tren Platformu" }, + "railway/rail": { + "name": "Tren Yolu" + }, "railway/signal": { "name": "Demiryolu Sinyali" }, "railway/station": { "name": "Tren İstasyonu" }, + "railway/subway": { + "name": "Metro Yolu" + }, "railway/subway_entrance": { "name": "Metro Girişi", "terms": "Metro Girişi" }, + "railway/switch": { + "name": "Demiryolu Makası" + }, "railway/train_wash": { "name": "Tren Yıkama" }, + "railway/tram": { + "name": "Tramvay Yolu" + }, + "railway/tram_stop": { + "name": "Tramvay Durma Yeri" + }, "railway/yard": { "name": "Demir Yolu Sahası" }, @@ -2386,10 +2593,16 @@ "name": "Dükkan", "terms": "Dükkan, Mağaza" }, + "shop/agrarian": { + "name": "Çiftlik Malzemeleri Dükkanı" + }, "shop/alcohol": { "name": "İçki Dükkanı", "terms": "İçki Dükkanı" }, + "shop/anime": { + "name": "Anime / Manga Dükkanı" + }, "shop/antiques": { "name": "Antika Dükkanı", "terms": "Antika Dükkanı" @@ -2521,6 +2734,9 @@ "name": "Kozmetik Mağazası", "terms": "Kozmetik Mağazası" }, + "shop/craft": { + "name": "El Sanatları Mağazası" + }, "shop/curtain": { "name": "Perde Mağazası", "terms": "Perde Mağazası" @@ -2631,6 +2847,9 @@ "shop/jewelry": { "name": "Kuyumcu" }, + "shop/kiosk": { + "name": "Büfe" + }, "shop/kitchen": { "name": "Mutfak Eşyaları Mağazası", "terms": "Mutfak Eşyaları Mağazası" @@ -2783,6 +3002,9 @@ "name": "Bilet Satıcısı", "terms": "Biletçi" }, + "shop/tiles": { + "name": "Karo Dükkanı" + }, "shop/tobacco": { "name": "Tütüncü", "terms": "Tütüncü" @@ -2791,6 +3013,9 @@ "name": "Oyuncak Mağazası", "terms": "Oyuncak Mağazası" }, + "shop/trade": { + "name": "Ticaret Mağazası" + }, "shop/travel_agency": { "name": "Turizm Acentası", "terms": "Turizm Acentası" @@ -2838,6 +3063,9 @@ "name": "Şarap Mağazası", "terms": "Şarap Mağazası" }, + "tourism": { + "name": "Turizm Özelliği" + }, "tourism/alpine_hut": { "name": "Dağ Evi", "terms": "Dağ Evi, Dağ Kulübesi, Baraka" @@ -2873,6 +3101,9 @@ "name": "Karavan Parkı", "terms": "Karavan Parkı" }, + "tourism/chalet": { + "name": "Tatil Kulübesi" + }, "tourism/gallery": { "name": "Sanat Galerisi", "terms": "Sanat Galerisi" @@ -2905,6 +3136,9 @@ "name": "Harita", "terms": "Harita" }, + "tourism/information/office": { + "name": "Misafir Merkezi" + }, "tourism/motel": { "name": "Motel", "terms": "Motel" @@ -2925,6 +3159,9 @@ "name": "Görüş Noktası", "terms": "Görüş Noktası, Bakış Noktası" }, + "tourism/wilderness_hut": { + "name": "Dağ kulübesi" + }, "tourism/zoo": { "name": "Hayvanat Bahçesi", "terms": "Hayvanat Bahçesi" @@ -2965,24 +3202,18 @@ "name": "Hız Şeridi", "terms": "Hız Şeridi" }, + "traffic_calming/table": { + "name": "Hız Tabelası" + }, "traffic_sign": { "name": "Trafik Tabelası" }, "traffic_sign/city_limit": { "name": "Şehir Sınırı Tabelası" }, - "traffic_sign/city_limit_vertex": { - "name": "Şehir Sınırı Tabelası" - }, "traffic_sign/maxspeed": { "name": "Hız Sınırı Tabelası" }, - "traffic_sign/maxspeed_vertex": { - "name": "Hız Sınırı Tabelası" - }, - "traffic_sign_vertex": { - "name": "Trafik Tabelası" - }, "type/boundary": { "name": "Sınır", "terms": "Sınır" @@ -3048,8 +3279,7 @@ "terms": "Feribot Güzergahı, Feribot Rotası" }, "type/route/foot": { - "name": "Yürüyüş Güzergahı", - "terms": "Yürüyüş Güzergahı, Yürüyüş Rotası" + "name": "Yürüyüş Rotası" }, "type/route/hiking": { "name": "Yürüyüş Güzergahı", @@ -3063,6 +3293,9 @@ "name": "Boru Hattı Güzergahı", "terms": "Boru Hattı Güzergahı, Boru Hattı Rotası" }, + "type/route/piste": { + "name": "Pist/Kayak Rotası" + }, "type/route/power": { "name": "Elektrik Hattı Güzergahı", "terms": "Elektrik Hattı Güzergahı, Elektrik Hattı Rotası" @@ -3071,6 +3304,9 @@ "name": "Yol Güzergahı", "terms": "Yol Güzergahı" }, + "type/route/subway": { + "name": "Metro Rotası" + }, "type/route/train": { "name": "Demiryolu Güzergahı", "terms": "Demiryolu Güzergahı, Tren Yolu Güzergahı, Demiryolu Rotası" @@ -3091,6 +3327,9 @@ "name": "Su Yolu", "terms": "Su Yolu, Akarsu" }, + "waterway": { + "name": "Suyolu Özelliği" + }, "waterway/boatyard": { "name": "Kayık İskelesi", "terms": "Kayık İskelesi, Bot İskelesi" diff --git a/app/src/main/assets/osmfeatures/uk.json b/app/src/main/assets/osmfeatures/uk.json index ecd872da3b..afb8e67e41 100644 --- a/app/src/main/assets/osmfeatures/uk.json +++ b/app/src/main/assets/osmfeatures/uk.json @@ -212,10 +212,18 @@ "name": "Пивний садок", "terms": "пиво,лавка,їжа,тепло,напої,beer,biergarten, відпочинок" }, + "amenity/binoculars": { + "name": "Стаціонарний бінокль", + "terms": "бінокль,труба,спостереження,підзорна,телескоп,туризм,крайовид" + }, "amenity/boat_rental": { "name": "Прокат човнів", "terms": "катамаран,прокат,човни,човен,лодка" }, + "amenity/boat_storage": { + "name": "Зберігання човнів", + "terms": "човен,лодка,станція,затока,сухий,док" + }, "amenity/bureau_de_change": { "name": "Обмін валют", "terms": "валюта,долар,євро,курс,біржа,банк,обміник,міняло,пункт" @@ -487,6 +495,10 @@ "name": "Вантажна рампа", "terms": "вантаж,рампа,погрузка,вигрузка,завантаження,розвантаження,товар,склад,доставка" }, + "amenity/lounger": { + "name": "Лежак", + "terms": "крісло,шезлонг,лавка" + }, "amenity/love_hotel": { "name": "Готель кохання", "terms": "love,готель,секс,стосунки,зустріч,пари" @@ -503,6 +515,10 @@ "name": "Грошові перекази", "terms": "гроші,перекази,обмін,готівка,чеки" }, + "amenity/mortuary": { + "name": "Морг", + "terms": "морг" + }, "amenity/motorcycle_parking": { "name": "Стоянка для мотоциклів", "terms": "стоянка,мотоцикл" @@ -1719,6 +1735,9 @@ "demolished/building": { "name": "Нещодавно знесена будівля" }, + "disused/amenity": { + "name": "Об’єкти інфраструктури (неробочі)" + }, "disused/railway": { "name": "Покинуті об’єкти залізниці" }, @@ -1832,6 +1851,10 @@ "name": "Доріжка для гольф-кара", "terms": "доріжка,машина,гольф,кар" }, + "golf/clubhouse": { + "name": "Клубний будинок гольфістів", + "terms": "гольф,офіс,клуб" + }, "golf/driving_range": { "name": "Тренувальний майданчик", "terms": "гольф,майданчик,тренування,свінг,удар" @@ -3125,6 +3148,10 @@ "name": "Вежа зв’язку", "terms": "вежа,щогла,зв'язок,тв,мобільний,радіо" }, + "man_made/tower/cooling": { + "name": "Градирня", + "terms": "електростанція,охолодження,вода,башта" + }, "man_made/tower/defensive": { "name": "Фортечна вежа", "terms": "донжон,вежа,башта,захист,фортеця,форт" @@ -3173,6 +3200,10 @@ "name": "Вітряний млин", "terms": "вітер,вітряк,млин,колесо,борошно" }, + "man_made/windpump": { + "name": "Вітронасос", + "terms": "вітряк,помпа,насос,вода" + }, "man_made/works": { "name": "Фабрика", "terms": "фабрика,завод,підприємство,виробництво,робота" @@ -3260,6 +3291,10 @@ "name": "Пустище/вересовище", "terms": "верес,пустище" }, + "natural/hot_spring": { + "name": "Термальні води", + "terms": "вода,гейзер,тепла,термальна,чан,купальня" + }, "natural/mud": { "name": "Багно", "terms": "багно,багнюка,грязь" @@ -3846,6 +3881,10 @@ "name": "Зупинка автобуса", "terms": "автобус,платформа,зупинка,транзит,громадський,транспорт,перевезення" }, + "public_transport/platform/bus_tram_point": { + "name": "Трамвайна/Автобусна зупинка", + "terms": "зупинка,трамвай,транспорт,громадський,вагон,рейки,автобус,платформа,транзит,громадський,транспорт,перевезення" + }, "public_transport/platform/ferry": { "name": "Поромна платформа", "terms": "пором,док,човен,пірс,платформа,зупинка,транзит,громадський,транспорт,перевезення" @@ -4938,6 +4977,10 @@ "name": "Інформаційний стенд", "terms": "інформація,стенд,дошка,схема,відомості,туризм,попередження" }, + "tourism/information/board/welcome_sign": { + "name": "Знак \"Вітаємо\"", + "terms": "знак,стела,інформація,дорога,населений пункт" + }, "tourism/information/guidepost": { "name": "Вказівник", "terms": "вказівник,маршрут,напрямок,мітка,туризм,тропа,шлях,рух,інформація" @@ -5054,22 +5097,10 @@ "name": "Знак Межа міста", "terms": "знак,місто,село,дорога,межа,кордон" }, - "traffic_sign/city_limit_vertex": { - "name": "Знак Межа міста", - "terms": "знак,місто,село,дорога,межа,кордон" - }, "traffic_sign/maxspeed": { "name": "Знак \"Обмеження швидкості\"", "terms": "обмеження,швидкість,максимальна,дорога,автомагістраль,шосе" }, - "traffic_sign/maxspeed_vertex": { - "name": "Знак обмеження швидкості", - "terms": "обмеження,швидкість,максимальна,дорога,автомагістраль,шосе" - }, - "traffic_sign_vertex": { - "name": "Дорожній знак", - "terms": "дорога,автобан,автомагістраль" - }, "type/boundary": { "name": "Кордон", "terms": "кордон,межа,поділ,країна" @@ -5159,7 +5190,7 @@ }, "type/route/foot": { "name": "Пішохідний маршрут", - "terms": "пішохідний маршрут,туризм,пішки" + "terms": "пішохідний,туристичний,маршрут,туризм" }, "type/route/hiking": { "name": "Туристичний маршрут", diff --git a/app/src/main/assets/osmfeatures/zh-CN.json b/app/src/main/assets/osmfeatures/zh-CN.json index 6008f5ce96..53edbd9d08 100644 --- a/app/src/main/assets/osmfeatures/zh-CN.json +++ b/app/src/main/assets/osmfeatures/zh-CN.json @@ -1345,7 +1345,7 @@ "terms": "粉刷匠" }, "craft/photographer": { - "name": "照相店", + "name": "摄影棚", "terms": "摄影师" }, "craft/photographic_laboratory": { @@ -3670,7 +3670,7 @@ }, "shop/photo": { "name": "照相馆", - "terms": "照相馆" + "terms": "照相馆,照片" }, "shop/printer_ink": { "name": "打印机墨水店" @@ -3987,12 +3987,6 @@ "traffic_sign/maxspeed": { "name": "限速标志" }, - "traffic_sign/maxspeed_vertex": { - "name": "限速标志" - }, - "traffic_sign_vertex": { - "name": "交通标志" - }, "type/boundary": { "name": "边界", "terms": "边界" @@ -4071,10 +4065,6 @@ "name": "渡轮航线", "terms": "渡轮航线" }, - "type/route/foot": { - "name": "步行线路", - "terms": "步行路线,路线,线路" - }, "type/route/hiking": { "name": "徒步线路", "terms": "远足线路,路线,线路,徒步,远足,远足路线,徒步路线" diff --git a/app/src/main/assets/osmfeatures/zh-HK.json b/app/src/main/assets/osmfeatures/zh-HK.json index 9ce3bf0aa5..e3962f0d76 100644 --- a/app/src/main/assets/osmfeatures/zh-HK.json +++ b/app/src/main/assets/osmfeatures/zh-HK.json @@ -2795,10 +2795,6 @@ "name": "渡輪航線", "terms": "Ferry Route,渡輪航線,航綫" }, - "type/route/foot": { - "name": "步行路綫", - "terms": "Foot Route,步行路線,行人路綫,行人路線" - }, "type/route/hiking": { "name": "遠足路綫", "terms": "Hiking Route,行山路綫,行山路線,遠足路線" diff --git a/app/src/main/assets/osmfeatures/zh-TW.json b/app/src/main/assets/osmfeatures/zh-TW.json index 58c6d02155..9954e6e90f 100644 --- a/app/src/main/assets/osmfeatures/zh-TW.json +++ b/app/src/main/assets/osmfeatures/zh-TW.json @@ -211,10 +211,18 @@ "name": "啤酒花園 ", "terms": "啤酒花園,屋外花園酒店" }, + "amenity/binoculars": { + "name": "固定式雙筒望遠鏡", + "terms": "固定式雙筒望遠鏡" + }, "amenity/boat_rental": { "name": "小艇出租", "terms": "租船處,小艇租賃" }, + "amenity/boat_storage": { + "name": "般隻停放處", + "terms": "般隻倉庫,般隻存放處" + }, "amenity/bureau_de_change": { "name": "外幣兌換", "terms": "錢幣兌換,貨幣兌換" @@ -486,6 +494,10 @@ "name": "裝卸碼頭", "terms": "裝卸碼頭" }, + "amenity/lounger": { + "name": "躺椅區", + "terms": "躺椅區,躺椅" + }, "amenity/love_hotel": { "name": "情趣旅館", "terms": "愛情旅館,情人旅館" @@ -502,6 +514,10 @@ "name": "匯款站", "terms": "匯款處" }, + "amenity/mortuary": { + "name": "太平間", + "terms": "太平間" + }, "amenity/motorcycle_parking": { "name": "機車停車場", "terms": "機車停車場,速克達停車場,摩托車停車場" @@ -1709,6 +1725,9 @@ "demolished/building": { "name": "最近拆除的建築物" }, + "disused/amenity": { + "name": "廢棄設施" + }, "disused/railway": { "name": "廢棄鐵軌圖徽" }, @@ -1821,6 +1840,10 @@ "name": "高爾夫球車道", "terms": "高爾夫球車道" }, + "golf/clubhouse": { + "name": "高爾夫俱樂部", + "terms": "高爾夫俱樂部" + }, "golf/driving_range": { "name": "高爾夫球練習場", "terms": "高爾夫球練習場,練習場" @@ -3112,6 +3135,10 @@ "name": "通訊塔", "terms": "無線通訊塔" }, + "man_made/tower/cooling": { + "name": "冷卻塔", + "terms": "冷卻塔" + }, "man_made/tower/defensive": { "name": "守衛塔", "terms": "槍塔,衛塔" @@ -3246,6 +3273,10 @@ "name": "矮灌木叢", "terms": "矮灌木叢" }, + "natural/hot_spring": { + "name": "溫泉", + "terms": "溫泉" + }, "natural/mud": { "name": "泥地", "terms": "泥地" @@ -3827,6 +3858,10 @@ "name": "公車站", "terms": "公車站" }, + "public_transport/platform/bus_tram_point": { + "name": "電車與公車站", + "terms": "電車與公車站" + }, "public_transport/platform/ferry": { "name": "渡輪月台", "terms": "渡輪月台" @@ -4916,6 +4951,10 @@ "name": "資訊告示牌", "terms": "資訊告示牌,告示牌,看版" }, + "tourism/information/board/welcome_sign": { + "name": "歡迎標誌", + "terms": "歡迎標誌" + }, "tourism/information/guidepost": { "name": "指示牌", "terms": "方向指引牌" @@ -5029,22 +5068,10 @@ "name": "城市限制標誌", "terms": "城市限制標誌" }, - "traffic_sign/city_limit_vertex": { - "name": "城市限制標誌", - "terms": "城市限制標誌" - }, "traffic_sign/maxspeed": { "name": "速限指標", "terms": "速限" }, - "traffic_sign/maxspeed_vertex": { - "name": "速限指標", - "terms": "速限" - }, - "traffic_sign_vertex": { - "name": "交通號誌", - "terms": "交通號誌" - }, "type/boundary": { "name": "邊界", "terms": "界線" diff --git a/app/src/main/assets/osmfeatures/zh.json b/app/src/main/assets/osmfeatures/zh.json index 1f8d05e95d..850d612590 100644 --- a/app/src/main/assets/osmfeatures/zh.json +++ b/app/src/main/assets/osmfeatures/zh.json @@ -675,9 +675,6 @@ "type/route/ferry": { "name": "渡轮航线" }, - "type/route/foot": { - "name": "步行路线" - }, "type/route/pipeline": { "name": "管道路线" }, diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index dc7a4dd9f9..9945542f85 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -2402,4 +2402,8 @@ Is the situation on this cycleway still the same? --> "Outdoorák" "Vyřešili jste %d úkolů užitečných pro lidi, co rádi chodí do přírody!" "Má tento přechod pro chodce ostrůvek?" + "Není tu žádná značka" + "Je rampa pro invalidní vozíky na mapě zobrazená jako samostatná cesta?" + "samostatná" + "Není samostatná" \ No newline at end of file diff --git a/app/src/main/res/values-cs/translation_info.xml b/app/src/main/res/values-cs/translation_info.xml index 3ddf070ea2..1953c600c1 100644 --- a/app/src/main/res/values-cs/translation_info.xml +++ b/app/src/main/res/values-cs/translation_info.xml @@ -1,4 +1,4 @@ - 99 + 100 diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index c26aa0adff..b81f9b1f10 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -2136,4 +2136,8 @@ "Ύπαιθρο" "Λύσατε %d αναζητήσεις που είναι χρήσιμες για άτομα της υπαίθρου!" "Έχει νησίδα αυτή η διάβαση πεζών;" + "Δεν υπάρχει πινακίδα" + "Η ράμπα αναπηρικού αμαξίδιου εμφανίζεται ως ξεχωριστή διαδρομή στον χάρτη;" + "ξεχωριστή" + "όχι ξεχωριστή" \ No newline at end of file diff --git a/app/src/main/res/values-el/translation_info.xml b/app/src/main/res/values-el/translation_info.xml index 3ddf070ea2..1953c600c1 100644 --- a/app/src/main/res/values-el/translation_info.xml +++ b/app/src/main/res/values-el/translation_info.xml @@ -1,4 +1,4 @@ - 99 + 100 diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 7d7dabe833..624af81984 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -506,9 +506,6 @@ The info you enter is then directly added to the OpenStreetMap in your name, wit "Does the bus stop %s have a shelter?" - - "Does this toilet require a fee?" - "Does this bus stop have tactile pavings?" @@ -1178,9 +1175,6 @@ Otherwise, you can download another keyboard in the app store. Popular keyboards "What religion is represented at this shrine?" - - "Does it cost a fee to park here?" - "cycle lane (dashed markings)" diff --git a/app/src/main/res/values-en-rGB/translation_info.xml b/app/src/main/res/values-en-rGB/translation_info.xml index 1866093d40..2870f63b74 100644 --- a/app/src/main/res/values-en-rGB/translation_info.xml +++ b/app/src/main/res/values-en-rGB/translation_info.xml @@ -1,4 +1,4 @@ - 72 + 71 diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 23a46003da..8f73d2e77f 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -2148,6 +2148,7 @@ päiviä"

-n17@YmB8dRHKGIDpVs!#dsVLN^jTc!PdMn2U-}z9Y3V5;(4>gJ}pJ)6wN@#RDBL_sYp_+>0qX zjm+(sXc~Fa&=WFpHg6J)d!48Zm+frHx5u6|TP^S1OS3i2p6J)Q`k2gBpK7*0C8W{O z@;alBW*Q2e&7Qq9m86u7&1D^=h z27+ilVrkLAMCBaDi>Sq1!V$0NG79+#o=MK8l1DO@>Ds;}q1XEh;xLr+Two~6DO#5< zS6V@Yk}}p#e2ERwk{BsUQ&Z@p*d2f(NK4mqk>=UyaVjkfjAtfaK4&}5n4xHb5l5J- zbH`1?)qR3wBEl%6A92!(^RrMK+sl-33N;KB9XGyllpsg`N^dkY=&pzo{QQM_%CZ(n zyWPRSK(0V}62l59w-@r{tY4+i25L{boxwQ4)~+JBcJHq1ENx?FvPyAAIUB%k$~Ml$ zZC*-`7=f`zffx+@Zj9m4*?AmTWASSX)1OwA?xH_AEL52LTg&Zb$TG ziX(x(PGb}1_teqyPs!QfKg%9^{0-0%PUkR4U@UD2m`9=xcxJ+D)m=J`4J(=u86H!a zQ_2m9e$3L*c=D!~I9cX{keGb!r$S>mVFe=5H`G8re0{FEBKVhBm-)I#?CVx=x$i0K2qQw zlQ~KkOwBxV-ce2EStTJJ5BF4b8`HZ_GF2%Z*|OMcge&a!*0kpi$jjEA1&o4v@I^;6 zYBlEklIL*s$d!L<80Vrn`ljkOTX!VS@&)M=l%5Xf!WuZy3M={keCRGsC6gZ;KX^rx zFKwqB&W4m3Ka(f!HE`6ZPG!bt#J8o5SYM{wC}nA?=2oJ%Ud}V{K>jH+lo#!5oU1PK z3$;Nt@kja^2T>u$!gx?y!{)N?4vr57bwb;Ixq9sFS+7DDisdYONr)rQI1S*rXsI4c zd#NM|p*)(i?bL?3J^NT*<@69O_cniKVM32tat%Hs`(#&^oMjGrelxRuqmpvpj)ZdM zwyD1WNln(-XcoEHvxd;y<}Ye2K}PD28E}xAj_+kSy)&XCjW~>#_7hxo7tTo(2jvJ7 zLRsL1dSg*V`JuU{e9g=idDj#DY!;*VCmykgW8bu+AZOX|QRd_RF+2S{U)2m1{f-$G zxs#rIHt-W+;bMQCvevYb0=~)MH}Jxr9tk5&t$goDkJjL322BqA{i;c{5QZXQf}()f z#!lEr56k^OjQva5xpxfY#?l9rv@$QToIdPdc+O_@*rND?Y<4JaKny}|2Fwsn`JF^F z-PpkQ(6IBx&j(ubq8R&l3E4WigoHE;0bAodyP+(eERg1G603j<1>H2xb74Om8G5FT zhqwgrapT+{VuJjDb8Xff~N?D3DJ}Ept#lu_1`R)c@f_^|S{TfNl z05mPq(l#tgn}55ay9DID79H6;y8f`T%HZfpOEht@#*z~(DL~Sv znhO%!1Lcs^04+fV{U%b*rn8$`Yzl>K^9^3$-(Y?gMFq<;*sG$TQ7mnieY5dC_>L1? zbYnF~5XxSEG#A&xs4AKs^vtnYHf%34;;a5bl98PyV1&jjJuBrCRW_*OUT2-cP$Oom z)pueXPNJY@1v<5VW=GLF0G|p|`ji)Skb?|L5?RKVn#Amqaz={#-<{Xk$5r<;=rMoZ z2|sZSjLO&KFyaI&!h-hZQuFBFBS=1wvn(E%Sd@G*Rx>hekRri0-~?r+o`fhb!YOB1 zXdPE({`rUvZlPrJ{-tURKCN^l}s+hLcQ0mQJN}{1)wOkr6XC*bIl#sN=ehh4(VQR0@h%VjaoM6N%`Tp9%_Bd|78r~bf8kvFqOke zGcUle74I;-kt&OO+7&62kTdgEaS1!{(LZsuE&-jmB&@O%vK^n-dz=j`PMxS&aM;^l z$Y}QY1gG>r=eMydUPx>6Fa!~>MBNG{DQxgu8Oiy_+dolywfN3MC!80TWV^L4-_ zpRGDp4&(m1zl zT$H0{(;T=MomM>wwkKy>pyc^2#NVPoiy5h7ei6g`cFh9uCxdY;a_S^`pUEOX3nV=n zp3?kCHtPyibRbi6mo0lnBsd6$!elz~w94^MXYK5_BEY5W3Wq9!nxs*%xCQiOcrk4& ztHmFS6G?!U8#6qr9n1?cvC)pu)7DHQ@+`~UuJ-LMXY0r=UmA@+M851!r+m7XtS%i@ zR63hcUNLjb;tL8pNakfe38G|hpjhSTO2nXhi}&)R~*h$_>%bio%-X}>x-geJp z;WbiOFkUQ5Av%wPY6Cp^Di@=5MJ~+IH||`uO+LQjE`}YfI=7WCB@=9+s-@uQms6a& z*Zf7py)o80NcQ&3XsKl?QSY`QA=5n3V+n}2uLO6YwfnlV{!yzf7NA8qRu>%co_lKmND3Ta1Qo=KXPuI84jl3vJE=x2op-CS>J zsnR@sX+3_Vpm)lr@5#Fz&DAsfP$sqHljiDJ%03(+FqTy1F#aQ=e^W{Gk?SVn6zz?vTdnurua<&1XCHs?;XWD|s=ErI`-wvIOP-3#Ix$#k>Zo`Bp3)*Q9PtXHuRnWL78$X7#A5s9kU!^9BMZN$ zEEdL^uzw*@5DRpdhruZj5dGs{9I;8Lb} zahkKa89Aq!SRDGjaHj@byCa#1Q<~cwKAzH!v5D4J+soCYw($4St694;Z}e);?HSDc zwxjd>IxF(!xWH>p;E`>YGUo)EP$1Dohk!s!{mIyfetHT&q;@KnW96(#7I)rnU1LgAF=9$F8hchMDRok|WBQ5#_$+PfgO$xWb98h^7<5i7&WtiYm7Un8- zz|fLPTd7!uC!;3V&Iv>Jx<$nDH3|3hnwCAtlDRbYDe1MUA(8fhpn9|=k|4ab1IhLw@t2$fq_8?MlpmLu>yQQyO{HUD*XEMm?Fh;l4`m9(%&~ntqH$}3#W~B>F{IZUZHQ_KMcYaHah|xWNISX}ztdkd z?}qY13*^M?;!S^kZV(j&Y4pzhz`F$rVYa13?;91PuFQ0sXxLTjs`l<+gz<&lF0XfM zAFvakVyOlN424#*joZW0xE2{|7epf{toeDNKXcQ}94$X=bsKSJB8{HlkFG&Aw|?C zs3~6BsEs_h8+i&!7&-?UEjdRN(V7Mk9o%rz!(i1zZUwzYqB*M znHNyX`N{N5wpXI&XA$}JbeV#;f2oSUkRpV`B8t1BjRpis8g1{hYI>!H`X_P2hi3?7 zPIotmk1^HfZzT)!&w0y%Bbh=RqrGt@Ope5nYdBz_9g ze$ym7K|}O)=RLsX`8UBtiJ&o__ZhyvC7^ekkD`^$wiL5sYYv+q?8sCAI+db)%P z3;9d)t_#6T1!qyuBS{wsP4lZ}wbn2zngP@=xr&SPc5{`x3Fwp>NWK|`?z|tSE6Mf9 z)FJ#AKwH|aQ)8j{$-}sv@dKxBu>g!rFfR!h;*G7V-#!jqG%!m=K|&Arto)I6LRo@C zc8>dl_Z(%^96}(`mChai!J_{){anRQd=CYr@q>B^|EWm_dnEf-wN!2uB;!6~#9(L4I$-~&vdP5z=V4sJ@8zIDdFi^iv# z<3*9}y&NdwidD)WY%`+T>^{cdDJ2M6%*Oh==l&h8V#e|A(3ps z=CWLxc&Ue3v2V}sQOnFKHL+LMO!5py{$V+*{3gQ8LR7KGh+B%U@qnMoJWH06RB28^ zJjMN~pt_E7Q2b00ecSNQZ8|X|2U&q5LM~hvci@d-$k_e_qt5*Ua>S*P^rwLbQ^{#N zj$4V&=d_o29DSL(%#RB#_`J#KtQtpgvzAoMc3INlBKGR8b-d!by>BMq=G z(tZaiKpM~0!VrA=f!J*jnS^Jl2_4sn90OZDyE3hlq}X=S3dsh3{`0z~(Y?mCM94g5 zT1C ze#hRRI@VninCWG=*08`RDl_68Io?O?$IPP2)|O3#TI8FQjXA3^)g#h(DWYP^B+KGs zytIP!fu}Ar6pG41nr?*Pv}4ZbAD2x&KUZL83&KzR>6okcDY))R8!R6+as&7FF%b>UEA zGJ5tswawZF{;!MoCyZ@<>yb%2Tz)Y$r9$s7T##EC`oI0b=>4b&gX=qxqaY}ZKnkL0 zU=!wD<60g~oNPw^pEy}@P2kBKOEH(H^z zSI7j>nosyiI@8WAmuK+!2FV_gF#PCP#FM<>l6TnhJ{`B*hK|!795c(6(@%uph(WB% zzlpOaETwZnyp#pxD3cQV3E1^)92VGunG*}BMyHx8G@~U7LB|2Ls6bc0$&>{;HOgF`slnUs*s9RXc)NV3sCqE_!+T>8oT?zK z2XlstGc58$h-fm7L{m=@P!2?!;f^5QI%W!kErm{*Rmvf*hvztKdg=rrNUJKou{9p% zrlS2xRXgQM6_02aME(Brbx--!*>4gY_JRd-9(rrtQor%lTk|NBaK&$wuJbW$n&~nD&-jkmkj^gH1VIZRf^pva&pXv>*q0bPzG=@_M5w3n>7_JqmNhP|%l#ARI(;LCCZymCEpntxnvq1<+HUNL7^v8?Q-q3=hPugMM1XQ$j@h>fqz-i%7P1jSM2DTRs(^neJSu`vp4qL-~Rvv5t%KcArNrFqMQuVQ=4B_b=NnP?LuRZHB}vIdpn7W%&9m~9^_ zDb(0lyy_dmdLz)j`cmR5Yzn_Wzj%0F2Qgwi@0g$N1OsbcCK|W2*tR~i%l$&s{8dXH zUhsQp=uHf+QfM$Nb`?ENyv zqR)Nm1mMottX{Lz9|9W1<|b5JAb8?8{{UkZxr+7R;%T8-^{5>xH_Jk(HU>1W;K&$#J5kG>kkr+lZ+D~X=SaR$Qqy#On#GXzj(D~ zuCGz6-CSZ~-eJXlCM)<5!9zTg*APGj^Ttz16shopbXB4RG&x|N_D80zV2(T#`kb;hrGo38<)0J4>nuO#xz5;FWPKa z?h7fd?0@7CX!b!YRqy)*yCc#4r8Fa$SP#K5eU{)|jY3}l%+WT1Wo9{-?T=?pL25~1L9dxNeVb4aw;1=LdT-fe{&>@ z59o7)<|yncAM056j74b!E4Ep7-rgf}j}st*UhSwB;I^e=miCMj_bmXYuMrlWG>m4L ztXS<*-PjdagachbUBRiK;O&Lrc{0EOE!;Y~fEXt=QBh}%hkzZ{2$~@+hGXXfV%y4L zR(sq5NvOYep`nMHjw!todqZo9a<7OHZlifSg0p|PA|ZSsEo;!gxa@_o{7kJ7u+{7S zzym?oAKqXPsHr%3fBAz(ia53aDwn<@=#a0A@Txg0n*c}iTIj= zfy1cu8IP4e7r9|xdxE8hqG1j&DX%~KGxPSSEU<@7gVk3bnqb)N1eM$!hxBQkLYSVviZub#s1(1oB^DsM$F6fIW^jxO+<&2(}F47CM5BIDB z%W-4d2k+WgQtSf~#QyWSdwuF0?v!|CZcHfY!`m_&i+9Oi74LmPVH5^RC*l?@@8JDc z!~hg2)W}X{4TBRgg8NE(BFw=GUU`l*J_Sk$syG;tr=du6+4PHA*OK$G}d0KPYQkdx2%+UOY=C*pD!>7GV&J z#Au;3o4^rSe30<@2`&?&4zS~S_=?iG~>hf^(kB9oa5i#IG#QS*o@c{O{Oz^u!t z5S1`(zxh!F{R**v<{~Q#5!Y|1^{W+A`Q{~%vy7%9u86A41GZ$-U#!j9It|mYxsdz> zNou-gmhXpfGj9PaEhCyQAyJep{ykH3yc8$Q*b>H>HTSY>sRSWovI1cESUA?-S z5UNl&G+ZmHIF>#klQMdf)!cz2*@c20f?`TS(_AIdzL^} zw?U<+jZ0TA%uR>QYEfp=_xB1m{<(wL=Aj0M!R}aSJPC9!rsLFO>->#yELOy@wa=C# zQBNc~D$Z^^g(6b`!xDspZkoS8-OC4qsvjA10(va4(Y$WC)ET!^fvDy}!(8))_-0<| zy52DlQLoL*^{Hxva15x)#nS>+?C*#!6^^62A2PGCoXYJ>+*yLVIQxZ5%mj+_yLiJF zc(OwbY1|ELde~SLUNbp|?UfX;7&Dv1!70#}!HWY-Ki*@|77Z7!Y?k5dU~z8zM7a;j z2PLJ-Rq1-tSV}7eZgir*grIvQt-AFP?JJQDMeET&z$COI)gT63nx!k$2v~XZGjzz} zA7dNOh^8apG2#j;GoupY^yP{pFNgBXw|rrv(U_J~O5gENpjvA$vyG>`X|Zr@zg>J> zOcNlm=e-eKL*fB=d%zhC&9znTQ!Y^Wu0#}a4n-DXI>J+BGyu%3y<8ll@WaXiv!6*o z({A*L3>vBXluDbc%2C*OAPY9KHj9<|AvXOJEceTl*L8%iOB~)MME1fh+pWY~k?Iny zolgiHN({yD+91JNT_hSbr-*JuP*4t#lDy8S{-7X~OSCj$P=HLIH@QGGTjCx65%RM+oj;2BHO-I3X8l z@iJbb7!NML`j_SS!Uo73O7Ue&Sm$+h0K2EA=l)eL3E-HQGT$6bpx#Ze@)1P^e`W%R zYi6TpZ*<~QVEKolJ3Yqni&Y^@)dZ@j3P#;PzW6r8(0nnq@+Dr{<~E~yrNOoe^H)83 zFsp+MPZyuKCd->=r6X4?(826KFyQaj4`k+0hFzu)c=4Oqqtf|+HBkH_X3`CV2n-9V zT##bLxZ4ZDPAOg(#ZAez+IRyNkmXj=-OPsmDy0TR^DaqIyP1-!inOl`+!3c(KPR@5 zJ)FBQ@hNWjOAY0hRSN_YZ!*xZZ4J&qA9TXq`%8KeLYMDXEuYgvX`bU1f#QVazTe;K zH(liAq~=4)%;*L6h8Tb01Wy4j z{{XQnkmp*x;shE;IWkW#!4Iqqp;)3Z%ztt98X}k;pO1)HOmbSL0=4KWWAMxeX|Ewy z06!vM3vsdy=Y-i0%wb^owq+@PNek%MnTk-RdiqQi^AGh3OIC+(GQ-fYRyMeSO{;^5 zR;RjEK+yy?c7$P-+bmRDSi6rwUDO+}I4g;lpz12wdQhB`&S4>B-WgiC@cwfsdMknE zQMX-WmJ$T26DHBl6%%?5(hylS{{T@-6=K{>cM~12)>{zWH2ue#PfJ*ItrzBEQa2+i z8%4pMg7rwh0L-G>lW{8QU9H$BX)nZZMY~AG!(-p>E@N2dv^TOgKU>2xVKsJvg zj*Z-BGKys5Kk~lfugRc_=w3|ZPFUN#vExt~m~s_59hCc_$`2w|4rK-Y4eA?5D_|xbJJf`2jf}=W$938kqr6&Y zuAXrzQGZxeR-rdhrPkKLgcicv1WLGw;5g^Z5zKphL|U>P1}Y|Ft8oE9?>8_@wbOZoY%|G91%eI-)bRYuT)Lb0g%FVTL1C|IVUqDO zs7@eLJ}>)?ydJPt@+`F-M0%yLZ`R=#HZ`IptW%g10X&IlNbrTfxxzmI8mnaFNCKpRkF?$i-&(26^#wH~rCeJ}M6Z7yymuKmno{ZlFo?B*t;?ts2axE2~8 zF$^K=QrQ%3E(y?>I+^R9IJntX2bq4CVFK0=#SrRPsRsFC1{Z^Ye=?LRuLLSs)4G9m zlxs0thpYZ0yOW$BxN7W@JV4-2no zmm2Dj2SU4Cd<&9P*@1%HLRZ;^kYvQa8`#O1XPoB%^@dvUs?14$X}C1-mOhPm55f~s zJrOg@(~>+j&$Ulf^;wkS7QClGUU)`YN;{8bU(qycwJcVMaa?$p^X+hjU_9qcs$hS3 zi!#1Zu-V#EvzHRUvk9u|?q?8ru4h3wZ3|1qTYrUq;YD$^W3t71%;z5p=2(C^Xuo(> zxi?+;scFs6`9H}*qT-+9{{V`KshdGhZs8)1_-!wmrf#p#r?z; z#rBmOD9~*ZHCIX$BnF7QKe=he1Hj+Zv=LAboA-)Bd0tpp8_etV#-VPSg~JCo!{Io8}W4n6+@LnN3l>~H1P%ySg+9tD`lLa)&t^l?&kqK zFEL-o#0<9h$tr;jXmKJfeD404V@9JV>KzPD_xggMI5zl%2eXXKlgLNgDS1~sp3iWz zhu|UzJG>SB>l_3zSfAt$BUB2za@@;xf9PglBBQ|llE$LIJ-oqBmbEj}cNI?{?fJ|S z%C3_G({l-^TjnR2gL7h?Fu|D2?Z0YBH!?R<8MQ|Oz!pEQy$$Ym=ew1?h*2dMhaf6 z%hJ!akaWtx5}ETzR20uXVbS(dIisX;Nexp^o<+`ZV^Bk9Nsll>bRr*6IwUrMr{a@mgO0M>dSkyC< z$PmU(#S<<87HSd{$Op_6!CjJ&i){Q6*EsKZ^r7;Y+UMZExNoCupxcG#8_Ow5M&RQY zz7SQhSBM7}mC9%VsF-A^(g3-s!UnlSR1J4iWvl3FTFWl2{{WE+sva{85cMCaxIN`e z#j?dzNblvTNx|Wdg~|)MJj~Pz!q40?sqtGpM0}`aa2m2(L3=Q&)aI!9g7=|s^%S94 zUktYB7;m#O(&wA<%x7JXSZgmE-IME*LdC%vNCe+}$vXy7gvaioR`8{SRUQ z1mL}RfC@t2Ki=L0nko)JRj5ZTAx6 zImkaE6bCu0AQP?y2gG5(mCRV*tN#F>+!0q>rtlLwUB9aR%XQ_3NI(UIs}FLnuA{YIRS@QTRW4;62p@>J3MJ6tSdVHe9D(B= z45XzCDe*J;MYsqNy1~p4T5?6z;nZR5UMRw(QQ9Yu51bHXg1S6zxRrw1w8B+NW6qf+ zx(Dq6fiFJ0nwySM2jUh~O%?2eG#v%;lk=D5KVLaPFcXO#dg^4+YY2^sjy^7g!AE$% zsPc|=o%=y0Qg(6Ua;sOmT*`XZekFlaD?tNt^qdV|rqr{yhRoOaU#s17&Z!)AI zLVnSzibj_G&SDj;u=6R0fk)F3rH?%EC{|I=zl=(9e~`dke9RDo%}Rq6Z!yOJ=$HZ2 zt3vW&#Sm){{67+?5z9+JTGh&u(uQ7tSt#H+$OaFkx;+IyoKs1e2VdxO?3xMo)W z05A7b3n{d}xko-l}n0_J)-AJC${Avvb<@7B*+Vm!s5X4nErn z&QiH zEzBZ0ae27alAHu536Xx^@6^bNTpOslL*xGd8GXN#xU%v*<1jQvF<%i*qq9Gmohat6 zD(_5_H<;F`zQOJNUsg?nYt4T1}Dbz5~-NjdR>84rFpkK;n&Ag1g zdyY-ptFP3$OdiQuxZM(*MBNso-M7_@%Bj;|xSNNYhN{P`7PIpx8dJj^gVZ8-hgM>s zO6_`CcVPFnd=O3|je7{+%BlH8yY$2?h`Q{L4ZU?YvYkXR{GdDasb-7PHj(s1ngb|x z3z>A*W~j!2xt6I+)n+22o*7-O=lqSqUb$sg@{Yf87Ql`cRgh1tN_>Bla1G_`Xg5x2l=Cw-Hu1@R)y4M33aGe zO?nhWen=rlAl_n)kdnzLdi66N4Ns^Zuc)c?()DFQh&>~z=5;VCGl8oO)`T2vzbU7j zGQfC^c|KWqFHGmIc4GTgo+@M@9@0EzN4bS99#{>x*&5isE)`;~mJum^()ocwZxdeB zz=PkAu0*5gkbjNyZRbW0Vi3WbN7Dk8#-xIxIfeu-(P_U>xk+9DVMdygP< zouXc7FR{d@Z|nZjTC4B_aOA#JSW>T&56rRb5_<~M3|#M`P>eZ`8v94teqS>x4wy|` zyfR8@D;GEa0Fz;F0`)bycez&Ed>fTzChDd>Lp27^26Y0bA1MKFyQ5IfwCXfTFH1-} z#CEc};9Y6+6`(u_`3Y{vKJyE8Lskg2p?M{NUgH~r>f>-7;ui}c(H|^t!e&Hq*V8Kp z3-qNRA1~+X1Rj=UM}VQkok)AGWq;X{+_ z4aFBP3K?XwzM6?_T=5Mei^M8qH%u5$6&gx!uav9xmv~3eSQ}SU3~4`EB z-M$$sj2&DVT?HugbkFi(H-WkqRJuBu?+`Yf>4@1hF0CtFW$_|#RYdHNiv zbSJ4TP%db_^m7r(C`x%|4*IbM=1Xb%S^ofl9cyrV3|pGyj2B(oQ?pBr7&Zt=(%d?uEL*l&zS-7f@NXRUKX23{8)IuP6(NBLme zQC;tni**xtgzxfU6uz65 z6AkNe5rt0PF6oy=ng_(efaVRMl^@D%YLh$q$K;D*cg4anG zd<PE5u!~h);0RaI40RaI40RaF2000000RRyp5HTP@ zVNw6u00;pC0RcY{{TYu_ls*$@o8rVr!g(Aug8iO3_zgl`^7_O(*b5UUslFWgF@5Yj zj2k4jR`PJQHSvT37{e4m`;%^5CWWh@NJW1k5tBd5R(vdy;z764Fh8mezE4R@tb!)n zmrh*6w_XfdK;@H!^EbHdterSUc%+rH1YBH5Uh(!AZ?^W$xpUOpWh1*-@vvwpT10a z1UnxmA1(SDGX5hNgZAyo=^A<;ke#*u*$_C%q`(Yd`M32cWczmeY&&qX zGV0g+5Fg8*P+#kRh?q^+Z;wO=fFnm(-9l879|z=d*+II&4?;I0W8gr%KBP9p%<;1$ zR^;oxKx{A{7VqKD>|J&}G;#5j^Vn0ce+hjb>%f@0?}TI1E$4ywAeMIW82m(bVaaZO zo%|X%$-V|qKtdS)1rN|O<@E69n|IHT5PduxozE~wdv5cZ4x*DUgSb8%{VxCHgX={Rkxrd}`cJ$z5*U2iiLkbx(WhT3KHW? zf{sr@!J*KgRWwni?g|64lyI|PstPsmgXBDmDiqkO1x}1an4?Ps2pW}%60*i9SdtV} zb<4PD*lnk!hYD7VVWNyM%TTZ?xSUh4NJtIMhl4?2T1N#`7~)BrVa*A3BSZKaLuL$Q z{leZ9)Cwn$!89-@JW>`I&L7aYB9*0E@Eiy@C`Vz3N5+p!2pA^%8F(lwX?F4vLpMso zp=bDz5I7K3RR;e63B~@&%4vR2SKE-P0$cK6O>4`Jo$bQgW z@uAvr&Ou601Uvad`H_GD+x7bUzy;wMqVKb-aBC!+fWJL)gBV)5@GsBN#&hnbg8c95 z-~$Dl+MP@1j6!5!6n_~43yD!avIDIP$u;}d03cMLNW#A?FaVJP(GV^IThzH$(>yhK z3PPfbu`s~R%=AW^-3QmS$yQ=X(_6{)%jykJBb;I|J z3D`y|CXbTeS!b}a4MgzXyv$^ zjq$EPKs_TP5Tc1!t}=G%%Nd;oL|ZFCF{4{rs89uERp&c}E-D=>0R(Ooq;17Su(zFg z(tmN|CvkSH$zaVI&DkVXHHNydHOhGqJbcgEQ$N@u&*cr@yIKKDo`J5P&C!fXvs=23rF_;G2PP!x^{v#Ez&Pp8xK%v z0nC$W-~Rw!CLYo>>I5Ta9b^ZA%IJ8~kX)K}i?%4P(|!rF@2sbm#bDGsqV2~WVK4#8 zlFgxc`N5P!l&9=7Rov4Luoe0Y*vvb1p@j;V0cAkRFIh#AE!7$d&Jc`JfmkXRLp4Gi zdN^eu3PiK5_kbxCXZHhB;{c#7R-t#S&=)}!Pk`OUT<)X;QC*LoutbVgGB?VC(VuKF zL``xcAOZ>w*C;@&*FWI@05GAcgHqkqQIJV(Wejr2Pytlh?Xb1c-RJJNi~vdw#AHNM zBy;Km6tPC9dMZE-B8f{HB3h#jsj`I-l~~l3QDv%_gy&8PaTYx|fQ_ccO=A-U3@G}> z?QCwYoQhdH+x6ZxQJ4c&N;VjnboU2sJSncrhml@xJ%Kvjqy;%kW3jbyB`z$cmhJZE z(;FVJJU9MgLI^PUxPIr_55o9x(fmk&4TsB;Wm_IAlwoULq#!>t=5rnqm4%D!QYL{Q z(*>9*u87**FTA#KO4?8(%6xJ-hxBdCT7Wb&dttjU`K=u>QlJt#pf|$gh=3@8WCMM( z=U6jfoQ4RIeoex!SnHsrH2&tl`0(HWdOn0&G=x5QxL^j87z3iCmOKs%P;446&JZc& z&0TPDkdG5rp*}Fw)uI$IBqNhw@vEb>f$f z@iTfHb3$OIfDNYHAWh|H2&mOSt~_1;0M0sVKBJ`+Qd;TI>ET0HNgaJ{{MY^&+!++* zh*nUKDW`;TfeAMXn5s4Knm< zXjQ~71le|HZ8;!_s0I6VhoER4S`O5_E^w=Iz+f~i=i|p&!59yCNrJ6v#$}Ks`8dOs zNcqP)8_gJ}D0hoh5d7nXan|*kzVIZb^LBR_%AWQ;oVQHZ=evg9ber_cPd-o{mRZxf^MY&%B6Hok>r z&V)Q+sdOd~SBc%mz^z<#E(GoXCOhMQAy6LA370Cu%0;nRFsL}d1W_9gBc$UWF?$Y1;HaoD5sxy_?SAlhMCKR;t=7YJj~KMVgp3ZFwB|9Sn4k#- znp*Jv<%u-{(111MKJ#~cqP?^x_EX+F5T)AJlYDOyPmzQW4?EG6siwyj5WT$R2B6h6 zo9`+g6@mt$cX2Wm7=Ebb9q;2FSnz@pV>DL;yOAg&+%TO8b`@@|h*qSL3l473lrEX#+#izQ!`H1`gntl98{V-6p>zr}`Z$Xzsj#gJ z_87EJfw#+WO_EuO0Vjo(AWCplW8(x^n2S-kd}}JC5>%S_#YGoQ6+&RbQ79*|@vFQd zK_V=sr+-{IU`s$E1tLU(Fq8>6-ab}+bBBupB2STn0|rFc>z^|N(uf;8 z&0v=9V&Xkd55ve-o8b#0)7CQ2Y_{MosZSFyYJom;Kv?)Qov2}TVek+2s z6Mr~0O9W11b(~{GRimbPjxh{U)oV5LgSIRKSJpNN!%i$EjkyGsX!^>Ez`n&l;`+b> zR1c%$0Mtv$-D@IfD;PcN3&A27+63tUUxCe9I4_5-ub%Pr42G7qL;ZYG#yeIP7 zP@>mIony()$wg8v5X^0a~JmOGmuwmi##?Ff8B zl<4`GA0gK~nLxiQ#v3BQg1*3>G~gAiMDO8JQ{Fl(5`6uoknw_oB#Twvn&R_-Qy8OP zmRnqi4B~DkL_#3jud2VyL5zYLX+P@}NooQcXyomjheo^eGACM3G!p1Hzm7ex!<#U_XZC~xFX?jqKNNNl_>UnV2nb_#TUu>)|7 zCmS#XY=o^S?t03r1qYLOOa_INNzc3z)5zsD4)uxQL>80Jtck&~aLuk0OV%I=LLkTN z!ydtTKr8ULsRZ*1F~0ByvPwHR102X<6e3sE-a%`mS{Uo=B3Zz&RH&bK9jaml7B-(% z`*XL8jtm2-b8|;b(xaVI-c1(>i$Mdyjta_pbim$%gw6aI5xTO2e|WV(P8!R!J+Jv5 zuv2KT>+b+zrh^A`n6lov&EBlS9~xoVMx%q`af3P(SRR)A#lXaxuo5*JyMQMo3P1^d zhY&<2f&eOd#$cn6Po3tVh!o}X`o?+-5P*7dEt;!I#}D%Y#X4Pmn3y=V!;$|0FhZLx z=LrL7A;J28nFoqHiT442IN4%zs(y8Vb_OCZjL_g#E=hr?p-DeRFG?>^o%_ITgJw~h zK;JV2m?#iV6n*7rBmfj;KSPSq!rY^Ex11j_je@bef6O?m1%oDrj+PF%TmdT8&3jM{ zyqn;{$eArp&9-gC6h%`~)PHU-k)tE6=f%Oa{)=yO1PdBd6HR$2{{Yq)pg20Z#3TU+ zjp_Yk7@!SCpy~CBMnnc)jJdZcDu&Wx@zp2^;O7)9Fd+a{R8|7n)>Q~|;~fJSj=n#0 z5++**g9%cTpwjexVtB5)1^6G|7aUG5=ahebvWb@qqyGRnC5q53J|~_r>JtYf;GbEs z`UI9oupj1YB>~9(MEqe;CmcOPxA~G>w3vClTt{iQLs9#{RU!v#&HP{zMWOIzn~!%J zGKmK!_lcw=e@j=#IhjsufIkOrhc*1)? z{o>PWK1*D8m5ElS254si!-@I8kmp;*Aqc0>7yz|OGQIfyd%)K~44c6Zxrzu^J8~Q01Kv<)Ygj115k6)pS)-vj zRl42~mLdwRdw$RJ5ZmC@?@xT-o)!mZ(}Yr`Zx~?CklJs?5beNJzlRJK(61k?3t}8r2r%W-;5b(HYcx@f0$A>co6)X%_7n? zQM$p@3O8f)ag1!ZDmtL9tq69*ARXWlMPQSJo&{E!z3M%_+#%Bj3UyFYCXR2nzm#E6t8Nac(<%9cTofa zyLeDfwZL~t0a$_DqxFCsFcDoKYswf`89_J0FSy6V!Az+PV~9RxD4?)X2hpvX_mz%V z4F|#X&#WOsMM)>tHr)o3AAN717X&Jj4TIpt!7id&d*cFa00{DzZ}TjuHikzcM0MWt zbXr>QTn!+I4;Tebk{J_w7&~>Z+{Bt9SEGOC3*#3-1A6i~YZyeTA1j|PfIJns3k5)^ z@za_Wa?*ag#DN;HzOb-x1HXN-{$jOvwI`ql_XAYHj+gk?=MV|u0zZrqOVB@k)NFK6=5Ghgh#sxuMf`2gxQOfVK8~DJDfN6{NI96zzP=~mGaQc9ZJLd#- zsvZ%m?;6sL2JGC~-0uL0!3SU>mNKAo-Xq`$MU7xN`FI>d7zPpvdhYsQF+j=z4&%P^ z$exie85j|$-2~DAdvE|#v7+>|$3C!t zG*fg<8}wiVo?Dag`Hu=-}#ByDAhPJtro3!b&3Q5+Fmeft*yd5@4=C-0BURQ zWLE-%AUb*QV9@(S1U^jXRm5_2h;8bM_<(*x6HIH!q?hr4j3JKQUc7Vb0zhxL?_eKz zG|;4kNF46(1zgZeJG<0B{o@5tL~1TH&3>OwaYo6YrSz@wyaLoZMb;t?LW2HaG80O$ z$3RE7mkbyJ9rs*{STnKb2r2I2@Y;7f{{V~)GOd^41|P=&OH<7$SKl6SRV||Sbv@vX zVZ-6r;$GOD;9UaYfv=oN*iFy}x10fj4-H*9?mm@#WbV#qx{Roa!BaN!@1r9fm9`ehj?&yGIMuwwKO1l%ch7x z?^#t~$7i4Ub4FwlQ(SuI)>u&#K?mMkflf1WIAOe1a{S^#3xu0FF9`DE926f248S@F1G#n{vx(3oa0g$Zf#Yx-$UnSND0xyTcKl|I!mPac&J<5V z#3}p3yiB}{afRa2vFr7SrK%a)Rp=$c=vL5bbK0#};v8cV!wbp!z!RdXxBJEP0IIJ) zIK4h42h)*dT^%!O6ghACf}n=Fko_nRZUPz|s{a6cPu2}#VhGmFYgi6EqO|+J=1QRr z7EI-!q_8{V#v;rjLqeaEjeO*2S3q;ylnL@SzitH}kU7#{UzlipG4+fMRqQGswmBLPN28$e zl6YPNgX=Z`{(;I$2JZgyFaZ?s_{lgxg4}~A!yi}yc&L#U8+S#gkiu-&H!5vDalq3J zl7D%?;8-k>?)tzJveDb0j6pED@r0WwSG?eusmi(^PVj)3s~Rz%FUA5XqR@{gTDQf> z#7ajG7I?X^$cSF`Fo;wqjEn_c3FibBl>3+wngZ`waug24(d9q5UDv=t_>26+0Iq~8 zJ#63O5|L1x3+FimY#6^-=t9aC?~G$W1VOk~t#)?$!~g>6Zb+4`1Dt_Dy&Rg&qdWxt zKgrHdNqp`#1cYOdiURd#{ zr)3f_?@k%BAyFHzke~B_J5Yk7V?IVcvJN4O=`>%bP`HN{6s^iWBqZRhTqe0km;mE2{NeLSL zWXD%#tpk5pXf!EmyFX!p3TUPBwU{Av8fFJ^R8_!r`@jx~;MK({U=o|f#Y05j!eO8X zfc5v5v4@0eWYdRg1oq@60?@C=IkS=4P<>}6B%3#b-KQzZi4Bm2xMrc+$?GW?JO@u# z7Si{T#bcGUsxa~&jD!1bxLZ-mix2%QGwM*RN6G*W|Nuu!mWJgt{6Cp;qm>8Q9t)Ex{ zNfHm<3djJ6Q1ybtLMpJj_`^0AK`H#=uH3b=&M8Q`M4^CKI{0SvLeMYHwEqAxs6vj2 zr=0_hONT-QK8JZ!z^LPJ3*~m6@JkP1qw6%l9E`b8W3}lwylm7_3OeFsK&WuQ`wnXT zJ4O5%xCWvhSl^C?lUwgMBu79|j3DR;IUk%s!q5zq6RahP0*-?P(#Eue(|XI+B8r6B zd)&*TAV9|c3=M#(R8w9fg_lsLcx(@i;bD!g9ixwUhpG0cu>Gb|0u*R3Ke9MhR1^&j zX}L*4i6|Fr@_QHy2jx_$vyFr2j2t=~z2qP#;p+*wY;S#HH3fv~I1x*G`pu{ZXU9k9 z6A*kmK0R~mHhdlmADp2I)D)k2W(5h^-NuH&EFq%d>UY!G8uVAY7q+Bm0+N z4vJsA<1#{<{{Y9{J&0J8Kjnnw8jvUFE&y2Qk7gwl4X%g0Wdw~3=Um{F2-0ir>l&E> zG_d=Ke)6i;uP%Py=0)tvccf?PV2k0YTb64t--2Xs+Q!J&EfTx_~NGG*7vJe|L$HZ?_YJ2I({O z81{5cDPBK_dd8?2kzSTIcO#ujYlx@FN*=>qrz!XhSsDqbhbI|Gt6XpoIbUEk%@~o~ z#3)$X(RYd>m=;s-9ik8=HvHr+*Naf<^@^Z?*Ih9j0P;Ya=K(ei;)UaRx^9gLJ}`&@ zAi;c@0&J~Gg&vqytFALzAyC+O9_KkwVr`|0V@*{9>#_$9vkcITaX*+ku3`&b*w)XOR7rLq5;_LE;Be4W0Hbb&b_Fy$TyjJuWD2mbW0^kPa&gUGVNg*ZDj$+ufN3Eos)S4O zLC~R^+7L}q34OwTrU5KO(+)-QB6nwbBCtexzS*!Sx}1B#R00E@F$K5~?`;17a1>+& zNg%t!En1v>qrF^Laa4RBG6+d-&6!!GDnV63zEcncu!M%jc*`wY$WR;8^Q_e)S|BL= zrpGs7)kr>`aC!#R3YS;+nqUm!{D1cu1yGv}{NxH9g#+(5}A0 z?m+#&%u`hz1DeVbHOV`{Rg=1d_j7L4d&}X&6C{Nn9iUH30r@5d+1Dh!=EQ$sAFOxC zD2@LBALeT@r4&CN+}RF zEnc=vg3%-o7{V;H^zMpXdC71kN_^`K~gO}@qt7l6rWg;Q-@Xhddt=t@P0QVeq2)!5&-+J^9Z6-T~g;~_EP@<8^M;- zfPZ(IfK&2A5~ZwE*XKS_1c-g613_d!4^jSQC_;vf{2_lh38R#zr1882v>F7Tf`4;i z7+X_%n|tw#fCP{U@myfM>VxYBSW~h-y<->*Dh@B4msg6po0xF2DBG2~n+&?wSrU+? zg5B%t;tFacLT^DD`ut-cgG33^>aCh2V~JbLL@1FRl-26ovr5$zNS_u3?Nb*Z28^~& zfXmgAmf#^B8g}5K!FB^8wl+zWKqnOgIXxO7>*mO(DjOdU*J+ela>j8i(J(KR6LU)HTkv z*5(3;+QlZu$AlkPPfE0Ryo4|36Vjc>d8g^n0*>_f#Zm@D|gUn`p6^z!}gaLivZ=YedQypXwmq{D%gP7PoD7z1ZfzP zZvABoRdAJh=Mo(V&J$)iHkGV);v@kDMH5dJ`pd(F+}A9nSA5}1CV-^kioc9X6r#4= zUGH4r8Ymwz7x9kd>=Hpx-$a;`4FgR9?B2c{2WkS^3NK2@-JRtjss#yE@S?SC)(*KF zVoAG73&|tWghZ3_lqZ&h4UUqm_!C*bGEjr>5dsu#wUGSf6@+hTzw;ZK6bWXznFy7E zA^2qz5CC@_^R6l@K^c zM}*qOXwB+8jyg~fIxET>-;81THv*E!3$-(3VO<3K%8LV6VeP%@;#9Z}iQ|+em|+Ln zC+jGaDwB=k7xRVzX(4NKNOkj#ZMxmd-Z;Ur3?53R`1hL?qM%-WO=Rf2uv5{uDFj4> z`Zs>Ck%Ok;_katu1}*V27b!tX{OrT3;EU4!9(-JGA+#8t{PBzqa4#=6aq9JooS-1D znjv-P05nAiwelLqD!@V~$ItV=F$V>UJS;5ZZyjPrpwV=9`^eYkEsQr5sz6o5GgQ-H zSstbc1nX;Gc_Dj1pxrFeAj z4w~bG4XD;c5n)|`9h$uG>6auGd*tiZ6-UKs_xaXy7~Vnl@%8Hs9)JjKMxAZKSshZa zJ>^ZBP}6tLM%>jc4YLTw$hjTo9dSl)8)HI;8rME%Gm+E*z9T;v@LbSszF0%v2s>2` zkCEdd$+jRq5c%T(AOHX^qfvi2yUOTPc(s$BFj=?a!ssvFC#4%x>c4XvDX&#K=N6!F zqp!v{4%I^bv`_*@8}VM6_;u#SgdOZPBKa-s<`!N~4M+PTRB4+!5( zpn%#aCb)+<2$~9_S-Wun0@VfO3p${B-a1Iqp%v#{<#Mzl4*NV{)q?He&O00m#QMNE zcugAHlBkip9rWd%hkXdo_ZIX(fpxq}ArR;WpVh)$6$oEZ)g$LjK=egdsSZ%&zIe__ zXbqK9L&*JZWKg6fFW^N3%)<_H^#m&HU2%S~)zmrNRid(3npSRPQDC|@9Nk?&zSy*Y zEK2pPzDe+3EXsnKrX|-IMO%*K`@^ClB7isW;ToI!7P9!uA$BfLe(9=EYp=n0kOB%EL^am7hGgkxYfYe zrxruZ#;PV&NCgOx1mnC!UxF14=mTE$&Q4G^0JH$SyW=6aLV_5k-SdN40aa0oBi!rp z&M8Y#1SE(I1z`hbUgfY>&c&yUPQHXf2*RMUI@qUps1^iDtF;hX9U|q{ZB$i9QUR5K z$3`d^l44Scj&l6C$m}4nHmyO@ITC#7@AtI+Mmpbqf5&B#UYd6r^~+=5)9CsC%B*7 zQJ~{le{b_SqCrqTHgSspAi`eGM_35~SfM9j{{XDYPsnvS_ks#r%i!kXMIfhAsf) z4-w_j}V{^Av1LNoGH_mC1Q;|T>)tR# zlVWRt?=)vJ#QS*v0C>f9p=$Kk8gd1Nqqv+Q;fMayfQ+_dlE^MQ2`3}70I3iX9@%qQ1M5$D}jw7@RZpXYpM69vS@ag0cWf0fA z5s76@jgx;_q_I>!t4n_Ha(+rWqWnGw*CD_)sF6)-P_uLAj65~XlW4XN%yZ8QAV*S$ z)B)J-a8w4ObErjLB_;2SxZ4rvbPDu0rw^1*gbqoEi*?Uf9d1O4=~^*=9DBnj08|8f zc4A*m#^1cLpn(A+!l(BPT|B}Do`oOBoa_O>(7xRmY~b044Ag(0jI|iL3@=rGrUjsg z9G~MgplMQ{T1Ceh4C%k9V3|szB74W-b=0Glh&xRlUa?KnyYlOQ9N-QpAyUsdNW+CW z98=t5+MnEmP39-_)BV5*$)#lVfhr_+M+)`4;B>m+zC|1M^~pp)+6#0^r<}aD+JrR3 zzGiC%Dddsavri8ATwIt+Cby_1*UmR_Fwon*{(a(>OS)TbqWSp5u%}2n>v$MUY6v}= z@o=mF0ibElK`119ZxBf)kY4RT_MZ5{q)MGyB8a+*>FYG&iW6(J9U3yc(yF2&07M01 zCbl@%5QQui2X@#c!Wjiyu+8W+zZ{l9b(A1tsn>*>uE!WqD44x>zU^_ccuTA30{h+~PkW{%~y|hcx9k#s=LArG#$ZSdl5eapjw6{O$fR%cUU!38nAr3p6g^ zceLv$Y>J07USMF<1tcvx6t7(O-dM(i0f=!8>*2(p8mJ0yW9wdK98k)jE|E8_zPGF# z97BU#rvq1xt;2+@k-D^=6C|)&hmJfRgCGMc#If-C4X`=8@qI=B%;)L%*nK8ui) zkWm2qIPU_59RjC7so$OPj`mup9<;bu1Sm)4Ra_TiaB+wTgzbp;zpNE#a7#Vlt092# zuZ%SW-ohu}oL`_wzuAsRccLG>pvgrD6OXqTG=)I}UnoB*?bdFrD`8J*KY2ujHq`$B zmLl4kL-yeUlK|D%N!}!Jj&EnD$Em!2F{dFD;NRz87&24XggTdQC`2NZT2W4K9y#j` zf#AeOqk5M78B053NEMqS#y*HZ2=bpV$Ho=4wz;YPXLle@a9i=Y>jEK218<@CjrrOu zfj2){6alE=#OXm1(TIxx?V~k(4L4pmVMEVH)ZG_Mm{>!af!91y%Wud9{9wyX}aMzYnS&cmFS zan&IEcrd0nNXLD&!7yzhpBoqXlVBn+R=V$4M<_T0+&_8EFqYq2ObF0R26!-t4(gGg zVE+Ix(3m>`{15IZ0*aA6lKyckQ_Mr_V{aVd{z(n58V#JDteOTiq2nABi5Ip45P%1ir*g%uF zc}!pv!g&#Ivm?eH!1%RK)A{2WzxFyO0)t%a7hUj$F4QB@5I+sVZ?F+iU4kq6#Xb=L zVvU;+G(4W1m#SJLLB=g4ED*XoJAQFW*sGjokyn!M4^psZ{{T7975q;^^7o0Pj0lI8^OXi27r_uy@sA3xotMo+ zDlb}gf30)t3R{gy9mK={5FN|-qsFc-9l$JpMt(Amg+a0f-PYvyhaf9KO^EZa&M86~ zKqZcXexF?C%|!r%`4~^eJ`3Bh4n`;I4OobYMD94LX`~GkLnTo6uz04MB!ezTmWC`&-EYJE5@K?Fd2y+14iin=Wh+6;y2;xL2hByS9oq-{*`PqG;RkNpBiF?^VOgoLdFbNa=4M zjz9v5YC`-Vv)Ewsq=ydBj|;*0#x#Mt3%j@af0(LO1d5$*p|2RBfz&FuRqtPpasbey zU&YaQ_myP#B_n3|asUeu5V~|Dp}h5vFVG?>sG__rKC+qBiMK)s-KIXK;!x5+nirnt z0}3dFTH1Gco>KwH=28gL2qy+;DKvQk=OnmcQjam~1!x0yp|JZyCL7q=7}_GAr`I_o zMcpC%r}F^05T!p!v6#rvsdgsq>v_1WlqX8HJzy|{NB!1cLiB7wHExQ2fPW4}UI9~0 z?)kw%2O)q-H5?~@rsOes$Fkbnyak4Sx7M`u}LI4eS; z$Q@Ui^}J0_kQZ8_-S&NBs|*T5eghYX71aO|gx|{(4x(CAI4QiLEh0aQtZ*SymYvd6J`0rmnlMk>smr`KDj8ZNJ1(kjDB){K^Qf1 zA^X$!tBT=P$N}7&ec($g$O*lKGoCugflUwvYzREC;6zr0X{w>L+{iR4j;Ilw{{UD+ z3MhSEpASrW#B7rYYayeQy7EGEeMnw{>b0PL5kE9T~M`rdp#{#5efL zYL=mzcXx|q0fi)$*K_wRN%G%~V9i~D)8hAjpIqQA1Ck#>qw|WTAStKJhu$h_rBs*U zykZszs85Tdp1k&Rq01>FZuxvyXi0h89NZMFK z=K%G3#O8qju=b4n(AHSc&WU z$}>elSuqXSU;AL|T~q>kF)RQ#Ump$^Ai7LTHP7K@i7EG z0e8moi>DCYsDTy^xLLV_3`W52(3`z)RbXE!Xw{~@jD2S=B8rdXHf!^bSLAG6L+dLk zf}k&$C*b?U2sBwQiA|jG)>MUfymw2fQT%0jO8X<-KAKY<*14ZX>tH+E;V3Z?%YftVb0u2G0?0#8R$K^!W zU6t4VxkU4L;?=U42uQ8$IVbPLoVR>E8tTrav_5GRJRnRBV zD?bjDmW00Z-^f2g#BzoEv80tKh={^4TY!EHYq#S*9y zCzkh#n@BC2Z~1|_UQ&VW{{S&|;HfnGr}qE|M1wcbD?W^*B(?y}1I`+y=`k6!X@59V zW5|Qxqy5T=iJ*(=r}pC%lA{Qbc+SHyDByuo)08<5vb+Vtg=UM!*^L-d16HZCYwdEW zY!F|OM_(|+R1ctz`B(9POw2q?iG$zvVEV=p60jA6-@vfIY&a`qSgOBL4uE zI4BLFC*_IDf`D1xj~S(aDYYXvALeU?CKtB+AKd1)cLDj~Li@`ZT67(XcV*w8_ zr>6ltApr*jqie1Xa!d#i6~m<0I2<;?Z9WAL?kMn5swusx{$dK%3JCDgzVU6_pd-km zKRD#IkukWGX5@Zm&P2kbDz=d*X^jH5D4bJDK`1amtOSB%RK#0?_6*A;xDmVvfrG*< z{Nfu!Q&c<ls3S9pVll05kNfG zZ?1CeAIcBf?f2^fbPzmZ5qCT5G`Lz*Mfg=PJ1Ih^M9vD*Pt zf#RFN1Od|*mZ|;3QH9>7{Kbq>0B#~Tz(?nASi5L3pgp?8sUWDOB;?VSX>_JP0&97s zc(O1g?^eT^n=O&Bwr@`#SeA2!(fn%#LGU}iyTQ5|2RHEX^@R~?2#&n+{{T<(00KG& z$DdfD7W4@0`NMqK2>x|oF+GrP-pN|-7fY6EIyv}fT$ALn9IKoSm ztL>xnF(I{QR(b{e;)I|TLup2juUWCBu-o!Hmyi0G zz_rAxx*PW#NifLOd*X%kVd0rYUO6JagmSgqbboLVk)dy?fXLX9x5%H};zR%dZR=%c+GfHoTZgz$&H|l43iH7D z=hg?E8zPSFFc5Iv=d|1Vh$_@TCfK3X;oekn^xv`V#WktwIOnyrl_{CJq7*sxC z-R}k_1*i${oaq%Ie;e071ekt{*CMHD zct20~H((zHr+YpZj6jO_P|mK-{Ni$;*ifH!{$Mn)BhGrsB3-DDgus&Oh`+3jB#y!! zY-i&gK*Gn`ykRRMUg)hr9_QK@7hLZXEi>A+xzjp;T`@G zNHbEK!0s9pF85FE#N4442De-&323VGy&%7gh=!E`T^k&mynaoBM7K~!xzqmQAU)!-){rOT z5biM>uBvVIlobIXn+wXio!mmQ&J@%O#SS`{>cR@78bn<<@h~U|6lU!Olcx&QwUB;C z^MG|wC0?&juDQm~ipH1c{lpRN*ib9K0h(PvJ05#I;sXJjcps`?&LtJ7sdd=xlh%a= zr`(5(C#$~D#0A49ghe=&eg(mxK|2!T2XJ(#0tBcuCwm$e-$ho>~| zskKS;;%GbDC$PkfI+X+IPwpZ$Y=FF*f0z)HL{XQZNB8-{lp!#k`(b^KGASZVRJLTn zmXeBSr`82h$8IFvDnphOK6Yrr4P#K+Jx}RkZBH7$1OEU{bFNWB7s~c{%9DUPUF=BD z_Yd8`Or$7<-X)kB1Jlc=&j&8BGf@OKN&^|%KbpD&c+?%5hmhkErUzqNw3pERu@Y`( zylNM7`+$QqL{RZK%NE6MuNZ;gxk5Gx7slW2OmOUQcdqV;0*FDNqppK4j3Etd;T^{ny9-P*aXfQ?U@Jv0-m;s(zflD+3Zte+lb+;vt<-6YW)=u<=#Ul6wq8-$+gLPrQ%nt_4lgirgDv7w&V50wthN z#9MMZPjDNkq@SFO)et>efPvq8dfdQlhy-YZRb8gid}9jk(iV8V-MG0vqSthZ;^Uyv zP-!}~+kteHi|`5k>zrs85Go_0H%YmSXE7)VOgq=e#7zX?fU* zP8|dhMW1NDvk?IXz|&g~ynrHCkLJO6y-%H72_gv4ci2#Vk@>|yl&D8D>*LJHk%L0= z-4Xs{V@!rxDE*8Yb0BEvEXe?8VL|am+#h7ktCZ-Xg*<4{K=(nx*~CVKg_I0 zy@}%%Ab1$`r)2zdfglKouoYpl0{X>M4LVb(uDhPFX~Ik*yZW2PAcT*xr2!giOjkt; z9G%b)ZaM6c6mM!L9P`#0AOeUj@V3w;8b^~KribLc4~;dB^$2}UWx#E z`V;MNO#skDZxFAi{mJ~aDsRi=z=D7dK}&sLx{3f#nmWB6at?+-XpkAms2)=}P?RNQ z7PbQi;O|&KL`k*W8ed)DO_&;w!~5P^T7*E$BE{B~0gIww@u_4LK<$!?wyx%G_7n>q zDmh#P#6(qo(*#y(RVR&pamQLZ)7DTd&=9VKylpW6;-bj=IR5~~J1AHr72=})aRE?v zR=%SD05f<8AeH>@6+tj&FNZ-)e=4J-H$^A&>biLbOL=M+aspkI*p`94IZ1Dj}I zp9{h0{D(N%PT*mim&M~>I?6CkVANE2{AGJ0#VnHKRtn0~@7@zYfo!(~9s;1Xx^yJBvfm;Ig>8EbdN#APK?UJrHDZTO@dJcXxtY@ZfrR|8lGD z$9tw~K6KYib@g+4>Y3l^eqDUs0AMS~$jboW;NSpqZx`To1t1APLO?`BL_m7GAt50l zqhO+Rs>N3#_w%)G-OMVzDcn{ zy~JrCkwGwek!GH$BM}vx&#Ado#pz|i+WnO-Xs@qprVsP3-LTEimXC(fsFRoq>%{u< z;`UV)KDc8=H=NQPnS!I;8}Y{35A7IDh`#_LOUKR)oN>5iRYADy{`{COr+o7ZA0;L9 z^B{e7d83C6!5B0YdY?x~bn`+ouIk0Gt++*lXJ+C)DQz`wVRP`;F&@-lvKJ0$-X&&CEUbU`g4YrR}?AHslQGVX4$^L=qH>%_R z+b3g1&`yFU{1yGbyeDIs3h032bN z>9#~9^%!Sfa`!74+spFX*y<_$6tTnol*tZw8EblG<5$8fbOPTu2JkqMf)rj zuyd(?1B02MQ4qBPVrYwF(BfeB#8QODX>LL18s;!zwMy}H(=&VWK^wQ{a`!&!kpWt) z9s;Jae%}!yNIe}1Eq>M%adAe46Fl>&cXt)Acg+SO?td`tzE^vG9~XT8>F;JpkD5lt z3_Eyb%ANb_s4nHCdFa5yZn`LyZ{E%HtHdv?emd|ZkM#%a_0c}IEdpHKuUhf!rJf)N z$&bts5v+03n;ky8`uHp`#Df*SR0%hLb^blQX90T*b7oFe>i9MfUprOa5I$3?rX_Re zkXg*M3x23x5&X#<>$_t@lFo4wn~J|43_J-%)7uD;SyBi&YlW#m@~3WGjFy^v8DS$s zEo=uzie_@bpOq*!=2DuC0Nm`_)JbYRz_JAq{A{?WR{ju#=M~YQoGP`RjCtVGGWI@ zYdT;Oym+@%?>gGM(r&d?E0GHy`kJtQN-`|;CO17k6B5uG|TOH6_NO21lY01 zk{~4GpUwH1N*iVPnQ`ofzAop1zu?3qc3N;00`>RTM;(?5vI^hZdF=We9YsPmxsLFe zRW${0kA`d_ySK*U(?jLL*&y;pNJ<8{=tE|FnUNOI@>{XT2fShg1+eA}o||2L zrNivgukS@x%*(Vps6(hmMM+uk4v`fs1d+f`!8%?xAxPgz;^~?{(P5USO7#sxRtwxl z3Nj1IP-$W4^_3OZP|QymSi@!7e-#=0jLML$-4QD^d-*!q=p@m2dHUAs>wxkL5-5nn zb_)QzJlbAWo_{r1%Bp(MC4B+v#iUvB2djEYgGPtov4my|{!1*D8- zDMv0ej*={W9_m9y16KBrW{f4!9$Y8EudF}yJ*Wzr9D>Z*3#r2w%(SuNi%OwU?)8-{ za#tV;%SMS~CqoW20u*K}M`pJ$)bHX;b8u(?#{o1xBc#X!^kYD{TwZi=I;VsXF#n$j zmj+^Fj9zR7CScxT7e4tbdS|b^arQ=okh~In0v)mR_e&c!+5+?f9QeRDcff)TfPV`( z#5c$A-!=gb9)N>Dg@{Xygbn26633&FK&Iu!m*jo(3#e}v0}ctks4fPKv{J+HtAB{} z?^d3q#{lmBy&H&P-#(p;UKxnH>hjEry84y;erSb|vsRgqH$eDz$>5)7Od5KA!zfYB z$RnjV=X;c-N6o{J;Qm1oLknZ-n9JmG+E+l_MMqrMIH$Eq()Psoj-P-CXTLHEWwOqT zcosYFDBFO{Z^_SQU#vU*BK=yNo*FtO;(82?M=i zlbg0mGL5L48(CpT@#T`c`5tCOAH;oQOpo*OVl#KRm-F8}f>`MdFlmq|4OB{{wO6qLYZ*WG(i#$ng{%C-I_0_r>fM%(5$GT61na*8``zyeiR?&HXpx%ixaPKE` zJ^kpE#@(}0c+2RZ&m516zzkaUlykdo1*lb6m*qmgj0{5%=aZ=I2+T_9H`9oSz9;^^#~* zE}I_qE`juy*o&9E{ol9yOKyeghnL7gj0EW4k7cSll_u(%9|+~4 zCb$`qqdr{7y=3%WCOe6`aaFzeFw&(%NnT$*A-3VF@)FUIR2Wg`6y-$2fT@+lSTgTe z#8iOGS{w~+FOdv2#z}mQVeHS?NvzDE6DZmhXcWQZubNUudxyie`zwiSnRyYp zwRy_={kx@%x}^{+B$#g+;E)a5vATa&1JUlXqB2Fv%7_hWv_mKaDVhgvFF~(>obWF@ zCLicYi11LQyV;R0cm-n@HM5^9YuQ+|NHF5>w`-iX|MX^dFZbnM6c`|dWzbhEbfW{G zKVhz7`;U-oJ$=73eFaQVh?CNl@1V2&R$AXH=ZX^=4` zKtQyxh)A>Tt+SCWc6Jd|v41cQ$Vm$4W>L?#Fs_-X!-k}g;m6``$w{6h#77oq8gn(Q4&+R?&pOpB|rGq3`~3K@6dA(Y*`UKvvE{`RJK|+ zcKk#0Wv8&OBc&_*q8s5805hZ9;%4A<>>DyCwQP2J!;fLKs6M)-%>rBd1K?b|dsok~ z{!#L#3YtWE9?y(Ag7L=7R{)4>T!)6GcLy1PJ)<%Tmh)5PVu4On?b#bvIuwywK0>Hm zke8D(fbwHZ<>86;{V;hRGEwhU0RVgP>+CEo5%a@M259pcm7$n1KxH6;44aBOU?mj- z!{(vI--YMWU-=no>1(p<8r?7Olso{e`Ej|xo4x%CxE_@24T0?7_y`=DkZ*g~9-_Z5 zeJHWKI+N))$l)g?WBj6)Rp)7CN7+yscWg3@^6h)usY-_GvfzQS73{=o}B>vD$s zEU*QGSx$7e@;xE8io#9~HJ|vUUzPQ!;%A4vt}we`W-ryU#ZJRc@dUZ82KVL|LuarT zSqIAlHx1j)$*d+mdd56z;qdeeef}!8<1+{6$AGa_j@}k096~w*YW44j; zcH@odd&Cbk^$#z?>i+bdDqB(RLg2}ls3shqwMn8IPvU265l2C6zMqt5zgb^oAZhf4 zH<@12w_e!c6XVl6yrHhE`zI%S5HQ5CXG`b8UoZ|hqv_7I^_zbnjmwqevmqIrCfdLHSr+uO;An0# zt!jsqd!l~=q|28B+e_fx07HY7U3X=xWgpU8c=4Qedz!$I#o@aRGfwa zWM~G&TLJhpCemuFJbIOjO1*Ls{A2VzA$@E294XzzpX7-o3Z6}>fry{^r|%sW!-txi ze)b`c9@7sBrhnp&MdaG|artCQ&A%{2NY`HkJQm2&F2cx#0cNP{0|aqKHglRecLxL$ z8N-QW&Dk-&)w}WTFwh4k<3liK*)X+48nGlMugfrqRcoRkuJPUGf&FQ%d02VFene0*Sqg*s{p9i>y_`)I>_ zrpz1s(?QI!uI-(SXU5Ss3M-Cw2`}See_teNs2xdWaQFvaM8v)u>_?F?aiLHD>Mv+Co>|aJn@jw^VwYsc5@7xV6+pNd zpl(u5lyv4zw%549eLuc!GvItHvaXdHh@)wwi~`31Ac%o`h~tYc~B}fJ-|yyO~`b{PweTF_&Fb=3Ox^WS9unw_aw}t2hu=SYY?_3$VjX z8?^Y$iDySk84e#(0;RDrjRF#^AnsQzG4eo@w6>ZmGO2X^yPh)-ErO~Bqlbx*vGJA2qs_GkfeLH5c zi63F?7#-^+v+YL>%sR>Nq`DR4hIk*cOw16m)c-DTxZ`)J7fKWByCfu#5p|-rM3wH6 zKpjshd*KK$jz#B1i*{G>@wz=wzutwWL3u%ovqMJGi`=LFBv?e)!-~l09ANxw%x8-a zRHf0_u4Y3V+tND!B845Jz1hjX*i0;z$^>jQH^F5!DJe!nR>*@|oCiJdMqESZy?Z18 z9{`=0s!YihXYtZwiewyh)~duE*6O6_C;_4$V^~ii>ZpI=015Bc_qM-8M$#$CR6Ez2 zW-tfLes$U+03O0!UQp-3_^cwZHJ`IMCP5`}_N3s4lcJbN?PumPEOi)Cz~+z++%zkYwiF6xib_Cj720OQxioT|?MxfQtxw z1xSD;R!k9}ldxbSKOcsJOD-b2nVK-02dttjf$zO>EE5D1Q5I*#TpL&=Nlr7JoW605 zz5+z-S4sfS35v5?GK17M!KTGK$a;sSge5c7ODsjb3=bkU5oK)LeS6i*VM$HQGZm~PpKLeOPeLt!XSUeHCI_;+mXVyUd{pm2$6XUwt za+z@%yM~-3VpU~W5K^T2A$$@(0T=4r)WR9PQ1jtCKjQ?`u4oV2qZ1`Wsf7C}p`gSP z1EL#+XivZYSLUM`8a>~9DgpXHu@$E{vu;EkKqO%AlaOvu5vwKX_!29(lCDL{jytBd7!;ykgQG_<{+IfSx$wn5_vbb3E;g2o4=1HFX2kr7TW70Dh7!>sK$lsZ7N?8;?^@H^l`4Jtio;Z7Ugs7uD5Z_s!QK#ef3 zSsrtHg*O&nFrW?87=gi~pTTkE0lE>CA8W_rKaGYJ;`0!a%&L>i|0N|xdYB^|Xw||Z z6_-q>Z?)-Chu-~(NP?sY9a+!DWo%3dVMc9in)a% z)R4D?(t8E{wA9O(hovwdaxR;nY9Z*~d$`eg4&F_E(v;>KTcRf5;QSh>4zITx`&{LH zeWG?^Zdiv%K=pKc%u;U`TAKPb4;^M`5kBe3dDQu{zxdt`^pl-Oi0DNpl1NecM|mws zuj+ZR=WdUa;7^xM1J;$oJt~qG8UGtHpuqtkyg`Hi)D95-r{DmG1CRZI3YSxy1E_|; zW%ggF;Eg7T!F7Ds*L?+8Y(}0bp?xm$WiX1$Kl~T6Q0t)_E!QAl?N{pg&&1OsE`Qp3 z`jpV)Qsn3&m>|uGlBa3PJ|7L*+QpET$B+hAFTj5vOht)Sc*m$5fgTqSoG4XDOCXz= z6Zty|KjBHvTiP?0=Y?ux^4#`Fi4#3TpdongGBS5_%=kg^ManXB$e!$Ht)yLv<;$QH z6(S9573^=au!dUPlA=?4vWH3@J3ihGB>5O(NN6D&O|}r9Ng)xq6u6PWyJMt*RDV}o zO(J`%nLm_Yoo|QN=%RaL9xctDaA0Vb$`l9ei{U+n3Q`7yglWa$c}Ky!WCjzQW}rj{ zOyF!^B0gYo1Kiqn+vn0x+gQQv6)}9zJ2KqQ@#gp8Fx2`e}@0iz1?nLqQTZ3ms zoXM;=uF=M$6cr_Awm(w2WcmgL);`f^ZhDL4N2^@=X6N#jj|aR@B4oJ#ts(z+3OwZY z#qdn*O%w*4H%Z&vht@QQ9olJVk-X9|sO!7@Mv2diPSfmCAN zq9bK{nWoY|O8e}J&19;yd?ztr>5^{fvWTh3hn3$jms(VMSvKX8iBCfFUTDXoNy^rX zT?a{!EKSklfhT`~M?+XiiT}V6I>pq;?vI=#>DrV^vIy^WYLm&ex5cz%lT*9)j#<43nlYy_DlIw})DYXMRwc$}>Hsr?ci1to)Jgw00w;`?ff<#l* zh0~!7$V^LhpJ7#%Mm+d<#JEyo9b`?UaY=dJ%wAvfp9Pd7}!bdWk zbJ1g84dvs5-~g~XP2Sd8@@ag2NI!u;;jhb_#RV80rDY3s2E4XQUmp|5zV@-QF_80Az_D-k(NoFwY9(Ubp!Rv4n&?uKr?cjIF6jpNsI4@(_U%Fq*E-58Ubyx5TM)yda)@B;MNp z0g%XI@a-N?87qlLAIW&^Ri=9f@>-+{TO)D(M>KXByh(Z(_|~vzd79Y+ER2>Y)42DN zHQ1|mmzhkq1QTBY((w)C>*!mX<%i)XePq>Mi5p-%{Jma;Mydbip-$v?G1j15v0J8^(ox!SbsAA$i*iL`><JA^ku{zLbVRvY(!zKJl(c}O>Qt1TdHT!3=Xe$z6%Vg< z4iwd-W)#{U@U9*bZJpCkJ$bFN$}L>BuNB{G?Yhyw0=f+n4|x?jOP_@de`tx!yaLdk zM01r4#>x}ZG#s9)pg)+$-;dh|e!IqNZS>GLL2PEHFa1uj^NW6)F4=_PSkGAA9n@_9 zki;&Xm1B7th$f;|n0Ng{4VxmK#K=Cd!yPMox<7c9 zEZZV<6tyUHM$u!TCSZcb-#dy45>C~UTJ9W1`>^*n?D;!oNwlLEo8L9)N!_g16;(v?uW{h;~l$AvDGuTB>Ox;1HYc(TlQT6wh>Vh(x ztF)lw-sNcLgX+=TZUoCyaZ&M{W|@DX+wQ5)Z*|6c<}}(4jKtYJJaXCG?Wr5dqnY8L zOgk^-dC~xMiph_S>5ebZAU!2shlMU9re|e&r!BiN`tXy^0#0x91??L`brOwq_8T6j zVf}yxybBcVGPCLPjRirwJb4^9%~YL5JASTbm1zZ8Hy|~b6AB^K?gH6`8$S;o@~b?U z(3DrtdWf|CkS{Bi7Ez?pQ0r#@Gn9Ym5S5Ran})G4hj;rVdm`?n7|Z5PC;FS<+>>8p zDK+4DS>Z>@J?$;w9{p7vGe6ZAuC#l%m3DOoO>2})4xR_wk`OJ{P`hgK{yZrH3#nQH zRNeF8&!E1r#rBc)8#>}4dX+QgQ_bu0SvT2`kd5t^#V4-MIhD@GAr0f;I*mT&vfNr6 zdNe;E|6+{N3W{=yg0Y7dvFECLgLHM@1gmoSV|>!Fi29oDH#=h+y16}G<^mnJO5M1! zpkE6IyqYgN&PR%h8)+)Pcc92XQf)x_y-2Kodo`!0ylHQh-0S4(ZJ`8U9*aXDmqxw>Nktd?I=IRwDa>p`(o7@I zs#@&RcAMQv8u~e74%YT576p@)UR1(~|M*p<6zjYfBNkhOD3H?3u>(PK1Q6f6jj90PVn{eBElI-giW{jKb-B z(}-KrAO}XC(rNY|{H2lM+By#Hcnt^sJWs%To{ndg)0RM#J&)3|s@zw=(6vf4v~M|_ z<{zVVVhbfduDn3eyEp|`)KS<-ESmkXa*1&5SnFbK z5Qlr`KHYk^vXT?Tk2rxDr1SH-wXz{IS3R_`8LRPFRJNqcn>>WQabMyL5(x~T4kLH`cdDYtB0%8V;Q?r?gu zSbNu1n)!yBaR3>3jZb2G90v9}RQy72eQ$s8g`DRwCH+c>(1lI~=_sw)!t5cf>(nUK zxw&!Z*hYb!&(%z+uhhqOQNBez`*3ip=s7wAS6MORd_D9e+MB+28#&B#c3Sn**|zVrsaUFvaFX^T~_@J1;AS*jgFN46q2BG0E%TWr>I zMX6*+;T6CpW!}|v6=Xh}3O%**2HkL346Fu6nwHBmb{v~(Y3$lA=0LTypb8Q?tQ)O~ zejnn9gKcf;Sxi@->a%AzihfmH+Ri*N=j6>P34-iYpC-s+{~}MOA}6kfyl@tY69t6L z!os-~nhl_RYs1q{e-mvTeJFOz{3GtU$>a%QyTfRO2op!Uo-v4M?lU;IHKNSB?!5Qbr)x($+m5rd2jX8B+X(gUA+w&!|oL zV?FWCHT?iNO=?2rq!9_}={wQLfcH=kgsJ%0rxcp2B*rkEaYb_=n%j);u|J=GHDECm znZ%}}MtG$2vPHP{+YWR$cq;|!AE>~61yIh!Nd@RXxkcm_I#u^S$7UXSUeBn=&v>wB z9es4#(U>i7*6!%z9b+O%+ZJr@h<^p_UW+XTKEA8F{^@?Vyu9u!`wE~bYZXmZ?yEBE zvI@5)-B^Tf?WdeF(8}%YVS>IDD}dip%FAC}?>YK8IyC@$qcPMp^octFtZDD5B$U+w zVFuG`#6**N!A@XloaP!DUskJ2XAcESD|MkWcUo((*<^cf4t(Utp- zT?Smj(7fXO{?8-MNCzzB*7YGj^>EhGgzrX z%Qs7EPKqF)B0U9BJr8$@8%CSvx{(<$^&Phn23j0ae4FCJ`Ke|OVBpwg> za0Hr=;XZLPOut}M!{RXV&kcH#;xN*hK}CfxYP6&bTH1&XpS94;oDUTyaIUmTICMQp+=h1$G88n=eTWDe2>`1gGx;0 zvp46tM7bDs^fCsI=+liH#yg{z7R|7r&pUPJC(p6(_k0d-lZMoG!^SouTLRq=p`yK; z$3l{Xd!VsHs4s1)C!uzFYDuxPyB5~uGunc7wZuU$&}1=1xwn-l?)~3QWDyL;oAa08 zJ3S(L9L8@YSL{Q|%;b3$@l%W)6QRO%q@M*o^3x6k%loP^IoD(qUucPF&X5Zpnlu|i z)w3t2nafM3^JiQ|IA^M|_{QYYW?W(3;k_AGc;gs3yRQH@2S%x#76$sgJw1UBtuDS< z2}mR6Jtp=^s7>R-3*_i0BJJ92#h72#A<((VMBBgBA61L&ro_WF<_V zVeJ_8vbES1cPu$yQhpROoXmW<2J@+x>YLz|q9eQ}u^-NzLE@P#o5{XY`Nx{;POnx= zjrjXu?5D|jzzY!ZZ1a1vq^u~REVAg{ICy3840&Xs2c!9&5E1MZfC8Bb!XTm|OkBrn zF8)U`Db1gTnfDutGk}u7G*&C3fOCD)Y+usM_59&h$d_XGj;^C=w^rloJgzyHs5WpB z25ZJvR&kP>pcjS?rB)dw0K2-7E?^0LLw{yBCW0F-Hd&*J>*)1e-ROk=G#8mslk+VG zr+vZAUEEK+rd4WPg^d!Z^_)i$HpI#~M9|%Fuk<*-cSe1&U>mV$MEp$r`G)&g^8P#y zBHSL0)x*%O)doS=h{!<^y#a#1Eb6=!5uNPv&0XyrU8H;yh=!1l2l8-`5@20fsa;+6 z3B}Vde1Y!H-}x6OH?@wW>ps#+{OWeP5zAvYojz9djj_o}m9MfGXdy4KShCprNH?dY zoos98XnxC~G-WNk8uBHTjdf0Q+e1Nqz>THIoMBIGR{pa@u|_%%l)TU>B`uMDkCZ`W zF*H2UF^bDgKIYhP=zAa<4Mo322W@ZV7#pwhAvziVYU+Xgd zrPtMB!1UqA$YTnV7=)m2)o|2sO@FJ+H+K^DhyhCI2-4~Lya{7IGbgwP3FctUof}^} zO>y$?To$f&!B05;$Y>FgAuun~42N3Qh@if3@T3>L z!S7x=PS{n$sgz17B_DtK<>E*{p9V$;O+HiY=#JaoorTo7k;GY3)nu71mH!kPf188Z zHd^di-S*Yr-3jJIHlc|GYFE$1;*ZS_%z7dNaM8-Yebu_KA?G_WqM|y`)*E z%v8Bj2J(rb6$2W(z2K9EV^@*kROm}0-mHut&ntlH=xDCUojy7L7KSD-sD_($Mbh{f z@wUyN>4(}f+FCaD*{Snl+rf# z)_eJ8%Srs^FXJ?6TT^Xi49VNk8yIhR9mDCzFD_{li`<&AzUni`&dn#+UiTORTX_ZTQ(SGOcBIDy$@=>rRkn5Y<+;6fBJ$8ymXSJU zDD%q1tgLd%S+kA3HEpApqV%0`m1F1CH`J(wwc?Or-=F74AFAT@eETZi)erRLd3LpnW~#I!K9~BvuTGe zOl5DgbSlQ8|2voQ2b$X)qiyRMgvNPsI??!?Szm*b!=LF~n*HnvdM~i`La6qVuNB9K z=44JtrqcDUFoWdq1nK0|_-{fp>t_R^$25&DtU_rvSzJB8H0Ne9h7z4m7;wqoWfd2W+JN}XXmo@s5^j$`AOchkk6gRZ*$sM89@ zB6xY`j0^eJ)@JC28;Kb3D>L!SEtzI~wH0l1dJPaYlqgX;kSSg3XVm)T<>!X*RTJqm z{NCwQjtE%LIZGvgxq$yYkb}b&hNWtea31ve2x-&AX;qO$VefJ&rd&=nqKdA zGJ@nx%rK;6TC7SHRH;+|E=X($|20=hAH_sM)5143V9~vKx#y>c6~BDWR1pA zF3dvEifMhf9n62pRJzf+8WK|>Rn^;zRqRax1bH?Sj_X-0FSZ8r-0ckHCo+!`Zj7CTS>#plw68sWtzk656vcDvex)>en4Im28Q@^1k6T~4xYV%OLK>B;WTMM2A$d!Ni1hyc(85qXw z*BldkRSaFqn^TXqfNBM(m8(0kYLsg!lNWpwtT)eK_7o)FHT2b(Yp7AuWLL;HEBC^! zYgk3AUNqKcUiwVeup|;%S}LMq)`y|<+=inb%dSxFH^e*x!!c{ZuRJi8EsmLNFiF-8 zeRfjMvraUU&(&6JTMf^_idKQy8zgG}*0ZZ}9~ zOq$uF8I^zZeL3c3KRNb#Q{r>41E0%N%aR?Dg+RjF=Dgf$`OfjuKbW)*;v|LwBFic?_+{!$VwN-+^u!ip8V5*P%}*< zymIQ@#tc-UmF^M4K102Bi5Kj`TsnRO8VI#WkJSSO;S24q;WNGcN~W0~W$3`TisU^` z4Up6fawZrbo>@P7%r@eB3Y|-X$TD5_Ax10uhV3Ec zM_-2S9T^n$pOX9QJCwq!oEmWhoWNiYF}^Ji&3fsMGg^j*#g#PFhrH1|XTRRW!^Dx@ z2*%Jx_H2S){X~6mkh(i5ms#TyNmki?uw*05`&xR{iv}DkZ-2_|^Q}xjppc)UcO;24 z)gd|4AhEb1BJ6X7fQx=gf;p{DL+#v>ihr_9K%=2iH26Wd7Aw`VijQ z(Q|lFaOxvTxspy9Ufp3S+h&UTa$VXeR&zlV-ql`V(QM~Q`B*W1`dojXGC6+;L`(4f zTk(M&`>kmCU-7?3qTq0-0G#4#W^Z+eJXqJ%`Q`=o|88^^qxzk1r_@H|6O4^$Oi<{t zakT*yvmWSY_CgkSa8+#;%a#u|h8Nl3)lL&&Lv(o3GUpIuqCe;sVmG7^3-Nd78Q*#7bU=r{-7Nn zC?9RUi%$B-x_^b*&??2Qdx=nvSEjJ{@k@M{a~`rhTIHQfh7H`P1bw0TzF zW{*unoI6bN#I*Zv`5-D~|7~{bd6@OU%6QGTfPg2tMO;k7%QnD(wU<%YrBAxz+rr4g zU)rFZKwxArYu>~2j?+wmHBty-H@w@6+YKsOY|Ljd?~~riF8KEq5ehv!6WcWCo04zf zF5nWomP!rrJDr>jg;NKSJWgZh5YDsdNeZGk`-MJ(`EkEXuTqxv1*Pthl=|eV-wr8p zaa7$Y%R1S-8XFEiW!g6CiiD=Y;|r&22IeniL^-ncf9o`D46VHUdR%z;m0RxZXkRLP z1||3!xSs5Z^tz^p?W_ED((^W@G~dM8)?lg@`1V~Fho2=C`hjmnWxjPlJs7by5KS~X z{X69ED5W5EYcvjvu?{EgPPPgD;|-r2cEy=>=@@+sO}pz- zfeL1xVI4d*w$*`uHjbL}IdnQ5iEJS+kI8G@(VQW{P2!HGla>lFxLJNrwrUj_v zo?FCEd;CkrRzP(e!h^Qua6If5j$jfKfz6>{hD3LLRVuA7w~;_%?0;&ygK+V4sxlHJ zHRfdrfR$F4PeEEY+SoR9!56vdJ=9#tqNnD#zN~*dkpbW2v;5M@um#+d$`iOR;twK> zpDi-z_>1^{zAM!te6mykyyaD={cTWUn5yGt#*Q%IsoPH8EQHiz_WWU+Hrb+SomvT@ z!q&-0ff?21ADW~CeC;$QgL!D24>1|`Z>EJa1VjO{CLM~W?QQ*_f^f}x_1}Mdq}1fn z$jvUeZ9${5zP%1H&7hKKyiI&A6cF$o7E!xNNytjqDtDQ-p3sh@dm%G@JFC)}gy>i!^0XI;J-ho`j0 ztWCacqc;*F-xvg)3qNnADupNe`)>lxAWL`I-0!tqt(_M>enMqT{kyJIQ`7ZsK9C6S zE1JxFz;9STN>9^SKbi!QgJ@DV&rgzFrWYnqI4{*0bbBw3F#J7A~q)*J3U@X)@SoQ$i5eA^lqb+M_-U3tSw>x6zCMBQ?cls##Y#ClmA^fkh< zf7Tu1on)^gDIR<}Q}A`FZ(d-?bCBD8dc63Nv(Ak`&T04W;_|zmDH3`go|KV0u_PfL z9rIE-g9Nhgw|Og;6(ZYXP4*E-L*mFS3D^+6KNAg!#60ww{x(w9(_dE*L{b^&$?h|* zJ;%%L4<3P>eQigkx)>RVE?NHR2rTK$(40kSqxJGyy?D0zRTxM3yaSVbpfI$nPPhNDN6c(9y9T5OHn*K?h9MS5_i zs4Jp8D7}j{L2DvA}Y_j=+)KRT6s_k677*m3eZtML^jog)+R?V8FYI_cdXK1K;9M__f1);f% zrltVFvY+{D@Mq8aZe_)!fWUvKJiJ(7FWE#v4tDAD`Sv-@nKr!g=oz__1JHl9j58(Bq+#C%ZJbkA%F^Zx~)TP6s9 z1mbp@+99rvj(;%|b11o9a=k68j>(C~oN=)fdr;@R8O3Cnoh|Qw0e}e}V z(3ZZu0-8&sWEOXxAYb_%{<3fV3{#g+wZ?0M2}ih@d>Yn^pPHyRmmuZ0;!hro>nG@X z+fCzxc#hbzF7-iC41tdO!-9_$!!t3OD!sQe0~SX0HZ5Tk+=BO=&J0o9l^>*HGE=@t~CJzr-^%nBRFCW|OIWd`MOoVM;AcW>@cYy=vKQ-?P&qOXxe zv@YFtH|%Lp!Bi>dX;(S+sQhJ%f&GVt!O%!UZd)0;rdboUt-!rT4G4>Jacthvi|yrH zE?l~ws=#8?sNnWns6uj1tx~?33kGbS(^IY%yy#K*{-Pip+ z_xYZ4KA$7Y%6?IAF9kzRN;rH3J)WHJB~E>ic2*bV+3mCC)N&>M{9Q&+Rd$63!QR=Ufh2oTu>*s2FUmj%&hrfsI4v1jdC8 zUv>Y=nK&ArXRJM*b7ic#BkzlcQLg2d?xI~Qn)s&RxHoB?ac$840Dj@aT;)|^gN3#s z2O1jvB2o|E+@@=i@OKyQEhSgYSnKyW6{@4WDS+-(2UY z5SQ#VYB>%~_M3rjX*6MvAa%<#d@cEg#=US zVyg=1-&2LBZ>aZcs3q)m+X%EcnF=BRcfh?HrYkFQ>Vd0#(R>BjU>P} zWg^>xY!m=&sfR3CK8Q2Kt}(FY-P>XFYbCrC>g{CC1iSnlK*pXVa}8o>%cRlVdBo0( z7rNk`@iG)o31FCv?wds@p5G1q1*(JC$Hl1fFuQ6bv$ue6|IO--e#<=ZXcH4-?w5bj zhAX*g-e?YnG_+cvqKKw@6Eu8#oxk*IkcC1wE#3 z6#HG#t7S)V7iEkkAm^%@RKKWkMrG454PNs$5-}lAHV~$mZT&^)WDLgBa(;CFFrlBj z=chUCO*O{?j^@S775iil!xyWS71Qshm=Jw(Y7p~~r8#{Lu*OfNqyuz>CgVx3_`@R5 zUQ+$#^POl*|-9d94Vl&VmLTljCJ4XuCms2T=Y94QswID za`qmZR@_hh+hW~UJqA@Xo4S2H#O4$48-e22h2(Per*92Zh|JZBDQiCQC^u*sE%9G& z7IJeIn7EF)&1GnTPObYSz{zlb5$;*wuDZo|>Bc_6ocCIYHv_YGvQbIiyP$*3lhFqh|RX6U2E?8uDl*+QYdN9=J@s|H)ugUq!ILAnk z-%yToszEkUb|5jnxVqh1CzGPOi2KTgH_n5qM+nh6ytE zx3kaVBiIPbw-;p{M4O_eXX^`qUs0P>&BZ%A96^_*4BUk5OS3Y*j8FdqGBt;8uSpu` z?XVAAOsdE;R>>Zu_C_UG)3?04-2M-EPpQYsrcw_iBC2CPkWoy_yss3PZf&{`t_`77-%u;hs+zuK55aeGw0H?A^XbPO7Q=GZR zHr+K$RCznaDlQQ^(x9WGZNyJa8N>G9F;4(-)CX@%eBbX_3~f&3pY_(DZGEqa9p6S( zik~SF5U*WMj(hP@q!AyE{s)w=4}{1HZXOzy1?_DF;SpbP>zJgw+KYhWnhZQsA?3J& zJyrJ-^I(odsnOi!!JNi84t_ON__^$AqENHQ+7wjYpBv z2Zj>6Z&vUQKjs7*HkD*%7G{DOrBF%@tkszu7d$CJI9l!sWo)21orG@rhST# zNNFg6OPY49sV%?(>G9Kw}* z5o$#Wo?|unA*(a-eC!$1-0iAvqz26}>XK7#aY;|@(_Ti*evZb#=ONGD*}J>C#G@E_ z!BO?Yd+~p~a>iDhl!q*lPL@w5bWi#ThHGALQ|5Ecvlvq~=ryi4WHa7Y+JVy2))>l# z1cexT2Gw&@J_SH5P+^fR^kQ zXHBaeWj1;WXWq5GhW+tp2VFC@f8R(XhFPzOqj#yTyW&SKDU1acYrUFMXX(C(wrMXK zuI8iH+OxszBsa~qQX3@NWS$eZg@~OaG%pvt9gn4NP3oSvE~%bAs8Xy~>%Nr2q~lDD zj+#Pv3sjFX9WI8TZ^?d!1#t}!^h(X&DeV0nI@VtnM4xp13=cKjzBO)4U+`%7AJA=e zIptM$W?b~W&0w4JP#obz4)FD@dVP{BgFAOjMVDrV!M-02&1!^si%~Q@*lgBIl(^ZX zvv#B;BI*3YpbujvXQ-$^91wez9_=Zt!^G(|D1#vs%AQx&uY`!v>nM)qb5eeDJXJ&4W`fVMMgHGa7R|MrrvJ z4WU`336aPR2sro$gg|hYJYCI1J(575qeov2<~-J$vxhbP5`=Oco%-nW5{ILC7q-qK zNFux2!rYx?&tj^dvcL5eRZYxphha00hHo0}mk94k)c)E_AyK!#4FCGNJL$WY(;9VE zH0s<)KuY~ezZEt(rj?((m%UG^u^p9UV@te9fSs}^nO5A(BEB!aJ@1uBu`?ti^@Rqq z*ivTjBPnql;MQr5-8r2+SN@&u=7t}xbN;&O7;@8IHgY#UO?D3bYuhP4rl@$4&i30s zpy5Jh)Ay7?qckj3^~a+heX=A6we(?=x0-PaAIE0~BUBmuqi?#waILz=UQ&PgrZk9S z&Y~10ZRbF%CJ|0J-@R?b4^_e9i{$mE^$(3;P)awInz7i|y58%-WP8q4Rc>6&7jv?U zQp#fpc|BR7r-AB-=73OdDZ%Qjg&*c+yDQ7MUCYJD|97xUW1TQiBqLyl`m=7}PmH<| zN}L?%5FC$Ey&FHKv1WS7*y&`T<#oKYT9{~-|3MnAlQsGNc+c-cTTz>4L5G0 z4s~zLD1m8jhnHE2rtz1czFftkegYfKR#DTkcq{=ts>v^ zJemug-#K4T!UmR|jVqVR@O-7;wU1qY=<#i%$H{f!MU6{W$f9g9>{-4*W)2x*C3rMN zcyM#w8BZNkjuRI=o3nG{+k`gkUO7+`^bXG<`L6_vB5oV{Mcxguj?cc#*g3^~QL|-w zD-ijE=FU24b$5GH!1)@#bPFTizP0T4$^gHe&L1yLbJ5yaFNsUwkPjr*)RA|=N_YZs zP$X?pXDixo=>lE7R^jo}{C1uS!fx<-Ei;PRJCj57#g!d?l;)GZFIIFO%iJ>~EPqEW z>SrvxY2NMalLv&yBu|uL3@uIGgdz|wy2hucqHmM_Dpdnco-zxuuJwHH3S>D zccX4boGwRl=4!^pNKXgKCA6-0dy+=OQAHxof*xxPlFYa6w$i;_BTJP9JK<`O8-nju zB~~Ud-cm2a{@{6eL$nXhybsf5c=wH&->*f-3kgLzeFgbVkKpTB-7ZgRQm3sJDk^JT z*>oZ(8ttBk$%g^*77C}n2TRmfJ2f8N+Y;vUOj>VqrVvfCS!%9hAC8p^$Ts|HLiRj`RJD zLTzG!)cfUYaw0`@vO>FRn3jychiuT8_!>^_$lLs}cuD*v9Xe$(lrN(t>w^{SWPgA9X% z9Cs9%|3iH3=XhgSdYzXoV(gFCW7+&o*W8CF939YLhlgtOtouA+E7<%i)({Fuz-FfV$Nh zRGCrn@qVhfyK3*8mdlx^V#-1@rpT?UZ5<*!fd*%iFeDJ_;K?=2i>e%ahRTWcw~2>-{&nAo}t3fi-9T`|ZmOf&3AS(Uk8W z*^N7}MVC#A3_5b+%r$oRyE`BL)YwnpS;cI_HMHj1>JN%O3+fzbvy;(8*1KUUhTC4l zMyMxo0~lO^sP?x3O@jZV@5HsqvKZNx%5{A&0QY0+`iDJtr{U}vu? z%9{hT_+nu1$~Fad_aMuoE1Q-fxvzf2C9`DtK5IbfPh=t;R4>IvBS}TwSFCwrSF<6T z$P3lV{ZX~Ty2)bNQZlI?t>;7t4A|JqbF8T4M^i6o?dDR(>lY=NymQUQ)l3va3-sHR z)4K^eitVp0P0Gby%8lM=4;2Z{^OywvIyfGnr)>(&j?EZ|f&JX&Lrae#ko!yXl-#@Um<2+fYucGvBm73zpwY~<%T2aR} zOkNe1WJGTum4Hy4Q23;C$AcL5k?nX;FI#k!sH3sFSHl15ne!FUM%DdM!5&s4d2fuw z>G?ixJ|oyM$KUStVd@jB8-_s><^KQaux>K5OAnaG*r%`-l6=Bj8VJlZ!=u8ieVVJ{V-pFx%9rM#(cA%>-3C#q zLYm$JkY{{`C?^%wSo+Btd$7-f$gt)|r3?3vv(Dg-u(26u)M30aRqr=%6|Gy7-&uE< ziRFneTLosBixnVTM42NZhbKI&Dd0jx*Bj zJQO?asP6+Ue;>cd+8<;?>|w{_I>uh_pv0ge3kMtul}`#M3waV+hHF6<@nzFeeUKd+MjA3?%%E0 z%gVH`TDYu!9I9y7mLUAeA**Z++-jYo+TH3DIy(A|H~VO$PG(?^szYdu(9W4$)~(bQ zvU&d>5J3ST{Si60Xoki$|1REmvAfl{tFx=Th7w(McimtXoxMKCh2V`kprkVvb*?bK zLV*`eEwNZCzc6gCjS#OR$HQ^#OA$fDQzp|ba(wwpa0lS5#mwVTM~>P^ub|eN~!9PDV4kYW8#$8`wy#WG<}zmO`m4I~}{C z=K2_|i3l%PQ7Hz1ChYGu^cASm=8q|>4zV_ zFVV=pNu$m&oT>zuUi}qgF)g6QT|w{9Q5TP961NSz&L|gTYbPz{o!=$6M-slL^LPBK zOVc*SJaL(rP^KFh-479py%^{vZzxP(i^2ItFEyCpUWNDG8c+o(D`|z@)6p(%l|QW! zBxfe4&3ZCL*2y9~s|t$OpovxwGI8r2>eMQvPSg7ZSb?$3Fe(@N$LF52pVG2AXqXKV zBF;G4T)&>fMQFeAuJ-43f3HX$JhholIN8_q;{0HsU$N>-!=_9iJ3ha`R3W|BBZ~&{ zdboz8-VEuNd!T9lDC*FEKzK?^*zJs%62!v*HP1qWaT?*2{U{0+*wLIJ71AFjwYWKW zXWUbWQ)@OQ-XL37dGx5ka{|Dp%S;7B=|-E-@nCQ5O^|R7W?V%j;mV|m{n8ra#|;G6 zM?4H`e-5ptfS%@Y@HskmVFx=5n|KqaWCN%a?NER^WZ6J+gn2*-AS?S zoo+GgeH}Gqy6ltTc!#A2>xuZC#$W`qtMq*>*xRE4%ehpEPbqddZ$DQ%n$AztuOE1? zh`)Uo;By+?D|ru`sCnmZ7^3B&<5&)IDrxDWmlE~<^YLI;-Z?qtWy72|3~?FKR)^~+_W=kZXW?BeUt{2|Z& z#2=%X$-z4kE~tvVzhiy^RN)Jq@Zf1QqiZL!;`cj$t^B;P!G0|)==)Xn2O}XL68USbE$IiJk2O_DsR~VtT*)l%!@=^B zVmbss)*Ey1de$E=cA$P=uZ5H1eB9ZI<(nl;MYM;r9vGNw@uI$bV6;>)2S{`v&WY8; zAiS#=ycU<%w@>$$T^^%h{A~|SRm^a3OeF9)M#p}pV$eW@e1aJFoi z)3I|=l`;Oo$w%*mB{2Q=9eSliFRzCEiNI{Hp?_M>?71>dndiEuN(}x3+VRlBcILBK zKJts|0Og*o)7APETRh#xh@Ps_f1%M)O))|b;9enn+GKvYNPVqVt4hz#euF-4Ijt7` z>gYt@28=1=BiSJXkaYf%+S~NPd=X0#K!xt?%kn+ArW^0fW#i*ln~XCvcA=eGU2$37-P-396X0J(hN7hL(1D zh;}OR^(OqDqGV#+OnyPlC(TaYTa0}(9Il|c8^ikfs%xs_8qF_}SLEjy7*5EHpxc2W zJq^T;(G+rC@Xy25-9&<5^2G6Er!MBd?i62;Lx@>)9Om-zkhtunwvww?e=kEqn@%UO zJj9bh{?M;Rv2NIFbn${~)KU8h5 zlio~Iep&G(QT)fN@Z@IKx@$#!BM&x*CJaEizxKOCyk33P!(m$K`+SEqV2E;nJT>0Tt%~R759t@DUMSH8 z?&E#|>TI)>UiyKVsh((47RMLf)bpfZR=~3QOd&x)#WkD*)Eog8UTv#YemP#FI}6Eqe*O!}FTj4s z@gV!n`okvMYgjj2s|-zGqh$U0f4!G43n7}bc-D(~V5yr&Bb5ct;?aKx6Q03eE!14a z+ds1N&rYDV$P~Zxeh#b8njiDGBn6j*rOQn+wiRQEJH*;s`HU^B&9o2#;?moYLICR| zUe@~C^-KE%Fp3m1II=$H7{5=y^>}ab|-jBtp%^k<_rh# zB2M~`XgM2F02bM=(d&g0`VS8%G^(8OO;bV5oR+06IEr#@Xt$8P#*GFi>w}IG{bO;S z?X!a%=%e|`v%6v5exfvEF2@f&79Q@{eW27UamDxDqr_)OqyJpW-~a_ObC-sO`D}f1 zUH<@9^3Z0Y5Dc(u14qNq_1PNwE1B0cdOufs_C!N@@gD*m$BtgBppyyxp>j_bKb4Vl zbgSk!4pj4)vMq`VH6s%HZxCfta*szi6EgCn&tH{Ho6{+8ori?j0&o5v_fqU}*%}5X zvVka4)DMvpr`&ELw&2ve4rIRj`ycRp=vh_XgDZbeH~It-5FVK?Ep4>2c3qx(=_q>w zZ&dnB%j_>XRTIDZqA#ym4ol4GCPO&?0qk~8NfoB&zg)0KkfA%9T*!R-^#P$y3&ObK zIR50~8x>g z0bdl2)%fWayq*Y#%5?Lj7Sk>6)fSvLCyj&->s8G-WMoP}Lo@UageB zX2(fRCwyMR7Mr*JzRy}2X?*8&U5(i;c8*i8-}@LAS{xo?yQczZeiO! z+Pl{tu>O^b~t9sgaZw<(OYqcB8 z%bQ)BT)x*wKmILLAWw~7=pW$33{%d1R;FrCRS7$}quO>^HsN7S+@W-^{pg)j4+u4u zX64Bew+8_3zlZ6Ld{#{NV;EYiw!9sE7f)**wZ`eGInfmDME8^;7{8>3t_~3o+S$+d zO(e~vydl1%$yld@o)#UX;BP0bP7JFgzl?jkXn=HpmLD8A=@>A|;fqy{$7m9b&2NXv zr~0sZUCz}gH!{36bz&rOkVAah(ViKSiHxuW4@9Du7I8XWiPw}eqUGxTj=o5LRWhf8 zsN<(L)X8~g`5`zPS(_cQjR9p(`)KW&PUuxUIS>1-EI%Ex@i3&qTh;B7+Hhi}iRhLD zM;$9Do6#mWsa6a^-^wW1Qs?#GOKr75uIc(M&1GVdqI$rc??cZ=YYdg${09<5SKshW znG?vQS%Yrs8_Hwez!=(b&o+HGl|Qc^Muk%{*Rvy5`}hxu9w( z+1pUCqa>9x{~mg>gRy<{w&r#((&t9O$pHay;b|G$D=^M(6h9uJG4m*Y$=9&ko)JgB zEGkh$_jem$mdUZ1b-)oXn(V0nl#||znTu(ISJr2ZVanEk+T)8UP*sB3$7b7#&pPyB<}wxpCXy|}k|%z30}J|28j zddtta%@T+TwqHX#S=hULR(opCeOl;I^tf4jzgyIqH{&lfdJ(Ob+u;8ii+Ohbi;LEt zdGMmP`7Fs;xQ0||bQDIN*(x55-IHf(wboWpkMFpGDiBQlWE|HjS+W zEkUCx$2!fYGXz36b;Oi0KNMTQ~DnxQ4K19oDB+HD-Fv3ERI?yBPH$N6=;pOD?tGEPsY#FaFj{gAg|ZD1S{9Lzj; z-B5BkR=>99YpG_e7qL&l&NpK=%IQBbo$oNt*ruP$`CgU-bL{?Cx$OWmLNg~Nzn-%} zJq^*^81pHf+0yv^cXI4?@sKx3+w0Cj^xL8Y7pCpSqV2x*|yoI z28)?i@2vmuXf1=&Y-gxeGm_Rs$Sur}uP^*|N$S(~w&3%1Sb5HdryzU9Te=Y^{hNUg$O|iavH_7H zZ((e;$7JldD;vxfZJUw>Ip0*&9cpyv5EgK0HLx~3Q}EZd=}7NQ8qgctMxkhFZmf|L zPWlwo1V)RgwDum`MTjr)k(Kl}R%T;8LyTN5rOfHP(+Ag)^7TK13zV?M)9t=D}KUe)V$H+SSmS<@orX`09JoTZ+2~%T@YM5kN zWP98~J^uc0s7j5~lIyE=W}F4j5uQG5vD>jgL9Ux)oey;RFS%mV=)^?i@>kbKd=+l@t=gl7aQlbaL z;7}mlssW|AA{*7Vy-zX+f4{UbMw3x*b#mOtxRL7Ppfsk6{q~l|nJP?^eTy71#om0u zu_n(UY{a&roTwm#>%#`QT_c-UH}IKx5=lC&*AEEd{HC={C&X9LA~hIcWs){uca~0t zdPFHkuPXQvJzlB)Tg4&6TvQ&0X(u`Z0&+M`MQKxK?rmS#9zY=jY#s zAd2CvOi|YF^+FKFgh6J?zJALk?vN(ihN>aFsCm9wxM}ciXrzG@m)Ai;3Ji2NHxb8z z&Hr0AXVAlPqpnn|*?WvC{!ZM*^_m|AxfXab$N-H$_LOs|U)PNLiO_HCyHH;@P!NsQ zyz&&5<|C&3O+VR}%@e9`NE{hzf?V<>s=b(x_T@2T+&pS>uEg}|M>B2@A6gos>eEMN zHq=YQIto^>XJm??w>FtHYTA}1QT*k(2b;)#0?|q^_B@2Q_g>zG1AK*_il23#JG#$U zgKFUY4!bhkY)s0EY*s1#5OTgw1*e*ip0ufT&hv7PgzSb1-HQ&4{X67c%cQyD@9v}! zWMSga$js)1{MNatq;oTG_OjQ23ymdbmfGC*NAZ6E)t4vLlk4e%XH%fUWRmg1N(1(- z2-_+{cZOp&<~eF-Dm1;~`qk6Ba*tFvQc)%UfD+D(Y|rau4L5)~EZ5_*E5om9FmIk9 zwqX%r(3-ywxE&$H7fz=J>xSOs7e-Dd)0B66By|Lu@TCMz*&;nsioY*X6e_8oawhm* zSlQH%M%w(U*0b$}AL`cR_5+mKwc0BRxd z%0FNs1*`4Bs3w%_uRHSJVXnE=4GnKSqie&sSWD)^qrqw=S>GRL%leH!8A@eko$Nat z*?w(2XA~1w?K$$McbY{S-5;~)hwlhBdr%;6PWJOSlhJ;fLrgu9CiY_9E3fNQ{9#cmo;I;*;i6YHn$0JZ z)5Ll4kFiTpd#?uSd?Tg7FtRO3878M30I?+{7e)h>-mw=HH4*1L4;m*^G_8|qml9_=$XS?e;nH8|Rb zS%>@0VodBeOJnuDjbrEpWfW3xIcYj3P){|Fhvc8wpbv+*do0AbFYEm93c~<&6WX`; z%?awZ?@1gxaJa%FoT`LvC_`bSUX>)b!& zo`pkPW^wpe)`Pe|YiSJKMDYfMMv@aIMvwdT(Qf!FQLU@zt(F=ZG$=nk=DP=*4=hAK zM8uq#a%*SHRzfvOyV}}oJJo_mRh1hmE!c@!Sn;11)P&mfSHEbkWmm91dozUZ@Ps0)(Jw?$luaeQV zG2DX4k!Vv@lsM}Ja)e?0ALIxG{r{|d7rT})vH%Ll$gg7~hyVXoiKrH8OE?ttHfs_C zX=&i$!qH(OXMvl$H~X|#5Xu)A1=!=A zpqP~uMMyjjO;reZB72_$o(Upv69CA5DTF%;LRSv_0stk#Z8vJYDFA>q@Ah)_p3PqD zexfe=A2jO1>Ii~dJmvrC0|5|#l4Zom;rMkttZhP9cK=Tvh}whmq!lo!*a> z7c|F#KKs#Ix3E%qFNc>y0r({xfV!Ba*UbzDsAvg&I^SOeg6QFiDJc}|6aY>&B3LSW z%4duq=v$AZIH4f2z&z1g^nak$P8$L}xEX?i(9r@)BB`b+%)LN791o69QP2+8Sn4$(UZnUe!p#ZKm%xglmeAa6NojeSnOc+nY_v+Kc-Mnn9KZgQj ziETOQgf{?k8IT3xc`yJimk|yCCjs(6XO-Vg0tBG82h<64gcf7i?pH|2DIEA8SDncJ zEXTNz)lpsS*7|>!YhCbSa{r5q?V|n{7~5OH{2wod%AbjwNM-;lKUJk2Gnx;Y&_vNg zC#PA@2}!VaC9$m!b*Pq0dFmO47I)_P$bNqQM&)vTMQ~{Xrv01wl%CFikAgjZ!9V@r zJFAOjCz&9{vb8|ia=|hrK7p+mxiIh( zKQCWsn_bAF{*3plO3roF6Q+9p>e2X_9ukdqL{`XEh55_@0_{V#~`Mgw(jI_ExT_OhVX(IHB{Z+e3X;MTnqHQdU2aYIdAU!a>egpOq+3|~B` zihucp2;Q*v<$Loklmm9zbF5 zE1BOBex9EHfEzA(7$qH~s=|Xl*(+o8Z7zbrN8BtIiSR#Q{*0EMT?vXqPx0j%!<%e~ zDgGTe`Bw7KUl66GUaiwl`I*9TAQk@)Z@vBslC#gTvDT5nGVY6BrCHvTV`>}XUVe#v<>i2=ds)=5xj=U5 zSUwNTkek{L5{|&8tt)NBd4r!Bj!4IQLnBLi=RuWRukt?733+}=2UVXWFBUa zdyBeSsigs~OeNM*c`L~(apTGB>LoxPG5Gwevf61pVJH| zWp*cFim>bQ!v^4cb%@8FMt8LB6l(%Q2raW40gUZDA^LQqW~f?}!D(Zo98aX3Fz*mc zKE2mDv;P4&6X#o0$drq>I=g~==-h#P;$%d@esqaCAjtFD=IAO#TyOi@QOQBf;YZy^ z3RsR}B&*Glm+Wc~59UF+K8V6*C6a^4Q+gV8IJWAklI(xW7z=M$B@3G=G7(xtU0wxf zPrsW7x{Lm(=t5tmegBR=Lj39!xO-0Ty!VG6yg}WXK(U^N7UuF}V*&1*@36i!RT_wc z3I=!bABOwIE~D99a|jM1@~t_cr`VoTxDfE4?&_e0sUzzmo{Fezm;0|)`RWGx68KV4 zaBjl0ygG`%(TxqG7A0T>Gk?yII}_ip@ZC=CnZ)V>*HgseN`MM!K?`JMPs#oq&oCY9 z*pAr>zSJCB?s*KRdJv(?VNub^tc38Vi)M#^*iTML!ahNYM$8gwsvbNJq#o_@d``vv z$T5hLad1Y7|J z=>Z}Kx*@OU5F6O=4x(zK1|Xw18$Ve7fn%Dtpq%f$2!2WoaFj|p&b+#t{wG|o*B4&E znOpRM7F=8ocDoJA4-(`+%a@}(p2GQ6dp*E^r3Zg#6vwL(N4M&kl~MTI)m^JL!fLO_ zS-a3y9H*dIyuQmivq_cXAZeYL3B@vh#UvJ6@MtejsQZ3;tI5Gz8cEd@*u0SE7r{}of zJCas=R!0OZguJ28c>t`n~>A~hg|&Vw2nkcLQNhgW!# zdlU6>kjTpMyX9kwO4`VO04LCQ65eo5PP8;1M8xp%_cLW<>xMG;D$U@Yx}W&N&gsXW zIQE7oKyd;5Ypzt0LW5ve^8|B0Oqf8%qIG2PSadTxt#!8SUv2{p&H;) zCVZ0YhPkj%%$0_5rn7B7?J7~X;^bz}3Gyy>5|o=F*2)4Xdfkv-;eE@n zQQeR7zacW@ci%J^XFEr~Tle35f(Zl2qrxAk!;!E$5&h3y2m_QZ24MO5mpvr(7LjEI zW5UNT6^}@#l3Rd&hcIC&9su&JpGtx|^_oNw<2b!BA zYt$?7boMYBc6GNH^Po19lkg@Xw8b`@@fcJ3IXFaQ&4{sQy`Lqd)3A(c0qt~~X z3j{_^DmlH*O1LjWaj?7E7V%-N8lZPxiskQJX_yj9)7b!Ha69wlj%G z(T9BK(RU;w_c5eTHVj(|X3dwFXZ{SLZ6#5-^6`hg&}YVwB1!3Lh(#nGU5u&B;Dot_ zJlW{5$J5O&m&MNHD3#AD^fLbCU$MX`>grO*?%;&t7ar0n^G}fQd$6w^FwZ{X1?(*P z59qt%g!16W+b)HN(Qdyb{sX|qxa(9}_nso`&BIL&|SrcfQ&?B2aUi0uJ+TXc1m zV>y8+v7ar#XcCSO(AyH_SamYA2ZFb!{XfOa%tOxxU#PQ=Izy9Ln9+6VUeGaP+ar1z zWBDmKh#t8>$rC=S3&`v>3(ojWYGW?{B;m@-3lKg2vLPbA6nsTQo!F2aJsS{BB1DvjE^5AG|dGJ%lF+ zDL(gI9_jc=0_X@C&h=uVw{C292luCR&Pupmv?x~>K_I~y_j!e>?+@6_8r1j=dHRIy-*a9SYf+HfGSvbaH;XH-AeN zyvVr4fZU|(aGH6%pgoM8I!*QhqcYrsbG*)%nBi}sZ!FI`rl;T-jy;4oEJuqkxNZW_+ccm%>c# z0+|Nrad7;lGTJ-9R)#li)nXeBcqfD|oS(J#p36<7zi|L$QD5_wtS;USJ*T|#FNJEv|=TY^rUp*nvLN?W1KCV?1i{tRk zARrq_fNF)bpIJhDG-wQ3FU#*Y4@$B38~5Y_AJT-6{*iX;rLkM58r5HddjVg-lb&3J z$!$RB8iw(ZTYU+$~#GWR!Aii@OE9=L#{P!~_|83iQOfI&K=awr2* z0t4ZE3cd_VwFCM1Fjrh6UNW8!>ZVRXD?*uO$aKHz&ZzDZ%Y7p-y%6)$Rs!+Ad2FF< zKWAwoQ#lPDUIS6&FF2!tQf009mJ$aUVS^~9J-8S<&b+el{i_b(6d}yUCt`DM|W7a4|c_3r0-Um**7G- zScf@wmX^!k(`=;T;nL^uwkIaeLeveaY1}2$I1GpvWXMJ{I){!QXL{jiCH=ohUV>vS)~yZaMhM9h(G0(<@q1I9;0A!*X26JBbJs z{dF^ul^kw6K`h<#&poE;UhM@{?H^3uzKH(>XFOUYS!0e*Xj1*cOAT3HN)Y zz|fmd&)B1wdg>rpfw!Ju`kNKBK5y>m1@;mP4+H7mEOXhd$3r~tLH|qA)J*6aMQ`Ku zn)`>k2(X*LJQDYILG9VJ#I!XLmy~P`$1N73BM~sb6QM*SCY6a`!u%|x`Q0w1r58vr zSpY0iLyhd#D}<8_dqV!oYnHYct_uC%7($(hCwolf{%b5o-D~kedn(Q_3d{@m~^j zpx1_Wl}_Qjc0vF73JELHGEhwLk`x*WohD%&rs7muikYz%H4Snl4zQF50HfEVF9MR_ zC6bd)I4(5p`ZOMmM~Xr>@(JJk*eChKa=w8u&#oIy)ATd6X$_pZ2x2AM)n6{Fl%Osb z_iYRtD>^Q-k2-AO1o|+@8&G=QJvjJC?1da2b5>%lGs^on?koJl~nw~;5Ydk(*@ZB`4ZLD* z`J3hCHB?u3*4Ra*z%#EkAR}oE@q^HCGq-vJ%@RL=NIRehHapmkzdPEuaIX%A0_M&D z8+U!+BOKR<&Dv#;hF)NDG1g;ExSXy8ggzZSNMJUpJB2hfdLECW#v3l$NLH8R;Dvv$X+S99-$Fcz1w-sWU?{+;ai{FfyfQ`- zU4C!n2?!S4R*isk{XtGPksYay*6N&yi59@l3$b2GkiC2kgH>rX$9tNR5Wj69ZTc1Z zF@RJN26CAX%5B)p=BTusYmm@QPjz4ia0=gYw5jkg)}d9eV0jk;dllPt ziA%;KrYusp9#F`Ku$o{@%ZzLSYd#jK3dHk|P&jd@TnCvDvqk>QK)jv1-X}1_%J<%i zEY!EY4Mz!(jno9fWKrBY1O^RePX;tcLJbh#05w1X0bo4<2m!X@695PY%QblGAbC6x zzDh41;R8jmHM;MI$o*@@_aX969o9h2I3du;nP^Y24T*0t_!uTc;Bw5fpSUIzA2ree zpwA7Kuo6UCU#}!G&4hwFH6k1W8UhMC6rc1PSg909H-wNk5%P=_5S(InpTXj`;1Ec# zBjfr(jD8Rg^!;ETPB4I2(r*Kjdw4_xM*_54IEdf|<^t%SaYM||_y&Jz2>1?GLV$;) z5H`Tl8M*}^LX;H95_Sj-074ppzznM?A{s$*0#RTTb;$=W5c~*06*UO9?$IXR!LHN| zzmSp5JVhTx5FH1+5O=$_`3$-e*O35_?6dxW*kq654g$;#djrJ4t^^C8^C&?i*vx<# z{bXKXDum+WrYmyW*xX>~i^aGM0iCgQe?1k|Aen2Wh^K$}IOE;!0b=mK7d`Su3T zbGY<@PshR_g6WkDAe+~dgc3bUmO!mJFsN$IZ>;D|0G2{h8VrJi-!GPO2}}xV1R;->}ph!v?O_-|_(L z>HXz^6d38xq5-T16eXP@2mEYscm%e`{{Tt}36mIt8ggC$l1F1F$X_*D0VYA%kT>>D z23Y$D?*Nkr)rkOwSjY-9RIv@iIfcnS25p6`>=1jR0DFMop8=cT%Krf9WEB8_#K_b& z5JZ7n1Y;-@r~*)Kpr`?$0}yQ?S3}Vkc~};0iShu)YEY1YP~01ifi%GZuppt+TYy5@ z7#M+M*VYZo1etZ{0d)A#c5oq-Poy~vh89$yEl7Jx0>&2c&%iac4oCyVte=tgHZp}} zdtPy{J&Uj$|YkMvUjhWI~EsIbDHq5l9#z-7R}H@F7BataEPPu;l$ zjYt7LY5fqNe-L<805WZ{uoyKqC140@0^~nLl2!GOaFfcPf(z~jz#?qJs3_`>bol~n zBxp!}#7Fu;9dL>TQYkbl4Y7w00Y+N{bRht2)WrxHcmRgHfPvJVK?M{55+(=(SI7WL zb*In`fObG&f7Bhv6Wze18=+y4NjqJK>Rxqy&~49bVjsDvK_3flJwD)s{m zlL;6909{Y|93X1Q10Ast!4bfVTW?Fb2{Xe#(FF%#>XrdjI*);w2s&TUUB@K1tXg~^ zW#r5C2{78q4xkJmj0FKCAqUY^j6y)oi{-2hPl8Es0i(@)N`Qr=Oo6Cd5d9E$7bYJ_ ziO;z=B*A+)NDYr6Wk1|7j)NzFlF;kGM+YDhr)pRL-7p8j##Pw>M#}R7Us@m&%76)S zk|QG{Fg`_r{{V!y^uwqeRD1v$&LjY&LHs}g1WFd^cVO!BD3Xj3JiEw5iIk;IPzF!U zZ9gIg>l$~`1kDk^4!|@ncp!Ld05Uy=WQ)f8w~=-N1fsf}NXifs{{V&{3#WbpgE8fi zUf~9=^+*7h6s00wGx)jXht+Mtu@5Y>idH(y|u%X5hf+!`Mv z{2*qrJ0yeUrUM;L)<7CDkCFOE0(=D?iaZ3zA$kf~L}-|x14w+p7)x3kpoGA}8#;RM zHgpiRaA5>7pnU=al6VvijcgWNunA(GP{HMJV?nTmKxmu*unFo5Z|MORlBg_>fS2#z zAfYi%)JMF`IVke8_y9>0m&C1vV|98?0*nxzxkOC>5?{|nK{N2oFF?23Zm@=< z`H^XT#;uu_JCbg&02kLllX8re?ASM`enNn>2FoZwyC!PRyQV4pm9p1o6DDsQ$ z2c1R;V&32TwFp>FT1YyJ2wuobFg?*OgB{^Iu_@AYw!zVn1GyoirUtQ~{{ROE$tQ|* zC%Jg2OK>%L5JDTm^}r;sodmPG0IDQu2scbY4#O9N0q*BN4;z~__`HS$TiFvQY$xRm z2``47m;-Ic^?m}cT?cw{f$g<~H&8Iwa;=b(Nz6OY+o&fN&Qp4BBqqMg6Okqwt3!gI zH`3-86cE;Wi|!;QS8cD95BlLWfgzmum1r8r-f%*If=W7UZs3&gYcFs^ZnXaZkQ=)j z{=h@6J%Absw9SJbB2pk_>ypq5Kq_7ZlWuO{J?lscdYkr~3rAk6hSy1iwv$|j5RC$W z%CR5}j6jP`6X+2Jw|s@V4Z`sfcLGe3yaE|FE`$0GXUZWAG7ux=8v0-Qu*nD6fJT8} z8zMk9iv0-ouL4%@x-$bN#XSZx1@mW{`v{PnTZCGR4cRRrf**)Rq!ey{ zT?e^COVH*1Bp~842iV{b2sp|zyMbd4m(4;+kW+DHg$ZsFRh6T`z{zqq)Ihh`_2diK z^VAAk-&6PiYU3f&Y?Q1Ea|0%E;7;r#CF$<8>;nrS%KgF(9}`M|*MfhLz%$;f-Cn>U z9NfWs1_29u`WPs2hThkHK*ix9&12ssfY->RTcFL)P=j$2-vCMd839Mh7~vU#d;(a$ z;1z$Rh}6B5gq!uAI4R)63dsER@!zyQMwpaUwWkV(e0 zz((*3s5QVOU3<|sC#e>#89IZIZK#4HT;qedTM)Vk!J!w5sTQwUDTeBjYW z&#=(^M1@GYoklGs8hlVh4CD^*2?uO?6VC_;o;EO4Fk(noy}&@TBEQhG)#%AmNs@Q_ za0zbP*g-UNgO`@S1S^K2=mc_1LT7wC0_}kR0BOY-HJD&>FrJ122&-l}`T>Fd#TX=E zR9Q!Gk)h{d(m}oCZhOH2G!o<^Wup>#S&%Jq0)a3!ST`V-V;b=SwdLE97OSX`mmvre zfOrU&lIpj$dPY=f?ErxbvjgZKST-`xk~)wopc<6KKr}O51@?6MCS5}>zrsRJ1_R^) zmD6LCjxs^{FF-{IAh`l4I#|)+E`&w8pn%HQCAGMR=eJ2xK&ulgl)HM1AN)_@eNGK}=8q zGs94~e7~a0a5xB+i={`&+#SEAZi!(VNN>xFZI6J=0hvH`0?IFN0WiWKEY&;7Fby2N zN%;dVW%z;vL)U-i0Agb<>|j0t!}dV5z32QOmW?8%OO#$9j;&-303A>Cw4*j(xD4`5 zx$hx6SqO|0dn%9(J>`rx11_esZ?~aKNLz5F&<>VV%roH_>lvK9bPv}YDz zre%uzDhv;GW6MTRR<7_(Hb8pGtPVgLIUm@1CPP`T+JizY%6L6RAzP4I3lIOo-60U%-90!g?yifwy99R#wyp-0NIZQ__q#_0Kmb(!otG9eO%z+;NU-@Abk1& zIx;dM3MM)h7A86-CN>@kJ~j>!E+!@cIRVk<&tzm|*!UDw6r@xnq-3Q3c?s0Vqo3eE zp&=lkk>X(Dkp6$;UmpMy0qPsnHy9`i05m2P3?|gS0RS-o01fk>ul+xKbYbBD@Si@6 zgdc|g;Qwp@02DL~EZn~}016Bg02%`Z<74Cw{`2W2muqLb@Qd9hYvZ)BgwvF8%T0j? zq|L0B%1Vy7+qmD!Nrx@)wuV`v>5v-~Z!Tn@4i%z&)jPG0&nu)3bBxM9jsR z*L>G%Ty(RhS?;!U&W&eq_*1*@Imqqr+dn{Kx|f&zM5H3er@|=nEfz-3Z}t5=F6bJU zNn^Gk>>1PZodDtA>{LQMI6Bi4N3xQFi^ioMGI9KAbHwQwv7Wy17m!4`Voimiq(E>w zvp8yowJ$myI54vDCQ<)rxI7OzX;V~z43f**j-Jj{02Xq&pgS%a~6LexO8W-Q@EB?%Al~Uw|HLQ>`J1hKIjdPK5f->F4Ze^}L z;n!|yqMO=ncE@VXbZsrJov;VN&!?4Kvnh*B8aI3o4{b(IU(hIeW8o$rB?#^6wm!z* zp5>eT(KYj~qA_8hPlZfjv3fkQ24>$>&0bS9X+iEvRw>BL=Na#~Y*^nt6-|`|hoOw-ee=;VuD zcl7?)B65HA!EK&o{XX*G*)8E{8Mw+4?WTnL;=29mPo$vFz_;qtt^CscRnnp1jHPR* zRl^&&ld}`!U8~}|5NbqX)Qj(vM{5l=LP-liGz=p1k1UoBmTHh zD;1wt4r&lH;n9iz8{s_AO<6qr2qc*1@GyNLhFZIcC973mw~>P`RIeGCm6LUJ{7eIL zf7`Li@3ipy&ue_5<)ks5(X3Uha(lEt&Krs{6zOqpX)?M>ywybI{FiH~M&m@GwRPNi zW2w@cYJZG! zJu2Jxbi4m7^(39AFD7Q?9LzRO;QA)r2(#u_N6}a4Y#Eime=YnS8BJL0@`p&-w-%kC zd#E<;^!M0p^)^FKeqYOXjjXY?8HJ;bU&buC2?>Ti)l>b*IVh8HuPz=oo(qWz%oDTA zJ~hQ!X0!}!T)^Z08pOf4+pAhmHXfGuNrdz6OW?q{x@(&| z!dIWY@QP6&NhN`ykv>M_l!CcA^(}2Fx}1FP;l$ZwwcWVwGyk1OZ{X~Ot`?V$Rm-?- zC8>o{E24sfm_bgTavrl$9W6}Uk9eC#wAND1TuWgt-2;gkj%ltulX8DNnZ+c?HPBdP zcrP(e>wdxDwf%Ic_)|`KnVaLyVtiEBbd@2pNJ7#?b-9Q13}Bl!KMjSjCLt~YiGhX! z9;NczSQbTyoPj|&q;IMy_D7XDr6xOUtEbM&pSd2U*T;ZvQPMyao=On6@1%|JJXG#K zfcm#0)!xO5mU;5NB7Qtr_VM2{!4yb;$)(l`wu+F5``jBiLItYP3+RSplF$e!O=jX*G%Y?V9cg0US%1b?7!qz-phd%K`- zp_EX-W~0JM-p%5U1qrVzDLR@TBlMenZH2fwH3>PS**CD+I(;iAfz#5^K(y%*l<}s{)I*Ob}R7Aevyz zTUGM0!CZYjT?*L=SfC#vLdn5N#U;)r@e!sVeB1#A z2mNiL@36kz1357&p-LE@M%cGG(HK76+1E+V*XDM?p2hk!FTlf#i?U)^1>V*NkB zFxEf7RniM1^oC zHq+&>?%HXo#fpKG!Jy$)Vr5BGwz1XgAAp?YAAm@7_~G}vFiKG0Tk{FO6+3WTx@b&! zpat!cH~YyVW62%7)3`dhEsXE4Tle*)%uHt$5u$GDog=*;Si0b6H@~_Wd$=2I^t*9t zhfe5^;GpA9nEm>@zqV?>W2M5jn_X8UOLs-Q|2gAYO%*N8bGR_YUS*7LA`bS{4qWx@ zl74`u)DjGy-pu&33p6T?b)MR*>(RJX1Xwjtkz~ zEV{I_OdHFtJ4DNjFsrUx=t%5B#(hH@Hm91)T9&aIBD90-yOs#8D8{3x^*VGFH^wuC zt1Jc*a>>RG2KlmE%k!#SttcT5HGlhqNy$FBTHP}Y;9d)WG-$Q9wXm=M0S-dMSoGf#X8OToKJjBm<>XAcJNyEc;v6tITNHBcjhvm18$0P$nJAZtUVzyURHiSEGs--O zA25=k(42d+Xd4~d&Gkb1Lj^NxW-{_+FM`LJd_n<^p!ZS(8_rwH^^2Ox#0~R%?fb>P z2Ez6>6h92*TGRa*Q58}pjp*k>atX$lT2=OM{&)I=%XoYOl{?iFh%{!oND~(GFR1H@5+~E9a-C>s9LM<&Qyr1>dNdxetf& zWhlg&*1;J=Jj8S0tm?Ezio#R!^ht@6O9={Oj8|kdhB#7YH}8FqvA}i8!@SK|-J~l~ zOR$ozaU^KmA8&?0R9ySGA8KgFUZK+*C1t{G+qbB+$rJaZnEQ;LUi_fpyGlDPn;AMb zC3Pr<M_x@U<==dr;oUGZB%`!iegH_aiYi9;WDN^ zp~iT9Wbdvq{Y2L!i?rPRk#v#8xaC4Am#lBNH+{`P{bx|r#G6yf)tZF{%l zY8`ZT^yIV2JGB8V0;@bW3nWo3Plc_Z`lw!m`fB}tEE?Ky|8&l5=-=T=QlaagBr>36!H~KY-)S_ zHbj>1#=sgIm*L0IE>Zf97fIo7>G)ucE9qe(`GM$N?^Jv5BtJQ&%k=|--xdgaD5z$Es> zRh!7y1h(C$-I~xT9AKOB@BwGRTr)Lt;V#pe)D$oonr7NF6->?*RM}s)JngfapUApJ zWO!LLSLW=b?TRoI!Q!BemRWtz6NtQKwuEzmTY@!`$9YhyJST{0r!~4h%R>#}5@diV zqFg6c1jB+jIFAGOLKy=-`FYn?y9?noAyjlmJ{FqKtjMzt^nBM@w#oJszZgDer3o8K zt>zIJ9#9cx>_9QbZV$G)`=yP9ux!#~Upt(>92JNmgg3^|k8EC?ZeArBdNIKt*302` z-RHnzIUw%uY8MbI?AEp}T%D|2ypGt7w9b?GX%Wws@tCRPU2S!EH0sBAD#P<9lX9m} zYxc8#Y6z>PqLx2+^Yhg1K5F>bxad_A>UPan=o&>uhGSfb!|t%i)? zU6315qP4Mh2!RXu6zoqhhk3@q+#F+>0=9inSe=976h*jI2r0n*XfUY@I|7?GE$0LU z4~U=&GBYKN{ zCP=GKQ!nzYh*sq>SW8D66eehfjL82a_;d@c6`}bT`tsByHvpwKGXuBOVXJ1eJQEW7 zkpMs-Hyq?_dfSfke>TEAL=-BkR_Z(wL^`{RbnOqW30OH^iS5lCT47SGN%uEiDq)SJ z5!>U|Tq~XXbTmqn0i4P^dOBl|&tW@L3-iCKnwE#Hr`8eIZSpfG5Tirk6a`V?V5Q3Q zs|N(5ufwy*SjFxqb-~3n7_f|a@?`8_pR8?1=S$`GrwM`K6=vI_HmoK-$FcazVa!My z?yPy-;)j|o#=at1d^@Y^#WthXWnD;#1j-Xtx zSXm_jl5R;MHA+rpa6@gd=Bsd%TS`7hpey%2lZFan?*V)ir(ja z9w?v_!WsNz%xe3Rpp4wgvaQWj(4a^se}#rgTB^@s>uhSzaK4|*6RQ_hA%2u}`!vH4 zNe74=f3!Axx|ax^(6Lbgv8GHjzA?BetsWu5q)D6$pv6cJck~-1n)levm<}k zrohutzS8RFr+_&OKyfO(ZJc&O_!KXM>FM53H#%BXe?|ftr$q}8Xc4NVJA^6JZ~Ps0;K#Pg@-WXffM zvt2lCFarjT{{Vri@YU);g*+_|ov)zY7voOvgo>}v@ImIrl)Fj>M0c|f&};Jbz{M)n zR{IQlok~MR{q1f(bR9M3fKmspMs;?0sLKFA*e?K$rB4Xi2^gtrXyU|@7j{d+yfXB& zc1!hZ-WTopO9h?FH#U5@Ha$9X%!xMijBsMGtOCzY(@??6c&gqEr8l%EsP+t67O0F0=woD8*Z zJ8LnHRgGUP%O0~Z1XpauJ3g@!jpXX;e9ypEO-WQP%x;Yf{5o)h@R-;G`xGS_M`GN9 z#2XqeBd^As$8e`NYKc-*_9zj|Mw14rH*znVS{o|2vUaE%qIBraDl6BmDts(k$6fSe zfbV4#A$*^;tLdPPvzkGfo-W-LCx;!(b!jp};&M7IbukPivQ7}hsICXU9w2KXilO_$|L?!{j zK7Km%*31}i&=GNd#5E0d%E}I6=^3eRYIU8~K^`{1iXaJwVn=!1Hp!6vvJZ9R`m1){ z2WKm%ufNX2WGe2*j2H0nNS6x!Y@avcg&?*?m~4P^uXaTQnm3V9jNtDv;#n;1m&0St zbQM$9Okz(Eqk@iC-Vn1tbY%lH&kM9}9pU3UC(^$6qNFhl|IP{nz4J~SbK$+g1zdPC)Gm=bh$`RHo{A8)bsVMz9=hhs4SV!H z=1~g%a}AH6c_OmO7=QpXZ0Zk}q1nY+U8Y0h2Eyc}3d~2Ihcx*QP@87rFKaE!*^3rP zE>@*1=o9(eqEd3$<1*FIA?R6#G{9mJb(kY4dmmr+62)igPdvh)cN$=mZC^vvXQ&WxxOHfl$-11dplg=E|V9>I9 zjL6rxuiS+2gX|$Yut^!T3nL>GylWo|#^g$5FI<(SaXSnb&u8km$A_x6gq#mD;#9>n zoBhTjoy%?K!27y`o3(WA37yn?i6>SQbI4hmv+{XMqP{o>hlSs(F;2pXrWNpU=t~5=~$~XOUB{BfNE}^tk>y5meicj`%L7ja-u%vP#{;v>A_0s_<-D z76}Uzy^YSK{low}NQL5`Sye;CMj-71#S>3&E?BF)O|xkD+q$NLO_kw#Y^;uK+gGE3 zu7(c<`e`w#v&udrpCY+Z7xQkCf1P3SZ-@|XPBZ5RlS6~~!Q?=}Lcv1A{BMB?3K|m& z27{a(`wPWaF*XiZRg?eXa6Wh*Q7G}<{7c z8Wvr0X>)qBgT-mQ@`}Fj_xpybeEY?Cl@uJ^=;%b4r~)&(%p@(|HvcG>ln$P^aGj1~qsSHssB?>9VB^8a=ed!8f=u^$qDNAW*Q5i_e zA&oT3%BQIW>2L(8Qbe(T)ESq>2V zmjNbVGD{BPQy`N`Y$aK5rQfn2t%fROJ~)WKi^9xWUp27Rj71eia@Ye$24!aAWuv)U zWl%<0;OxOE_I+^*!<-Z|hxY0$gH&;|nL<&MNU}{6GQ;+%J%!BR!l*lgxGL3#2;J}P zB=&mtdRB3IR`I#yy%~*o8sE<+6o3-4F)e)3;iL+25js)R*keArS)7*kleyA9=wF&Y z@ukD_{qn{OFH58lDhoJ^`e7EQDm#difFuJ)5reVD&K%Vu$iMn4j!DmY5GRJNAW7br zo}ducBn~r#1VvY2Xab|~iipJX!0*ukRWwOL3P*dOXR5^*t7nMydk^~mc^T%z$^TbJ z{BJK~le3Gdeqp2dY6^?2DEdNuBa4VO}^RwLSbKIp3rzm(IgHg#7!(0av$o&)~70LTal%K zb?$`mSh`U8%ydPD)xSqH8cCJgl_P!MmKK(i*-s{x9k-=u;JQ6A=WHrFW!=I*eJ>FB zGe}J%N6OP6te~JkH4GndsG;weRE#1bP*(~v{x*xi6K+L}<&u=iFvTUz!46VzC{$K` z!cxf1G;gv9Kous`2F1u=^Faotc$B3YBjU(HFas5UYz>Gq?T?SEvQe{qg81S@Atm%u zB*XM$Zpa#XQEm#2lw7WqDUYtTv`qe(DVByP2-0DZ#G(fykx$lo^dz#|(Sw*alD#Cd zda_$G2s=hnG!~S!hf_w;{Js(8uJNA3Nv`zqMrA#XKS-J>b5*)={AOL z8jD|k6m~oAKSo`Pu4=G8&SoR;>6FpLY6^ALO!IPK5}MPmJ1Pl9AFM~?wR>>J&f#P} zaO_RjhDI3}i5Z}M|2KC@*CM^^%p$${v{l9}-`F(>uIv5hBlE?9U%`9jGx)CY(%V^;G0hed{h{;0^qe)=GY|C>g}B*$Wh!4OlW;4pQ;{t}!-$tj)>%cf@L zTHlMq^)p#ox&;Qj5<-e6D(}wxiAcBT<30AldY(w`kGx zAnqZ#1R>pG>vT=CVy8xy)Bwy-iqQ(}Qt2FDxoWRUH0e*csX+D@9BI{D<=3xC1BtEIwC|Mv0IZn{xd`2~nPaCCxW$^+P2LAZzD9q-YrNfu zi;Z9L`)Bi+M*Mi5U(;9Az*3)e14JRBW~7@Vd5?L zjM|(@yCI!L0jd!ZDUW0{<4447s9Nb*Ym4&CCv{a45;#0Nh)ay z772tE<0qvynKImMvkoj#AO%k=%?I_5;FEjC(EeI2tuB$_zSJ{Oi7mUfMMO%b?1Hsl zZN51~`U~;&T>_qae_s-SPTFnVOzVYk<=m$>sq4e8KS@w_sH5HMfgBY?ap^1VLS0WL zO}br(slzKyu>|9@v5$Fw_bS7m(>0!sYuw{+CQ~1d#^DL|2{+uSkEY{K+lOBR<)wAo zdsw%+dxRnQ5oxa7>e+T^albLV4mSL=y$(PDKCPCw`lBEg*37`{h6KU;1N5tRz`#?J#=WxWd^DVr6wqS>ouOloZnjP;Y5`u+eN2k}E`1r=L z7)6^0-pGwEAyE&CqSw!-L#m->4sO9c(=u?{hX?ibtt=56m-dFlA8@m49o-sfHuc~d z3{a*ID=gyJyQuwMW;%7gV>LaTyO?Q)q9zSLTG5G4HKX)(bvC{yY>4!9 zoa1VFa(ptxGyey;9q*0B{ha95{tvK~oDg!k;F~c#DsRg8#Olk%+nzj4Awa>v%HHsO zhsp|NzGjr)TDe3SyQM{%nbVJt;XYV9{$5B}nP~i2q+TZSjdb4+FA)Xk=Sv_B1inpU zkLu%+bh8PcmUcfZwL)(QR`WE~WZKoMP&REknYog_;E_>MRxj7Gb@!=Usg7+?Te-VqkqLhb zYZ215*V52UFr0SXt5?<8Gp3Y@Mg~f?Og2%M{LO!;NzW91Vu_>uK5D-nUV9RgTJ-WiP5 zP?a*Ji%Zpq6g3v5j-|>BWAz3z;#J>7N|q+-Z3+zuf-2S zQG=xBKK}rq=@(L`m9bb(f;@2I*xN)oMe}R|E$W+eadD5NFbTC$vA@96i)+8opxo+$ zam4RaIdJ^&dhS8FJc`SrxZ25rjrscSXot}BX&~r@6ht;YJslp>engE|A*aV>b7fCA zMr00F!YO2~vpAndy2T%rYDlWIjM?xt3rston2zW!sdQSSaM>EI)lz>a{s*Z02Y`Kz z2vq1k*nK~U42zwG3M4@vjTODUmPv_n7?3$>6i620VB4O?Ofqd8#H#8fVJT^sopK2w`k{48w}nhwv6qB)&9Q!~oOG+~%Q4o& zKvqOidr~=67A)w&wv7dhjN48?O@;^Xl zOORQ4!jrK`gx#qFS-r36J@e%kZ*Ro_piS0wAxS5#L{N&GtIq~dtwA|MWD3?2!|Fkt4 zAU&%Vyt|jHNlCW?=D`oEsdAF`MTf`rc;E)&dFQ9}#dDXdwveJaDRiiMzhuUO0}`Fm zh3eni-5d5qtMO-(E*s?Z0+5-_ue3*<;B4+cH~lumoa;)&`_%vF&4BUHs}{M^sNV3Q zhr&vmdF7)l2_&Xkn_Jerl?1e)@|3GX&&li-h zC@-k$Ey_ z1tGiwx?8Q@zpA?^B!2s5&DTF%_*Y$A9|o4U3?Ty{Tc5#$=H+QpOzUtO#>89R@^t;>>cHJx8&>Ps?vQy7YmQJT7NuAs4hG3 z^o5py^c~gfI1TkPmsgC3HU_fCiH@Z)u?}O*`bmVnTh-A)4GXDxprCxMJdYdm`sb~j zQ5)|7*yQBoTV8oQ8>2&Tcz~9?HleY)B)D|W5HquntiES5i8j<}#TIC^pYU70@=hp_ zTZcafEdP<`@Mo`eFUQ!H^Dx3nR?dqag9i-oqmvo zrLlMh#SdMmfO|N1S-;&oeL`wx#X_~5d+8|PLI5I9EirOj z%KUPB>DU92y5ns5vC~3Hv-xAE2v!hwK7RjSp5x-Og)2iu7xg$_^LhG%df(+pkXqPh z--PY-1?|#vjY52*;LaXQ} zO&sanWpfQHpX0D|u7_K0nW%I*N|}Y&i148Du1IbIhs{qZ!_14PmK-v9B%R~uJ}F$A zJVpnhpA)Zdx!bqULmm!CTv8UrQ*MF^R3~20jBL-PjhL#kjd{_v)JgO3Y;={hz*fOc zuVudVd9)J%V2LEXzG5UZMMK;3YUEhmcT;!3+f zV}Hh`y3(4jDk+x(m(5|^gZ{W&xJ3en1zDl@KQH#45@*-MB;ulRFD!ThjMsNRXTIzyKv-5+!i z0DsyzbNMLz{5?HFuVv1~+ci0~ zV_IFI4JhnEE`7d4umOIopHtH`!Zx6lyGYqK$hPy8>zZV54Rsi^oow(Fp1fx&;x2We z*~>n4YFD!fK%em2UBpkDais4Nle>_71kUz9*4fOQi}0Mb8GKAUtgd+Z_MnH|wXq z$p%MkoP9*QS*tL=`ZU9yEU;_L+^$(&gd|1vo@*K-Ae`8vfqDBUIM;VT?VY@as&;%O zyCAt#LmRz+F@CQ^UcjlW(9`dFqp*KIWnM}|%T`GB`)1b9Q!VCr0j+REC%?=#Uu@+H z(rV6f2ltV8X4)2+DNBcQGe8-WxkhSe4wYyF6!i2VQW@O2rm~&>W)!f_}O)wOMYC(ytz04 zIi+~z#>8K0{()u9yvHn-b@!GzH)jG5bYalRF84rOz#0j6Y`}A7nR%$;ev!qO#x);* z#Pu7*H9gPm4T=R*w;+y(-4z|{l3{Mss}+bKH!=?TXwJy@x9Iy}7|&f!8i=;z{Nb%% z+pAyAx|k{Y=~}s$6JIA3Am_bqmUrjKLPO-b(o)+2nxXY!ZFfrHVQVmC7uq`I;l!5_ za~Cvs!T)3&^Af{=wb_dSn@I{yPyupZNXEPKQ%!B=7fOz80gGlCZ$j@ODJ^JLH>`+bkyw{hJ3?o3pi3uSmlkRG-Opt4Cv; zd$HxZqByg#k@-vSZP?5_d!>HWyc6wE8v)@j{@guO?wq>5Chwwr=l6GGMt`qfS^yvE zg|O1FU0>(WCazYEw7Kqxluz&Qa4qJb-j+FwSXV9Kz@29a(>B#FJz6^e35M}VtKQEE9BuP$yTI~PuDYPPJhkp&O>w=CX|K#pcX$xBKn+28 z`ZcM&(c!Y-66At(@t?7RX!^r5-SK`nMO|S6Y$DlW z{?fH2GOP=_o)!>xno~I;LT*YwVKr7bil#kZd{pkwhb~7x7QB`j9mh25XVM4o9Y<+Hu z=(g2=D#WC!fzRXC??`*F@X?igakYY!?^nL31t^I65f^^wQX=b17(oqth5|Et(Z;7i zAM_n9#>eTC|Hl8&%1{8z|M1DCF2PCp^%%XgTbEZ~{#XAgN=_7uP{r3g%_Fm5Ie9&8YHLOk(J%;u2#I@Ld)C^?V8ixs$xT3P;p0K`i z`AFv+SvxvfIz!?RSaNRR3F9$~*B^P#3xzQC8Gl_IK}6$C{dW5&Wwl3Ri413!%q?1u zNPOvGL<-ltS8NKF)Sga+`^1OHsW8clZG&5>94v+lk1CQ*w(Frfd>UFNM{QPo8h^JU zY>ls+Gv3+RRi`gYC*BmDWL;x}dWpX6bK+d52O)1>MMq0og>3ZSBYH1hC-~<5YW>=M4eNjUHgvq!dlDiLR893+P!4yKn^lmAQW|cF3 z+qimF&k&iYcv@2Z2N?2jTYv|h1r|#|qaPeR>a_*{ztMs+V$KNcy_g#x50DbL0)VXT zTF(;nQg{>9kX2cpa9GssHby>34XtZcZ$8n*wqf-r%&;^{n51r#5`rccqser5I_{aZeC?-v}5om7oOWT%DCt8l@Kcl+jp+6wtG@{7M^!aPc-zoNU? zF_7-)-6E@FI=>M@>bk_l{6z=9`U*?LUu+cLhj=PuQoPY*zDnlfFJOBtRj6`+E2oN6 z?JI;Zc3iNA3O&|cVvDDWrlz;`%o!}Yb0I6s8A4_&uew$uWxWzfB?6Ly-r1DC8_K>06gI+_VPUGm#M!_3b{UTC7r@-i$4$MRxa zqP61daa@|%9?FMME2tc!-O+Oj^7CbR0b67oN4Dn}?wDV{bO^>|tSLdu1GadjG*}}+ z@0wpb8(ne&q>F{=iuS5_|3}ZO8 z;kU=SEUsTMFf-YeYHTc3d!uwKva+K~VM~Rc;UgGuhqnO|&Erh^rEz@td5m>DFW01j!K6s-YB@iV}PxG*0|*OW#1{DVYcdyT%J*!XqPuom%p2V z08T};7Ez~~e*aPM{HCBWY}(Ugke{Y>@&uukes2$)542o}bxs3u>{M;z*JM3~4`gO4 zS{Bc%RRF)YBOk!fSpN*G$J*%5930<7B23Mw5y0f|T)Df^B%+R7@nEjujQA}$5%87M zu-7F$Zk!1wYK)13#lR9LUXl(KM+DuR^7Y%@ODZsBMn#>Aa-`_WfQuUoJO=_5Mw$h-l_TP&`M2csW zsVKtk@G5_i!g15u`+G2P37(gsWvfA9vKnoI1 z#Ixq~sa&OfHWAghHkdZHzxZe8SU36k1jSezbOYhn&4EG%Ms_^aH%x%V@Vyz^48D1p54;Y9+7^X_m99MB*s6 zXe>Wg(T)??ZXvxcnJOOqvQy?u+t%byG2L>ub^|j8ywI{8NeeW1Y`wvW)R#cB@%Qp? zBDf0!;_NoEK8q0VT16@CEPAe3$U;$P_$Goakr7sUXpEVNcPsrwjn1LOFR>X>w)IE| z`0E)^s7qEw$SK-l01Jp$@JTQi0qQG0_xsUz`HIYMOGjl#v?_!#7QO>yWnj#hZ{Z#c z@p^(X8w)`Z&@r9W(VsrKu$+^Jv!B>)e|C+i^!s{ETw~$Y&Y&H!H={a1EwM5=(RV<7 zL!^Mt~37mvO)x)=|_-74B2Ce(OLLly1#m#6WenCD4T!r-GBq6>$STu$y`% zN8;xN>g2EBB04rgwiQ5jUtqD; zLSn{y(W}Zjwrvasz75KcdpLiSTt&-|_(2Zvj^@%`(3JF)?=!OCX2&)l459eT?0JV{ z)|kP?AhO-w=|)%G&N1xbgSl15g_sE4ywObNez?8IR#D?!Ml-D|Y1P8mX4=#bOdKHR znWFvqJ7h}FE~E~{p0Y4HGXvV`mjUC(dR31Q2* z5mnn9Q+TJKv)dYQgbd>MPxPT$xUlf@lVgyW>ET{|tD>%#Bf-_g_}*o}P1X0qWbQ*o z>6SErjhGCyhOyueF9(P2(>df)Omx0z{E*GGom9M`8Fz-Rwu+YF$T#yLOhE0DL6AjT z>6ChGYs3UK2y$menoE4=7xzv85zakEOeFeRluNV5rYr1w(jeI&b1>=KjG3qHDG104 zfA1*!5ZGv#J+O9!C&0SAvWe*q%r^1zNB)HHFlrJqCL$0W(s_QR{=vQ%Tdu$w^_Qgt zta*&pJrhL}3s~2U4|m{$H0A1O!l?bop_(Ma7dK1vkFgd1!hX!v6@xt(l$Y`5c%MNZk#yH{7l#~ydIqHZ*lHiESk=~3JD_$oS z&pl_rwS;`LE?LhiAqp%u%+izydQpL&TRelD+%VaI2w5}uqd`ESUglfG;NQdr7HOB` z8k=R#i)VtLPeYQ<3sxlYfjhCWkVhRO?Y#SlfRBSUZAg%HraGHr$4L;>`9&)^E5-Owy%#umznk*}QXAv#l0}|Mr&$ zV{6m|B=5j2og+FZWscj`sea4dvJvzDWxSnmj|UWGGVBvpz@cgV8&g_Uo^nS~&3oa} z0yWGy0E#>(28{2+@wy(91h-kvbsrF1s8hSDKZ{+Xt8=O7sbL8q9)(A|0>UznjZ`y0 zswb`EOdQgZ+&{F$_vw~SN<7hE=`cElB=L6I)^J+sp6cGpvWmhgPnQo;VG{j+M7?ELRNou@Ju?h2bPX_ccMV7kp$sX~ z-QC@(s6#W9AYDpHNjK6k3`j|Xh;%3@Dbju)e*dS=i}Uha*SYS!&$;(rpS3p3?J15~ zDz%qo?qK#F97r#v!gx_+vl!&A1R!7WW}e-YfFbI z_H$av$x3QS@_(Hp-ehgm(O*IY3RQfY6Y0Rz@DWqv$q`iXSYv+70!%i~$xFRhLHYr; z6zN?v$#eMbl|WYy#@bo_Y}9PvDBz<5H4Z+DX!-^+)?mJ)ZE_Dc@orqMo&(D8@>ICh zLC-yIiU((x?+cseDx<42%}jBDwl=#uZB{I`1V=#NBy1?BgCFK@9+oX6=_hWo#|iX6 zOaRq`Dm|IA#lBg-o%YM?bS<{uBQi3qsydo) zm}12@MrulHhU0~lmgy`>-B&X~@*QaYGla|=yv#0sf}GG&K3p4)s$ip#+!hwJQ{MrN z$UeAlMvQSu@2Al!ds%f4dHLch7dhN}mkB=lAVKxK9oBz=D%R2KnO)Cu&hSR4sWY!) z`VC$rPrgj2du$$i)l0h3@l;ZiW&`$o5FwlG?iC-nh}{6TK97dIH)k@Iht`>K8_qf+ zs~5v^`s{_AjO^llJDE$Pfc(v@y{YyM*O}T&6r8byF;>U$6`b^b#ou7R8#cHpnY4a`utJ0XpP zG`GXTCzCDjW(T#(tSI~43n#9F-~0#bqtZ~)ctI8eYB(ePcX#&45o{g{+JLotdm#++TflNVVALwXxJGq#*3`OFxJm=#O|)|;?3=8T6hHf2 zQt`Fc(LZ*Au2q#}YbWZt8GH=lv2x_cm7*Z4m~;O0MhR(+O#d8PIS3=^vJ}jowS0c+ zY`ly#QSw8wHv_{9l0vP4EI)XfRJtIb!F^d_`b$t)CfC>YPXDOY()NTSz6_Mxhv5i( zc39R&&%a9Fa)ZF0$?eKv&7oXLdcuO+6y?J2xOP8reAu(oQ9~IehS1Y141L1j7RLIZ z1E1wQB5a?BvHv!gjULR76DyfxnfEi;{u)_D6aZIkX~=98jc2#x&W${6?$F9-Kees? z4UC;P-qGm6ts1BV2s=t8Yn9pP$lKB z%i6V_{)^@`!3oWjBaSkm-i5A5^Chy@fylvuU2)UCxYgv}U*?+9TsJk1pHpPL(UlwO z)R4}aqc2xmU3HFDH+bW>QqDex*Ya-*ZrJo$*K5xvx51y+PDsH9)1T&{y*%jZf)R^w zk!Z3|N-2rA?Pi>;KC<;b7Xe;nqN>P?={+tV@y?y+cy3IX82+j9;>RysA#IsF zFh7#On6H%TQ&KL3=!DM>YA8Xv4j}Fk2jN91uA2%r|J0vr(wP97rw|dX*M19iDZ4Qt zpL%zTvnsJfIV94VIC$N75`XjCMSEoqh;&tEwm=>W>Lq9=_8g%eCIui(6|Y$-|5T}}UanIom6BOxe))A|qIkAkbxf(2s9d8YAA6@6Nz7^w4dW*ctB*cZ%FWQ^ ztCX!8S2`BT5hG+UmaW`rT77Ro(*Z&R&XMoNGc4$eh7;6cX8GCe=lw6pg=BMLOnD+` zU}2R{37voSGhyfKR`r`ABuImZh7Bucqn?Xx;k*=~m6+5wF4p6V7+IBwJZ9?1{q5up z;YIQG%>qAbKB~$m9QwxBm5bYeg`6I+kc+&1>Ofp$IR(DK!E~R_81SFr8HDEI+pGt~ zT+)sGU@?eoHbb4owOID@gTYv@n#W@ACVepnk$kHE0X)k}{&-Fy#X=)=8OF(e$C~GU zcX;7|VLRU9KrYa;iZDcfQ!oA%CmpyyA!uj#Ehav^m*_Tg2G{dvwtc~RNu1q@Sn-fn zfFzAg$CC2Wb6LX?F2i#nog=5L<8ls>$m>Ky!Jv3%)18_o#V(3OmJBXxe;4Im4Vs%ZR=(Yx+HfZSuFCD?Z})URCl@pvm7BMYXl|hWG($;#29LBC>k5sF#e?|G} zMM^0c_kS2Pf!KocA1S0&=;S)Pczm`cZV`y1JRz(c=}=@4|F@TvG+gus)1Kv_J64GX z`X5ZOUI`h;0Hdsh#c7#;PAItq%jpgO$lDvB0Z6v8Q0R>cXzUq#XbYCanw*h0;c)X^ z=j64-<$!hXxe^_#Bx~t12Q8e5`HR~&X*^1rB$z48`ry(ZlXGO;_hef4^imsN!!6$! z2y9~r-P-IZAE!y7>L-LcL5CAXo|C&W0K5tK>WulqJVn{4C8hgG|H%DBPoqim?u1^z z>kC##noKgm2K@7sO=MKl2f2KytJr>?w5+WwGj#-V`RYOViA~x~%(8fw!`4X--yA73 zL47~6Z|=DOo0k*%G2C*%aoi2!*})}S+Xic2DsMXz{Iof#5`tFLlrfi`;me46zoUhGug)Z zW~c0p?bM`n7m5b>>Nm=MQwzL?^C3Ye&1BvxlVlXYnr4eFM~m!tNJxT(lvc-{39T{zP7v0_m-bv}-fQa);ent~pccrz3uwcA=362+$YbpaI_#q)%8O2n;;dBiZHKqeg&#cIt)2L4 zopHE$R848-xrRtNDmaYuP#wSc<$mGXwq9|BYjsj^26M-_CPW$Bv_>A0M>yrM% z@5Tm)sxUQr(EQg9+E2NvN~EJN>Oc3P=VfSV#@1CoSO{Nk${4e@>QT3LU+}#UCX~)D z!fUb`FW#-$rczOw0%x6`{?AwQk9PM41&8R+3dZHHtpQ~JlhVa-UOn&Y* zfwiJDA@?lqI78L^MA%zA?I;?L(jWUS3U#errk&h!5Is5&Q1aMQ^}_OQBwCb~+22_{ z&m(%gROTURE*v}9qT%SKU(u;fs;=Fs(QLLI-*`|fvSYHU|$ zvg-N@&)?7izsI^h3f>2%!2{V$UpQIyqup5M> zXcx$8_z|O_R5&5JU9{6!Y>VnzF;PDf%|FKdGZSuI^MyS>E6;C}ucg{dmWS8kZR zV>pF~3mdbjkqY6LF_wRt`R7nEPIX>7AvXKnq!Ji)H)f~qpky28nH_;~WY#oh+9)pK z-o+y#tQRf1FF3>yncx&UpL>pJN34Y>za5@BCG0@%^wu_&GmI)?8hA}PJ09mOdkyI z9^e!%qk2XS8lhdZ+T$3^m$7w5gBt7M)@cTvc( zrs>FBs0WIQo~isaExVwyt=6luD9NR*Qg~)uW&Vsfxxa=c`qLuh>lVxOg5D`qCZCvo z`4dOZg1CjFwUe!uPNY7SF`8ZJ8)NR=RhDgR^Jk{zeSFLaQMsI)CIMs}tU!=E*6XZj zc6tt^Xp9|8$Y@sm$EE-{5b&Ymuy+ya=Ze{oR4;2+X-Z_8epvizHY$AiEC(~uNU);v zR&`Z~ReR98|4%F<;D3HP@(H@VzRevUuevbi5^3^+$39gzTK2QJJSYT3rBM5L-vf%^ z%KF&cCRy5yUxB*hKY&<)NkOP5GQIv4;>6D9Sx`F8ZD|gon9F71(QD%Nl(R|>gWW-E zsiWuJ7A5k0Dt*2Vtw3=PzQFPlm&fknwlIAiOR7mVF1qm%02*ocNI@c;&4)9UnW5r2 zC2vJzWteJFP5-{o>v_)^Yw6LeIBBaw_m6f@rb7#I37QIS(0td?0|5or5m`c~G*2&f z2&>*WSF+qu>^r{^+l<;eQo67s_~LlH)}|@q8CCK=<;zi5h^6_})za9?GmFy>>qiOF z+)MC{`aC68*5GJMmU}2{j9tB^gDnDahVw4vRK8-?=GHZVp|;whv@Re~u-TS-{_V45 zkr=r!{v6Lwhb3Tp`(+bx#q{7MiRXf6YJ?zCaR<^-W3m4LB!5G+;R8cbpXdEiQTY5L zQpZB)I(~1;2*LXo51kFS$LRf+P0J4%IklnV_LQ?9vAep!+pY;nNW0A@OjuPk(JIuPG z!VPJLy1G-DIa1cAG*!N+lt@=eE44*jsR-UZxe+P@9(`0PG;MB7@x%QraUsdo4^{j& z(&+6X#muutJW_BiAx&wjmg@?U5xB-hK~FRh&PN5tKcyL*fLTL{`WH_Q2+R~%y>*eD zukmz1)sZE3QG95Q_4lva3p9SFpguli1f z;!Fx_o1sHkkW^L6i^makxDL;eb)?M)l)pm2&^EH4xWml01WLH?-VA_f_#V>@{K^Q$ zl>>FtY|m41QgX*rKj*TEpO&RX?J8bR55LnG4v!9vxfuxQ6AkC@0|uPh;C>l46{WuU zpP7}F;=$hdK%_iW=KrnQ1Cc^5%Blxfu=8vDKUMpm!I6CMk@0vph+BJ>;5_@An%yjX zr!fU=?oZ0nxBIU?y@Kp$s4nsM_f_h z7OT=#iLyA6C%-={9!MWP*vloz@O(7c$1eS&O=^(RZ)4jgdMIvnkVxffWQmTSJc(Er zH*aG7EzE9!830l$$Ysq6kc$*hNNKax+X80ClLbD3ZSg&leik6l+k9UvLA8Z=Lg`HF zxwpNX{d;r-;~#n%Y#{ei-6KLCar!(>bdUHNXHOI^F?uEkYw;Z!WPXbE4V6=x(7_)K zpIUW@2zi4Ol|G^AYXkWC$=^3zN00G|!~D}X4}*o9{Qn*-|C{6g_kaOX0RDe`>3{SR z`RV^hFOhqL!)>LHrG-gziY)ws@2GUL4Dq5#mD(vJlZ`o8mN&9I#i(}zGI-mQfYy(9 zNl4^2KZNy9lYS?niw{(<2!3!Nb_}u^qMgNW#}7uC1srZf8QbDq3$~`>V+A6AeQoT{ z5vmQ}wEmho=MDJCTfQt-!F;Z4k2UFqE2fBQ!CK^YZ~>3E%VvZgWi_(-bB<=NSzy6+ z(3^lP5sKHj=fLoN8&$CIi=hI9?;JI!WR_gnPQ?c&{`f{$T+vichJhy^fM zw?BJbJ~Tyvd!aCWo0}Ub)U8to=Tl4$I!~?f$P9{KV_2ZVT5vLz70Z^Z;X#4`qG!@L zl&6mpZo@unQmFl=*)Uy<^7fU7edgPxh1~f*CtfCPHjENkL!!3nyXy1fDROcgEM8n3 zGUY~)hYx|Wv$3u`W45w_m-$lS-dywH`(w8cMzC=bDyDShcpogGtIFE}>9RY=Mi@$; z>0>6QUzeJ|E-x3$egikR%@`vLssZo_`{4$@uK+!`PQ0}$V*YKKSi%a|0$#p?F`FC< zzgt^4$3im`JJerpDiaV_s9jcN%&SuBtcepCMVR08S~d%imFq;nOjR5C6#iv%|3SZhRxZ7uon%HSnOFIPtn?*$J8*3DH zobx<7KmsxdJ z_#r2|EwZM&a>ny~k@Ga)%Gf6OezRPHaMJmd2}0iEl z1KD`1%$G33ynq8Gi_0V#1ObtF=-6AqFx=q1=;t%x&clh@B&Sc+G8g%HNo-MVn=`OV zyS-ewQS%<}!kdBD;<|IB1y3ScLD&7MMJBR-k^ccc29=r|CfOQe8eToc8f}$A?u3ns zH}u~p0a9bW{r=;SL-~_37!jtRAgTBCFQS;-%kX_DWC*8eiug%P)iQqey0k?r52tgF z3!Se~B%cA8y;Yc;-|! zA0Qel9$1+`%zWrJrz;iuW)xGG!W$jNEWKufNL95IaEcVX9V3q>(bU!I_fw=^o9xgc zJkwNIQL_Gb`WZ5q_UaT8;W~Q}#YO-%INn7e&Im&lZAo~x8#Z_Ul{C^CLbsrwmzzt1tAn%Aj9d<3;e@wYXzAQi~l zg6)NyM0yjOP`7!1wp#n|oRoEcE(#wtw7!T-^yl0aPNK=vDv*d=V1_*EPNhqJX0hL` zWe*C=$DrCu+dRMrRwiAM*`Xu+nx@-{yzS42aNkb#1Vwf0i-GUcS%0)4o`y|Dy3Hjj z2&Kn;Ic5e>7o8`K;@!}}pVbpx#x9s}^>s6{s%b_{MIMaZo}!hsWnP&5OhjfXv%Yf% zQD%JoD*B_8BaVWAArdC%!YbQiI z0@qFdbf7{l8URX zRd|O!|8!8iyGosZra=K%S2OGt+&F&vca#D#)%&oCl93lV8H6(@0f9;io8ycIZ-4ju z>3v)TOe%^@QHlblP8~T*FXQn@bm~Y-Lj>|kf$N11OX{!dBxBaj${<}GwMNf0UA-qQ z;k75)r-JF9or&b?+Wpfk);9-zGhK!_OBh8=yU2U&TVO&`@ksQVFU{?6{~4?|Era8F zfJ#O~uj@68F$3oViG29|7VFn)gg>3z$G1K-gaj>wAC957ikMWNF$9fr-H;rMsceW! zHD5iW^Rk$%?bMT|RG4u(OxN5+7}+1VDb%XEMGvIH!UlyG3?%7E#WjT@jh;^)fOY8m zm6{-yjJ$M?IcRD?eVgDoW#HAocYqDua@1Y_FDi?x!D<8fUYWrpkOy+ORCb!tF?;;h z7FVr~jm>l&tIk)$*kzB)^BHeJqWSzxpmCGNC7JcJ56@8H+ka-#J{yWCQ z`5(8?cM}!jH{)-_fQn6jLrTNS-tj*8Y48P$-7zLem8dnukEZ(Qx4&?qOKOO?` zqhtxc%nwHb+bAmk1pLl2cJ(sa7ZCpbJbY&spS-vmszv;>!xfUyBV3&3ipwW)n%!eR zXV6XMpHljF440T`w-VXCZ~&EILGi&)-%C3rE=p#FBl;hsEygJngW7OpX;yZ5IfHX6B93vh zc#`;pQyR0KO7Ys#yG7&Xy5kdW2cQE*nrmADq0%K!l@|qzWHk}&43GB#FS+@Ieu>gF z$HNFPzN_vC!+uD;n8e9wCr8ZFi+Fv;$~S9_yrN8B<+SU`{%r}ojdBDJ7!@E)%$STfftTQGNwd~n_KApKw zb%@S<=8{f@G3$ln73GnLPI`eul8)5n@Du?bXNCv__!aF*ajhqFP+fU--pCJXYj?KW z>`A!)d^4KO4A%-~BiA^Wbj+xJ2()%~8xir=F6{#{sbdUHlEi_ggFT1)^a>12Jl%R> zClB{=d1`%P92av*Q%xF!< zHul8`lvXi7?C}m!@=gd+W>FYOLcS=&95U(ruxNt!Rp$l29hfMw#d zR`qyDQB32w)ZjBJd=ZROZxo)0{K*>T+@v}BO*r{|H+4)4gVd{Y)dV{G%XRS!xcmEM zxrf&MAq2_yFtpdqEvxX$8vppY|KtW*Q;6vcZYMvWLHOs|mzwEnO_c2Rnm)={oM(KB zdw`4laCovteL?H0zcPt6{~(7MqJU4QOPKd*?F#c$(~a5>Mb)C z+CI&Kc)0;-qY^?}JuNW&TX%g-Ao-I_J`_@7^b(;|MMi9;T0G^h(JSY?>LI=zC2Ls> z;a9)gLC{dvoF*z%?P66*6*;E(B`oAN%!@D-!|3wK5IU) zoQL3SaF;wCdA!$#R_NF=VHfSUWKBMQ@e^AH6o-N_0?#;i*wuG-@a^cu%_LUVu{>fm z=pvz^JQByd$ztJcao3B9dLCdygNxxB92E2hyT#`cQ$ymqgzTO00#hfn&IhOiYyMne zfg~U@EKrv=^Hrnl1&CV^P$abx5@n!1)-zP29b@JB^7%kKg!sDIdjpdudrZxd5k^2 zbMFZur&`(Tv)hh-?8<}E8yZ*yHeW&iSX3(F`-Jn9rV=OEUKt2>`|HTbwq;Y$4%1W+dEpI!5#fP$2boeuZ`X!IBcqM#u8ezzK3ImYy)z?YmK{h@x!7l|$>Kdiqj z*tv51mSo5_`X$ycjw8Zno2o7Xm4^IGV=|JIYDKYLV4ixu&w=8#_RGuk9C8H2o~Qs7 zrf&v*5kMDv#UN}HnK_NzD#`?TwQlmK-^aYI^B;G!{;{g#6M zADKbQXae0X7Dija>W^thL1DLJN=Ld{RNwl#+vo{gc37OLRsrn!EU8P2LVZ?aIIn70 zx=X~v`b^WK$>%@}*BwztUp>2q;V;;2(nav*b<&%;R>gO(okl_6#NGlL)~1;4Br74HkpGV&G=Rlfpi3fo-V@mzP1JD5v|K;9tB|<7=Ezg z?<8JwBd;q_F;ofry&XBZ$)Z4m^&W#7V{)s_IVCG@(2}%DR-RG~m}W|>`e$mjIO(mg zvfylY4o3)3<{aG<>N$TN+ZDMaI~3m!RE2G-WJnP7IH;Qz#fLkv(kTXi7;uFCXvmpR zG-Qg>mIU(`)Hw=jx1-7kwM}f^y*kVKOiVBS>J-236#0V%9Xns#65+Cw<0>(dlM_ub zg(zmEvHZXu?hv*GRnole6ekgI>oWsVfv5w0K&EaY#QPjdv&t1N=Ty{fJ$My^PnS2{ zkr9m!a8?qa`|;}nB>i*TFSqfZiHbr;*x9|TMK|jCQEdwV$P$O=YN|pGP5;HH!6jnsf=dG8bqjiZ zv0Tx{&n>HUH-JI)=!l}f%6&<7adn!;#CbFmYUoo02I+cY@>hO!b2^OhHQAnJ>5gS7 z#V*M|xQe-7*=H2qUr|4GQ>h?-@d2REqP0R>&CNJ!HJv4t_iBe_E|MXEs^G{klVMVc z%uG8T)qENWlK7FU&zo`r1_u{Bh&vThG$z_jrQPaIEpE5N2%*+Qb|Al%eYE;6F(L5z ztJABmv&q2Aqys}eWGlR}VbnP2X2iLX+TUJs`u*y%EW<^FB9nE~uB6q3e`?xgqV5Pd z<9ZCoFsSaN#KR+-HJaUYFHT#8`j~2f^b6hCP|-d}@}a2!lzeuZk^vw2;lwCJFF{Y8^`nEGXyW2mildT z#K*&>j{k}Up-w*Ex!r9-y*YeCw#VBs`{~{msr-v^x=xRL>hYUPw!wMAwR_v3mEf3L zrR&6CqV_dIQE{y&{;?5LLriKaz&b*;S53}eh(0G!juVuEXJaVld*R6JR){<-p^^aM zF(uJ&p#@xrAwjXU`xJ)aIM->jn751!*CWnl2XhwTj!6WDx;LlEb_7{yXZ!=+o4>tx z_Lmd|_^*6@J0e&9yr~nrQ~v$yU?bf%IRL!^?AXT7H%{`O?)9tY@(5jQAW1bZ1&}~m z*3_&C6D#&5oS?FS@2P|V_+C-^P7>PjCMv@$_G>yd5KWjiheEsiOWS^paf^OJh5cr# zkh+MWvH?l9D~x{z$@_7%3^1MAl}FaHjbJb4&f$a6LhJQZH~G+w@9NCTC%eWirgYOt z+~wFW-L7EcN3U%E0|Y$tE0Z6(&J(I-%E2W!@3K{lV6|QB817Ljn!la&pZ`E`?T1W` z4i+WEGXlM80Aai|t_KT?YuLUVQ%1G0zZlCUe^wp2^)@*LQg^C5Kk^~}z3JEpuL|Y) zWi~j&=pxQM2ESR=cbN~;dwh&Are2sM@OR}vo zS4!uF_*%T`wqi!}VPXGI2RLT8pDorjrd$<2XZT&J$5Von!@WViGmC+Gn5KkXu);PVY9NA`k8z^{CT+w|5g}xWQ&iSm$m< z6*yB{CxZuE>$`uMV+gpD$e~5yInSKbvFuw7Q6yMg9Iu}P60f8s;)Is7-`C`x@cucL zC;=afgH#`Jb({HxE}nS}x=Ic}R^whLZodxw!%nymv<=lIiIxxR_)Kjv#B{gnPN2fr z@nXz$&HqMh!}We+9;hD2gj+cGF-rHT2`HoPn68}un&;v{&yARasV2rQ9fHb&J8v*- zfh`KRqtS+R*p8t|;mB8J%}7L0+S6vYQVFPD<{SXfGyV>hA8POJ`*Smr*yj%RT0^1F z@$)Ca6535{6d~suggsl&$qsKGEqHQbwbPPhm#Fz7Lo>qkS%z}8NgPWZ;m(sss{Opy zCN*YwZDa@p`A=W=(zj-pi3vY9V&Q7d)`DScAte|9b01;sxjbqA5poyh}t3bM&l z0Zgs2#v1NtTCi67(g`X#25kS2e-0Z&XpXw`xBw-}aA`-?uVls9`QrF~>$kBxC&?i% z?snhe42;}6FIz_D5lf=QySBAB)?)D$ea$yO!v^N(SfD;O8v0IH;AvG%tBdIh>#O9A zN4+Ra4FPkX;&w{DgKIIB{Y;5id)`403WTMS{N?WZGkApL4c`pFBa^dLK|%bwmB0+H z3-7BUKK~d}u@iN+j)wGp+gMtB1V{fqPxwS`%eiy1@##ig#(U~Wh|rCeB?*Z5WR;{& zcp__Ca+tHU$l|5NLslRHD`X1zc=56rh#(wXK zh|g#cA@%0%0FL^zcuyIECk-ibI2`5>*QjjMQzk)!+OBc+5};qb8J~27SJ(Q!q&90H z_xn9w?}PIvulqv7*$Ec3r%r@2qph}r(8&PiwtdoQCF5ZLnJRubuu}eVf9=_%Z>{YL z?hZDiP%?aP5=bg7YRHfw9#qo_P}<$cg48@e5L_zKSYVUVc_|qB=-vx;!sHu>o%`8#`G%yi1 zDm}P9yeNP1SHCE?Mi0bQt-tSXnFG29$zK-eQrOLQ+0@wUmBK&y*!vs{CB4lN@oo@T zi##Tk;%FX^ANZ^jXVy$*xOa%v&6ILWir_`NvLOC|Aw*F%N6x=3LEnEN#H!f{jcZRv z-|9~U8yp~9<2ex`B8ZY@@XNtJs>60;x1xJf8d3tn!diSSR`v7l3s8p@VwAG$dF zA^NUXn@zPXKTcCt`Rl!*Ky~6p29pMfv-{O{93H8WDXH8E@0R9?(bbOxJ!CUAfq1cr zJZ^uNjw#ciDNzO&Z{dl^hK)n4CkEr~87}tr5&%g-ecR~ZK1O2lVXy z!ht?Js-ZXUBuU%5RTKF}@EYBMGp&imFsjAZ!%%MxP0$~z(l|0CC?b~b2Z4kM7&_xu zcK+|N=8FkdMksbdi*B%R%e`HS_vqeU9%mTOTb_=Bv#?-o6*;QniNpNv)rrH$CUkkB zUs{Ba;b6f_dk*+I1E!RS^!;@|e_NrH-ss;AB}1-=Ex-8H@#;yD`O$C%+|7?EFnC81 z_4TNnd3E9R{yvV|0;IU;@ydQMH75u?YnHIA-uAugM+#6CjWjF1>Zpo%hykd|s_L)y zHh$HRrCTBpNqg!0*4A%8ZWXVHPlRDW*CrqBu6No_fJ-0u(uZ8xIx31zw~B2b3rPRe zVSSPEJs?}l8%VOulU-k&kJOc|cyYHwt%#zQd4jm<*Mvmp&uO});c$iMNYTeuc7J$N z>oMQ|m$#uLRUVkyQwF~hW-k+>a;dSAVfCi#1`=2&+rC%a*e4gE^LTcdHBVW+625`K zdr8`x1O2A<)kviOON~#Gx`mo~_-a{6&Y);~Q`yd@&SSptldn!~aVhpMEfix)EfuMMp zG?KK5u<@y?8v&4S!h>mA{~DL)Th@ej|6j5sL!??OX`0-(f*=6(@kI;;Ir+n0T>-d` zx#;`hgCJk4F1I88>O3aKF9{^o)6T3u6JM;wEJh522Kf(~D@}RwwJIf{!40Pu-n=Ei}Qv#g_`KH#K0Yq!0EuCTEr~pqm=WpJIo@ z*&hX+V~s)FA2MBDcj`XqXf8nbaUMc zto{Bp57M_rY*0a%?#Y7$oV%_=0-mH87^SHI|TO}t1R<#x4w2 zIMX#uFHU7Uu$>}o0^G=StQjU{z#lUC+aZT}jLzOBM&?P7^dY#q=vTSi7LP!N#lt>{ zH#Zn`(LD0p4-)iBPr(N1Bn&|le30qB-+fAf$G-Ufh%Hnjh*KadjRwaP&NYl<@^q1{ zQiu(1L>L}T_At5Cu@!4>nF@Qoev+)8cQasW+;P!QL_a2FDq3qQbx<)MU-UmpO6b8| zLZp{F@G~V1=kMIex=o!HJSh7RqYF_OZ;FN2^~x4b3cpAH;r%|e$(X4Av$dQwE#o7suUVdVuOLWQ$-4v3}u}yH)a-%6SQc35g51Y0{)^(A@f( zsOhl@TqinrP|LlBS1IeYZ?t%oi;tYde$B%vt$a|Q7he6X=G6A@|Mq|UA=5VVbkQ&R z2Pf4wvpclKy6)Zm23C!LuzHfI-t-u^@+xefhI}~c_RTcma%e2Gd9d?KiZK_}lF}>r zTsVkGJ>1g!-5B&nj3)Y#ip9tjf&L|%a9?Ov24f5b%RB!LBtO85Cu#bnqL6cTfPgOP zKJyyB$uSrK2dm5(Je#->Gm4MU1qZ(2Smd(g;wng}xAu=$ONyQq=|q7W(oyI+)49Do z)W+0LV!$7A>S)D3I+FwJW4sHhq7uR?Tq}(x3<3T}ikMsMT74c_cLa>f_z>T?pW*SQ zwro?|Q`n!B;xB7Zs8TlzaTNiSLF#o4=+`)|_vL9;8r1b`PtUHT${w5izA%&U)LL(o zh0 znpNd@wk5XojNig1{974BB4spZaiD0EVq*JZygA?N#egDkwuSchO;JNsc8sjPrI9NN z7C5Asf7{=0j60h^W&m(~$YA4GYz#CuH&#C%NYo0B7hZnlM-2soeyqY(fh~>0pR~vx z5^X|oL9hssH632mo3B!+NZ5*pB-_?9i#Kqi!H~9sdxp?B;xty4mrbsb?cFi@8r>@s^lHq4gMs$lcTm=l#)|56FuyP!m{ShaQmwOsYgR@2fYZ02E-!Wta0Wd zAOqxo_9^w_oZb_A&N!#PhLwH-S4>=F_rFAct~VcnBWQhfKQY~JYyncSd{k=;-T@Ke z$AgR;cuBh92euBZ)QMe-hG+6hk{=BUyXV`;-e+Ooq0-S}dkNb)i*zmP*C7 z_;PhUDN>qMDPIhhU=ujJg{pynZ|B@deQ=2p2xjWC zDNi2sJB*3E^HWU#@zg%S5hU8=DGo8e-;t88oP=DXQMNyz359R4yaDrkOn|*~a8Uz5 zsUg@BIg%BRm&|DPZq zY(Qv(SZvYTKZdx@NeZp8W&rqxzVRxM5Spw#(vQz1?4*hycLC>Axknt*{lzlaBmt`U zS(DLAp;Pgci7ixEGBBtTHmAq4Pg-U-j7mMc$Fu?Q8oS8o2kZfDVv@m>FYSO3D=ODO zST8Uv9rt=^AA+TvmnDB#dGJS%BNdk4$I)Q$Rz7~)#~Le>!@CV%)V?}Ri!5QM!m^hk zWm~&(%f7x=l~^VSpY%D+{*4LMo4FbQ>Aob-dU!Wr8;<(7_zm5lrxNF4R=mh}z%Wj% zE^FZ~sdV@KMm#-~_`9W-5sKZf@=3YEbroJDX^ObR`!p^J;Wh0i4OWv0x_UQ$LoNtN zt=#WHTI5^WXhv6fgh^IJi^!k@EMWljd+9}|dimzO3Aa?pQ%KVK2#e`2y%OQIN2cbr zYSO2vC{X6rMI=8Fvt`8_6X-_(mRX7Wn`-fYfFxb;WHQ4xcx+dJmuXCTPh{1r@vHNW$z1Zk<$?(YB?^^0$OcbfiXrLO)?HHp zeS-{JHx`AOzf&I>IC~C}^OQa`@{Xt7!6k$|#{`2ma(rcBR6;%BQfEeK-mpqfP!EyD zT#Op%-F{8r)Br-&dvDG~9Mpt)?Sj1|wx7JvhI{9zW!yay?YQih7^V2vTIMDvakCQ+${l7pe| z-YHwoj}_Q{CTj3SGTgyR39N+4FmCF82xg05pxC_qarJ@OER>|bD_p{PvFgOJB6c5g6NX!&?qp=+y z7$8nYEC>nR#>&;I)fDX(ePIJFV?`Zry<(;f3fIrPOn?h|kf8Z;0ER+l)dPtp{AS1+ zQc<%#+%r&tx;{?#iL#3)Kf&zvIAOyK2&1;(KH?;?uIv;%lNHiXa_a*YD` zvn#3<20kCWsZ=@$hZg~j1G8z5}`n z>5*?BC4V7;6OhjJ8}AVQ(Y~YMclVpjJ4l_S^_&C(1OW}77>MfcA-Erm7)T1cP$J`c z1gBfv`?$)q3Jb?MPqNqjW$dJ{`eVVRYHJ#ka>Id% z;O;gaKbQgvmnXMV5}pfLiUZ~k-YsVhP2V%0KNu4P0A9M=o#KE(YbdaCv6Y|=H@!@P z$`z?SOe|vxC2FqV;<`0;TqfFwA6P3AS}hF*a4s6CVFX$W_%Ra}kO&r!V&hJX0W9s= z-XtXmDk>jsFnhi!3Fv$|NT$z%TL-&-@fbi5Sgrp6a)5z|ELHyitd>wz2#=-$<3!Sl zz}(PQ)XlxR&Cit+0gvFI~{3*jyYFjv(vZxB-a<5WUrV2z_D~ z2V$=R@g_#ZwBZ`&WY_`2fW+&Rf28%4$&2_-_>^7zWi6QD$< z{#+Hnpf(=kg}0ir8;MCvBdf30A{sXlr`9P=D4PW7is1xs02X@V>m%I5^UvM}%8;iHu$6mlcca!o1Au8kPCl}08c`c}dB_-{MRz>r z=nVr38|B25vIJLtaP`r>c_td25hbnbon>^oAvK`SI>cj9bXSD)i!{<5o;H6yOmeAJ zPY%KDuig|0;uAgxbC0Y7l&~tQ7t;{1p;K(qzbSJ|M1`;pWATD0Kt_>UDT*L%RZ-TA zDnJbYMw)5!g($EU3&-gA7Eg0ium4p2r|G3o?jDPWiaO+k${4B=v!zu&UEQ zPJ6^vh#tlOJR_s$3m9@r_fDL;BDr9iPX$~6a9={jUrs5ak%Kf&uCa&-FGm`CuKw~0 zX0R<&POZOqb(N72kWbDDlJWu5?FfBf-jhWPYCKLoOeUo@2(LimarK0mRe}v-7u~`^ zyNC#euKdgp6iAnzJz&Y8S4O%205R&6vE;n{^Y@Z8(hG%~%>YoVy&dAElWD2%7OoUK zOUK>-02Bw2@sYSX)5zf%K#9SvV$6YHsFLa*Shv1_RIfqFtQcsS$6)lj*j41GO+xNfowXo4g0iLP<#6HYeTNK&Tu{qy&N6#zk~C;6PbKfFW;0BGl&NN~`u z-;B@YUjvp@ZnLxOeALcf8h!NRPx-~e+ZF|bNZNFbwrnrvL zb@Y$kFo{U4wWHm+qI^&x1XET!!xgfqDGT$@-e?FovFKaT$JQld^#cj`b@hR(EGCYh zTzz5r32a*t=&t?TC4|nDJIePF+rC}67No+9b?Jd6p+{lp}|E0=wc?) zVo9Y{?*ve{9JpQyuM6ua*byD5@As@S5+XV;E>ua;4RpRYf|USOV>3(?Y>?8Cc;gXSYH2GZEeQD4^J0qkuoX^+-AV*AW$}1dv-oC z6p^YwLyu5KqetFtB~OIt!8;vLbs>#gNl4z?&TG z*F0sJ)q}v|pBONpg2R2C#Z2R7|SHO=Mbn6Nn6!SC}lw#cQ^aE3J^O(oHJn9sE@osQ0y%}adM!j z;l;`fEF8B0s%s+U_lCyy^G>l1YAw;aew=pYHjSOJkOB}E z;|tdCk?qo?x}C1~>khFNLnv>k{pVTDMFjyqv2Kn< zXz$+PIsw^biF@M`CZwX)!{06?>5--qf#PB@7Fa;qZ{yU+J)y{mZC&eFf+A@nruZRo z1Z+EX!XBu7Vzw+CHr4gK2!SN1ZF@H2v8~81+3Ba&Lmbjkz2Lx!9i8v(isPDyny|-l zMBv1k67~-A#zb5#(muGwQ=*}7O8A(zWGasZ=LTF@IC6;y1UIg-+m9qoV#uutmws_C zB8sH{d1ySR9 zy$86$bF2Va8uUFU-X+QjHqxj0j9?)zEGO$0nI#WRX1*Xata8RpsT!=C*C_C;=pnK^Y@O*0^W%0ZVTP{T}GcPi20}k3?lk6 zbzRzoZ+&L$f`(RJa+1+ZORM!Vh6A7nMDZpHHNOBWM@!G%MSE1pDAhLe_l%pqOQQ1W zKo$pm&EYP{ieKv1m;>S#dB Date: Sun, 6 Sep 2020 22:05:53 +0200 Subject: [PATCH 13/60] reduce diff, restore lost resurvey functionality --- .../westnordost/streetcomplete/quests/QuestModule.kt | 2 +- .../streetcomplete/quests/surface/RoadSurface.kt | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt index 949681824e..600ad5a038 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt @@ -117,7 +117,7 @@ object QuestModule AddRecyclingType(o), AddRecyclingContainerMaterials(o, r), AddSport(o), - RoadSurface(o), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style + RoadSurface(o, r), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style AddMaxSpeed(o), // should best be after road surface because it excludes unpaved roads AddMaxHeight(o), // OSRM and other routing engines AddRailwayCrossingBarrier(o, r), // useful for routing diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt index 8981a63776..5493cea211 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt @@ -1,17 +1,21 @@ package de.westnordost.streetcomplete.quests.surface import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.meta.ANYTHING_UNPAVED import de.westnordost.streetcomplete.data.osm.changes.StringMapChangesBuilder import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometryApi import de.westnordost.streetcomplete.data.osm.osmquest.SimpleOverpassQuestType +import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore -class RoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestType(o) { +class RoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with highway ~ ${ROADS_WITH_SURFACES.joinToString("|")} and ( !surface + or surface ~ ${ANYTHING_UNPAVED.joinToString("|")} and surface older today -${r * 4} years + or surface older today -${r * 12} years or ( surface ~ paved|unpaved @@ -21,14 +25,14 @@ class RoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestType): Int { val hasName = tags.containsKey("name") val isSquare = tags["area"] == "yes" - return if (hasName) { if (isSquare) R.string.quest_streetSurface_square_name_title @@ -44,8 +48,6 @@ class RoadSurface(o: OverpassMapDataAndGeometryApi) : SimpleOverpassQuestType { From 8f06c65bf843bf27b9d026413ff3224579d89583 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Mon, 7 Sep 2020 00:23:37 +0200 Subject: [PATCH 14/60] update authors.txt --- app/src/main/res/authors.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/authors.txt b/app/src/main/res/authors.txt index 73d661aea8..e6c75669eb 100644 --- a/app/src/main/res/authors.txt +++ b/app/src/main/res/authors.txt @@ -44,6 +44,9 @@ panorama_path_surface_unpav... CC-BY 4.0 https://github.com/westnordost/ panorama_surface_paved.jpg CC0 https://www.goodfreephotos.com/united-states/indiana/hoosier-hill/hooiser-hill-road-near-the-top-indiana.jpg.php panorama_surface_unpaved.jpg CC-BY 2.0 https://www.flickr.com/photos/ian_munroe/3633361321 panorama_surface_ground.jpg CC-BY 3.0 https://commons.wikimedia.org/wiki/File:Dirt_Road,_Bulacan,_Philippines_-_panoramio.jpg +surface_paved.jpg CC0 https://www.goodfreephotos.com/united-states/indiana/hoosier-hill/hooiser-hill-road-near-the-top-indiana.jpg.php +surface_unpaved.jpg CC-BY 2.0 https://www.flickr.com/photos/ian_munroe/3633361321 +surface_ground.jpg CC-BY 3.0 https://commons.wikimedia.org/wiki/File:Dirt_Road,_Bulacan,_Philippines_-_panoramio.jpg parking_type_multistorey.jpg CC-BY-SA 3.0 https://en.wikipedia.org/wiki/File:Hradec_Kr%C3%A1lov%C3%A9,_Resslova,_parkovac%C3%AD_d%C5%AFm.jpg parking_type_surface.jpg CC-BY-SA 3.0 https://wiki.openstreetmap.org/wiki/File:Car_park2.jpg From f24af198d3155d52f94606e79a0314058b386955 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Fri, 11 Sep 2020 16:02:24 +0200 Subject: [PATCH 15/60] change name back to AddRoadSurface --- .../data/user/achievements/AchievementsModule.kt | 3 +-- .../java/de/westnordost/streetcomplete/quests/QuestModule.kt | 2 +- .../quests/surface/{RoadSurface.kt => AddRoadSurface.kt} | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) rename app/src/main/java/de/westnordost/streetcomplete/quests/surface/{RoadSurface.kt => AddRoadSurface.kt} (95%) diff --git a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt index f86cb26b00..00fc751bf8 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/data/user/achievements/AchievementsModule.kt @@ -18,8 +18,7 @@ object AchievementsModule { "AddWheelChairAccessPublicTransport" to "AddWheelchairAccessPublicTransport", "AddWheelChairAccessToilets" to "AddWheelchairAccessToilets", "AddSidewalks" to "AddSidewalk", - "AddRoadSurface" to "RoadSurface", - "DetailRoadSurface" to "RoadSurface" + "DetailRoadSurface" to "AddRoadSurface" ) private val links = listOf( diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt index 600ad5a038..b02c908068 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/QuestModule.kt @@ -117,7 +117,7 @@ object QuestModule AddRecyclingType(o), AddRecyclingContainerMaterials(o, r), AddSport(o), - RoadSurface(o, r), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style + AddRoadSurface(o, r), // used by BRouter, OsmAnd, OSRM, graphhopper, HOT map style AddMaxSpeed(o), // should best be after road surface because it excludes unpaved roads AddMaxHeight(o), // OSRM and other routing engines AddRailwayCrossingBarrier(o, r), // useful for routing diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt similarity index 95% rename from app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt rename to app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index 5493cea211..f7d082e89d 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -8,7 +8,7 @@ import de.westnordost.streetcomplete.data.osm.osmquest.SimpleOverpassQuestType import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore -class RoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) : SimpleOverpassQuestType(o) { +class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with highway ~ ${ROADS_WITH_SURFACES.joinToString("|")} and From 68556bf448d0b37a18a0a120247da606db1f86f0 Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Mon, 28 Sep 2020 20:23:28 +0200 Subject: [PATCH 16/60] add TODO --- .../streetcomplete/quests/surface/RoadSurfaceForm.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt index 8177791140..a19506e03e 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt @@ -14,7 +14,7 @@ import de.westnordost.streetcomplete.view.Item class RoadSurfaceForm : AImageListQuestAnswerFragment() { override val items: List> get() = - //if (osmElement!!.tags["surface"] == "paved") + //if (osmElement!!.tags["surface"] == "paved") - TODO: reimplement or remove (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + Item("paved", R.drawable.surface_paved, R.string.quest_surface_value_paved, null, listOf()) + Item("unpaved", R.drawable.surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + From c102580f52e8bda69582eeb7ee7c97f901421dbc Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Mon, 28 Sep 2020 20:24:31 +0200 Subject: [PATCH 17/60] rename form class to match main class per feedback --- .../westnordost/streetcomplete/quests/surface/AddRoadSurface.kt | 2 +- .../surface/{RoadSurfaceForm.kt => AddRoadSurfaceForm.kt} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename app/src/main/java/de/westnordost/streetcomplete/quests/surface/{RoadSurfaceForm.kt => AddRoadSurfaceForm.kt} (97%) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index f7d082e89d..a711b50a13 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -46,7 +46,7 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore } } - override fun createForm() = RoadSurfaceForm() + override fun createForm() = AddRoadSurfaceForm() override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { when(answer) { diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt similarity index 97% rename from app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt rename to app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt index a19506e03e..454e5f8981 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/RoadSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurfaceForm.kt @@ -11,7 +11,7 @@ import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment import de.westnordost.streetcomplete.util.TextChangedWatcher import de.westnordost.streetcomplete.view.Item -class RoadSurfaceForm : AImageListQuestAnswerFragment() { +class AddRoadSurfaceForm : AImageListQuestAnswerFragment() { override val items: List> get() = //if (osmElement!!.tags["surface"] == "paved") - TODO: reimplement or remove From b2ba2c8da03e75ac5530c6c81c02b508fedb908c Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Mon, 28 Sep 2020 20:50:38 +0200 Subject: [PATCH 18/60] use update with check date in AddRoadSurface --- .../streetcomplete/quests/surface/AddRoadSurface.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index a711b50a13..6a0fa772ec 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -2,6 +2,7 @@ package de.westnordost.streetcomplete.quests.surface import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.data.meta.ANYTHING_UNPAVED +import de.westnordost.streetcomplete.data.meta.updateWithCheckDate import de.westnordost.streetcomplete.data.osm.changes.StringMapChangesBuilder import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometryApi import de.westnordost.streetcomplete.data.osm.osmquest.SimpleOverpassQuestType @@ -51,7 +52,7 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { when(answer) { is SurfaceAnswer -> { - changes.addOrModify("surface", answer.value) + changes.updateWithCheckDate("surface", answer.value) changes.deleteIfExists("source:surface") } is DetailingWhyOnlyGeneric -> { From 5f6acb78193fc8ef8508df5dd0ec2767b4c0971c Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Mon, 28 Sep 2020 20:51:03 +0200 Subject: [PATCH 19/60] untested applying new surface form to path quest --- .../quests/surface/AddPathSurface.kt | 15 ++- .../quests/surface/AddPathSurfaceForm.kt | 123 +++++++++++++++--- 2 files changed, 117 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index d188464891..7548e4ec62 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -9,7 +9,7 @@ import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometry import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) - : SimpleOverpassQuestType(o) { + : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with highway ~ path|footway|cycleway|bridleway|steps @@ -39,7 +39,16 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore override fun createForm() = AddPathSurfaceForm() - override fun applyAnswerTo(answer: String, changes: StringMapChangesBuilder) { - changes.updateWithCheckDate("surface", answer) + override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { + when(answer) { + is SurfaceAnswer -> { + changes.updateWithCheckDate("surface", answer.value) + changes.deleteIfExists("source:surface") + } + is DetailingWhyOnlyGeneric -> { + changes.addOrModify("surface", answer.value) + changes.add("surface:note", answer.note) + } + } } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index 46713a186c..c54547b249 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -1,12 +1,23 @@ package de.westnordost.streetcomplete.quests.surface +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.EditText +import androidx.appcompat.app.AlertDialog import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.quests.AGroupedImageListQuestAnswerFragment +import de.westnordost.streetcomplete.quests.AImageListQuestAnswerFragment import de.westnordost.streetcomplete.view.Item import de.westnordost.streetcomplete.quests.surface.Surface.* +import de.westnordost.streetcomplete.util.TextChangedWatcher -class AddPathSurfaceForm : AGroupedImageListQuestAnswerFragment() { +class AddPathSurfaceForm : AImageListQuestAnswerFragment() { + /* + TODO - lost functionality for now + is it going to work out of box? override val topItems get() = when (val pathType = determinePathType(osmElement!!.tags)) { "bridleway" -> listOf( @@ -31,26 +42,102 @@ class AddPathSurfaceForm : AGroupedImageListQuestAnswerFragment( ) else -> throw IllegalStateException("Unexpected path type $pathType") }.toItems() + */ - override val allItems = listOf( - // except for different panorama images, should be the same as for the road quest, to avoid confusion - Item("paved", R.drawable.panorama_path_surface_paved, R.string.quest_surface_value_paved, null, PAVED_SURFACES.toItems()), - Item("unpaved", R.drawable.panorama_path_surface_unpaved, R.string.quest_surface_value_unpaved, null, UNPAVED_SURFACES.toItems()), - Item("ground", R.drawable.panorama_surface_ground, R.string.quest_surface_value_ground, null, GROUND_SURFACES.toItems()) - ) - - private fun determinePathType(tags: Map): String? { - val pathType = tags["highway"] - // interpret paths with foot/bicycle/horse=designated as... - if ("path" == pathType) { - if ("designated" == tags["bicycle"]) return "cycleway" - if ("designated" == tags["horse"]) return "bridleway" - if ("designated" == tags["foot"]) return "footway" + override val items: List> get() = + //if (osmElement!!.tags["surface"] == "paved") - TODO: reimplement or remove + (PAVED_SURFACES + UNPAVED_SURFACES + GROUND_SURFACES).toItems() + + // TODO: have proper images for path (crop from panorama images) + Item("paved", R.drawable.surface_paved, R.string.quest_surface_value_paved, null, listOf()) + + Item("unpaved", R.drawable.surface_unpaved, R.string.quest_surface_value_unpaved, null, listOf()) + + Item("ground", R.drawable.surface_ground, R.string.quest_surface_value_ground, null, listOf()) + + // TODO: everything below duplicates AddRoadSurfaceForm... + // TODO: DRY it? + + override val itemsPerRow = 3 + + private var isInExplanationMode = false + private var selectedGenericSurfaceValue : String? = null + private var explanationInput: EditText? = null + + private fun setLayout(layoutResourceId: Int) { + val view = setContentView(layoutResourceId) + + explanationInput = view.findViewById(R.id.explanationInput) + explanationInput?.addTextChangedListener(TextChangedWatcher { checkIsFormComplete() }) + } + + private val explanation: String get() = explanationInput?.text?.toString().orEmpty().trim() + + override fun isFormComplete(): Boolean { + return if(isInExplanationMode) { + explanation.isNotEmpty() + } else { + super.isFormComplete() + } + } + + override fun onClickOk() { + // we need to handle fact that we may be in a separate layout + // that is used to input explanation why surface may not be + // specified more accurately than just paved/unpaved/ground + if(isInExplanationMode) { + // clicked in an explanation mode, therefore + // user has ready answer prepared that we many use + applyAnswer(DetailingWhyOnlyGeneric(selectedGenericSurfaceValue!!, explanation)) + } else { + // use regular onClickOk call chain + // used in typical ImageList quest + super.onClickOk() + } + } + + override fun onClickOk(selectedItems: List) { + // must not happen in isInExplanationMode + // this onClickOk is called when user is selecting images from + // list of surfaces + + // this calls comes from onClickOk() in this class, + // through onClickOk() AImageListQuestAnswerFragment + // that calls onClickOk with parameters - that is + // overloaded here + + val value = selectedItems.single() + if(value == "paved" || value == "unpaved" || value == "ground") { + AlertDialog.Builder(requireContext()) + .setMessage(R.string.quest_surface_detailed_answer_impossible_confirmation) + .setPositiveButton(R.string.quest_generic_confirmation_yes) { + _, _ -> switchToExplanationLayout(value) + } + .setNegativeButton(android.R.string.cancel, null) + .show() + return } - return pathType + applyAnswer(SurfaceAnswer(value)) + } + + private fun switchToExplanationLayout(value: String) { + selectedGenericSurfaceValue = value + isInExplanationMode = true + setLayout(R.layout.quest_surface_detailed_answer_impossible) + } + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + val view = super.onCreateView(inflater, container, savedInstanceState) + + isInExplanationMode = savedInstanceState?.getBoolean(IS_IN_EXPLANATION_MODE) ?: false + setLayout(if (isInExplanationMode) R.layout.quest_surface_detailed_answer_impossible else R.layout.quest_generic_list) + + return view + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + outState.putBoolean(IS_IN_EXPLANATION_MODE, isInExplanationMode) } - override fun onClickOk(value: String) { - applyAnswer(value) + companion object { + private const val IS_IN_EXPLANATION_MODE = "is_in_explanation_mode" } } From e70920a9240394dd9b4d77f4e0a99dfd4cb58f7f Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Wed, 14 Oct 2020 00:20:02 +0200 Subject: [PATCH 20/60] next part of required rewrite together with bugfixing --- .../quests/surface/AddCyclewayPartSurface.kt | 28 +++++++++++++++---- .../quests/surface/AddFootwayPartSurface.kt | 27 ++++++++++++++---- .../quests/surface/AddPathSurface.kt | 2 +- .../quests/surface/AddRoadSurface.kt | 2 +- 4 files changed, 46 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt index bb1d1acde4..2c2624c08f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddCyclewayPartSurface.kt @@ -8,17 +8,25 @@ import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometry import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) - : SimpleOverpassQuestType(o) { + : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with ( - highway = cycleway + highway = cycleway or (highway ~ path|footway and bicycle != no) or (highway = bridleway and bicycle ~ designated|yes) ) and segregated = yes - and (!cycleway:surface or cycleway:surface older today -${r * 8} years) + and ( + !cycleway:surface or + cycleway:surface older today -${r * 8} years + or + ( + cycleway:surface ~ paved|unpaved + and !cycleway:surface:note + ) + ) """ override val commitMessage = "Add path surfaces" override val wikiLink = "Key:surface" @@ -29,7 +37,15 @@ class AddCyclewayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterv override fun createForm() = AddPathSurfaceForm() - override fun applyAnswerTo(answer: String, changes: StringMapChangesBuilder) { - changes.updateWithCheckDate("cycleway:surface", answer) - } + override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { + when(answer) { + is SurfaceAnswer -> { + changes.updateWithCheckDate("cycleway:surface", answer.value) + changes.deleteIfExists("source:cycleway:surface") + } + is DetailingWhyOnlyGeneric -> { + changes.updateWithCheckDate("cycleway:surface", answer.value) + changes.add("cycleway:surface:note", answer.note) + } + } } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt index ef32c5754a..039a7a40a4 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddFootwayPartSurface.kt @@ -8,16 +8,24 @@ import de.westnordost.streetcomplete.data.osm.mapdata.OverpassMapDataAndGeometry import de.westnordost.streetcomplete.settings.ResurveyIntervalsStore class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore) - : SimpleOverpassQuestType(o) { + : SimpleOverpassQuestType(o) { override val tagFilters = """ ways with ( - highway = footway + highway = footway or (highway ~ path|cycleway|bridleway and foot != no) ) and segregated = yes - and (!footway:surface or footway:surface older today -${r * 8} years) + and ( + !footway:surface or + footway:surface older today -${r * 8} years + or + ( + footway:surface ~ paved|unpaved + and !footway:surface:note + ) + ) """ override val commitMessage = "Add path surfaces" override val wikiLink = "Key:surface" @@ -28,7 +36,16 @@ class AddFootwayPartSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyInterva override fun createForm() = AddPathSurfaceForm() - override fun applyAnswerTo(answer: String, changes: StringMapChangesBuilder) { - changes.updateWithCheckDate("footway:surface", answer) + override fun applyAnswerTo(answer: DetailSurfaceAnswer, changes: StringMapChangesBuilder) { + when(answer) { + is SurfaceAnswer -> { + changes.updateWithCheckDate("footway:surface", answer.value) + changes.deleteIfExists("source:footway:surface") + } + is DetailingWhyOnlyGeneric -> { + changes.updateWithCheckDate("footway:surface", answer.value) + changes.add("footway:surface:note", answer.note) + } + } } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt index 7548e4ec62..d880c1aaf0 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurface.kt @@ -46,7 +46,7 @@ class AddPathSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore changes.deleteIfExists("source:surface") } is DetailingWhyOnlyGeneric -> { - changes.addOrModify("surface", answer.value) + changes.updateWithCheckDate("surface", answer.value) changes.add("surface:note", answer.note) } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index 6a0fa772ec..9b4fc0874e 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -56,7 +56,7 @@ class AddRoadSurface(o: OverpassMapDataAndGeometryApi, r: ResurveyIntervalsStore changes.deleteIfExists("source:surface") } is DetailingWhyOnlyGeneric -> { - changes.addOrModify("surface", answer.value) + changes.updateWithCheckDate("surface", answer.value) changes.add("surface:note", answer.note) } } From ade410d78059e7a1c2c901321a618ec2ee20d79d Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Wed, 14 Oct 2020 00:58:39 +0200 Subject: [PATCH 21/60] update illustrations crop panoramas into square ones get rid of panorama files --- .../quests/surface/AddPathSurfaceForm.kt | 4 ++-- app/src/main/res/authors.txt | 7 ------- .../panorama_path_surface_paved.jpg | Bin 29047 -> 0 bytes .../panorama_path_surface_unpaved.jpg | Bin 27770 -> 0 bytes .../drawable-hdpi/panorama_surface_ground.jpg | Bin 20483 -> 0 bytes .../drawable-hdpi/panorama_surface_paved.jpg | Bin 22074 -> 0 bytes .../drawable-hdpi/panorama_surface_unpaved.jpg | Bin 21725 -> 0 bytes .../res/drawable-hdpi/path_surface_paved.jpg | Bin 0 -> 9966 bytes .../res/drawable-hdpi/path_surface_unpaved.jpg | Bin 0 -> 10559 bytes .../res/drawable-mdpi/path_surface_paved.jpg | Bin 0 -> 4932 bytes .../res/drawable-mdpi/path_surface_unpaved.jpg | Bin 0 -> 5104 bytes .../res/drawable-xhdpi/path_surface_paved.jpg | Bin 0 -> 13006 bytes .../res/drawable-xhdpi/path_surface_unpaved.jpg | Bin 0 -> 14154 bytes .../res/drawable-xxhdpi/path_surface_paved.jpg | Bin 0 -> 22050 bytes .../drawable-xxhdpi/path_surface_unpaved.jpg | Bin 0 -> 24091 bytes 15 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 app/src/main/res/drawable-hdpi/panorama_path_surface_paved.jpg delete mode 100644 app/src/main/res/drawable-hdpi/panorama_path_surface_unpaved.jpg delete mode 100644 app/src/main/res/drawable-hdpi/panorama_surface_ground.jpg delete mode 100644 app/src/main/res/drawable-hdpi/panorama_surface_paved.jpg delete mode 100644 app/src/main/res/drawable-hdpi/panorama_surface_unpaved.jpg create mode 100644 app/src/main/res/drawable-hdpi/path_surface_paved.jpg create mode 100644 app/src/main/res/drawable-hdpi/path_surface_unpaved.jpg create mode 100644 app/src/main/res/drawable-mdpi/path_surface_paved.jpg create mode 100644 app/src/main/res/drawable-mdpi/path_surface_unpaved.jpg create mode 100644 app/src/main/res/drawable-xhdpi/path_surface_paved.jpg create mode 100644 app/src/main/res/drawable-xhdpi/path_surface_unpaved.jpg create mode 100644 app/src/main/res/drawable-xxhdpi/path_surface_paved.jpg create mode 100644 app/src/main/res/drawable-xxhdpi/path_surface_unpaved.jpg diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt index c54547b249..b4f46a5823 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddPathSurfaceForm.kt @@ -48,8 +48,8 @@ class AddPathSurfaceForm : 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 DL6tA0 diff --git a/app/src/main/res/drawable-hdpi/panorama_path_surface_unpaved.jpg b/app/src/main/res/drawable-hdpi/panorama_path_surface_unpaved.jpg deleted file mode 100644 index 88383452c96e8541d0fae8cc8f523a2da6ace6a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27770 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 h0&owna($}2uAqdB6_YzylkJbrs!>~nL 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 Xyb_B@yGTltG-lhQw?yM)<4FJ6kO*EX diff --git a/app/src/main/res/drawable-hdpi/panorama_surface_paved.jpg b/app/src/main/res/drawable-hdpi/panorama_surface_paved.jpg deleted file mode 100644 index ebfd71a577cf5cfba40abfcc26c230e72df02a6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22074 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

"Historia" "Geologia" "Kasvit" + "Villieläimet" "Luonto (useita aiheita)" "Se on ilmoitustaulu" "Julkinen liikenne" @@ -2198,5 +2199,44 @@ päiviä"
"Kun automaattinen synkronointi ei ole käytössä, tehtäviä ei ladata automaattisesti. Voit tehdä tämän manuaalisesti käyttämällä \"%s\" -painiketta paikassa, jonka haluat ladata." "Auta kääntämään tämä sovellus" "%1$s on kääntänyt %2$d%%" + "Onko tämä yksisuuntainen tie? Mihin suuntaan?" + "Yksisuuntainen tähän suuntaan" + "Ei yksisuuntainen" + "Valitse merkki" + "Mihin suuntaan oon portaiden yläpää?" + "Tähän suuntaan ylös" + "Kuinka monta askelmaa tässä on?" "Onko täällä äänimerkkiä sokeille?" + "Onko näissä liikennevaloissa tuntoindikaattori sokeille ihmisille kertomaan milloin on turvallista ylittää tie?" + "Vihje: Yleensä kyse on värisevästä painikeesta tai pyörivästä kartiosta liikennevalopainikkeen alapuolella." + "Mikä on tämän linja-autopysäkin pysäkkinumero?" + "Mikä on tämän raitiovaunupysäkin pysäkkinumero? +" + + + "Pieni omakotitalo (kesämökki, loma-asunto yms..)" + "Millaisia esteitä käytetään tällä rautatien ylityspaikassa?" + "Ei esteitä" + "Onko näissä portaissa ramppia? Millainen?" + "Ei (käytettävää) ramppia" + "Polkupyöräramppi" + "Lastenrattaiden ramppi" + "Pyörätuoliramppi" + + + "Minkä operaattorin/pankin automaatti tämä on?" + "Mikä taho vastaanottaa tämän vaatekeräyksen lahjoitukset?" + "Kenen operoima latausasema tämä on?" + "Kiinnostaako mitä edistystä olemme saavuttaneet vuosien varrella? Vertaa miltä kartta näytti yli 10 vuotta sitten!" + "Aarrejahti" + "Löysit ja ratkaisit %d todella harvoin suoritettua tehtävää, onnittelut!" + "Kansalainen" + "Olet ratkaissut %d tehtävää, jotka ovat hyödyllisiä jokapäiväisessä elämässä kaupungissa!" + "Ulkona" + "Olet ratkaissut %d ulkoilijoille hyödyllistä tehtävää!" + "Onko tällä suojatiellä liikenteen jakaja?" + "Täällä ei ole merkkiä" + "Onko pyörätuoliramppi kuvattu erillisenä reittinä kartalla?" + "erillinen" + "ei erillisenä" \ No newline at end of file diff --git a/app/src/main/res/values-fi/translation_info.xml b/app/src/main/res/values-fi/translation_info.xml index 6e8116df47..3ddf070ea2 100644 --- a/app/src/main/res/values-fi/translation_info.xml +++ b/app/src/main/res/values-fi/translation_info.xml @@ -1,4 +1,4 @@ - 95 + 99 diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 4c5ece0b69..92194125fe 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -2301,4 +2301,8 @@ Ces données sont essentielles non seulement pour le facteur mais aussi pour tou "En plein air" "Vous avez résolu %d quêtes utiles aux amateurs de plein air !" "Est ce que ce passage piéton est équipé d'une île de refuge ?" + "Il n'y a pas de panneau" + "Y a t'il une rampe pour fauteuils roulants représentée comme une voie séparée sur la carte ?" + "Séparée" + "Non séparée" \ No newline at end of file diff --git a/app/src/main/res/values-fr/translation_info.xml b/app/src/main/res/values-fr/translation_info.xml index 3ddf070ea2..1953c600c1 100644 --- a/app/src/main/res/values-fr/translation_info.xml +++ b/app/src/main/res/values-fr/translation_info.xml @@ -1,4 +1,4 @@ - 99 + 100 diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 2a477a0896..4a98785ba9 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -2387,4 +2387,8 @@ Ten en conta que esta aplicación pregunta polo número de enderezo dun edificio "Ó ar libre" "Resolviches %d tarefas útiles ó ar libre (exteriores)!" "Este paso de peóns ten unha illa (refuxio) de separación?" + "Non hai sinal" + "A rampla para cadeiras de rodas amósase coma unha vía separada no mapa?" + "separada" + "non separada" \ No newline at end of file diff --git a/app/src/main/res/values-gl/translation_info.xml b/app/src/main/res/values-gl/translation_info.xml index 3ddf070ea2..1953c600c1 100644 --- a/app/src/main/res/values-gl/translation_info.xml +++ b/app/src/main/res/values-gl/translation_info.xml @@ -1,4 +1,4 @@ - 99 + 100 diff --git a/app/src/main/res/values-hr/translation_info.xml b/app/src/main/res/values-hr/translation_info.xml new file mode 100644 index 0000000000..036b84eeda --- /dev/null +++ b/app/src/main/res/values-hr/translation_info.xml @@ -0,0 +1,4 @@ + + + 57 + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 87cd4301cc..96e696a978 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -260,7 +260,7 @@ "ha diverse forme" - "Auto-Sync" + "Sincronizzazione automatica" "Rimpicciolisci" @@ -290,13 +290,13 @@ Tuttavia, prima di caricare le modifiche, l’app fa una verifica su un <a hr </p>" - "Attivo" + "Attivata" - "Solo con WiFi" + "Solo con Wi-Fi" - "Spento" + "Disattivata" "Che superficie ha questa tratto di strada?" @@ -691,7 +691,7 @@ Altrimenti, è possibile scaricare un'altra tastiera nell'archivio di app. Le ta "Vedi la <a href=\"https://github.com/westnordost/StreetComplete/graphs/contributors\">lista completa su GitHub</a>." - "Vedi il <a href=\"https://poeditor.com/join/project/IE4GC127Ki\">progetto su POEditor</a> per la lista completa." + "Vedi il <a href=\"https://poeditor.com/join/project/IE4GC127Ki\">progetto su POEditor</a> per la lista completa." "Traduzioni" @@ -996,7 +996,7 @@ Altrimenti, è possibile scaricare un'altra tastiera nell'archivio di app. Le ta "Seleziona le missioni" - "Abilitato" + "Attivate" "Tipo di ricerca" @@ -2345,7 +2345,7 @@ riconoscimento" "La fermata del bus %s ha una panchina?" "C’è un libro di vetta su %s?" "Questo defibrillatore (DAE) è all’interno di un edificio?" - "Con auto-sync disabilitato, le missioni non vengono scaricate automaticamente . Per farlo manualmente, usa il pulsante “%s” nel menu nel luogo dove vuoi scaricarle." + "Con la sincronizzazione automatica disattivata, le missioni non vengono scaricate automaticamente. Per farlo manualmente, usa il pulsante “%s” nel menù, nella posizione dove vuoi scaricarle." "Aiuta a tradurre questa app" "%1$s è tradotto %2$d%%" "È una strada a senso unico? In quale direzione?" @@ -2380,4 +2380,8 @@ riconoscimento" "All'aria aperta" "Hai svolto %d missioni utili per chi ama stare all'aria aperta!" "Questo attraversamento pedonale ha un'isola di traffico?" + "Non c'è alcun cartello" + "La rampa per la sedia a rotelle è visualizzata sulla mappa come una via alternativa?" + "è alternativa" + "non è alternativa" \ No newline at end of file diff --git a/app/src/main/res/values-it/translation_info.xml b/app/src/main/res/values-it/translation_info.xml index 3ddf070ea2..1953c600c1 100644 --- a/app/src/main/res/values-it/translation_info.xml +++ b/app/src/main/res/values-it/translation_info.xml @@ -1,4 +1,4 @@ - 99 + 100 diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 36112236c9..317c5bb937 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -2356,4 +2356,32 @@ Let op dat deze app alleen naar het huisnummer van een gebouw vraagt nadat zijn "Zijn er hier geluidsignalen voor blinden?" "Hebben deze stoplichten een voelbare indicatie voor blinden wanneer ze veilig over kunnen steken?" "Vaak is dit een trillende knop of ronddraaiende kegel aan de onderkant van de stoplichtknop." + "Wat is het referentienummer van deze bushalte?" + "Wat is het referentienummer van deze tramhalte?" + "klein vrijstaand huis (zomerhuisje, vakantiehuisje, hut ...)" + "Welke slagbomen worden bij deze spoorwegovergang gebruikt?" + "Geen slagbomen" + "Heeft deze trap een helling? Welke soort?" + "Geen (bruikbare) helling" + "Helling voor fietsen" + "Helling voor wandelwagens" + "Helling voor rolstoelen" + "Van welke bank is deze geldautomaat?" + "Welke organisatie zamelt hier gebruikte kleding in?" + "Welk bedrijf exploiteert dit oplaadpunt?" + "Ontdek kaarten van de binnenkant van winkelcentra, stations, enz." + "Benieuwd naar de vooruitgang die we de afgelopen jaren gemaakt hebben? Vergelijk met hoe de kaart er meer dan 10 jaar geleden uit zag!" + "Op jacht naar de schat" + "Je hebt %d vragen gevonden en beantwoordt die zelden opgelost worden, gefelciteerd!" + "Burger" + "Je hebt %d vragen beantwoordt die nuttig zijn voor het dagelijks leven in de stad." + "In de vrije natuur" + + + "Je hebt %d vragen opgelost die nuttig zijn voor mensen in de vrije natuur!" + "Heeft deze oversteekplaats een vluchtheuvel?" + "Er is geen bord" + "Is de rolstoelhelling apart aangegeven op de kaart?" + "apart" + "niet apart" \ No newline at end of file diff --git a/app/src/main/res/values-nl/translation_info.xml b/app/src/main/res/values-nl/translation_info.xml index 5b0ce213bb..1953c600c1 100644 --- a/app/src/main/res/values-nl/translation_info.xml +++ b/app/src/main/res/values-nl/translation_info.xml @@ -1,4 +1,4 @@ - 97 + 100 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 5e72efec30..a668c0e148 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -2148,4 +2148,8 @@ Observe que este aplicativo solicita o número da casa de uma construção somen "Ao ar livre" "Você resolveu %d missões úteis para pessoas ao ar livre!" "Esta faixa de pedestres tem uma ilha?" + "Não há placa" + "A rampa para cadeiras de rodas é exibida como uma maneira separada no mapa?" + "separado" + "não separado" \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/translation_info.xml b/app/src/main/res/values-pt-rBR/translation_info.xml index 3ddf070ea2..1953c600c1 100644 --- a/app/src/main/res/values-pt-rBR/translation_info.xml +++ b/app/src/main/res/values-pt-rBR/translation_info.xml @@ -1,4 +1,4 @@ - 99 + 100 diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 89120b8524..b277365ec4 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1840,6 +1840,7 @@ "Номер не виден" + "Изображенная дорога повернута так же, как и дорога в месте метки на карте" "Что здесь можно оставить на переработку?" @@ -2241,9 +2242,12 @@ " <p>Данные, показываемые в вашем профиле, собираются из публично доступной истории правок OpenStreetMap и затем размещаются на моем сервере.</p> " + "Вы можете сделать это позже в окне профиля" + "Иллюстраторы" "Проекты, сделанные для StreetComplete" + "Основные участники" "Ваша статистика синхронизируется. Проверьте ее тут позднее." "Рейтинг в %2$s: %1$d" "по стране" @@ -2251,17 +2255,24 @@ "Общий рейтинг" "Рейтинг в %s" "Активных дней" + "Уровни достижения" "К какой улице относится дом %s?" + "Не принадлежит названной улице" "Название места" "Нажмите на дорогу к которой относится объект или введите название улицы в поле ввода:" "масло для приготовления пищи" "моторное масло" + "<p>Для отображения карты, векторные тайлы из %1$s. Прочтите <a href=\"%2$s\">политику конфиденциальности </a> для большей информации </p>" "Спонсоры" "История" "Геология" "Растения" + "Дикая природа" + "Природа" "Это доска объявлений" "Общественный транспорт" + "Какая информация на этой доске объявлений" + "Да, отображены раздельно на карте" "Это карта" "Это только карта и ничего более?" "Различные покрытия..." diff --git a/app/src/main/res/values-ru/translation_info.xml b/app/src/main/res/values-ru/translation_info.xml index 695f1ce1ee..21904d059d 100644 --- a/app/src/main/res/values-ru/translation_info.xml +++ b/app/src/main/res/values-ru/translation_info.xml @@ -1,4 +1,4 @@ - 92 + 93 diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 2a9e8be9b1..39c842d709 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -2317,6 +2317,8 @@ nivåer" "Är dessa öppettider för %s fortfarande korrekta?" "Är dessa öppettider för %1$s (%2$s) fortfarande korrekta?" "Är dessa öppettider fortfarande korrekta (%s)?" + "Lägg till lediga dagar" + "Ledig dag" "Inte angivet" "Är det fortfarande cykelvägsituationen här?" "Är %1$s (%2$s) tillgänglig med rullstol?" @@ -2365,4 +2367,8 @@ nivåer" "Utomhus" "Du löste %d uppdrag som är användbara för friluftsmänniskor!" "Har detta övergångsställe en ö?" + "Det finns ingen skylt" + "Visas rullstolsrampen som en separat väg på kartan?" + "separat" + "inte separat" \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index a45050be17..c0d3ff49b5 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -235,6 +235,7 @@ "Çalışma saatlerini açıkla" + "Kısa ve öz olun, tercihen tabeladaki ifadeyi girin, örneğin \"randevu ile\". Açılış saati ile ilgili bir bilgilendirmenin olmaması, bir açılış saati olmadığı anlamına gelmez." "Bu bina kaç katlı?" @@ -377,6 +378,7 @@ Haritayı görüntülemek için vektör karoları, anonim olan <a href=\"http "Bu binanın kapı numarası kaç?" + "OpenStreetMap anketör uygulaması." "StreetComplete ile OpenStreetMap'ın geliştirilmesine yardımcı olun! @@ -513,6 +515,8 @@ Girdiğiniz bilgiler başka bir düzenleyici kullanmak zorunda kalmaksızın ad "Bu tuvalet ücretli mi?" + "Bu otobüs durağında kabartmalı/hisli kaldırımlar var mı?" + "Bu yaya geçidinin her iki tarafında da kabartmalı/hisli kaldırımlar var mı?" "Bunu yerinde kontrol ettiğinden emin misin?" @@ -562,6 +566,7 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Buz Pateni" "Raket tenisi" + "Gal oyunları" "Ayak voleybolu" @@ -868,6 +873,7 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Domates" + "Areca fıstığı" "Tatlı biber" @@ -1166,6 +1172,7 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "bisiklet şeridi (kesik işaretler)" + "Kesilmemiş parke taşı/Arnavut Kaldırımı" "Buraya kimlerin park edebileceği sınırlandırılmış mı?" @@ -1181,6 +1188,7 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Bu yaya caddesinin adı ne?" + "Bu meydanın yüzeyi nedir?" "Zamana ve güne bağlı…" @@ -1224,6 +1232,7 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Burasi ne tarz bir bisiklet park alani ?" + "bisiklet öneri şeridi" "Bu posta kutusunun, posta toplama sureleri ne zaman?" @@ -1249,6 +1258,7 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Bu bina tamamlandı mı?" + "Asla % olarak gösterme" "Bu dinlenme yerinde tuvalet bulunmakta midir?" @@ -1401,18 +1411,22 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Otopark binası" + "Bir çiftlikte" "Çiftlik Evi" + "Bir çiftlikte konut binası" "Çiftlik binası" + "Bir çiftlikte konut olmayan herhangi bir bina" "Yeşil Ev" "Diğer" + "Kulübe" "Kulübe" @@ -1622,6 +1636,11 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Her ikisi de mevcuttur. " + "Lütfen daha fazla yakınlaştırın" + "Buradaki patikanın yüzeyi nedir?" + "Bu tramvay durağında kabartmalı/hisli kaldırımlar var mı?" + "Buradaki ağırlık sınırı nedir?" + "Bu ağırlık mantıksız görünüyor. Doğru olduğundan emin misin?" "İşaret farklı görünüyor…" @@ -1706,9 +1725,20 @@ Tüm cadde boyunca vurgulanan bölüm için geçerli hiçbir işaret yoksa, vars "Neler yeni?" + "Bu uygulamayı oyla" + "Google Play'de" + "Bağış yap" + "Minnettarlığınızı gösterin! ❤️" "Uygulamamızı desteklemeyi düşündüğünüz için teşekkür ederiz! Mevcut bağışları görmek ve bağışyapmak için ilgili platforma dokunun:" + "Profilim" + "Giriş Yap" + "Çıkış Yap" + "OSM Profili" + "İleri" + "OpenStreetMap'e hoşgeldin" + "özgür dünya haritası wikisi." "%1$s – %2$s, %3$s" "%1$s – %2$s (%3$s), %4$s" "Ev ismi %s:" diff --git a/app/src/main/res/values-tr/translation_info.xml b/app/src/main/res/values-tr/translation_info.xml index 7c792a90e7..36c2b1735e 100644 --- a/app/src/main/res/values-tr/translation_info.xml +++ b/app/src/main/res/values-tr/translation_info.xml @@ -1,4 +1,4 @@ - 69 + 73 diff --git a/metadata/hr/full_description.txt b/metadata/hr/full_description.txt new file mode 100644 index 0000000000..7e747f9259 --- /dev/null +++ b/metadata/hr/full_description.txt @@ -0,0 +1,5 @@ +Pomozite poboljšati OpenStreetMap pomoću StreetCompletea! + +Ova aplikacija pronalazi nepotpune i proširive podatke u vašoj blizini i prikazuje ih na karti kao oznake. Svaka od njih je rješiva odgovorom na jednostavno pitanje kako biste dopunili informacije na licu mjesta. + +Podaci koje unesete se izravno dodaju u OpenStreetMap pod vašim imenom, bez potrebe za korištenjem drugog uređivača. \ No newline at end of file diff --git a/metadata/tr/short_description.txt b/metadata/tr/short_description.txt index 99964bd689..eb9f58ec1c 100644 --- a/metadata/tr/short_description.txt +++ b/metadata/tr/short_description.txt @@ -1 +1 @@ -OpenStreetMap surveyor uygulaması \ No newline at end of file +OpenStreetMap anketör uygulaması. \ No newline at end of file diff --git a/res/country_metadata/atmOperators.yml b/res/country_metadata/atmOperators.yml index 35c4d14cec..7574271bee 100644 --- a/res/country_metadata/atmOperators.yml +++ b/res/country_metadata/atmOperators.yml @@ -180,7 +180,7 @@ AR: - BERSA # 2 - BBVA Banco Francés # 2 AT: - - Raiffeisen # 71 + - Raiffeisen # 72 - Raiffeisenbank # 65 - Volksbank # 40 - Sparkasse # 31 @@ -534,6 +534,7 @@ BD: - Dutch Bangla Bank Fast Track ডাচ বাংলা ব্যাংক ফাস্ট ট্র্যাক # 2 - Dutch Bangla Bank ATM ডাচ বাংলা ব্যাংক এটিএম # 2 - Dhaka Bank Limited ATM # 2 + - Dhaka Bank ATM # 2 - DBBL atm # 2 - DBBL ATM ডিবিবিএল এটিএম # 2 - City Bank Limited # 2 @@ -541,7 +542,7 @@ BD: - Bank Asia Limited ATM ব্যাংক এশিয়া লিমিটেড এটিএম # 2 - BRAC Bank ATM # 2 BE: - - BNP Paribas Fortis # 44 + - BNP Paribas Fortis # 43 - KBC # 26 - Argenta # 23 - BeoBank # 21 @@ -574,7 +575,7 @@ BG: - ОББ # 16 - FIBank # 13 - Postbank # 12 - - Банка ДСК # 10 + - Банка ДСК # 11 - Райфайзенбанк # 8 - Unicredit Bulbank # 8 - Централна кооперативна банка # 7 @@ -583,10 +584,10 @@ BG: - UniCredit Bulbank # 7 - UniCredit # 7 - ЦКБ # 6 + - Райфайзен Банк # 6 - ПИБ # 6 - Raiffeisenbank # 6 - DSK Bank # 6 - - Райфайзен Банк # 5 - Райфайзен # 5 - Пощенска банка # 5 - Raiffeisen # 5 @@ -629,7 +630,7 @@ BJ: - Bank of Africa # 2 - BOA # 2 BN: - - BIBD # 10 + - BIBD # 9 - Baiduri Bank # 8 - Standard Chartered # 5 - TAIB # 4 @@ -690,7 +691,7 @@ BR: - Santander # 23 - Banrisul # 21 - Tecnologia Bancária S.A. # 20 - - Banco 24H # 18 + - Banco 24H # 19 - Banrisul S.A. # 16 - Banco24horas # 16 - 24 Horas # 13 @@ -897,7 +898,7 @@ CH: - PostFinance # 167 - Postfinance # 135 - Credit Suisse # 69 - - UBS # 68 + - UBS # 67 - Zürcher Kantonalbank # 63 - Raiffeisenbank # 46 - ZKB # 37 @@ -1132,7 +1133,7 @@ CN-ZJ: - BNB # 2 - Agricultural Bank of China # 2 CO: - - Bancolombia # 187 + - Bancolombia # 189 - Davivienda # 75 - Servibanca # 59 - BBVA # 44 @@ -1228,13 +1229,13 @@ CY: CZ: - Česká spořitelna # 461 - ČSOB # 284 - - Komerční banka # 237 + - Komerční banka # 238 - Pharro # 201 - Euronet # 76 - Česká Spořitelna # 66 - Raiffeisenbank # 41 - - KB # 40 - Air Bank # 40 + - KB # 39 - GE Money Bank # 35 - Komerční Banka # 34 - Moneta # 32 @@ -1281,18 +1282,18 @@ CZ: - ERA # 2 - Airbank a.s. # 2 DE: - - Sparkasse # 775 - - Postbank # 654 + - Sparkasse # 774 + - Postbank # 656 - Euronet # 409 - Volksbank # 318 - - Deutsche Bank # 205 + - Deutsche Bank # 206 - ING-DiBa # 118 - Commerzbank # 118 - Berliner Sparkasse # 89 - Raiffeisenbank # 84 - - Berliner Volksbank # 79 + - Berliner Volksbank # 80 - Sparkasse Aachen # 71 - - Bankhaus August Lenz # 67 + - Bankhaus August Lenz # 68 - ING DiBa # 66 - Sparda-Bank # 62 - Hamburger Sparkasse # 55 @@ -1304,7 +1305,7 @@ DE: - Sparkasse Marburg-Biedenkopf # 46 - Sparkasse Bremen # 46 - Kreissparkasse # 44 - - HypoVereinsbank # 42 + - HypoVereinsbank # 43 - VR-Bank # 41 - ING # 41 - Sparkasse Göttingen # 40 @@ -1341,7 +1342,6 @@ DE: - Degussa Bank # 19 - Volksbank Dessau-Anhalt eG # 18 - Sparkasse Hanauerland # 18 - - Sparkasse Bielefeld # 18 - Kreissparkasse Köln # 18 - Kreissparkasse Böblingen # 18 - IC Cash Services GmbH # 18 @@ -1350,15 +1350,16 @@ DE: - BW-Bank # 18 - Volksbank Krefeld eG # 17 - Stadtsparkasse # 17 + - Sparkasse Bielefeld # 17 - ING-Diba # 17 - Stadt-Sparkasse Solingen # 16 - Sparkasse Mainz # 16 - Sparkasse Hanau # 16 - Ostsächsische Sparkasse Dresden # 16 + - Nord-Ostsee Sparkasse # 16 - Targobank # 15 - Sparkasse Bodensee # 15 - Sparkasse Bayreuth # 15 - - Nord-Ostsee Sparkasse # 15 - Förde Sparkasse # 15 - Deutsche Post # 15 - Cardpoint GmbH # 15 @@ -1366,7 +1367,6 @@ DE: - Volks- und Raiffeisenbank # 14 - Taunus Sparkasse # 14 - Sparkasse Westholstein # 14 - - Sparkasse Vorpommern # 14 - Sparkasse Saarbrücken # 14 - Sparkasse Mittelthüringen # 14 - Sparkasse LeerWittmund # 14 @@ -1375,6 +1375,7 @@ DE: - IC Cash # 14 - Volksbank Kraichgau eG # 13 - Sparkasse Witten # 13 + - Sparkasse Vorpommern # 13 - Sparkasse Nürnberg # 13 - Sparkasse Gießen # 13 - Postbank AG # 13 @@ -1392,6 +1393,7 @@ DE: - Sparkasse Emden # 12 - Sparkasse Dortmund # 12 - Raiffeisenbank Oldenburg eG # 12 + - Nord-Ostsee-Sparkasse # 12 - Volksbank Reutlingen # 11 - VR-Bank Bad Hersfeld-Rotenburg eG # 11 - Stadtsparkasse Wuppertal # 11 @@ -1401,6 +1403,7 @@ DE: - Sparkasse Mittelsachsen # 11 - Sparkasse Hildesheim # 11 - Sparkasse Hannover # 11 + - Landessparkasse zu Oldenburg # 11 - Kreissparkasse Reutlingen # 11 - Kreissparkasse Ostalb # 11 - Kreissparkasse Ludwigsburg # 11 @@ -1415,7 +1418,6 @@ DE: - Sparkasse Darmstadt # 10 - ReiseBank AG # 10 - Ostsächsische Sparkasse # 10 - - Landessparkasse zu Oldenburg # 10 - Kreissparkasse Waiblingen # 10 - Kreissparkasse Esslingen-Nürtingen # 10 - Ing-DiBa # 10 @@ -1435,7 +1437,6 @@ DE: - Sparkasse Düsseldorf # 9 - Sparkasse Duisburg # 9 - Santander # 9 - - Nord-Ostsee-Sparkasse # 9 - Nassauische Sparkasse # 9 - Landesbank Baden-Württemberg # 9 - Kreissparkasse Gelnhausen # 9 @@ -1564,9 +1565,9 @@ ES: - Liberbank # 17 - Abanca # 17 - Deutsche Bank # 13 + - ABANCA # 13 - Euro 6000 # 12 - Caixabank # 12 - - ABANCA # 12 - Servired # 11 - Popular # 11 - BBK # 10 @@ -1599,10 +1600,8 @@ ES: - Euro Automatic Cash # 3 - Caja rural # 3 - Caja Madrid # 3 - - Caja Granada # 3 - Caja España # 3 - Caja Cantabria # 3 - - Caixa Galicia # 3 - BancaMarch # 3 - BANTIERRA # 3 - BANKIA # 3 @@ -1618,8 +1617,10 @@ ES: - Caja Rural de Soria # 2 - Caja Rural de Salamanca # 2 - Caja Rural de Extremadura # 2 + - Caja Granada # 2 - Caixa bank # 2 - Caixa Penedès # 2 + - Caixa Galicia # 2 - Caixa Catalunya # 2 - Caixa # 2 - CAIXABANK # 2 @@ -1705,12 +1706,12 @@ FO: - Bank Nordik # 2 FX: - La Banque Postale # 865 - - Crédit Agricole # 683 + - Crédit Agricole # 684 - Société Générale # 401 - - Caisse d'Épargne # 324 - - LCL # 299 + - Caisse d'Épargne # 323 + - LCL # 300 - Crédit Mutuel # 289 - - BNP Paribas # 287 + - BNP Paribas # 288 - CIC # 249 - Banque Populaire # 191 - La Poste # 98 @@ -1781,7 +1782,7 @@ GB: - Clydesdale Bank # 46 - Bank of Scotland # 40 - Ulster Bank # 39 - - Tesco Bank # 33 + - Tesco Bank # 34 - Danske Bank # 30 - Sainsburys # 29 - Co-operative Bank # 29 @@ -1821,6 +1822,7 @@ GB: - natwest # 5 - link # 5 - barclays # 5 + - The Royal Bank of Scotland # 5 - Sainsburys Bank # 5 - One Stop # 5 - Cooperative # 5 @@ -1830,7 +1832,6 @@ GB: - sainsburys # 4 - bankmachine # 4 - Travelex # 4 - - The Royal Bank of Scotland # 4 - The Co-operative Group # 4 - The Co-Operative Bank # 4 - Royal Mail # 4 @@ -2073,7 +2074,7 @@ HU: - Euronet # 25 - Erste # 23 - K&H Bank # 20 - - OTP Bank Nyrt. # 17 + - OTP Bank Nyrt. # 18 - CIB # 13 - Erste Bank Hungary Zrt. # 12 - UniCredit Bank # 10 @@ -2235,7 +2236,7 @@ ID: - ATM BNI 46 # 2 IE: - Bank of Ireland # 143 - - AIB # 136 + - AIB # 137 - Ulster Bank # 85 - Permanent TSB # 18 - Euronet # 3 @@ -2441,9 +2442,9 @@ IN-KA: - Andhra Bank ATM # 2 - AXIS Bank ATM # 2 IN-KL: - - SBI # 106 + - SBI # 105 - State Bank of India # 75 - - Federal Bank # 72 + - Federal Bank # 73 - SBI ATM # 54 - South Indian Bank # 47 - Canara Bank # 32 @@ -2458,11 +2459,11 @@ IN-KL: - SBT # 13 - Canara Bank ATM # 12 - ICICI Bank # 11 - - FEDERAL BANK # 11 - south indian bank # 10 - canara bank # 10 - State Bank # 10 - HDFC Bank # 10 + - FEDERAL BANK # 10 - ATM # 10 - Union Bank # 9 - State Bank of Travancore # 9 @@ -2489,7 +2490,6 @@ IN-KL: - Union Bank ATM # 4 - Syndicate Bank # 4 - State bank # 4 - - SOUTH INDIAN BANK # 4 - Indian Overseas Bank # 4 - IOB ATM # 4 - Dhanalakshmi Bank # 4 @@ -2501,6 +2501,7 @@ IN-KL: - canara bank ATM # 3 - atm # 3 - State bank of India # 3 + - SOUTH INDIAN BANK # 3 - SBI atm # 3 - PNB # 3 - Kerala Gramin Bank # 3 @@ -2524,6 +2525,7 @@ IN-KL: - Union Bank Of India ATM # 2 - UNION BANK # 2 - Tamilnad Mercantile Bank # 2 + - TDCB ATM # 2 - State bank of india # 2 - State Bank of India (SBI) # 2 - State Bank ATM & CDM # 2 @@ -2675,7 +2677,7 @@ IN-MP: - Bank of Maharashtra # 2 - Bandhan Bank # 2 IN-NL: - - SBI # 20 + - SBI # 21 - Vijaya # 2 - Axis # 2 IN-OR: @@ -2826,18 +2828,19 @@ IN-TN: - ATM # 2 IN-UP: - State Bank of India # 10 - - HDFC Bank # 8 - - SBI # 5 + - HDFC Bank # 9 + - Axis Bank # 7 + - SBI # 6 - Punjab National Bank # 5 - ICICI Bank # 5 - Bank of Baroda # 5 - - Axis Bank # 5 - PNB # 4 - ICICI # 3 - state bank of india # 2 - Union Bank of India # 2 - State Bank of India (SBI) # 2 - State Bank # 2 + - HDFC # 2 - Bank of Baroda ATM # 2 - Ballia # 2 - Axis Bank ATM # 2 @@ -2895,17 +2898,17 @@ IR: - بانک تجارت # 60 - بانک مسکن # 55 - بانک انصار # 50 - - بانک رفاه # 35 + - بانک رفاه # 36 - بانک سامان # 31 + - بانک کشاورزی # 30 - بانک پاسارگاد # 30 - - بانک کشاورزی # 29 - خودپرداز بانک ملی # 26 - بانک قوامین # 24 - خودپرداز بانک ملت # 20 - پست بانک # 18 + - خودپرداز بانک صادرات # 17 - خودپرداز بانک سپه # 17 - بانک ملی ایران # 17 - - خودپرداز بانک صادرات # 16 - خودپرداز بانک تجارت # 15 - بانک اقتصاد نوین # 15 - بانک پارسیان # 14 @@ -2992,7 +2995,7 @@ IS: - Landsbanki Íslands # 2 - Landsbanki # 2 IT: - - Poste Italiane # 346 + - Poste Italiane # 361 - Unicredit # 82 - Intesa Sanpaolo # 48 - Monte dei Paschi di Siena # 41 @@ -3184,22 +3187,22 @@ JP: - りそな銀行 # 49 - イオン銀行 # 48 - 七十七銀行 # 40 - - 横浜銀行 # 33 + - 横浜銀行 # 34 - 秋田銀行 # 29 - 京都銀行 # 21 - 北都銀行 # 20 - 埼玉りそな銀行 # 19 - プロミス # 19 - 仙台銀行 # 16 + - アイフル # 16 - 東京スター銀行 # 15 - - アイフル # 15 - 千葉銀行 # 14 - JA # 14 - 滋賀銀行 # 13 - 三井住友銀行/SMBC # 13 - 東北労働金庫 # 12 - 京都中央信用金庫 # 12 - - アコム # 11 + - アコム # 12 - 但陽信用金庫 # 10 - 百十四銀行 # 9 - 武蔵野銀行 # 9 @@ -3601,7 +3604,7 @@ MA: - banque populaire # 2 - BMCE BANK # 2 MD: - - Victoriabank # 35 + - Victoriabank # 33 - Moldindconbank # 29 - Агропромбанк # 25 - Moldova Agroindbank # 18 @@ -3713,6 +3716,7 @@ MM: MN: - Хаан банк # 8 - Khan Bank # 4 + - Голомт банк # 3 - Golomt Bank # 3 - Хаан банк АТМ # 2 - Хаан Банк # 2 @@ -3721,7 +3725,6 @@ MN: - Төрийн банк АТМ # 2 - Төрийн банк # 2 - Капитал банк АТМ # 2 - - Голомт банк # 2 - Голомт Банк # 2 - Голомт # 2 - zam # 2 @@ -3858,11 +3861,11 @@ NI: - Bampro # 2 - ATM BAC # 2 NL: - - ING # 347 - - Rabobank # 272 + - ING # 346 + - Rabobank # 273 - ABN AMRO # 168 - ABN Amro # 56 - - Geldmaat # 51 + - Geldmaat # 53 - ABN-AMRO # 34 - ING Bank # 32 - SNS # 27 @@ -3901,7 +3904,6 @@ NL: - Rabobank Walcheren/ Noord-Beveland # 5 - Rabobank Venray # 5 - Rabobank Twente Oost # 5 - - Rabobank Noordenveld West Groningen # 5 - Rabobank Groene Hart Noord # 5 - Rabobank Centraal Zuid-Limburg # 5 - Rabobank Breda # 5 @@ -3916,6 +3918,7 @@ NL: - Rabobank Terneuzen-Sas van Gent # 4 - Rabobank Salland # 4 - Rabobank Parkstad Limburg # 4 + - Rabobank Noordenveld West Groningen # 4 - Rabobank Leeuwarden-Noordwest Friesland # 4 - Rabobank Hulst # 4 - Rabobank Haarlem en Omstreken # 4 @@ -3974,7 +3977,6 @@ NL: - Rabobank Het Haringvliet # 2 - Rabobank Het Groene Woud Zuid # 2 - Rabobank Graafschap-Zuid # 2 - - Rabobank De Stellingwerven # 2 - Rabobank Borger-Klenckeland # 2 - Rabobank Bodegraven-Woerden # 2 - Rabobank Bernheze Maasland # 2 @@ -4173,21 +4175,21 @@ PH: - BDO # 77 - Bank of the Philippine Islands # 65 - Metrobank # 52 - - Land Bank of the Philippines # 43 + - Land Bank of the Philippines # 45 - Landbank # 39 + - BDO Unibank # 27 - RCBC # 26 - - BDO Unibank # 26 - PNB # 23 - Philippine National Bank # 16 - Security Bank # 14 + - Luzon Development Bank # 14 - DBP # 14 - - Luzon Development Bank # 13 - Landbank of the Philippines # 12 + - Metropolitan Bank and Trust Company # 10 - Land Bank # 10 - Rizal Commercial Banking Corporation # 9 - Philippine Savings Bank # 9 - PSBank # 9 - - Metropolitan Bank and Trust Company # 9 - Chinabank # 9 - Banco de Oro # 9 - One Network Bank # 8 @@ -4242,18 +4244,18 @@ PK: - HBL # 27 - UBL # 16 - Askari Bank # 12 - - MCB # 10 - - Habib Bank Limited # 8 + - MCB # 9 - Meezan Bank # 7 - HBL ATM # 7 + - Habib Bank Limited # 6 - NBP # 5 - - Dubai Islamic Bank # 5 - Allied Bank # 5 - ubl # 4 - Standard Chartered Bank # 4 - JS Bank # 4 - Hbl # 4 - Faysal Bank # 4 + - Dubai Islamic Bank # 4 - Bank Islami # 4 - Bank Alfalah # 4 - Bank Al Habib # 4 @@ -4267,7 +4269,6 @@ PK: - ATM # 3 - mohsin house # 2 - hbl atm # 2 - - United Bank Limited # 2 - UBL ATM # 2 - National Bank of Pakistan # 2 - NIB Bank # 2 @@ -4277,11 +4278,11 @@ PK: - Askari bank # 2 - Allied bank # 2 PL: - - Euronet # 2712 + - Euronet # 2710 - PKO BP # 529 - Bank Millennium S.A. # 217 - Planet Cash # 195 - - BZ WBK # 162 + - BZ WBK # 161 - Santander # 147 - Bank Spółdzielczy # 145 - PKO # 116 @@ -4291,7 +4292,7 @@ PL: - ING Bank Śląski # 53 - Pekao # 46 - ING # 43 - - Pekao S.A. # 36 + - Pekao S.A. # 37 - Grupa BPS # 36 - BPS # 31 - Bank Pekao # 29 @@ -4309,9 +4310,9 @@ PL: - Millennium # 16 - Global Cash # 15 - Santander Bank Polska # 14 + - euronet # 13 - PEKAO SA # 13 - PBS # 13 - - euronet # 12 - PEKAO # 12 - Euronet Polska # 12 - WBK # 11 @@ -4496,25 +4497,25 @@ RS-KM: - Pcb # 2 - NLB # 2 RU: - - Сбербанк # 3371 + - Сбербанк # 3374 - Промсвязьбанк # 1561 - - '"ПАО ""Сбербанк"""' # 1300 + - '"ПАО ""Сбербанк"""' # 1299 - Сбербанк России # 902 - ПАО Сбербанк # 778 - Газпромбанк # 601 + - ВТБ # 456 - Альфа-Банк # 456 - - ВТБ # 454 - Санкт-Петербург # 338 - - ВТБ24 # 327 + - ВТБ24 # 326 - Банк ВТБ (ПАО) # 325 - Росбанк # 232 - '"ОАО ""Сбербанк России"""' # 217 - - Россельхозбанк # 195 + - Россельхозбанк # 196 - Балтийский банк # 171 - Ак Барс Банк # 166 - Уралсиб # 158 - - ВТБ 24 # 134 - Банк Москвы # 134 + - ВТБ 24 # 133 - МДМ Банк # 132 - ТрансКредитБанк # 129 - АК БАРС БАНК # 121 @@ -4580,8 +4581,8 @@ RU: - Экспресс-волга банк # 22 - СКБ-банк # 22 - МКБ # 22 + - Совкомбанк # 21 - '"ПАО Банк ""ФК Открытие"""' # 21 - - Совкомбанк # 20 - Райффайзен банк # 20 - Банк Зенит # 20 - Аккобанк # 20 @@ -4692,7 +4693,7 @@ SD: - Faisal Islamic Bank ATM # 2 - Faisal Islamic Bank # 2 SE: - - Swedbank # 99 + - Swedbank # 98 - Bankomat AB # 57 - Nordea # 54 - SEB # 39 @@ -5078,17 +5079,17 @@ TZ: - Exim Bank # 2 - Barclays Bank # 2 UA: - - ПриватБанк # 1555 - - Альфа-Банк # 731 - - Ощадбанк # 308 + - ПриватБанк # 1553 + - Альфа-Банк # 730 + - Ощадбанк # 307 - Приватбанк # 273 - - Райффайзен Банк Аваль # 248 + - Райффайзен Банк Аваль # 249 - УкрСиббанк # 108 - Укрсиббанк # 71 - ПУМБ # 65 - Аваль # 52 - Укрексімбанк # 51 - - Укргазбанк # 45 + - Укргазбанк # 47 - Кредобанк # 45 - Укрсоцбанк # 33 - Privatbank # 32 @@ -5149,7 +5150,7 @@ UA-40: - Банк ЧБРР # 2 UA-43: - Генбанк # 354 - - РНКБ # 289 + - РНКБ # 290 - АБ Россия # 31 - Севастопольский Морской Банк # 17 - Крайинвестбанк # 16 @@ -5416,7 +5417,7 @@ US-MA: - Citizens Bank # 6 - Chase # 5 - Bank Of America # 5 - - Santander # 3 + - Santander # 4 - Florence Savings Bank # 3 - Sovereign Bank # 2 - Eastern Bank # 2 @@ -5435,10 +5436,10 @@ US-MI: - MSUFCU # 29 - Chase # 11 - Bank of America # 5 + - PNC Bank # 4 - Michigan State Federal Credit Union # 4 - MSU Federal Credit Union # 4 - Fifth Third Bank # 4 - - PNC Bank # 3 - Michigan Tech Employees Federal Credit Union # 3 - Michigan State University Federal Credit Union # 3 - Wells Fargo # 2 diff --git a/res/country_metadata/chargingStationOperators.yml b/res/country_metadata/chargingStationOperators.yml index aedad8b0a9..4f289c7256 100644 --- a/res/country_metadata/chargingStationOperators.yml +++ b/res/country_metadata/chargingStationOperators.yml @@ -135,7 +135,7 @@ AX: BA: - City # 2 BE: - - Allego # 112 + - Allego # 113 - Blue Corner # 28 - Ionity # 12 - allego # 9 @@ -148,6 +148,7 @@ BE: - Colruyt # 4 - Bluecorner # 4 - smoov allego # 3 + - Lidl # 3 - BlueCorner # 3 - smoov # 2 - charge.brussels # 2 @@ -156,11 +157,11 @@ BE: - Pitpoint Brussels # 2 - Partago # 2 - ORES # 2 - - Lidl # 2 - Eoly # 2 - EV-Box # 2 - De Lijn # 2 - BlueConnect # 2 + - Audi # 2 - Allegro # 2 BG: - ОП „Общински паркинги и синя зона“ - Варна # 7 @@ -186,9 +187,9 @@ BY: - Беларуснафта # 2 - Eleven # 2 CA-BC: - - Flo # 8 + - Flo # 11 + - ChargePoint # 5 - BC Hydro # 5 - - ChargePoint # 4 - Tesla # 3 - Chargepoint # 3 - City of Maple Ridge / ChargePoint # 2 @@ -214,7 +215,7 @@ CA-ON: - Bingemans # 2 - Bank of Nova Scotia # 2 CA-PE: - - Flo # 2 + - Flo # 3 - Delta Prince Edward # 2 CA-QC: - Le Circuit Électrique # 48 @@ -265,6 +266,7 @@ CH: - greenmotion # 3 - ewl # 3 - evpass.ch # 3 + - energie360° # 3 - eCarup # 3 - Renault # 3 - Raiffeisen # 3 @@ -283,7 +285,6 @@ CH: - groupe e # 2 - groupe # 2 - ewz # 2 - - energie360° # 2 - elmoove # 2 - ee-en.ch # 2 - eCarUp # 2 @@ -342,7 +343,7 @@ CO: CR: - Estación de Recarga # 3 CZ: - - ČEZ # 68 + - ČEZ # 69 - ČEZ (CCS/CHAdeMO/Mennekes type2) # 38 - PRE # 26 - EVMAPA # 16 @@ -366,25 +367,25 @@ CZ: - InChaNet # 2 - EVmapa (Mennekes type 2) # 2 DE: - - Stromnetz Hamburg # 502 + - Stromnetz Hamburg # 503 - Stadtwerke München # 377 - EnBW # 347 - innogy # 194 - RWE # 156 - Allego # 110 - - allego # 84 + - allego # 85 - RWE-Effizienz # 79 - Innogy # 75 - E-WALD GmbH # 72 - LEW # 57 - - EWE # 55 + - EWE # 56 - SWU Stadtwerke Ulm/Neu-Ulm GmbH # 50 - Tesla # 46 - EnBW Energie Baden-Württemberg AG # 46 - be emobil # 45 - NEW # 45 - Kaufland # 45 - - Lidl # 43 + - Lidl # 44 - Tank & Rast # 40 - e-regio GmbH & Co. KG # 37 - Vattenfall # 32 @@ -396,7 +397,7 @@ DE: - Tesla Motors Inc. # 31 - E.ON # 31 - Tesla Motors # 30 - - FairEnergie GmbH # 29 + - FairEnergie GmbH # 30 - ENSO Energie Sachsen Ost AG # 29 - DREWAG - Stadtwerke Dresden GmbH # 29 - Aldi Süd # 29 @@ -411,9 +412,9 @@ DE: - E-Werk Mittelbaden # 23 - Stadtwerke Leipzig # 22 - Mainova # 22 + - Energie Baden-Württemberg AG # 22 - innogy eMobility Solutions GmbH # 21 - IKEA # 21 - - Energie Baden-Württemberg AG # 21 - Stadtwerke Osnabrück # 20 - RheinEnergie # 20 - Kreiswerke Main-Kinzig GmbH # 20 @@ -423,27 +424,27 @@ DE: - wallbe # 19 - Stadtwerke Witten # 19 - Regensburger Energie- und Wasserversorgung AG & Co KG # 19 + - Fastned # 19 - eins energie in sachsen # 18 - Stadtwerke Düsseldorf # 18 - NewMotion # 18 - envia M # 17 - - eE4mobile eG # 17 + - Stadtwerke Bielefeld # 17 - STAWAG # 17 - - Fastned # 17 - EWR # 17 - enviaM # 16 + - eE4mobile eG # 16 - Stadtwerke Tübingen # 16 - Stadtwerke Speyer GmbH # 16 - ladenetz.de # 15 - TheNewMotion # 15 - - Stadtwerke Bielefeld # 15 + - SWB # 15 - Edeka # 15 - Bauhaus # 15 - Süwag Energie AG # 14 - Stawag # 14 - Stadtwerke Marburg # 14 - Stadtwerke Bochum # 14 - - SWB # 14 - Porsche # 14 - DREWAG - Stadtwerke Dresden # 14 - Bayernwerk AG # 14 @@ -497,6 +498,7 @@ DE: - enercity # 9 - emma # 9 - SÜC Energie und H2O GmbH # 9 + - Stadtwerke Göttingen # 9 - Stadtwerke Baden-Baden # 9 - RWE / DEW21 # 9 - Pfalzwerke AG # 9 @@ -592,12 +594,12 @@ FI: - Helsingin Energia # 2 - Charge&Drive # 2 FX: - - Bouygues Énergies et Services # 841 + - Bouygues Énergies et Services # 843 - Izivia # 591 - Freshmile # 401 - Clem # 124 - Sodetrel Mobilité # 115 - - Mouv Élec Var # 110 + - Mouv Élec Var # 111 - Sodetrel # 101 - SEDI # 97 - EneRSIEIL # 95 @@ -610,8 +612,8 @@ FX: - Tesla Motors # 67 - SIPLEC # 61 - SYME05 # 56 + - Ionity # 55 - Séolis # 51 - - Ionity # 51 - Morbihan énergies # 44 - SEY 78 # 43 - Renault # 40 @@ -664,7 +666,7 @@ FX: - CAPP # 5 GB: - Ecotricity # 69 - - Source London # 47 + - Source London # 48 - Pod Point # 34 - Tesla Motors Inc. # 27 - Tesla # 25 @@ -826,8 +828,8 @@ IS: - Ísorka # 2 - Orka Náttúrunnar # 2 IT: - - Enel # 194 - - Enel X # 161 + - Enel # 198 + - Enel X # 162 - a2a # 26 - Alperia # 24 - ENEL # 21 @@ -838,24 +840,26 @@ IT: - Evway # 12 - ENEL X # 12 - Hera / AcegasApsAmga # 10 + - Enel-X # 9 - Duferco # 8 - BlueTorino # 8 - A22 # 8 - Tesla # 7 - Etraction # 7 - SEMM # 6 - - Enel-X # 6 - ENEL drive # 6 - Enel Drive # 5 - Comune di Firenze # 5 - A2A # 5 - enel # 4 + - Regione Umbria # 4 - Lidl # 4 - Iren # 4 - Enel Distribuzione # 4 - Emobitaly # 4 - E-Moving # 4 - Duferco Energia # 4 + - ASM Terni # 4 - enelx # 3 - enel X # 3 - alperia # 3 @@ -866,6 +870,7 @@ IT: - EVBOX # 3 - EVAD # 3 - ENI # 3 + - E-motion # 3 - DriWe # 3 - Atac # 3 - Amag # 3 @@ -876,6 +881,7 @@ IT: - SCAME # 2 - Repower # 2 - LIDL # 2 + - Ionity # 2 - Enel spa # 2 - Enel X # 2 - ECO fuel # 2 @@ -883,6 +889,7 @@ IT: - Comune di Albiate # 2 - Charge&Go # 2 - COGESER # 2 + - BeCharge # 2 - AcegasApsAmga # 2 - ATAC # 2 JP: @@ -912,14 +919,14 @@ LV: MK: - EVN # 16 MX: - - Servicio de Transportes Eléctricos de la Ciudad de México # 2 + - Servicio de Transportes Eléctricos de la Ciudad de México # 3 NL: - - Allego # 176 + - Allego # 179 - NUON # 98 - Fastned # 95 - Nuon # 71 - EVBOX # 24 - - Ecotap # 19 + - Ecotap # 20 - Vattenfall # 18 - NewMotion # 16 - EVnetNL # 16 @@ -981,7 +988,7 @@ NL: NO: - Fortum # 297 - Grønn Kontakt # 182 - - Oslo kommune # 167 + - Oslo kommune # 166 - BKK # 56 - Grønn kontakt # 43 - Q-Park # 28 @@ -1252,7 +1259,7 @@ SK: - EvMapa # 2 - BMW T.O.B. # 2 TR: - - SHARZ # 135 + - SHARZ # 134 - VOLTRUN # 28 - ZES # 21 - Sharz # 7 @@ -1274,11 +1281,12 @@ UA: - АвтоЭнтерпрайз # 11 - ЕлектроДрайв # 9 - Autoenterprise # 9 - - AutoEnterprise # 8 + - AutoEnterprise # 9 - Yasno # 6 - ElectroUA # 6 - Автоэнтерпрайз # 5 - Автоентерпрайз # 4 + - Silver Fox Energy # 3 - Electro UA # 3 - AutoEnterprise 201 # 3 - АвтоЕнтерпрайз # 2 @@ -1381,8 +1389,8 @@ US-MD: US-ME: - Tesla Motors # 5 US-MI: - - Tesla Motors # 14 - Michigan State University # 12 + - Tesla Motors # 8 - Consumers Energy # 6 - NRG Energy # 3 - Lansing Board of Water and Light # 3 diff --git a/res/country_metadata/clothesContainerOperators.yml b/res/country_metadata/clothesContainerOperators.yml index df7f596153..80aceced1e 100644 --- a/res/country_metadata/clothesContainerOperators.yml +++ b/res/country_metadata/clothesContainerOperators.yml @@ -94,8 +94,8 @@ DE: - GEB # 114 - ALBA Braunschweig GmbH # 106 - Humana # 104 + - Malteser # 98 - Stadtreinigung Hamburg # 97 - - Malteser # 97 - Stadt Karlsruhe # 70 - AHE;Deutsches Rotes Kreuz # 64 - Abfallwirtschaftsgesellschaft Wuppertal # 54 @@ -118,24 +118,25 @@ DE: - Step # 23 - Malteser Hilfsdienst e.V. # 22 - Landkreis Prignitz # 22 - - Berlin-Textilrecycling # 21 - Remondis # 20 - Malteser Hilfsdienst # 20 - FWS # 20 - CityGreenPoint # 20 + - Berlin-Textilrecycling # 20 - aha Zweckverband Abfallwirtschaft Region Hannover # 19 - Stadt Stuttgart # 19 - TEXAID # 18 + - Bayerisches Rotes Kreuz # 17 - Aktex Rohstoff-Recycling Nord # 17 - Diakoniewerk Essen # 16 - - Bayerisches Rotes Kreuz # 16 + - Abfall- und Wertstofflogistik Neuss GmbH (AWL) # 15 - Retextil Recycling International # 14 - - Abfall- und Wertstofflogistik Neuss GmbH (AWL) # 14 - Isevtex # 13 - AWISTA # 13 - AHG alpha Handelskontor # 13 - AHA # 13 - unknown # 12 + - ZKE # 12 - Veolia # 12 - Kolpingwerk # 12 - HeDi # 12 @@ -143,20 +144,20 @@ DE: - DRK Kreisverband Bonn e.V. # 12 - Brotex # 12 - AWM # 12 - - ZKE # 11 - Däsa Wiederverwertungs GmbH # 11 - Altkleiderfirma Nargül # 11 - illegal # 10 - Textil-Recycling Nord # 10 - RS # 10 - Kolping Recycling GmbH # 10 + - Deutsches Rotes Kreuz e.V. # 10 - TEXAID Deutschland GmbH # 9 - Stadt Karlsruhe Amt für Abfallwirtschaft # 9 - - Deutsches Rotes Kreuz e.V. # 9 - DRK-Kreisverband Trier-Saarburg e.V. # 9 - Bera Textilrecycling # 9 - Baliz Textilwerke # 9 - Akza Textilrecycling # 9 + - SP Textilverwertung # 8 - Neue Arbeit Lahr # 8 - Hoppe # 8 - HUMANA Kleidersammlung GmbH # 8 @@ -165,8 +166,8 @@ DE: - AWISTA GmbH # 8 - AHE;Deutsches Rotes Kreuz;Ruhrtalengel # 8 - aha # 7 + - TEXAID Collection GmbH # 7 - TEXAID Collection # 7 - - SP Textilverwertung # 7 - Retextil # 7 - Maltheser Hilfsdienst # 7 - Johanniter # 7 @@ -174,7 +175,6 @@ DE: - Diakonisches Werk Kassel # 7 - Deutsche Lebens-Rettungs-Gesellschaft e.V. # 7 - DESWOS # 7 - - TEXAID Collection GmbH # 6 - Stadtreinigung Leipzig # 6 - SOEX # 6 - Haytex Textilrecycling # 6 @@ -227,13 +227,13 @@ FI: - Suomen Pakkauskierrätys RINKI Oy # 2 - Auringonnousu # 2 FX: - - Le Relais # 649 + - Le Relais # 650 - Toulouse Métropole # 231 - AMOS # 33 - Actifrip # 25 - Chrysalide Ressourcerie # 24 - CCPRO # 21 - - Solidarité Textiles # 17 + - Solidarité Textiles # 18 - Eco-Emballages # 17 - Next Textiles Association # 11 - SITCOM - Côte sud des Landes # 10 @@ -287,7 +287,7 @@ GB: - Salvation Army # 12 - The Fire Fighters Charity # 9 - Brighton & Hove City Council # 9 - - The Salvation Army # 6 + - The Salvation Army # 7 - British Heart Foundation # 6 - Scope # 5 - Rushcliffe Borough Council # 5 @@ -297,6 +297,7 @@ GB: - South Norfolk Council # 3 - Cancer Fund for Children # 3 - traid # 2 + - The Firefighters Charity # 2 - TRAID # 2 - Severn Waste Services # 2 - Oxfam # 2