/* * Since the Seamark tagging scheme is quite complicated, and prone of entering data wrongly, the need for data validation is strong * * This validator is meant to identify clearly wrong tagging. Border values where doubt whether can be positive or negative is avoided * in order not to generate false-negatives or false-positives. * * Any short-comings to this validator can be reported as an issue on https://github.com/OpenNauticalChart/josm/issues */ meta { title: "Seamark Validation Rules"; version: "0.1"; description: "Rules to give warning when tagging of seamarks are not in accordance with standards in the data model"; author: "Aun (Skippern) Johnsen"; link: "https://wiki.openstreetmap.org/wiki/Seamarks/Seamark_Objects"; watch-modified: true; } /* Multi-colour buoys and beacons without colour_pattern */ node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:color"*=";"][!"seamark:buoy_lateral:colour_pattern"], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:color"*=";"][!"seamark:beacon_lateral:colour_pattern"], node["seamark:type"=buoy_cardinal]["seamark:buoy_cardinal:color"*=";"][!"seamark:buoy_cardinal:colour_pattern"], node["seamark:type"=beacon_cardinal]["seamark:beacon_cardinal:color"*=";"][!"seamark:beacon_cardinal:colour_pattern"], node["seamark:type"=buoy_isolated_danger]["seamark:buoy_isolated_danger:color"*=";"][!"seamark:buoy_isolated_danger:colour_pattern"], node["seamark:type"=beacon_isolated_danger]["seamark:beacon_isolated_danger:color"*=";"][!"seamark:beacon_isolated_danger:colour_pattern"], node["seamark:type"=buoy_safe_water]["seamark:buoy_safe_water:color"*=";"][!"seamark:buoy_safe_water:colour_pattern"], node["seamark:type"=beacon_special_purpose]["seamark:beacon_special_purpose:color"*=";"][!"seamark:beacon_special_purpose:colour_pattern"] { throwWarning: tr("Multi-colour {0} without {1}", "{0.value}", "{2.key}"); } /* Unrecognized colour_pattern (might be a reason for non-standard colour patterns so we don't check that, just making sure that one of the * defined patterns are used */ node["seamark:buoy_lateral:colour_pattern"]["seamark:buoy_lateral:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:beacon_lateral:colour_pattern"]["seamark:beacon_lateral:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:buoy_cardinal:colour_pattern"]["seamark:buoy_cardinal:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:beacon_cardinal:colour_pattern"]["seamark:beacon_cardinal:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:buoy_isolated_danger:colour_pattern"]["seamark:buoy_isolated_danger:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:beacon_isolated_danger:colour_pattern"]["seamark:beacon_isolated_danger:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:buoy_installation:colour_pattern"]["seamark:buoy_installation:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:buoy_safe_water:colour_pattern"]["seamark:buoy_safe_water:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:beacon_safe_water:colour_pattern"]["seamark:beacon_safe_water:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:buoy_special_purpose:colour_pattern"]["seamark:buoy_special_purpose:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:beacon_special_purpose:colour_pattern"]["seamark:beacon_special_purpose:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:topmark:colour_pattern"]["seamark:topmark:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:daymark:colour_pattern"]["seamark:daymark:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:bridge:colour_pattern"]["seamark:bridge:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:building:colour_pattern"]["seamark:building:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:landmark:colour_pattern"]["seamark:landmark:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:light_float:colour_pattern"]["seamark:light_float:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:light_vessel:colour_pattern"]["seamark:light_vessel:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:notice:colour_pattern"]["seamark:notice:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:pile:colour_pattern"]["seamark:pile:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:platform:colour_pattern"]["seamark:platform:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/], node["seamark:mooring:colour_pattern"]["seamark:mooring:colour_pattern"!~/horizontal|vertical|diagonal|squared|stripes|border|cross|saltire/] { throwWarning: tr("Unrecognized {0}: {1}", "{0.key}", "{0.value}"); } /* Lateral mark without IALA-system */ node["seamark:type"=buoy_lateral][!"seamark:buoy_lateral:system"], node["seamark:type"=beacon_lateral][!"seamark:beacon_lateral:system"] { throwWarning: tr("{0} have no IALA or system defind ({1})", "{0.value}", "{1.key}"); } /* Wrong category/color combination on lateral marks */ node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-a]["seamark:buoy_lateral:colour"=red]["seamark:buoy_lateral:category"!=port], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-a]["seamark:beacon_lateral:colour"=red]["seamark:beacon_lateral:category"!=port], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-a]["seamark:buoy_lateral:colour"=green]["seamark:buoy_lateral:category"!=starboard], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-a]["seamark:buoy_lateral:colour"=green]["seamark:beacon_lateral:category"!=starboard], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-a]["seamark:buoy_lateral:colour"="green;red;green"]["seamark:buoy_lateral:category"!=preferred_channel_port], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-a]["seamark:beacon_lateral:colour"="green;red;green"]["seamark:beacon_lateral:category"!=preferred_channel_port], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-b]["seamark:buoy_lateral:colour"="green;red;green"]["seamark:buoy_lateral:category"!=preferred_channel_starboard], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-b]["seamark:beacon_lateral:colour"="green;red;green"]["seamark:beacon_lateral:category"!=preferred_channel_starbord], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-b]["seamark:buoy_lateral:colour"="red;green;red"]["seamark:buoy_lateral:category"!=preferred_channel_port], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-b]["seamark:beacon_lateral:colour"="red;green;red"]["seamark:beacon_lateral:category"!=preferred_channel_port], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-a]["seamark:buoy_lateral:colour"="red;green;red"]["seamark:buoy_lateral:category"!=preferred_channel_starboard], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-a]["seamark:beacon_lateral:colour"="red;green;red"]["seamark:beacon_lateral:category"!=preferred_channel_starboard], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-b]["seamark:buoy_lateral:colour"=green]["seamark:buoy_lateral:category"!=port], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-b]["seamark:beacon_lateral:colour"=green]["seamark:beacon_lateral:category"!=port], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=iala-b]["seamark:buoy_lateral:colour"=red]["seamark:buoy_lateral:category"!=starboard], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=iala-b]["seamark:buoy_lateral:colour"=red]["seamark:beacon_lateral:category"!=starboard], /* CEVNI buoys */ node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"=green]["seamark:buoy_lateral:category"!~/starboard|waterway_left|channel_left/], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"=red]["seamark:buoy_lateral:category"!~/port|waterway_right|channel_right/], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="red;green;red;green"]["seamark:buoy_lateral:category"!~/preferred_channel_starboard|preferred_channel_port|waterway_separation|channel_separation/], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="red;green;red"]["seamark:buoy_lateral:category"!~/preferred_channel_starboard|turnoff_right/], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="green;red;green"]["seamark:buoy_lateral:category"!~/preferred_channel_port|turnoff_left/], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="red;white;red;white"]["seamark:buoy_lateral:category"!=danger_right], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="green;white;green;white"]["seamark:buoy_lateral:category"!=danger_left], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="white;red"]["seamark:buoy_lateral:category"!=turnoff_right], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="white;green"]["seamark:buoy_lateral:category"!=turnoff_left], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="red;white;red"]["seamark:buoy_lateral:category"!=junction_right], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="green;white;green"]["seamark:buoy_lateral:category"!=junction_left], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="red;white"]["seamark:buoy_lateral:category"!=harbour_right], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"="green;white"]["seamark:buoy_lateral:category"!=harbour_left], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"=yellow]["seamark:buoy_lateral:category"!=harbour_right]["seamark:topmark:colour"=red], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"=yellow]["seamark:buoy_lateral:category"!=harbour_left]["seamark:topmark:colour"=green], node["seamark:type"=buoy_lateral]["seamark:buoy_lateral:system"=cevni]["seamark:buoy_lateral:colour"=yellow]["seamark:buoy_lateral:category"!=bridge_pier][!"seamark:topmark:colour"], /* CEVNI beacons */ node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"=green]["seamark:beacon_lateral:category"!~/starboard|waterway_left|channel_left/], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"=red]["seamark:beacon_lateral:category"!~/port|waterway_right|channel_right/], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="red;green;red;green"]["seamark:beacon_lateral:category"!~/preferred_channel_starboard|preferred_channel_port|waterway_separation|channel_separation/], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="red;green;red"]["seamark:beacon_lateral:category"!~/preferred_channel_starboard|turnoff_right/], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="green;red;green"]["seamark:beacon_lateral:category"!~/preferred_channel_port|turnoff_left/], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="red;white;red;white"]["seamark:beacon_lateral:category"!=danger_right], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="green;white;green;white"]["seamark:beacon_lateral:category"!=danger_left], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="white;red"]["seamark:beacon_lateral:category"!=turnoff_right], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="white;green"]["seamark:beacon_lateral:category"!=turnoff_left], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="red;white;red"]["seamark:beacon_lateral:category"!=junction_right], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="green;white;green"]["seamark:beacon_lateral:category"!=junction_left], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="red;white"]["seamark:beacon_lateral:category"!=harbour_right], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"="green;white"]["seamark:beacon_lateral:category"!=harbour_left], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"=yellow]["seamark:beacon_lateral:category"!=harbour_right]["seamark:topmark:colour"=red], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"=yellow]["seamark:beacon_lateral:category"!=harbour_left]["seamark:topmark:colour"=green], node["seamark:type"=beacon_lateral]["seamark:beacon_lateral:system"=cevni]["seamark:beacon_lateral:colour"=yellow]["seamark:beacon_lateral:category"!=bridge_pier][!"seamark:topmark:colour"] { throwWarning: tr("Probably wrong category on {0}, {1} colour mean {2} in {3}", "{0.value}", "{2.value}", "{3.value}", "{1.value}"); } /* Cardinal Marks */ node["seamark:type"=buoy_cardinal]["seamark:buoy_cardinal:colour"="black;yellow"]["seamark:buoy_cardinal:category"!=north], node["seamark:type"=beacon_cardinal]["seamark:beacon:cardinal:colour"="black;yellow"]["seamark:beacon_cardinal:category"!=north], node["seamark:type"=buoy_cardinal]["seamark:buoy_cardinal:colour"="black;yellow;black"]["seamark:buoy_cardinal:category"!=east], node["seamark:type"=beacon_cardinal]["seamark:beacon:cardinal:colour"="black;yellow;black"]["seamark:beacon_cardinal:category"!=east], node["seamark:type"=buoy_cardinal]["seamark:buoy_cardinal:colour"="yellow;black"]["seamark:buoy_cardinal:category"!=south], node["seamark:type"=beacon_cardinal]["seamark:beacon:cardinal:colour"="yellow;black"]["seamark:beacon_cardinal:category"!=south], node["seamark:type"=buoy_cardinal]["seamark:buoy_cardinal:colour"="yellow;black;yellow"]["seamark:buoy_cardinal:category"!=west], node["seamark:type"=beacon_cardinal]["seamark:beacon:cardinal:colour"="yellow;black;yellow"]["seamark:beacon_cardinal:category"!=west] { throwWarning: tr("Probably wrong category on {0}, the colour combination {1} usually mean {2}", "{0.value}", "{1.value}", "{2.value}"); } node["seamark:type"=wreck][!"seamark:wreck:category"] { throwWarning: tr("{0} have no {1}", "{0.value}", "{1.key}"); } node["seamark:wreck:category"]["seamark:type"!=wreck] { throwWarning: tr("{0} set without {1}={2}", "{0.key}", "{1.key}", "{1.value}"); } node["seamark:type"=rock][!"seamark:rock:water_level"] { throwWarning: tr("{0} without {1}", "{0.value}", "{1.key}"); } node["seamark:notice:category"][!"seamark:notice:system"], node["seamark:notice:1:category"][!"seamark:notice:1:system"], node["seamark:notice:2:category"][!"seamark:notice:2:system"], node["seamark:notice:3:category"][!"seamark:notice:3:system"], node["seamark:notice:4:category"][!"seamark:notice:4:system"], node["seamark:notice:5:category"][!"seamark:notice:5:system"], node["seamark:notice:6:category"][!"seamark:notice:6:system"], node["seamark:notice:7:category"][!"seamark:notice:7:system"], node["seamark:notice:8:category"][!"seamark:notice:8:system"], node["seamark:notice:9:category"][!"seamark:notice:9:system"] { throwWarning: tr("{0} without {1}", "{0.key}", "{1.key}"); } node["seamark:notice:system"=cevni]["seamark:notice:function"!=prohibition]["seamark:notice:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:1:system"=cevni]["seamark:notice:1:function"!=prohibition]["seamark:notice:1:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:2:system"=cevni]["seamark:notice:2:function"!=prohibition]["seamark:notice:2:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:3:system"=cevni]["seamark:notice:3:function"!=prohibition]["seamark:notice:3:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:4:system"=cevni]["seamark:notice:4:function"!=prohibition]["seamark:notice:4:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:5:system"=cevni]["seamark:notice:5:function"!=prohibition]["seamark:notice:5:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:6:system"=cevni]["seamark:notice:6:function"!=prohibition]["seamark:notice:6:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:7:system"=cevni]["seamark:notice:7:function"!=prohibition]["seamark:notice:7:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:8:system"=cevni]["seamark:notice:8:function"!=prohibition]["seamark:notice:8:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:9:system"=cevni]["seamark:notice:9:function"!=prohibition]["seamark:notice:9:category"=~/no_entry|closed_area|no_overtaking|no_convoy_overtaking|no_passing|no_convoy_passing|no_berthing|no_berthing_lateral_limit|no_anchoring|no_mooring|no_turning|no_wash|no_passage_left|no_passage_right|no_motor_craft|no_sport_craft|no_waterskiing|no_sailing_craft|no_unpowered_craft|no_sailboards|no_high_speeds|no_launching_beaching|no_waterbikes/], node["seamark:notice:system"=cevni]["seamark:notice:function"!=regulation]["seamark:notice:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:1:system"=cevni]["seamark:notice:1:function"!=regulation]["seamark:notice:1:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:2:system"=cevni]["seamark:notice:2:function"!=regulation]["seamark:notice:2:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:3:system"=cevni]["seamark:notice:3:function"!=regulation]["seamark:notice:3:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:4:system"=cevni]["seamark:notice:4:function"!=regulation]["seamark:notice:4:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:5:system"=cevni]["seamark:notice:5:function"!=regulation]["seamark:notice:5:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:6:system"=cevni]["seamark:notice:6:function"!=regulation]["seamark:notice:6:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:7:system"=cevni]["seamark:notice:7:function"!=regulation]["seamark:notice:7:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:8:system"=cevni]["seamark:notice:8:function"!=regulation]["seamark:notice:8:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:9:system"=cevni]["seamark:notice:9:function"!=regulation]["seamark:notice:9:category"=~/move_to_left|move_to_right|move_to_port|move_to_starboard|keep_to_port|keep_to_starboard|cross_to_port|cross_to_starboard|stop|speed_limit|sound_horn|keep_lookout|give_way_junction|give_way_crossing|make_radio_contact/], node["seamark:notice:system"=cevni]["seamark:notice:function"!=restriction]["seamark:notice:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:1:system"=cevni]["seamark:notice:1:function"!=restriction]["seamark:notice:1:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:2:system"=cevni]["seamark:notice:2:function"!=restriction]["seamark:notice:2:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:3:system"=cevni]["seamark:notice:3:function"!=restriction]["seamark:notice:3:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:4:system"=cevni]["seamark:notice:4:function"!=restriction]["seamark:notice:4:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:5:system"=cevni]["seamark:notice:5:function"!=restriction]["seamark:notice:5:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:6:system"=cevni]["seamark:notice:6:function"!=restriction]["seamark:notice:6:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:7:system"=cevni]["seamark:notice:7:function"!=restriction]["seamark:notice:7:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:8:system"=cevni]["seamark:notice:8:function"!=restriction]["seamark:notice:8:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:9:system"=cevni]["seamark:notice:9:function"!=restriction]["seamark:notice:9:category"=~/limited_depth|limited_headroom|limited_width|navigation_restrictions|channel_distance_left|channel_distance_right/], node["seamark:notice:system"=cevni]["seamark:notice:function"!=recommendation]["seamark:notice:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:1:system"=cevni]["seamark:notice:1:function"!=recommendation]["seamark:notice:1:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:2:system"=cevni]["seamark:notice:2:function"!=recommendation]["seamark:notice:2:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:3:system"=cevni]["seamark:notice:3:function"!=recommendation]["seamark:notice:3:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:4:system"=cevni]["seamark:notice:4:function"!=recommendation]["seamark:notice:4:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:5:system"=cevni]["seamark:notice:5:function"!=recommendation]["seamark:notice:5:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:6:system"=cevni]["seamark:notice:6:function"!=recommendation]["seamark:notice:6:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:7:system"=cevni]["seamark:notice:7:function"!=recommendation]["seamark:notice:7:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:8:system"=cevni]["seamark:notice:8:function"!=recommendation]["seamark:notice:8:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:9:system"=cevni]["seamark:notice:9:function"!=recommendation]["seamark:notice:9:category"=~/channel_two_way|channel_one_way|opening_to_right|opening_to_left|proceed_to_left|proceed_to_right/], node["seamark:notice:system"=cevni]["seamark:notice:function"!=information]["seamark:notice:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:1:system"=cevni]["seamark:notice:1:function"!=information]["seamark:notice:1:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:2:system"=cevni]["seamark:notice:2:function"!=information]["seamark:notice:2:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:3:system"=cevni]["seamark:notice:3:function"!=information]["seamark:notice:3:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:4:system"=cevni]["seamark:notice:4:function"!=information]["seamark:notice:4:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:5:system"=cevni]["seamark:notice:5:function"!=information]["seamark:notice:5:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:6:system"=cevni]["seamark:notice:6:function"!=information]["seamark:notice:6:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:7:system"=cevni]["seamark:notice:7:function"!=information]["seamark:notice:7:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:8:system"=cevni]["seamark:notice:8:function"!=information]["seamark:notice:8:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:9:system"=cevni]["seamark:notice:9:function"!=information]["seamark:notice:9:category"=~/entry_permitted|overhead_cable|weir|ferry_non_independent|ferry_independent|berthing_permitted|berthing_lateral_limits|berthing_rafting_limit|berthing_unmarked_pushing|berthing_marked_pushing_1|berthing_marked_pushing_2|berthing_marked_pushing_3|berthing_unmarked_non_pushing|berthing_marked_non_pushing_1|berthing_marked_non_pushing_2|berthing_marked_non_pushing_3|berthing_unmarked|berthing_marked_1|berthing_marked_2|berthing_marked_3|anchoring_permitted|mooring_permitted|vehicle_loading_berth|turning_area|secondary_waterway_crossing|secondary_waterway_right|secondary_waterway_left|main_waterway_right_secondary_ahead|main_waterway_left_secondary_ahead|main_waterway_right_secondary_left|main_waterway_left_secondary_right|main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|main_waterway_crossing|main_waterway_junction|main_waterway_ahead_right|main_waterway_ahead_left|main_waterway_ahead_right_secondary_left|main_waterway_ahead_left_secondary_right|prohibition_ends|drinking_water|telephone|motor_craft_permitted|sport_craft_permitted|waterskiing_permitted|sailing_craft_permitted|unpowered_craft_permitted|sailboards_permitted|high_speeds_permitted|launching_beaching_permitted|radio_information|waterbikes_permitted/], node["seamark:notice:1:system"=cevni]["seamark:notice:1:function"!=information]["seamark:notice:1:category"="berthing_lateral_limit"], node["seamark:notice:2:system"=cevni]["seamark:notice:2:function"!=information]["seamark:notice:2:category"="berthing_lateral_limit"], node["seamark:notice:3:system"=cevni]["seamark:notice:3:function"!=information]["seamark:notice:3:category"="berthing_lateral_limit"], node["seamark:notice:4:system"=cevni]["seamark:notice:4:function"!=information]["seamark:notice:4:category"="berthing_lateral_limit"], node["seamark:notice:5:system"=cevni]["seamark:notice:5:function"!=information]["seamark:notice:5:category"="berthing_lateral_limit"], node["seamark:notice:6:system"=cevni]["seamark:notice:6:function"!=information]["seamark:notice:6:category"="berthing_lateral_limit"], node["seamark:notice:7:system"=cevni]["seamark:notice:7:function"!=information]["seamark:notice:7:category"="berthing_lateral_limit"], node["seamark:notice:8:system"=cevni]["seamark:notice:8:function"!=information]["seamark:notice:8:category"="berthing_lateral_limit"], node["seamark:notice:9:system"=cevni]["seamark:notice:9:function"!=information]["seamark:notice:9:category"="berthing_lateral_limit"], node["seamark:notice:system"=bniwr]["seamark:notice:system"!=prohibition]["seamark:notice:category"=~/no_anchoring/], node["seamark:notice:system"=bniwr2]["seamark:notice:system"!=prohibition]["seamark:notice:category"=~/no_anchoring/], node["seamark:notice:1:system"=bniwr]["seamark:notice:1:system"!=prohibition]["seamark:notice:1:category"=~/no_anchoring/], node["seamark:notice:1:system"=bniwr2]["seamark:notice:1:system"!=prohibition]["seamark:notice:1:category"=~/no_anchoring/], node["seamark:notice:2:system"=bniwr]["seamark:notice:2:system"!=prohibition]["seamark:notice:2:category"=~/no_anchoring/], node["seamark:notice:2:system"=bniwr2]["seamark:notice:2:system"!=prohibition]["seamark:notice:2:category"=~/no_anchoring/], node["seamark:notice:system"=bniwr]["seamark:notice:system"!=regulation]["seamark:notice:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid|cross_river_to_port|cross_river_to_starboard|reduce_speed/], node["seamark:notice:system"=bniwr2]["seamark:notice:system"!=regulation]["seamark:notice:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid|cross_river_to_port|cross_river_to_starboard|reduce_speed/], node["seamark:notice:1:system"=bniwr]["seamark:notice:1:system"!=regulation]["seamark:notice:1:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid|cross_river_to_port|cross_river_to_starboard|reduce_speed/], node["seamark:notice:1:system"=bniwr2]["seamark:notice:1:system"!=regulation]["seamark:notice:1:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid|cross_river_to_port|cross_river_to_starboard|reduce_speed/], node["seamark:notice:2:system"=bniwr]["seamark:notice:2:system"!=regulation]["seamark:notice:2:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid|cross_river_to_port|cross_river_to_starboard|reduce_speed/], node["seamark:notice:2:system"=bniwr2]["seamark:notice:2:system"!=regulation]["seamark:notice:2:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid|cross_river_to_port|cross_river_to_starboard|reduce_speed/], node["seamark:notice:system"=bniwr]["seamark:notice:system"!=restriction]["seamark:notice:category"=~/limited_headroom/], node["seamark:notice:system"=bniwr2]["seamark:notice:system"!=restriction]["seamark:notice:category"=~/limited_headroom/], node["seamark:notice:1:system"=bniwr]["seamark:notice:1:system"!=restriction]["seamark:notice:1:category"=~/limited_headroom/], node["seamark:notice:1:system"=bniwr2]["seamark:notice:1:system"!=restriction]["seamark:notice:1:category"=~/limited_headroom/], node["seamark:notice:2:system"=bniwr]["seamark:notice:2:system"!=restriction]["seamark:notice:2:category"=~/limited_headroom/], node["seamark:notice:2:system"=bniwr2]["seamark:notice:2:system"!=restriction]["seamark:notice:2:category"=~/limited_headroom/], node["seamark:notice:system"=bniwr]["seamark:notice:system"!=recommendation]["seamark:notice:category"=~/opening_to_right|opening_to_left/], node["seamark:notice:system"=bniwr2]["seamark:notice:system"!=recommendation]["seamark:notice:category"=~/opening_to_right|opening_to_left/], node["seamark:notice:1:system"=bniwr]["seamark:notice:1:system"!=recommendation]["seamark:notice:1:category"=~/opening_to_right|opening_to_left/], node["seamark:notice:1:system"=bniwr2]["seamark:notice:1:system"!=recommendation]["seamark:notice:1:category"=~/opening_to_right|opening_to_left/], node["seamark:notice:2:system"=bniwr]["seamark:notice:2:system"!=recommendation]["seamark:notice:2:category"=~/opening_to_right|opening_to_left/], node["seamark:notice:2:system"=bniwr2]["seamark:notice:2:system"!=recommendation]["seamark:notice:2:category"=~/opening_to_right|opening_to_left/], node["seamark:notice:system"=bniwr]["seamark:notice:system"!=information]["seamark:notice:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|traffic_between_margins/], node["seamark:notice:system"=bniwr2]["seamark:notice:system"!=information]["seamark:notice:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|traffic_between_margins/], node["seamark:notice:1:system"=bniwr]["seamark:notice:1:system"!=information]["seamark:notice:1:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|traffic_between_margins/], node["seamark:notice:1:system"=bniwr2]["seamark:notice:1:system"!=information]["seamark:notice:1:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|traffic_between_margins/], node["seamark:notice:2:system"=bniwr]["seamark:notice:2:system"!=information]["seamark:notice:2:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|traffic_between_margins/], node["seamark:notice:2:system"=bniwr2]["seamark:notice:2:system"!=information]["seamark:notice:2:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right|traffic_between_margins/], node["seamark:notice:system"=ppwbc]["seamark:notice:system"!=regulation]["seamark:notice:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid-river|cross_river_to_port|cross_river_to_starboard/], node["seamark:notice:1:system"=ppwbc]["seamark:notice:1:system"!=regulation]["seamark:notice:1:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid-river|cross_river_to_port|cross_river_to_starboard/], node["seamark:notice:2:system"=ppwbc]["seamark:notice:2:system"!=regulation]["seamark:notice:2:category"=~/keep_to_port_margin|keep_to_starboard_margin|keep_to_mid-river|cross_river_to_port|cross_river_to_starboard/], node["seamark:notice:system"=ppwbc]["seamark:notice:system"!=information]["seamark:notice:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right/], node["seamark:notice:1:system"=ppwbc]["seamark:notice:1:system"!=information]["seamark:notice:1:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right/], node["seamark:notice:2:system"=ppwbc]["seamark:notice:2:system"!=information]["seamark:notice:2:category"=~/main_waterway_right_secondary_ahead_left|main_waterway_left_secondary_ahead_right/] { throwWarning: tr("In {0} {1}={2} require {3}={4}", "{0.value}", "{2.key}", "{2.value}", "{1.key}", "{1.value}"); } node["seamark:notice:system"=~/bniwr2|ppwbc/]["seamark:notice:bank"!~/right|left/], node["seamark:notice:1:system"=~/bniwr2|ppwbc/]["seamark:notice:1:bank"!~/right|left/], node["seamark:notice:2:system"=~/bniwr2|ppwbc/]["seamark:notice:2:bank"!~/right|left/] { throwWarning: tr("{0} sign require {1} set to left or right", "{0.value}", "{1.key}"); }