Wao-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
January 2011
- 2 participants
- 91 discussions
19 Jan '11
Author: bleny
Date: 2011-01-19 09:49:33 +0000 (Wed, 19 Jan 2011)
New Revision: 926
Log:
adding a note in site about tomcat issue
Modified:
trunk/src/site/rst/installation.rst
Modified: trunk/src/site/rst/installation.rst
===================================================================
--- trunk/src/site/rst/installation.rst 2011-01-19 09:36:11 UTC (rev 925)
+++ trunk/src/site/rst/installation.rst 2011-01-19 09:49:33 UTC (rev 926)
@@ -102,6 +102,11 @@
Les chaînes dbuser, dbname et password devront être changées pour correspondre
à la configuration de la base de données pour postgresql.
+Dans le cas d'une utilisation de Tomcat, il est nécessaire d'ajouter la
+configuration suivante (/etc/default/tomcat) :
+
+JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=256M"
+
Logs de l'application
---------------------
1
0
[Suiviobsmer-commits] r925 - in trunk: . src/announcement
by bleny@users.labs.libre-entreprise.org 19 Jan '11
by bleny@users.labs.libre-entreprise.org 19 Jan '11
19 Jan '11
Author: bleny
Date: 2011-01-19 09:36:11 +0000 (Wed, 19 Jan 2011)
New Revision: 925
Log:
add a comment in README about a memory issue
Added:
trunk/src/announcement/release-email.2.0.txt
Modified:
trunk/README.txt
Modified: trunk/README.txt
===================================================================
--- trunk/README.txt 2011-01-18 18:10:05 UTC (rev 924)
+++ trunk/README.txt 2011-01-19 09:36:11 UTC (rev 925)
@@ -24,6 +24,13 @@
-Dwao.config.path=/path/to/properties/file (file named Wao.properties)
-Dwao.log.home=/path/to/log/folder
+Déploiement sous TOMCAT
+-----------------------
+
+Il est nécessaire d'ajouter, dans /etc/default/tomcat :
+
+JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=256M"
+
Liens
-----
Added: trunk/src/announcement/release-email.2.0.txt
===================================================================
--- trunk/src/announcement/release-email.2.0.txt (rev 0)
+++ trunk/src/announcement/release-email.2.0.txt 2011-01-19 09:36:11 UTC (rev 925)
@@ -0,0 +1,3 @@
+Veuillez ajouter dans la configuration de Tomcat (/etc/default/tomcat) :
+
+JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=256M"
1
0
[Suiviobsmer-commits] r924 - in trunk/wao-business/src/main/java/fr/ifremer/wao: bean service
by bleny@users.labs.libre-entreprise.org 18 Jan '11
by bleny@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: bleny
Date: 2011-01-18 18:10:05 +0000 (Tue, 18 Jan 2011)
New Revision: 924
Log:
cut sampling plan by terrestrial locations for ObsVente
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java 2011-01-18 15:34:17 UTC (rev 923)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java 2011-01-18 18:10:05 UTC (rev 924)
@@ -50,8 +50,16 @@
@Override
public void addRow(SampleRow row) {
- String facade = row.getFacade();
- String sectors = row.getSectors();
+ String facade = null;
+ String sectors = null;
+ if (row.getObsProgram() == ObsProgram.OBSMER) {
+ facade = row.getFacade();
+ sectors = row.getSectors();
+ } else if (row.getObsProgram() == ObsProgram.OBSVENTE) {
+ facade = row.getTerrestrialLocation().getCoastFAOName();
+ sectors = row.getTerrestrialLocation().getCountryName();
+ }
+
// Prepare sectors Map
Map<String, List<SampleRow>> sectorMap = getData().get(facade);
if (sectorMap == null) {
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-01-18 15:34:17 UTC (rev 923)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-01-18 18:10:05 UTC (rev 924)
@@ -441,9 +441,6 @@
WaoQueryHelper.SampleRowProperty sampleRowProperty =
builder.initializeForSampleRow(true);
- WaoQueryHelper.FishingZoneProperty fishingZoneProperty =
- builder.getFishingZoneProperty();
-
// new WaoQueryBuilder(SampleRow.class);
//
// // Set fishingZoneProperty : we want to control this association
@@ -454,8 +451,13 @@
// Add join for FishingZone
TopiaQuery query = builder.applySamplingFilter(filter).
- addDistinct().
- setSelect(sampleRowProperty.$alias(),
+ addDistinct();
+
+ if (filter.getObsProgram() == ObsProgram.OBSMER) {
+ WaoQueryHelper.FishingZoneProperty fishingZoneProperty =
+ builder.getFishingZoneProperty();
+
+ query.setSelect(sampleRowProperty.$alias(),
fishingZoneProperty.facadeName(),
fishingZoneProperty.sectorName(),
fishingZoneProperty.districtCode()).
@@ -466,7 +468,21 @@
fishingZoneProperty.sectorName(),
fishingZoneProperty.districtCode(),
sampleRowProperty.code());
+ } else {
+ WaoQueryHelper.TerrestrialLocationProperty terrestrialLocationProperty =
+ WaoQueryHelper.newTerrestrialLocationProperty();
+ query.setSelect(sampleRowProperty.$alias(),
+ terrestrialLocationProperty.coastFAOName(),
+ terrestrialLocationProperty.countryName()).
+ addLeftJoin(sampleRowProperty.terrestrialLocation(), terrestrialLocationProperty.$alias(), false).
+ addLeftJoin(sampleRowProperty.dCF5Code(), dcf5CodeProperty.$alias(), false).
+ // Order By facade, sector, districtCode, sampleRowCode
+ addOrder(terrestrialLocationProperty.coastFAOName(),
+ terrestrialLocationProperty.countryName(),
+ sampleRowProperty.code());
+ }
+
if (log.isDebugEnabled()) {
log.debug("Query : " + query);
}
1
0
[Suiviobsmer-commits] r923 - in trunk/wao-business/src: main/java/fr/ifremer/wao/io main/java/fr/ifremer/wao/io/csv2 main/java/fr/ifremer/wao/service main/resources test/java/fr/ifremer/wao/io test/java/fr/ifremer/wao/io/csv2
by bleny@users.labs.libre-entreprise.org 18 Jan '11
by bleny@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: bleny
Date: 2011-01-18 15:34:17 +0000 (Tue, 18 Jan 2011)
New Revision: 923
Log:
terrestrial locations import
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportModel.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportStrategy.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableField.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/TerrestrialLocationImportModel.java
trunk/wao-business/src/main/resources/terrestrialLocations.csv
trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/
trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/ImportTest.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java 2011-01-18 15:34:17 UTC (rev 923)
@@ -0,0 +1,176 @@
+package fr.ifremer.wao.io.csv2;
+
+import com.csvreader.CsvReader;
+import fr.ifremer.wao.bean.ValidationResult;
+import fr.ifremer.wao.bean.ValidationResultImpl;
+import org.nuiton.util.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+public class Import<E> {
+
+ private static final Logger log = LoggerFactory.getLogger(Import.class);
+
+ protected ImportModel<E> model;
+
+ protected CsvReader reader;
+
+ public Import(ImportModel<E> model, InputStream inputStream) {
+ this.model = model;
+ this.reader = new CsvReader(inputStream, ';', Charset.forName("UTF-8"));
+ reader.setTrimWhitespace(true);
+ }
+
+ public ValidationResult validateCsv() throws IOException {
+
+ boolean canReadHeaders = reader.readHeaders();
+ if ( ! canReadHeaders) {
+ throw new IOException("can't read headers");
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("headers of the CSV file are : " + Arrays.toString(reader.getHeaders()));
+ }
+
+ ValidationResult validationResult = new ValidationResultImpl();
+ validationResult.setSuccess(true);
+
+ List<String> csvHeaders = new ArrayList<String>();
+ for (String header : reader.getHeaders()) {
+ csvHeaders.add(header);
+ }
+
+ for(ImportableField field : model.getAllHeaders()) {
+ csvHeaders.remove(field.getName());
+ }
+
+ if ( ! csvHeaders.isEmpty()) {
+ validationResult.setSuccess(false);
+ String validationMessage = String.format(
+ "Les champs %s ne sont pas reconnus. Les champs possibles sont %s",
+ StringUtil.join(csvHeaders, ", " ,true),
+ StringUtil.join(model.getAllHeaders(), ", " ,true));
+ validationResult.setMessage(validationMessage);
+ }
+
+ csvHeaders = new ArrayList<String>();
+ for (String header : reader.getHeaders()) {
+ csvHeaders.add(header);
+ }
+
+ List<String> mandatoryHeadersNames = new ArrayList<String>();
+ for (ImportableField field : model.getAllMandatoryHeaders()) {
+ mandatoryHeadersNames.add(field.getName());
+ }
+ for (String header : csvHeaders) {
+ mandatoryHeadersNames.remove(header);
+ }
+
+ if ( ! mandatoryHeadersNames.isEmpty()) {
+ validationResult.setSuccess(false);
+ String validationMessage = String.format(
+ "Les champs obligatoires %s sont manquants",
+ StringUtil.join(mandatoryHeadersNames, ", " , true));
+ validationResult.setMessage(validationMessage);
+ }
+
+ return validationResult;
+ }
+
+ public Iterator<E> startImport() throws IOException {
+
+ ValidationResult validationResult = validateCsv();
+
+ if ( ! validationResult.isSuccess()) {
+ throw new IOException(validationResult.getMessage());
+ }
+
+ readFirstLine();
+
+ Iterator<E> result = new Iterator<E>() {
+
+ boolean hasNext = true;
+
+ int lineNumber = 0;
+
+ E lastElement = null;
+
+ @Override
+ public boolean hasNext() {
+ return hasNext;
+ }
+
+ @Override
+ public E next() {
+
+ lineNumber += 1;
+
+ E element = model.newEmptyInstance();
+
+ for (ImportableField field : model.getNonIgnoredHeaders()) {
+ String value;
+ try {
+ value = reader.get(field.getName());
+ } catch (IOException e) {
+ reader.close();
+ throw new RuntimeException("unable to read field " + field.getName() + " at line " + lineNumber, e);
+ }
+
+ // contravariance ftw
+ ImportStrategy<E, Object> strategy = field.getImportStrategy();
+ if (strategy != null) {
+ try {
+ Object parsedValue = strategy.parse(value);
+ strategy.setValue(element, parsedValue);
+ } catch (Exception e) {
+ throw new RuntimeException("exception while reading line " + lineNumber, e);
+ }
+ }
+ }
+
+ lastElement = element;
+
+ try {
+ hasNext = reader.readRecord();
+ } catch (IOException e) {
+ reader.close();
+ throw new RuntimeException("unable to read line " + lineNumber + 1, e);
+ }
+ return lastElement;
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+
+ return result;
+ }
+
+ protected void readFirstLine() {
+ try {
+ boolean emptyFile = ! reader.readRecord();
+
+ if (emptyFile) {
+ throw new IllegalArgumentException("CSV file has no line");
+ }
+ } catch (IOException e) {
+ reader.close();
+ throw new RuntimeException("error occurred while reading first line", e);
+ }
+ }
+
+ public void stopImport() {
+ reader.close();
+ }
+
+}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportModel.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportModel.java 2011-01-18 15:34:17 UTC (rev 923)
@@ -0,0 +1,34 @@
+package fr.ifremer.wao.io.csv2;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.iterators.ArrayListIterator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class ImportModel<E> {
+
+ public abstract E newEmptyInstance();
+
+ public abstract List<ImportableField> getAllHeaders();
+
+ public List<ImportableField> getNonIgnoredHeaders() {
+ List<ImportableField> nonIgnoredHeaders = new ArrayList<ImportableField>();
+ for (ImportableField field : getAllHeaders()) {
+ if ( ! field.isIgnored()) {
+ nonIgnoredHeaders.add(field);
+ }
+ }
+ return nonIgnoredHeaders;
+ }
+
+ public List<ImportableField> getAllMandatoryHeaders() {
+ List<ImportableField> allMandatoryHeaders = new ArrayList<ImportableField>();
+ for (ImportableField field : getAllHeaders()) {
+ if (field.isMandatory()) {
+ allMandatoryHeaders.add(field);
+ }
+ }
+ return allMandatoryHeaders;
+ }
+}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportStrategy.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportStrategy.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportStrategy.java 2011-01-18 15:34:17 UTC (rev 923)
@@ -0,0 +1,8 @@
+package fr.ifremer.wao.io.csv2;
+
+public interface ImportStrategy<ObjectType, FieldType> {
+
+ FieldType parse(String value);
+
+ void setValue(ObjectType object, FieldType value);
+}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableField.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableField.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableField.java 2011-01-18 15:34:17 UTC (rev 923)
@@ -0,0 +1,40 @@
+package fr.ifremer.wao.io.csv2;
+
+public class ImportableField<ObjectType, FieldType> {
+
+ protected String name;
+
+ protected boolean isMandatory;
+
+ protected boolean isIgnored;
+
+ protected ImportStrategy<ObjectType, FieldType> importStrategy;
+
+ public ImportableField(String name, boolean isMandatory, boolean isIgnored) {
+ this.name = name;
+ this.isMandatory = isMandatory;
+ this.isIgnored = isIgnored;
+ }
+
+ public ImportableField(String name, boolean isMandatory, boolean isIgnored,
+ ImportStrategy<ObjectType, FieldType> importStrategy) {
+ this(name, isMandatory, isIgnored);
+ this.importStrategy = importStrategy;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean isMandatory() {
+ return isMandatory;
+ }
+
+ public boolean isIgnored() {
+ return isIgnored;
+ }
+
+ public ImportStrategy<ObjectType, FieldType> getImportStrategy() {
+ return importStrategy;
+ }
+}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/TerrestrialLocationImportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/TerrestrialLocationImportModel.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/TerrestrialLocationImportModel.java 2011-01-18 15:34:17 UTC (rev 923)
@@ -0,0 +1,164 @@
+package fr.ifremer.wao.io.csv2;
+
+import fr.ifremer.wao.bean.LocationType;
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import fr.ifremer.wao.entity.TerrestrialLocationImpl;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TerrestrialLocationImportModel extends ImportModel<TerrestrialLocation> {
+
+ protected List<ImportableField> allHeaders;
+
+ static abstract class UnParsedField<ObjectType> implements ImportStrategy<ObjectType, String> {
+ @Override
+ public String parse(String value) {
+ return value;
+ }
+ }
+
+ protected <ObjectType> void addHeader(String name, ImportStrategy<TerrestrialLocation, ObjectType> strategy) {
+ boolean ignored = false;
+ if ("TLIEU_LIB".equals(name)) {
+ ignored = true;
+ }
+ allHeaders.add(new ImportableField<TerrestrialLocation, ObjectType>(name, true, ignored, strategy));
+ }
+
+ protected String getCode(String value) {
+ String code = null;
+ if (StringUtils.isNotBlank(value)) {
+ int firstSpaceIndex = value.indexOf(" ");
+ code = value.substring(0, firstSpaceIndex);
+ }
+ return code;
+ }
+
+ protected String getName(String value) {
+ String name = null;
+ if (StringUtils.isNotBlank(value)) {
+ int firstSpaceIndex = value.indexOf(" ");
+ name = value.substring(firstSpaceIndex + 1, value.length());
+ }
+ return name;
+ }
+
+ public TerrestrialLocationImportModel() {
+
+ allHeaders = new ArrayList<ImportableField>();
+
+ ImportStrategy<TerrestrialLocation, LocationType> locationTypeStrategy = new ImportStrategy<TerrestrialLocation, LocationType>() {
+ @Override
+ public LocationType parse(String value) {
+ if ("6".equals(value)) {
+ return LocationType.PORT;
+ } else if ("7".equals(value)) {
+ return LocationType.AUCTION;
+ }
+ throw new IllegalArgumentException(value + " is not a good location code");
+ }
+
+ @Override
+ public void setValue(TerrestrialLocation object, LocationType value) {
+ object.setLocationType(value);
+ }
+ };
+
+ addHeader("TLIEU_COD", locationTypeStrategy);
+ addHeader("TLIEU_LIB", null);
+ addHeader("LIEU_COD", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setCode(value);
+ }
+ });
+ addHeader("LIEU_LIB", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setName(value);
+ }
+ });
+ addHeader("Port", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setPortCode(getCode(value));
+ object.setPortName(getName(value));
+ }
+ });
+ addHeader("Quartier maritime", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setDistrictCode(getCode(value));
+ object.setDistrictName(getName(value));
+ }
+ });
+ addHeader("Département INSEE", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setDepartmentCode(getCode(value));
+ object.setDepartmentName(getName(value));
+ }
+ });
+ addHeader("Sous-région IFREMER", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setSubRegionIfremerCode(getCode(value));
+ object.setSubRegionIfremerName(getName(value));
+ }
+ });
+ addHeader("Région Ifremer", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setRegionIfremerCode(getCode(value));
+ object.setRegionIfremerName(getName(value));
+ }
+ });
+ addHeader("Région INSEE", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setRegionCode(getCode(value));
+ object.setRegionName(getName(value));
+ }
+ });
+ addHeader("Façade maritime", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setSeaboardCode(getCode(value));
+ object.setSeaboardName(getName(value));
+ }
+ });
+ addHeader("Type de Région", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setRegionTypeCode(getCode(value));
+ object.setRegionTypeName(getName(value));
+ }
+ });
+ addHeader("Littoral FAO", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setCoastFAOCode(getCode(value));
+ object.setCoastFAOName(getName(value));
+ }
+ });
+ addHeader("PAYS", new UnParsedField<TerrestrialLocation>() {
+ @Override
+ public void setValue(TerrestrialLocation object, String value) {
+ object.setCountryCode(getCode(value));
+ object.setCountryName(getName(value));
+ }
+ });
+ }
+
+ @Override
+ public TerrestrialLocation newEmptyInstance() {
+ return new TerrestrialLocationImpl();
+ }
+
+ @Override
+ public List<ImportableField> getAllHeaders() {
+ return allHeaders;
+ }
+}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-18 15:21:27 UTC (rev 922)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-18 15:34:17 UTC (rev 923)
@@ -218,7 +218,7 @@
throw new NullPointerException("boat can not be null for program " + obsProgram);
}
if ( ! boat.canCreateContact(user.getCompany())) {
- throw new WaoBusinessException("Un contact en cours existe déjà pour ce navire");
+ throw new WaoBusinessException("Ce navire ne peut être utilisé, il est inactif ou un contact en déjà en cours");
}
}
Added: trunk/wao-business/src/main/resources/terrestrialLocations.csv
===================================================================
--- trunk/wao-business/src/main/resources/terrestrialLocations.csv (rev 0)
+++ trunk/wao-business/src/main/resources/terrestrialLocations.csv 2011-01-18 15:34:17 UTC (rev 923)
@@ -0,0 +1,1249 @@
+"TLIEU_COD";"TLIEU_LIB";"LIEU_COD";"LIEU_LIB";"Port";"Quartier maritime";"Département INSEE";"Sous-région IFREMER";"Région Ifremer";"Région INSEE";"Façade maritime";"Type de Région";"Littoral FAO";"PAYS"
+6;"Port";"1AC";"La Barbotière (Gujan-Mestras)";"1AC La Barbotière (Gujan-Mestras)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"1BI";"Etang de Palo";"1BI Etang de Palo";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"1BR";"Korejou / Saint-Michel (Plouguerneau)";"1BR Korejou / Saint-Michel (Plouguerneau)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"1CH";"Roubaril (Gatteville-le-Phare)";"1CH Roubaril (Gatteville-le-Phare)";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"1NI";"Villeneuve Loubet";"1NI Villeneuve Loubet";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"1P1";"CP-Capesterre de Marie-Galante";"1P1 CP-Capesterre de Marie-Galante";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"1PL";"Lanmodez";"1PL Lanmodez";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"1TL";"La Capte";"1TL La Capte";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"2AC";"La Malle (Gujan-Mestras)";"2AC La Malle (Gujan-Mestras)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"2BI";"Etang d'Urbino";"2BI Etang d'Urbino";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"2BR";"Kastellac'h (Plouguerneau)";"2BR Kastellac'h (Plouguerneau)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"2CH";"Fermanville";"2CH Fermanville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"2MN";"Saint Nazaire sur Charente";"2MN Saint Nazaire sur Charente";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"2NI";"Cros de Cagnes";"2NI Cros de Cagnes";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"2P1";"SL-Route du Vieux fort";"2P1 SL-Route du Vieux fort";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"2P2";"SL-Anse canot";"2P2 SL-Anse canot";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"2P3";"SL-Saint louis de Marie Galante";"2P3 SL-Saint louis de Marie Galante";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"2P4";"SL-Plage du Bourg";"2P4 SL-Plage du Bourg";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"2PL";"Beg Melen (Plouguiel)";"2PL Beg Melen (Plouguiel)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"2TL";"Port de Porquerolles (Ile de)";"2TL Port de Porquerolles (Ile de)";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"3AC";"Le Rocher (Gujan-Mestras)";"3AC Le Rocher (Gujan-Mestras)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"3BI";"Etang de Diane";"3BI Etang de Diane";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"3BR";"Perros Lilia (Plouguerneau)";"3BR Perros Lilia (Plouguerneau)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"3CH";"Denneville";"3CH Denneville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"3MN";"La Palmyre";"3MN La Palmyre";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"3NI";"Villefranche, Port de la Santé";"3NI Villefranche, Port de la Santé";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"3P1";"DE-Anse des Galets";"3P1 DE-Anse des Galets";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"3P2";"DE-Les Sables";"3P2 DE-Les Sables";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"3P3";"DE-Beausejour";"3P3 DE-Beausejour";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"3P4";"DE-Desert";"3P4 DE-Desert";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"3P5";"DE-Le Souffleur";"3P5 DE-Le Souffleur";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"3P6";"DE-Baie Mahault";"3P6 DE-Baie Mahault";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"3PL";"La Roche Jaune (Plouguiel)";"3PL La Roche Jaune (Plouguiel)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"3TL";"Port de l'Ayguade";"3TL Port de l'Ayguade";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"4AC";"Port le Four (Lège-Cap-Ferret)";"4AC Port le Four (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"4BI";"Etang de Biguglia";"4BI Etang de Biguglia";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"4BR";"Porscave (Lampaul-Plouarzel)";"4BR Porscave (Lampaul-Plouarzel)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"4CH";"Lingreville";"4CH Lingreville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"4NI";"Monaco, Port de Fonvieille";"4NI Monaco, Port de Fonvieille";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"4P1";"BH-Gustavia";"4P1 BH-Gustavia";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"4P2";"BH-Anse du grand cul de sac";"4P2 BH-Anse du grand cul de sac";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"4P3";"BH-Anse de Marigot";"4P3 BH-Anse de Marigot";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"4P4";"BH-Anse de Lorient";"4P4 BH-Anse de Lorient";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"4P5";"BH-Corosol";"4P5 BH-Corosol";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"4P6";"BH-Baie de St Jean";"4P6 BH-Baie de St Jean";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"4PL";"L'Arcouëst / Cornec (Ploubazlanec)";"4PL L'Arcouëst / Cornec (Ploubazlanec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"4TL";"Salins d'Hyères, Pothuau";"4TL Salins d'Hyères, Pothuau";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"5AC";"Les Jacquets (Lège-Cap-Ferret)";"5AC Les Jacquets (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"5CH";"Genêts";"5CH Genêts";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"5NI";"Monaco, autres ports";"5NI Monaco, autres ports";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"5P1";"SM-Marigot (Marina Royale)";"5P1 SM-Marigot (Marina Royale)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5P2";"SM-Sandy Ground";"5P2 SM-Sandy Ground";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5P3";"SM-Quartier d'Orléans";"5P3 SM-Quartier d'Orléans";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5P4";"SM-Baie Orientale";"5P4 SM-Baie Orientale";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5P5";"SM-Cul de sac";"5P5 SM-Cul de sac";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5P6";"SM-Grand Case";"5P6 SM-Grand Case";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5P7";"SM-St James";"5P7 SM-St James";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5P8";"SM-Anse Marcel";"5P8 SM-Anse Marcel";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"5PL";"Le Passage (Pleudaniel)";"5PL Le Passage (Pleudaniel)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"5TL";"La Londe des Maures, Miramar";"5TL La Londe des Maures, Miramar";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"6CH";"Montmartin-sur-mer";"6CH Montmartin-sur-mer";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"6PL";"Toul Broch (Ploubazlanec)";"6PL Toul Broch (Ploubazlanec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"6TL";"Port-Cros (Ile de)";"6TL Port-Cros (Ile de)";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"7CH";"Hauteville-sur-mer";"7CH Hauteville-sur-mer";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"7PL";"Trélévern";"7PL Trélévern";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"7TL";"Ramatuelle, Pointe de la Bonne Terrasse";"7TL Ramatuelle, Pointe de la Bonne Terrasse";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"8CH";"Sainte-Marie-du-Mont";"8CH Sainte-Marie-du-Mont";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"8TL";"Les Marines de Cogolin et Port Grimaud";"8TL Les Marines de Cogolin et Port Grimaud";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"9CH";"Carentan";"9CH Carentan";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"9TL";"San Peire, la Garonnette";"9TL San Peire, la Garonnette";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AAC";"Cap-Ferret (Lège-Cap-Ferret)";"AAC Cap-Ferret (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AAD";"Brézellec (Plogoff)";"AAD Brézellec (Plogoff)";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AAJ";"Porto";"AAJ Porto";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AAY";"Quiberon";"AAY Quiberon";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ABA";"Capbreton";"ABA Capbreton";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ABD";"Aberdeen";"ABD Aberdeen";;;;;;"102 Firth of Forth";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"ABI";"Campoloro";"ABI Campoloro";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ABJ";"Abidjan";"ABJ Abidjan";;;;;;"66 Ouest Afrique";;"34 Atlantique centre-est";"CIV Côte-d'Ivoire"
+6;"Port";"ABL";"Calais";"ABL Calais";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ABR";"Brignogan-Plage";"ABR Brignogan-Plage";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ABX";"Blaye";"ABX Blaye";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ACC";"Mousterlin (Fouesnant)";"ACC Mousterlin (Fouesnant)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ACE";"Arrecife de Lanzarote";"ACE Arrecife de Lanzarote";;;;;;"52 Canaries";;"34 Atlantique centre-est";"ESP Espagne"
+6;"Port";"ACH";"Ravenoville";"ACH Ravenoville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ACI";"Alderney";"ACI Alderney";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"ACN";"Honfleur";"ACN Honfleur";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ACY";"Saint Laurent du Maroni";"ACY Saint Laurent du Maroni";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"ADK";"Grand-Fort-Philippe";"ADK Grand-Fort-Philippe";"DK Dunkerque";"59 Nord";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ADP";"Le Tréport";"ADP Le Tréport";"DP Dieppe";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ADZ";"Roscanvel (Camaret-sur-Mer)";"ADZ Roscanvel (Camaret-sur-Mer)";"DZ Douarnenez";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AES";"Alesund";"AES Alesund";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"AF1";"FF-Pointe des Nègres";"AF1 FF-Pointe des Nègres";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF2";"FF-Texaco";"AF2 FF-Texaco";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF3";"FF-Bas Lycée";"AF3 FF-Bas Lycée";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF4";"FF-Canal Moreau";"AF4 FF-Canal Moreau";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF5";"FF-Canal Alaric";"AF5 FF-Canal Alaric";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF6";"FF-Volga Plage";"AF6 FF-Volga Plage";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF7";"FF-Coco l'Echelle";"AF7 FF-Coco l'Echelle";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF8";"FF-Etang Mancini";"AF8 FF-Etang Mancini";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AF9";"FF-Pointe des Grives";"AF9 FF-Pointe des Grives";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AFA";"FF-Canal Levassor";"AFA FF-Canal Levassor";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AFC";"Saint-Aubin-sur-Mer";"AFC Saint-Aubin-sur-Mer";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"AGL";"Ardglass";"AGL Ardglass";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"AGO";"Agotnes";"AGO Agotnes";;;;;;;;;"NOR Norvège"
+6;"Port";"AGV";"Saint-Guénolé (Penmarch)";"AGV Saint-Guénolé (Penmarch)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AKM";"Aakrehamn";"AKM Aakrehamn";;;;;;;;;"NOR Norvège"
+6;"Port";"ALH";"Antifer (La Poterie-Cap-d'Antifer)";"ALH Antifer (La Poterie-Cap-d'Antifer)";"LH Le Havre";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ALO";"Kerroch (Ploemeur)";"ALO Kerroch (Ploemeur)";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ALR";"Charron Le Pave";"ALR Charron Le Pave";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ALS";"Saint-Gilles-Croix-de-Vie";"ALS Saint-Gilles-Croix-de-Vie";"LS Les Sables-d'Olonne";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AMA";"Sausset-les-Pins";"AMA Sausset-les-Pins";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AMN";"Port-des-Barques";"AMN Port-des-Barques";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AMT";"Saintes-Maries-de-la-Mer, Port Cardian";"AMT Saintes-Maries-de-la-Mer, Port Cardian";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AMX";"Locquirec";"AMX Locquirec";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ANA";"Basse-Indre (Indre)";"ANA Basse-Indre (Indre)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ANI";"Cannes, vieux port";"ANI Cannes, vieux port";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ANO";"Baie de Bourgneuf (ens. de communes)";"ANO Baie de Bourgneuf (ens. de communes)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ANR";"Antwerpen";"ANR Antwerpen";;;;;;"62 Sandettie";;"27C Mer du Nord";"BEL Belgique"
+6;"Port";"ANT";"Antsiranana";"ANT Antsiranana";;;;;;"67 Est Afrique";;"51 Océan indien ouest";"MDG Madagascar"
+6;"Port";"AP1";"PP-Lauricisque";"AP1 PP-Lauricisque";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AP2";"PP-Bergevin";"AP2 PP-Bergevin";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AP3";"PP-LaDarse";"AP3 PP-LaDarse";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AP4";"PP-Carenage";"AP4 PP-Carenage";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"AP5";"PP-Marina Pointe-A Pitre";"AP5 PP-Marina Pointe-A Pitre";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"APL";"Bréhec (plusieurs communes)";"APL Bréhec (plusieurs communes)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"APV";"Banyuls-sur-Mer";"APV Banyuls-sur-Mer";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ARE";"Arenys de Mar";"ARE Arenys de Mar";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"ARK";"Arklow";"ARK Arklow";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"ARU";"La Possession";"ARU La Possession";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"ASB";"Saint-Jacut-de-la-Mer";"ASB Saint-Jacut-de-la-Mer";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ASM";"Le Vivier-sur-Mer";"ASM Le Vivier-sur-Mer";"SM Saint-Malo";"35 Ille-et-Vilaine";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ASN";"Piriac-sur-Mer";"ASN Piriac-sur-Mer";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ASP";"Miquelon";"ASP Miquelon";"SP Saint-Pierre-et-Miquelon";;"SP Saint-Pierre";"SP Saint-Pierre et Miquelon";;"11 Saint-Pierre-et-Miquelon";;"21 Atlantique nord-ouest";"SPM Saint-Pierre-et-Miquelon"
+6;"Port";"AST";"Valras-Plage";"AST Valras-Plage";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AT1";"Les Issambres, Port Ferréol";"AT1 Les Issambres, Port Ferréol";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AT2";"Boulouris, le Toukan";"AT2 Boulouris, le Toukan";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AT3";"Drammont, la Poussai";"AT3 Drammont, la Poussai";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"AT4";"Agay";"AT4 Agay";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ATB";"Aultbea";"ATB Aultbea";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"ATL";"Bandol";"ATL Bandol";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ATM";"Amsterdam";"ATM Amsterdam";;;;;;"51 Brown Bank";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"AVA";"Larmor-Baden";"AVA Larmor-Baden";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AVE";"Pampatar";"AVE Pampatar";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"AVL";"Aviles";"AVL Aviles";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"AYE";"La Meule (L'Ile-d'Yeu)";"AYE La Meule (L'Ile-d'Yeu)";"YE L'Ile-d'Yeu";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"AYR";"Ayr";"AYR Ayr";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"BAC";"Andernos-les-Bains";"BAC Andernos-les-Bains";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BAD";"Sein (Île-de-Sein)";"BAD Sein (Île-de-Sein)";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BAJ";"Cargèse";"BAJ Cargèse";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BAR";"Barcelone";"BAR Barcelone";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"BAY";"Crach";"BAY Crach";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BBA";"Guéthary / Bidart / Biarritz";"BBA Guéthary / Bidart / Biarritz";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BBG";"Blankenberge";"BBG Blankenberge";;;;;;"62 Sandettie";;"27C Mer du Nord";"BEL Belgique"
+6;"Port";"BBI";"Macinaggio";"BBI Macinaggio";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BBL";"Nord-Boulogne (Boulogne-sur-Mer)";"BBL Nord-Boulogne (Boulogne-sur-Mer)";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BBR";"Kerlouan";"BBR Kerlouan";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BBX";"Bourg-sur-Gironde (Bourg)";"BBX Bourg-sur-Gironde (Bourg)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BCC";"Beg Meil (Fouesnant)";"BCC Beg Meil (Fouesnant)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BCE";"Barcaldine";"BCE Barcaldine";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"BCH";"Les Gougins (Saint-Marcouf)";"BCH Les Gougins (Saint-Marcouf)";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BCN";"Trouville-sur-Mer";"BCN Trouville-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BCY";"Mana";"BCY Mana";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"BDP";"Pourville (Hautot-sur-Mer)";"BDP Pourville (Hautot-sur-Mer)";"DP Dieppe";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BDZ";"Camaret (Camaret-sur-Mer)";"BDZ Camaret (Camaret-sur-Mer)";"DZ Douarnenez";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BEG";"Bergen";"BEG Bergen";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"BEL";"Belfast";"BEL Belfast";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"BF1";"LM-Californie";"BF1 LM-Californie";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BF2";"LM-Lamentin (Bourg)";"BF2 LM-Lamentin (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BF3";"LM-Morne Cabrit";"BF3 LM-Morne Cabrit";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BF4";"LM-Calebassier";"BF4 LM-Calebassier";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BFC";"Veules-les-Roses";"BFC Veules-les-Roses";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BFF";"Banff";"BFF Banff";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"BGV";"Lesconil (Plobannalec)";"BGV Lesconil (Plobannalec)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BHN";"Bearhaven";"BHN Bearhaven";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"BIL";"Bilbao";"BIL Bilbao";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"BJR";"Bajares";"BJR Bajares";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"BLD";"Ballstad";"BLD Ballstad";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"NOR Norvège"
+6;"Port";"BLL";"Ballina";"BLL Ballina";;;;;;;;;"IRL Irlande"
+6;"Port";"BLO";"Lomener (Ploemeur)";"BLO Lomener (Ploemeur)";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BLR";"Port-du-Plomb (Nieul-sur-Mer)";"BLR Port-du-Plomb (Nieul-sur-Mer)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BLS";"L'Aiguillon-sur-Mer";"BLS L'Aiguillon-sur-Mer";"LS Les Sables-d'Olonne";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BLY";"Blyth";"BLY Blyth";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"BMA";"Carry-le-Rouet";"BMA Carry-le-Rouet";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BMN";"Bourcefranc-le-Chapus";"BMN Bourcefranc-le-Chapus";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BMT";"Port-Saint-Louis-du-Rhône";"BMT Port-Saint-Louis-du-Rhône";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BMX";"Plougasnou (Le Diben-Primel)";"BMX Plougasnou (Le Diben-Primel)";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BNA";"Autres ports de la Loire (ens. de communes)";"BNA Autres ports de la Loire (ens. de communes)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BNI";"Golfe Juan (Vallauris)";"BNI Golfe Juan (Vallauris)";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BNO";"L'Epoids (Beauvoir-sur-Mer)";"BNO L'Epoids (Beauvoir-sur-Mer)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BOO";"Bodo";"BOO Bodo";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"BP1";"GO- La grande baie (Le Gosier)";"BP1 GO- La grande baie (Le Gosier)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BP2";"GO-Le Gosier Bourg";"BP2 GO-Le Gosier Bourg";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BP3";"GO-Anse du Mont";"BP3 GO-Anse du Mont";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BP4";"GO-Petit Havre";"BP4 GO-Petit Havre";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BP5";"GO-Anse canot";"BP5 GO-Anse canot";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"BPL";"Port-Lazo (Plouézec)";"BPL Port-Lazo (Plouézec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BPV";"Argelès-sur-Mer, Le Racou";"BPV Argelès-sur-Mer, Le Racou";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BRB";"Brunsbuttel";"BRB Brunsbuttel";;;;;;"98 Borkum";;"27C Mer du Nord";"DEU Allemagne"
+6;"Port";"BRM";"Bermeo";"BRM Bermeo";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"BRP";"Bridport";"BRP Bridport";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"BRS";"Bristol";"BRS Bristol";;;;;;"103 Nord Bishop Trévose";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"BRT";"Bridlington";"BRT Bridlington";;;;;;"101 Farn deeps";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"BRU";"Saint Paul";"BRU Saint Paul";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"BSB";"Le Guildo (Saint-Cast-le-Guildo)";"BSB Le Guildo (Saint-Cast-le-Guildo)";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BSD";"Blacksod point";"BSD Blacksod point";;;;;;"61 Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"BSH";"Brighton";"BSH Brighton";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"BSM";"Cancale";"BSM Cancale";"SM Saint-Malo";"35 Ille-et-Vilaine";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"BSN";"La Turballe";"BSN La Turballe";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BST";"Grau d'Agde";"BST Grau d'Agde";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BTL";"Sanary-sur-Mer";"BTL Sanary-sur-Mer";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"BTM";"Baltimore";"BTM Baltimore";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"BTY";"Bantry";"BTY Bantry";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"BUR";"Burela";"BUR Burela";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"BVA";"Séné";"BVA Séné";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"BVE";"Carupano";"BVE Carupano";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"BXM";"Brixham";"BXM Brixham";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"CAC";"Gujan-Mestras";"CAC Gujan-Mestras";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CAD";"Bestrée (Plogoff)";"CAD Bestrée (Plogoff)";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CAJ";"Propriano";"CAJ Propriano";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CAN";"Iles Canaries";"CAN Iles Canaries";;;;;;"52 Canaries";;"34 Atlantique centre-est";"ESP Espagne"
+6;"Port";"CAO";"Carino-Pedra";"CAO Carino-Pedra";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"CAR";"Cartagène";"CAR Cartagène";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"CAY";"Locmariaquer";"CAY Locmariaquer";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CBA";"Saint-Jean-de-Luz, Ciboure";"CBA Saint-Jean-de-Luz, Ciboure";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CBH";"Cobh";"CBH Cobh";;;;;;"71 Sud Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"CBI";"Centuri";"CBI Centuri";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CBL";"Etaples";"CBL Etaples";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CBR";"Plouguerneau";"CBR Plouguerneau";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CBX";"Pauillac";"CBX Pauillac";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CCC";"Cap Coz (Fouesnant)";"CCC Cap Coz (Fouesnant)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CCH";"Saint-Vaast-la-Hougue";"CCH Saint-Vaast-la-Hougue";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CCN";"Dives-sur-Mer";"CCN Dives-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CCY";"Awala Yalimapo";"CCY Awala Yalimapo";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"CDP";"Quiberville";"CDP Quiberville";"DP Dieppe";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CDX";"Cadix";"CDX Cadix";;;;;;"97 Sud Espagne";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"CDZ";"Morgat (Crozon)";"CDZ Morgat (Crozon)";"DZ Douarnenez";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CED";"Cedeira";"CED Cedeira";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"CEL";"Celeiro";"CEL Celeiro";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"CEU";"Ceuta";"CEU Ceuta";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"CF1";"DC-Canal Ducos";"CF1 DC-Canal Ducos";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"CFC";"Saint-Valery-en-Caux";"CFC Saint-Valery-en-Caux";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CFD";"Clifden";"CFD Clifden";;;;;;"61 Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"CGV";"Loctudy";"CGV Loctudy";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CLI";"Celeiro";"CLI Celeiro";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"CLO";"Larmor-Plage";"CLO Larmor-Plage";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CLR";"La Flotte-en-Ré (La Flotte)";"CLR La Flotte-en-Ré (La Flotte)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CMA";"Cassis";"CMA Cassis";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CMN";"Mornac-sur-Seudre";"CMN Mornac-sur-Seudre";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CMT";"Port-de-Bouc, Anse Aubran";"CMT Port-de-Bouc, Anse Aubran";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CMX";"Térenez (Plougasnou)";"CMX Térenez (Plougasnou)";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CNA";"Préfailles";"CNA Préfailles";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CNI";"Antibes, tous les ports";"CNI Antibes, tous les ports";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CNO";"Fromentine (La Barre-de-Monts)";"CNO Fromentine (La Barre-de-Monts)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CNU";"Craignure";"CNU Craignure";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"COR";"La Corogne";"COR La Corogne";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"COV";"Coverack";"COV Coverack";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"COW";"Cowes harbor";"COW Cowes harbor";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"CP1";"SA-PP Sainte Anne (Bourg)";"CP1 SA-PP Sainte Anne (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"CP2";"SA-PP Sainte Anne (Plage municipale)";"CP2 SA-PP Sainte Anne (Plage municipale)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"CP3";"SA-Castaing";"CP3 SA-Castaing";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"CP4";"SA-Plage de Bois Jolan";"CP4 SA-Plage de Bois Jolan";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"CP5";"SA-Les Galbas";"CP5 SA-Les Galbas";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"CPL";"Pors-Even (Ploubazlanec)";"CPL Pors-Even (Ploubazlanec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CPT";"Le Cap (Afrique du sud)";"CPT Le Cap (Afrique du sud)";;;;;;"67 Est Afrique";;"51 Océan indien ouest";"ZAF Afrique du Sud"
+6;"Port";"CPV";"Saint-Cyprien";"CPV Saint-Cyprien";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CRK";"Crookhaven";"CRK Crookhaven";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"CRN";"Cromarty";"CRN Cromarty";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"CRU";"Saint Gilles";"CRU Saint Gilles";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"CSB";"Saint-Cast-le-Guildo";"CSB Saint-Cast-le-Guildo";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CSM";"Dinard";"CSM Dinard";"SM Saint-Malo";"35 Ille-et-Vilaine";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"CSN";"Le Croisic";"CSN Le Croisic";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CST";"Cap d'Agde";"CST Cap d'Agde";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CTB";"Castletown bearhaven";"CTB Castletown bearhaven";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"CTL";"Le Brusc (Six-Fours-les-Plages)";"CTL Le Brusc (Six-Fours-les-Plages)";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"CTM";"Chatham";"CTM Chatham";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"CTN";"Castletown";"CTN Castletown";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"CTO";"Costelloe";"CTO Costelloe";;;;;;"61 Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"CTY";"Castlebay";"CTY Castlebay";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"CUR";"Castro-Urdiales";"CUR Castro-Urdiales";;;;;;;;;"ESP Espagne"
+6;"Port";"CUX";"Cuxhaven";"CUX Cuxhaven";;;;;;"98 Borkum";;"27C Mer du Nord";"DEU Allemagne"
+6;"Port";"CVA";"Sarzeau";"CVA Sarzeau";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"CVE";"Puerto Sucre";"CVE Puerto Sucre";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"CVY";"Clovelly";"CVY Clovelly";;;;;;"103 Nord Bishop Trévose";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"DAC";"La Teste-de-Buch";"DAC La Teste-de-Buch";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DAD";"Saint-Evette (Esquibien)";"DAD Saint-Evette (Esquibien)";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DAJ";"Bonifacio";"DAJ Bonifacio";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DAK";"Dakar";"DAK Dakar";;;;;;"66 Ouest Afrique";;"34 Atlantique centre-est";"SEN Sénégal"
+6;"Port";"DAR";"Darlowo";"DAR Darlowo";;;;;;;;;"POL Pologne"
+6;"Port";"DAY";"La Trinité-sur-Mer";"DAY La Trinité-sur-Mer";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DBA";"Hendaye";"DBA Hendaye";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DBI";"Saint-Florent";"DBI Saint-Florent";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DBL";"Le Crotoy";"DBL Le Crotoy";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DBR";"Aber Wrac'h (Landéda)";"DBR Aber Wrac'h (Landéda)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DBX";"Le Verdon-sur-Mer";"DBX Le Verdon-sur-Mer";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DCC";"La Forêt-Fouesnant";"DCC La Forêt-Fouesnant";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DCH";"Barfleur";"DCH Barfleur";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DCN";"Ouistreham";"DCN Ouistreham";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DCY";"Iracoubo-Organabo";"DCY Iracoubo-Organabo";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"DDK";"Dundalk ";"DDK Dundalk ";;;;;;;;;"IRL Irlande"
+6;"Port";"DDZ";"Tréboul (Douarnenez)";"DDZ Tréboul (Douarnenez)";"DZ Douarnenez";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DEN";"Denia";"DEN Denia";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"DF1";"TI-Magasin Zéline ";"DF1 TI-Magasin Zéline ";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DF2";"TI-Bord de Mer (Trois Ilets)";"DF2 TI-Bord de Mer (Trois Ilets)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DF3";"TI-Pointe Galy";"DF3 TI-Pointe Galy";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DF4";"TI-Anse Mitan";"DF4 TI-Anse Mitan";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DF5";"TI-Anse Marette";"DF5 TI-Anse Marette";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DF6";"TI-Anse à l'Ane";"DF6 TI-Anse à l'Ane";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DFC";"Veulettes-sur-Mer";"DFC Veulettes-sur-Mer";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DGT";"Dingle";"DGT Dingle";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"DGV";"Bénodet";"DGV Bénodet";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DHR";"Den Helder";"DHR Den Helder";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"NLD Pays-Bas"
+6;"Port";"DLG";"Dun laoghaire";"DLG Dun laoghaire";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"DLO";"Locmiquélic";"DLO Locmiquélic";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DLR";"Saint-Martin-de-Ré";"DLR Saint-Martin-de-Ré";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DMA";"La Ciotat";"DMA La Ciotat";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DMN";"La Tremblade";"DMN La Tremblade";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DMR";"Dunmore East";"DMR Dunmore East";;;;;;"71 Sud Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"DMT";"Etang de Berre, Saint-Chamas";"DMT Etang de Berre, Saint-Chamas";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DMX";"Carantec";"DMX Carantec";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DNA";"Pornic";"DNA Pornic";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DNI";"Villefranche-sur-Mer, tous les ports";"DNI Villefranche-sur-Mer, tous les ports";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DNO";"L'Herbaudière (Noirmoutier-en-l'Île)";"DNO L'Herbaudière (Noirmoutier-en-l'Île)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DP1";"FR-Anse à la barque";"DP1 FR-Anse à la barque";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DP2";"FR-Saint François (Bourg)";"DP2 FR-Saint François (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DP3";"FR-Entre port de pêche et plaisance";"DP3 FR-Entre port de pêche et plaisance";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DP4";"FR-Marina de St François";"DP4 FR-Marina de St François";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DP5";"FR-Anse du mancenillier";"DP5 FR-Anse du mancenillier";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DP6";"FR-Anse kahouane";"DP6 FR-Anse kahouane";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"DPL";"Ile-de-Bréhat";"DPL Ile-de-Bréhat";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DPV";"Canet-en-Roussillon";"DPV Canet-en-Roussillon";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DRG";"Drogheda";"DRG Drogheda";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"DRU";"Saint Leu";"DRU Saint Leu";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"DRY";"Derry";"DRY Derry";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"DSB";"La Fresnaye (Erquy)";"DSB La Fresnaye (Erquy)";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DSM";"Saint-Briac-sur-Mer";"DSM Saint-Briac-sur-Mer";"SM Saint-Malo";"35 Ille-et-Vilaine";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"DSN";"Le Pouliguen";"DSN Le Pouliguen";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DST";"Etang de Thau, Marseillan";"DST Etang de Thau, Marseillan";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DTL";"La Seyne-sur-Mer";"DTL La Seyne-sur-Mer";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"DTM";"Dartmouth harbor";"DTM Dartmouth harbor";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"DUB";"Dublin";"DUB Dublin";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"IRL Irlande"
+6;"Port";"DUR";"Durban (Afrique du sud)";"DUR Durban (Afrique du sud)";;;;;;"67 Est Afrique";;"51 Océan indien ouest";"ZAF Afrique du Sud"
+6;"Port";"DVA";"Damgan, Penerf";"DVA Damgan, Penerf";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"DVE";"La Guaira";"DVE La Guaira";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"DVG";"Dunvegan";"DVG Dunvegan";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"DVR";"Dover harbor";"DVR Dover harbor";;;;;;"62 Sandettie";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"EAC";"Le Canon (Lège-Cap-Ferret)";"EAC Le Canon (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"EAD";"Pors Poulhan (Plouhinec)";"EAD Pors Poulhan (Plouhinec)";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"EAJ";"Porto-Vecchio";"EAJ Porto-Vecchio";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"EAS";"San sebastian";"EAS San sebastian";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"EAY";"Bono";"EAY Bono";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"EBA";"Mimizan";"EBA Mimizan";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"EBI";"Ile-Rousse";"EBI Ile-Rousse";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"EBL";"Saint-Valéry-sur-Somme";"EBL Saint-Valéry-sur-Somme";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"EBR";"Landéda (le vill)";"EBR Landéda (le vill)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"EBX";"Portes Neuves (Saint-Ciers-sur-Gironde)";"EBX Portes Neuves (Saint-Ciers-sur-Gironde)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ECC";"Trévignon (Trégunc)";"ECC Trévignon (Trégunc)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ECH";"Cosqueville";"ECH Cosqueville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ECN";"Lion-sur-Mer";"ECN Lion-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ECY";"Sinnamary";"ECY Sinnamary";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"EF1";"AA-Anse Noire";"EF1 AA-Anse Noire";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EF2";"AA-Anse Dufour";"EF2 AA-Anse Dufour";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EF3";"AA-Grande Anse";"EF3 AA-Grande Anse";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EF4";"AA-Anses d'Arlets (Bourg)";"EF4 AA-Anses d'Arlets (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EF5";"AA-Petite Anse (Marigot-coopemar)";"EF5 AA-Petite Anse (Marigot-coopemar)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EF6";"AA-Petite Anse (Degras)";"EF6 AA-Petite Anse (Degras)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EFC";"Yport";"EFC Yport";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"EGE";"Egersund";"EGE Egersund";;;;;;;;;"NOR Norvège"
+6;"Port";"EGV";"Kérity (Penmarch)";"EGV Kérity (Penmarch)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ELO";"Port-Louis";"ELO Port-Louis";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ELR";"Ars-en-Ré";"ELR Ars-en-Ré";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"EMA";"La Redonne, Méjean";"EMA La Redonne, Méjean";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"EMN";"Royan";"EMN Royan";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"EMT";"Ensemble de l'Etang de Berre";"EMT Ensemble de l'Etang de Berre";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"EMX";"Pont de la Corde (Carantec)";"EMX Pont de la Corde (Carantec)";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ENA";"Cordemais";"ENA Cordemais";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ENI";"Menton, vieux port, Garavan";"ENI Menton, vieux port, Garavan";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"EP1";"MO-L'autre bord";"EP1 MO-L'autre bord";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EP2";"MO-Rivière d'Audoin";"EP2 MO-Rivière d'Audoin";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EP3";"MO-Le moule";"EP3 MO-Le moule";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EP4";"MO-Baie du nord ouest";"EP4 MO-Baie du nord ouest";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"EPL";"Loguivy de la mer (Ploubazlanec)";"EPL Loguivy de la mer (Ploubazlanec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"EPN";"Estepona";"EPN Estepona";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"ESP Espagne"
+6;"Port";"EPV";"Etang de Salse-Leucate, Port Barcarès";"EPV Etang de Salse-Leucate, Port Barcarès";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ERU";"Etang salé";"ERU Etang salé";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"ESB";"Erquy";"ESB Erquy";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ESN";"Mindin (Saint-Brevin-les-Pins)";"ESN Mindin (Saint-Brevin-les-Pins)";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ESS";"Essaouira";"ESS Essaouira";;;;;;"66 Ouest Afrique";;"34 Atlantique centre-est";"MAR Maroc"
+6;"Port";"EST";"Frontignan";"EST Frontignan";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ETL";"Carqueiranne, les salettes";"ETL Carqueiranne, les salettes";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"EUR";"Europoort";"EUR Europoort";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"EVA";"Tréhiguier-en-Pénestin (Pénestin)";"EVA Tréhiguier-en-Pénestin (Pénestin)";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"EVD";"Enseivada de aldan";"EVD Enseivada de aldan";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"EVE";"Maracaibo";"EVE Maracaibo";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"EXM";"Exmouth harbor";"EXM Exmouth harbor";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"FAC";"Petit Piquey (Lège-Cap-Ferret)";"FAC Petit Piquey (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FAD";"Penhors (Pouldreuzic)";"FAD Penhors (Pouldreuzic)";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FAJ";"Solenzara";"FAJ Solenzara";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FAO";"Faro";"FAO Faro";;;;;;;;;"PRT Portugal"
+6;"Port";"FAW";"Fawley";"FAW Fawley";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"FAY";"Ile-d'Houat";"FAY Ile-d'Houat";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FBA";"Contis";"FBA Contis";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FBI";"Calvi";"FBI Calvi";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FBL";"Le Hourdel (Cayeux-sur-Mer)";"FBL Le Hourdel (Cayeux-sur-Mer)";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FBR";"Saint-Pabu";"FBR Saint-Pabu";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FBX";"Callonges (Saint-Ciers-sur-Gironde)";"FBX Callonges (Saint-Ciers-sur-Gironde)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FCC";"Raguénès (Névez)";"FCC Raguénès (Névez)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FCH";"Querqueville la petite";"FCH Querqueville la petite";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FCN";"Luc-sur-Mer";"FCN Luc-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FCY";"Kourou";"FCY Kourou";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"FF1";"DI-Anse Cafard";"FF1 DI-Anse Cafard";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FF2";"DI-Diamant (Bourg)";"FF2 DI-Diamant (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FF3";"DI-La Cherry";"FF3 DI-La Cherry";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FF4";"DI-Marigot (Diamant)";"FF4 DI-Marigot (Diamant)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FF5";"DI-Taupinière";"FF5 DI-Taupinière";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FF6";"DI-Pointe Giraud";"FF6 DI-Pointe Giraud";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FFC";"Etretat";"FFC Etretat";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FGV";"Lechiagat (Treffiagat)";"FGV Lechiagat (Treffiagat)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FIS";"Fishguard";"FIS Fishguard";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"FLE";"Fleetwood";"FLE Fleetwood";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"FLO";"Port Lay (Groix)";"FLO Port Lay (Groix)";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FLR";"Angoulins";"FLR Angoulins";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FMA";"L'Estaque";"FMA L'Estaque";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FMN";"Meschers-sur-Gironde";"FMN Meschers-sur-Gironde";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FMT";"Etang de Berre, Marignane";"FMT Etang de Berre, Marignane";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FMX";"Pempoul (Saint-Pol-de-Léon)";"FMX Pempoul (Saint-Pol-de-Léon)";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FNA";"Couëron";"FNA Couëron";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FNI";"St Laurent du Var";"FNI St Laurent du Var";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FNO";"Le Collet";"FNO Le Collet";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FNT";"Fenit";"FNT Fenit";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"FOL";"Folkestone harbor";"FOL Folkestone harbor";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"FOS";"Fosnavag";"FOS Fosnavag";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"NOR Norvège"
+6;"Port";"FOY";"Fowey";"FOY Fowey";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"FP1";"AB-Anse Bertrand";"FP1 AB-Anse Bertrand";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FP2";"PL-Port Louis";"FP2 PL-Port Louis";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"FPL";"Lézardrieux";"FPL Lézardrieux";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FPV";"Port-Leucate";"FPV Port-Leucate";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FRL";"Ferrol del caudillo";"FRL Ferrol del caudillo";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"FRU";"Saint Pierre";"FRU Saint Pierre";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"FSB";"Dahouët (Pléneuf-Val-André)";"FSB Dahouët (Pléneuf-Val-André)";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"FSH";"Fraserburgh";"FSH Fraserburgh";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"FSN";"Paimboeuf";"FSN Paimboeuf";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FST";"Palavas-les-Flots";"FST Palavas-les-Flots";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FTL";"Giens, Ports du Niel, de la Tour Fondue";"FTL Giens, Ports du Niel, de la Tour Fondue";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"FUE";"Fuenterrabia";"FUE Fuenterrabia";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"FUG";"Fuglafjordur (Fuglafirdi)";"FUG Fuglafjordur (Fuglafirdi)";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"FRO Iles Féroé"
+6;"Port";"FVA";"Arradon";"FVA Arradon";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"FVE";"Boca del Rio";"FVE Boca del Rio";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"FXT";"Felixstowe";"FXT Felixstowe";;;;;;"62 Sandettie";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"GAC";"Grand Piquey (Lège-Cap-Ferret)";"GAC Grand Piquey (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GAJ";"Girolata";"GAJ Girolata";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GAR";"Gairloch";"GAR Gairloch";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"GAY";"Hoedic";"GAY Hoedic";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GBA";"Adour (ens. communes)";"GBA Adour (ens. communes)";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GBD";"Gibostad";"GBD Gibostad";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"GBI";"Pino (Scallu)";"GBI Pino (Scallu)";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GBR";"Portsall";"GBR Portsall";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"GBX";"La Belle Etoile (Saint-Androny)";"GBX La Belle Etoile (Saint-Androny)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GCC";"Port Manec'h (Névez)";"GCC Port Manec'h (Névez)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GCH";"Omonville";"GCH Omonville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"GCN";"Langrune-sur-Mer";"GCN Langrune-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"GCY";"Le Larivot (Matoury)";"GCY Le Larivot (Matoury)";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"GDR";"Glandore";"GDR Glandore";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"GF1";"SL-Trois Rivières";"GF1 SL-Trois Rivières";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"GF2";"SL-Corps de Garde";"GF2 SL-Corps de Garde";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"GF3";"SL-Sainte Luce (Bourg)";"GF3 SL-Sainte Luce (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"GGA";"Glengariff";"GGA Glengariff";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"GGV";"Larvor (Loctudy)";"GGV Larvor (Loctudy)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GHI";"Greenhithe";"GHI Greenhithe";;;;;;"62 Sandettie";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"GIB";"Gibraltar";"GIB Gibraltar";;;;;;"97 Sud Espagne";;"37 Méditerranée";"GIB Gibraltar"
+6;"Port";"GIT";"Gitalia";"GIT Gitalia";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"GJN";"Gijon";"GJN Gijon";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"GLO";"Port Tudy (Groix)";"GLO Port Tudy (Groix)";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GLR";"Fouras (port sud)";"GLR Fouras (port sud)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GLY";"Galway";"GLY Galway";;;;;;"61 Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"GMA";"Saumaty";"GMA Saumaty";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GMN";"Talmont-sur-Gironde";"GMN Talmont-sur-Gironde";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GMT";"Darse de l'Amarrée et port Dromar";"GMT Darse de l'Amarrée et port Dromar";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GMX";"Roscoff";"GMX Roscoff";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"GNA";"Le Migron (Frossay)";"GNA Le Migron (Frossay)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GNE";"Gent (Ghent)";"GNE Gent (Ghent)";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"BEL Belgique"
+6;"Port";"GNI";"Théoule";"GNI Théoule";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GNO";"Les Brochets (Bouin)";"GNO Les Brochets (Bouin)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GNW";"Greenwich";"GNW Greenwich";;;;;;"62 Sandettie";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"GOO";"Goole";"GOO Goole";;;;;;"69 Smiths";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"GP1";"PC-Petit canal - la Darse";"GP1 PC-Petit canal - la Darse";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"GPL";"Pleubian(Port-Béni)";"GPL Pleubian(Port-Béni)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"GPV";"Port-la-Nouvelle";"GPV Port-la-Nouvelle";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GRI";"Grimsby";"GRI Grimsby";;;;;;"69 Smiths";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"GRN";"Greenore";"GRN Greenore";;;;;;;;;"IRL Irlande"
+6;"Port";"GRU";"Langevin";"GRU Langevin";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"GRY";"Gorey";"GRY Gorey";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"GSB";"Binic";"GSB Binic";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"GST";"Le-Grau-du-Roi";"GST Le-Grau-du-Roi";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GTL";"Hyères, St Pierre sur mer";"GTL Hyères, St Pierre sur mer";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"GTY";"Great yarmouth";"GTY Great yarmouth";;;;;;"69 Smiths";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"GUE";"Guetaria";"GUE Guetaria";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"GVA";"Camoël";"GVA Camoël";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"GVE";"Boca de Pozo";"GVE Boca de Pozo";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"GVS";"Gravesend";"GVS Gravesend";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"HAC";"Piraillan (Lège-Cap-Ferret)";"HAC Piraillan (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HAJ";"Sagone";"HAJ Sagone";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HAL";"Halifax";"HAL Halifax";;;;;;"17 Atlantique Nord-Ouest";;"21 Atlantique nord-ouest";"CAN Canada"
+6;"Port";"HAM";"Hamn";"HAM Hamn";;;;;;;;;"NOR Norvège"
+6;"Port";"HAY";"Belle-Île-en-Mer (ens. de communes)";"HAY Belle-Île-en-Mer (ens. de communes)";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HBI";"Erbalunga";"HBI Erbalunga";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HBO";"Hobro";"HBO Hobro";;;;;;"73 Skagerrak et Cattégat";;"27C Mer du Nord";"DNK Danemark"
+6;"Port";"HBR";"Trémazan (Landuvez)";"HBR Trémazan (Landuvez)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"HBX";"Asques";"HBX Asques";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HCC";"Kerdruc (Névez)";"HCC Kerdruc (Névez)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HCH";"Goury (Auderville)";"HCH Goury (Auderville)";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"HCN";"Courseulles-sur-Mer";"HCN Courseulles-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"HCY";"Montsinéry";"HCY Montsinéry";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"HF1";"RP-Rivière Pilote (Bourg)";"HF1 RP-Rivière Pilote (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"HF2";"RP-Poirier";"HF2 RP-Poirier";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"HF3";"RP-Anse Figuier";"HF3 RP-Anse Figuier";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"HGT";"Hugh town";"HGT Hugh town";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"HGV";"Tudy (Île-Tudy)";"HGV Tudy (Île-Tudy)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HHM";"Hanstholm";"HHM Hanstholm";;;;;;"55 Jutland";;"27C Mer du Nord";"DNK Danemark"
+6;"Port";"HLO";"Locmaria (Groix)";"HLO Locmaria (Groix)";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HLR";"Ile-d'Aix";"HLR Ile-d'Aix";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HLY";"Holyhead";"HLY Holyhead";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"HMA";"Vieux Port de Marseille";"HMA Vieux Port de Marseille";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HMN";"Saint-Trojan-les-Bains";"HMN Saint-Trojan-les-Bains";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HMT";"Cabanes de Beauduc";"HMT Cabanes de Beauduc";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HMX";"Batz (Ile-de-Batz)";"HMX Batz (Ile-de-Batz)";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"HNA";"La Martinière (Le Pellerin)";"HNA La Martinière (Le Pellerin)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HNI";"La Rague";"HNI La Rague";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HNO";"Les Champs (Bouin)";"HNO Les Champs (Bouin)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HP1";"MN-Canal des Rotours";"HP1 MN-Canal des Rotours";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"HP2";"MN-(Vieux bourg ) Morne à l'eau";"HP2 MN-(Vieux bourg ) Morne à l'eau";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"HP3";"MN-Anse Babin";"HP3 MN-Anse Babin";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"HP4";"MN-Canal Perrin";"HP4 MN-Canal Perrin";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"HPL";"Tréguier";"HPL Tréguier";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"HPV";"Gruissan";"HPV Gruissan";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HRD";"Harstad";"HRD Harstad";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"HRI";"Hareid";"HRI Hareid";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"NOR Norvège"
+6;"Port";"HRU";"Saint Philippe";"HRU Saint Philippe";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"HSB";"Saint-Quay-Portrieux";"HSB Saint-Quay-Portrieux";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"HSI";"Helsingor";"HSI Helsingor";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"HSL";"Hellevoetsluis";"HSL Hellevoetsluis";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"HST";"Etang de Mauguio, Cabanes de Pérols,Mauguio";"HST Etang de Mauguio, Cabanes de Pérols,Mauguio";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HSY";"Husoy";"HSY Husoy";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"HTL";"Le Lavandou";"HTL Le Lavandou";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"HTP";"Hartlepool";"HTP Hartlepool";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"HVA";"Arzon";"HVA Arzon";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"HVE";"Güiria";"HVE Güiria";;;;;;"09 Guyane";;"41 Atlantique sud-ouest";"VEN Venezuela"
+6;"Port";"HVH";"Hoek van Holland";"HVH Hoek van Holland";;;;;;;;;"NLD Pays-Bas"
+6;"Port";"HYL";"Hayle";"HYL Hayle";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"IAC";"Lège (Lège-Cap-Ferret)";"IAC Lège (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"IAY";"Le Palais";"IAY Le Palais";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"IBR";"Argenton (Porspoder)";"IBR Argenton (Porspoder)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"IBX";"Issan (Soussans)";"IBX Issan (Soussans)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ICC";"Rosbras (Riec-sur-Belon)";"ICC Rosbras (Riec-sur-Belon)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ICH";"Diélette (Flamanville)";"ICH Diélette (Flamanville)";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ICN";"Ver-sur-Mer";"ICN Ver-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"IF1";"MR-La Duprey";"IF1 MR-La Duprey";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IF2";"MR-Le Marin (bourg)";"IF2 MR-Le Marin (bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IF3";"MR-Canal O'Neil";"IF3 MR-Canal O'Neil";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IF4";"MR-Cul de Sac Ferré (cap Marin)";"IF4 MR-Cul de Sac Ferré (cap Marin)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IGV";"Sainte-Marine (Combrit)";"IGV Sainte-Marine (Combrit)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"IJN";"Ijmuiden";"IJN Ijmuiden";;;;;;"51 Brown Bank";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"ILO";"Gâvres";"ILO Gâvres";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"ILR";"Bourg Chapon (Charron)";"ILR Bourg Chapon (Charron)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"IMA";"Vallon des Auffes";"IMA Vallon des Auffes";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"IMN";"Le Château-d'Oléron";"IMN Le Château-d'Oléron";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"IMT";"Les Salins de Giraud";"IMT Les Salins de Giraud";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"IMX";"Santec";"IMX Santec";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"INA";"Trentemoult (Nantes)";"INA Trentemoult (Nantes)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"INI";"La Napoule";"INI La Napoule";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"INO";"Le Grand Etier de Sallertaine (La Barre-de-Monts)";"INO Le Grand Etier de Sallertaine (La Barre-de-Monts)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"IP1";"BM-Gabarre cote la jaille";"IP1 BM-Gabarre cote la jaille";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IP2";"BM-Baie Mahault (débarcadère)";"IP2 BM-Baie Mahault (débarcadère)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IP3";"BM-Baie Mahault (face ANPE)";"IP3 BM-Baie Mahault (face ANPE)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IP4";"BM-Baie Dupuy";"IP4 BM-Baie Dupuy";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IP5";"BM-Moudong";"IP5 BM-Moudong";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IP6";"BM-Anse de la Chapelle";"IP6 BM-Anse de la Chapelle";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"IPL";"Plougrescant";"IPL Plougrescant";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"IPV";"Etang de Bages-Sigean, Peyriac de mer";"IPV Etang de Bages-Sigean, Peyriac de mer";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"IRU";"Anse des cascades";"IRU Anse des cascades";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"IST";"Etangs de Vic, Moures, Arnel, Prévost, P. Blanches";"IST Etangs de Vic, Moures, Arnel, Prévost, P. Blanches";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ITL";"Saint-Tropez, vieux port";"ITL Saint-Tropez, vieux port";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"IVA";"Arzal";"IVA Arzal";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"IVD";"Invergordon";"IVD Invergordon";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"JAC";"La Vigne (Lège-Cap-Ferret)";"JAC La Vigne (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JAJ";"Porticcio";"JAJ Porticcio";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"JAY";"Sauzon";"JAY Sauzon";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JBI";"Sisco";"JBI Sisco";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"JBR";"Lanildut";"JBR Lanildut";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"JBX";"Lamarque (Saint-Yzans-de-Médoc)";"JBX Lamarque (Saint-Yzans-de-Médoc)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JCC";"Belon (Riec-sur-Belon)";"JCC Belon (Riec-sur-Belon)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JCH";"Carteret (Barneville-Carteret)";"JCH Carteret (Barneville-Carteret)";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"JCN";"Asnelles";"JCN Asnelles";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"JCY";"Rémire Montjoly";"JCY Rémire Montjoly";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"JF1";"SA-FF Sainte Anne (Bourg)";"JF1 SA-FF Sainte Anne (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"JF2";"SA-Anse Tonnoir";"JF2 SA-Anse Tonnoir";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"JF3";"SA-Les Salines";"JF3 SA-Les Salines";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"JF4";"SA-Cap Chevalier";"JF4 SA-Cap Chevalier";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"JF5";"SA-Anse au Bois";"JF5 SA-Anse au Bois";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"JLO";"Etel";"JLO Etel";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JLR";"Corps de Garde (Charron)";"JLR Corps de Garde (Charron)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JMA";"La Madrague de Montredon";"JMA La Madrague de Montredon";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"JMN";"Boyardville (Saint-Georges-d'Oléron)";"JMN Boyardville (Saint-Georges-d'Oléron)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JMT";"Port de Carteau";"JMT Port de Carteau";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"JMX";"Moguériec (Sibiril)";"JMX Moguériec (Sibiril)";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"JNA";"Gravette (La Plaine-sur-Mer)";"JNA Gravette (La Plaine-sur-Mer)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JNI";"La Figueirette";"JNI La Figueirette";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"JNO";"La Fosse (Barbâtre)";"JNO La Fosse (Barbâtre)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"JP1";"LM-Blachon";"JP1 LM-Blachon";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"JPL";"Port-Blanc (Trévou-Tréguignec)";"JPL Port-Blanc (Trévou-Tréguignec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"JPV";"Etang de l'Ayrolle";"JPV Etang de l'Ayrolle";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"JRU";"Sainte Rose";"JRU Sainte Rose";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"JST";"Etang de Thau, Mèze, le Mourre Blanc";"JST Etang de Thau, Mèze, le Mourre Blanc";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"JTL";"Saint-Raphaël, vieux port";"JTL Saint-Raphaël, vieux port";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KAC";"L'Herbe (Lège-Cap-Ferret)";"KAC L'Herbe (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KAJ";"Chiavari";"KAJ Chiavari";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KBI";"Pietracorbara";"KBI Pietracorbara";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KBR";"Molène (Ile-Molène)";"KBR Molène (Ile-Molène)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"KBX";"La Mareschale (Saint-Seurin-de-Cadourne)";"KBX La Mareschale (Saint-Seurin-de-Cadourne)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KCC";"Brigneau (Moëlan-sur-Mer)";"KCC Brigneau (Moëlan-sur-Mer)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KCH";"Portbail";"KCH Portbail";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"KCN";"Arromanches-les-Bains";"KCN Arromanches-les-Bains";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"KCY";"Régina";"KCY Régina";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"KEL";"Kiel";"KEL Kiel";;;;;;"99 Mer Baltique";;"27C Mer du Nord";"DEU Allemagne"
+6;"Port";"KET";"Kettletoft, Sanday";"KET Kettletoft, Sanday";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"KF1";"VC-Paquemar";"KF1 VC-Paquemar";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF2";"VC-Massy-Massy";"KF2 VC-Massy-Massy";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF3";"VC-Pointe Faula";"KF3 VC-Pointe Faula";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF4";"VC-Port du Vauclin";"KF4 VC-Port du Vauclin";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF5";"VC-Marché du Vauclin";"KF5 VC-Marché du Vauclin";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF6";"VC-Château Paille";"KF6 VC-Château Paille";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF7";"VC-Anse Maroquet";"KF7 VC-Anse Maroquet";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF8";"VC-Baie des Mulets (sud)";"KF8 VC-Baie des Mulets (sud)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KF9";"VC-Baie des Mulets (nord)";"KF9 VC-Baie des Mulets (nord)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KFA";"VC-Pointe des Sables";"KFA VC-Pointe des Sables";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KFB";"VC-Pointe Jacob (La Plaine)";"KFB VC-Pointe Jacob (La Plaine)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KIL";"Saint Kilda";"KIL Saint Kilda";;;;;;"104 Bressay";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"KKH";"Kirkehamn";"KKH Kirkehamn";;;;;;;;;"NOR Norvège"
+6;"Port";"KLN";"King's Lynn";"KLN King's Lynn";;;;;;"69 Smiths";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"KLO";"Groix";"KLO Groix";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KLR";"Marans";"KLR Marans";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KMA";"Port des Goudes";"KMA Port des Goudes";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KMN";"La Cotinière (Saint-Pierre d'Oléron)";"KMN La Cotinière (Saint-Pierre d'Oléron)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KMT";"Fos sur Mer, port St Gervais";"KMT Fos sur Mer, port St Gervais";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KMX";"Cléder";"KMX Cléder";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"KNA";"Le Collet (Bourgneuf-en-Retz)";"KNA Le Collet (Bourgneuf-en-Retz)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KNI";"Cannes, Nourée Rouge";"KNI Cannes, Nourée Rouge";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KNO";"Le Bonhomme (La Guérinière)";"KNO Le Bonhomme (La Guérinière)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KP1";"SR-Morne rouge";"KP1 SR-Morne rouge";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KP2";"SR-Viard";"KP2 SR-Viard";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KP3";"SR-Sainte Rose (bourg)";"KP3 SR-Sainte Rose (bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KP4";"SR-Madame";"KP4 SR-Madame";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KP5";"SR-Vinty";"KP5 SR-Vinty";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KP6";"SR-Clugny";"KP6 SR-Clugny";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"KPL";"Perros-Guirec";"KPL Perros-Guirec";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"KPV";"Cerbère";"KPV Cerbère";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KRU";"Saint Benoît";"KRU Saint Benoît";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"KSL";"Kinsale";"KSL Kinsale";;;;;;"71 Sud Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"KST";"Etang de Thau, Bouzigues";"KST Etang de Thau, Bouzigues";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KSU";"Kristiansund";"KSU Kristiansund";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"KTL";"Cavalaire sur Mer";"KTL Cavalaire sur Mer";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"KVA";"Iles du golfe du Morbihan (ens. de communes)";"KVA Iles du golfe du Morbihan (ens. de communes)";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"KVI";"Klaksvik";"KVI Klaksvik";;;;;;"95 Nord Féroé";;"27B Atlantique nord-est";"FRO Iles Féroé"
+6;"Port";"KYG";"Killybegs";"KYG Killybegs";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"KYK";"Kyleakin";"KYK Kyleakin";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"KYL";"Kyle of lochalsh";"KYL Kyle of lochalsh";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"LAC";"Claouey (Lège-Cap-Ferret)";"LAC Claouey (Lège-Cap-Ferret)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"LAJ";"Porto pollo";"LAJ Porto pollo";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LAR";"Larne";"LAR Larne";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"LBD";"Lochboisdale (Loch Baghasdail), South Uist";"LBD Lochboisdale (Loch Baghasdail), South Uist";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"LBI";"Porticciolo";"LBI Porticciolo";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LBN";"Lisbonne";"LBN Lisbonne";;;;;;"74 Portugal";;"27B Atlantique nord-est";"PRT Portugal"
+6;"Port";"LBR";"Ouessant";"LBR Ouessant";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"LBX";"Port de Goulée (Valeyrac)";"LBX Port de Goulée (Valeyrac)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"LCC";"Merrien (Moëlan-sur-Mer)";"LCC Merrien (Moëlan-sur-Mer)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"LCH";"Saint-Germain-sur-Ay";"LCH Saint-Germain-sur-Ay";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"LCN";"Port-en-Bessin (Port-en-Bessin-Huppain)";"LCN Port-en-Bessin (Port-en-Bessin-Huppain)";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"LCY";"Ouanary";"LCY Ouanary";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"LDY";"Londonderry";"LDY Londonderry";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"LEI";"Leith";"LEI Leith";;;;;;"102 Firth of Forth";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"LEK";"Lequeitio (lekeitio/leteitio)";"LEK Lequeitio (lekeitio/leteitio)";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"LF1";"FR-Cap Est";"LF1 FR-Cap Est";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF2";"FR-Pointe Cerisier";"LF2 FR-Pointe Cerisier";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF3";"FR-Le Simon";"LF3 FR-Le Simon";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF4";"FR-Dostaly";"LF4 FR-Dostaly";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF5";"FR-Frégate sud (Frégate)";"LF5 FR-Frégate sud (Frégate)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF6";"FR-Frégate nord (Monerot)";"LF6 FR-Frégate nord (Monerot)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF7";"FR-Ilets du François";"LF7 FR-Ilets du François";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF8";"FR-Trou Monérot (quartier Presqu'île)";"LF8 FR-Trou Monérot (quartier Presqu'île)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LF9";"FR-Presqu'île (port)";"LF9 FR-Presqu'île (port)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFA";"FR-Le François (bourg) - La jetée";"LFA FR-Le François (bourg) - La jetée";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFB";"FR-Pointe Degras (sud)";"LFB FR-Pointe Degras (sud)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFC";"FR-Pointe Degras (nord)";"LFC FR-Pointe Degras (nord)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFD";"FR-Baie Thalémon";"LFD FR-Baie Thalémon";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFE";"FR-Pointe Thalémon (sud)";"LFE FR-Pointe Thalémon (sud)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFF";"FR-Pointe Thalémon (nord)";"LFF FR-Pointe Thalémon (nord)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFG";"FR-Cul de sac des Roseaux ";"LFG FR-Cul de sac des Roseaux ";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFH";"FR-Mansarde Rancée 2";"LFH FR-Mansarde Rancée 2";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFI";"FR-Mansarde Rancée 3";"LFI FR-Mansarde Rancée 3";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LFJ";"FR-Pointe La Rose (ouest)";"LFJ FR-Pointe La Rose (ouest)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LHR";"Lochinver";"LHR Lochinver";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"LIT";"Littlehampton";"LIT Littlehampton";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"LIX";"Porto de leixoes";"LIX Porto de leixoes";;;;;;"74 Portugal";;"27B Atlantique nord-est";"PRT Portugal"
+6;"Port";"LLR";"Les Boucholeurs (Châtelaillon-Plage)";"LLR Les Boucholeurs (Châtelaillon-Plage)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"LMA";"Calanque de Sormiou";"LMA Calanque de Sormiou";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LMD";"Lochmaddy (LMA)";"LMD Lochmaddy (LMA)";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"LMN";"Saint-Seurin-d'Uzet (Chenac-Saint-Seurin-d'Uzet)";"LMN Saint-Seurin-d'Uzet (Chenac-Saint-Seurin-d'Uzet)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"LMP";"Lampedusa";"LMP Lampedusa";;;;;;"94 Mer Ionienne";;"37 Méditerranée";"ITA Italie"
+6;"Port";"LMT";"Etang de Berre, Istres -les heures Claires";"LMT Etang de Berre, Istres -les heures Claires";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LMX";"Plouescat - Pors-Guen";"LMX Plouescat - Pors-Guen";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"LNI";"Cap d'Ail, Port St Antoine";"LNI Cap d'Ail, Port St Antoine";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LNO";"Le Morin (La Guérinière)";"LNO Le Morin (La Guérinière)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"LOE";"Loch Ewe";"LOE Loch Ewe";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"LOL";"Lochaline";"LOL Lochaline";;;;;;"105 Nord Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"LOO";"Looe harbor";"LOO Looe harbor";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"LOW";"Lowestoft";"LOW Lowestoft";;;;;;"69 Smiths";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"LP1";"DH-Anse Rifflet";"LP1 DH-Anse Rifflet";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LP2";"DH-Grande anse de Deshaies";"LP2 DH-Grande anse de Deshaies";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LP3";"DH-Deshaies (bourg)";"LP3 DH-Deshaies (bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LP4";"DH-Anse Ferry";"LP4 DH-Anse Ferry";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"LPA";"Las Palmas";"LPA Las Palmas";;;;;;"52 Canaries";;"34 Atlantique centre-est";"ESP Espagne"
+6;"Port";"LPL";"Trégastel";"LPL Trégastel";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"LPV";"Collioure";"LPV Collioure";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LRU";"Saint André";"LRU Saint André";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"LST";"Marseillan-plage";"LST Marseillan-plage";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LTL";"St Elme";"LTL St Elme";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"LVA";"Billiers";"LVA Billiers";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"LVL";"La Valette";"LVL La Valette";;;;;;"94 Mer Ionienne";;"37 Méditerranée";"MLT Malte"
+6;"Port";"LVP";"Liverpool";"LVP Liverpool";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"LWK";"Lerwick";"LWK Lerwick";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"LYM";"Lyme regis";"LYM Lyme regis";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"MAC";"Arès";"MAC Arès";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"MAJ";"Campomoro";"MAJ Campomoro";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"MAL";"Maloy";"MAL Maloy";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"MAN";"Mandal";"MAN Mandal";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"NOR Norvège"
+6;"Port";"MBR";"Lampaul-Plouarzel (Pospaul)";"MBR Lampaul-Plouarzel (Pospaul)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"MBX";"Saint-Vivien-de-Médoc";"MBX Saint-Vivien-de-Médoc";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"MCC";"Doëlan (Clohars-Carnoët)";"MCC Doëlan (Clohars-Carnoët)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"MCD";"Macduff";"MCD Macduff";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"MCH";"Pirou";"MCH Pirou";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"MCN";"Vierville-sur-Mer / Saint-Laurent-sur-Mer";"MCN Vierville-sur-Mer / Saint-Laurent-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"MCY";"Saint Georges";"MCY Saint Georges";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"MDH";"Milford Haven";"MDH Milford Haven";;;;;;"63 Smalls";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"MF1";"RB-Pointe La Rose (est)";"MF1 RB-Pointe La Rose (est)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF2";"RB-Pointe La Rose (nord)";"MF2 RB-Pointe La Rose (nord)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF3";"RB-Sable Blanc (est)";"MF3 RB-Sable Blanc (est)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF4";"RB-Sable Blanc (ouest)";"MF4 RB-Sable Blanc (ouest)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF5";"RB-Pointe Hyacinthe (est)";"MF5 RB-Pointe Hyacinthe (est)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF6";"RB-Pointe Hyacinthe (nord)";"MF6 RB-Pointe Hyacinthe (nord)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF7";"RB-Pointe Hyacinthe (ouest)";"MF7 RB-Pointe Hyacinthe (ouest)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF8";"RB-Pointe Royale";"MF8 RB-Pointe Royale";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MF9";"RB-Pont Dore";"MF9 RB-Pont Dore";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFA";"RB-Four à Chaux";"MFA RB-Four à Chaux";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFB";"RB-Pontalery";"MFB RB-Pontalery";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFC";"RB-Le Robert (bourg)";"MFC RB-Le Robert (bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFD";"RB-Pointe Lynch";"MFD RB-Pointe Lynch";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFE";"RB-Pointe Fort";"MFE RB-Pointe Fort";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFF";"RB-Pointe l'Ecurie (est)";"MFF RB-Pointe l'Ecurie (est)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFG";"RB-Pointe l'Ecurie (sud)";"MFG RB-Pointe l'Ecurie (sud)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFH";"RB-Pointe Rouge (sud)";"MFH RB-Pointe Rouge (sud)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFI";"RB-Pointe Rouge (nord)";"MFI RB-Pointe Rouge (nord)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFJ";"RB-Baie de Cayol";"MFJ RB-Baie de Cayol";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFK";"RB-Petit Galion-Pointe Jean Claude";"MFK RB-Petit Galion-Pointe Jean Claude";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MFL";"RB-Ilets du Robert";"MFL RB-Ilets du Robert";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MGT";"Margate";"MGT Margate";;;;;;"62 Sandettie";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"MID";"Middelburg";"MID Middelburg";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"MLG";"Meling";"MLG Meling";;;;;;"100 Mer de Norvège";;"27B Atlantique nord-est";"NOR Norvège"
+6;"Port";"MLO";"Le Magouer (Plouhinec)";"MLO Le Magouer (Plouhinec)";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"MLR";"Port nord (Fouras)";"MLR Port nord (Fouras)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"MMA";"Port de Morgiou";"MMA Port de Morgiou";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"MMN";"Mortagne-sur-Gironde";"MMN Mortagne-sur-Gironde";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"MMT";"Etang de Berre, Berre - Port de passet";"MMT Etang de Berre, Berre - Port de passet";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"MMX";"Port du Bloscon - Roscoff";"MMX Port du Bloscon - Roscoff";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"MNI";"Port Gallice";"MNI Port Gallice";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"MP1";"PN-Petite Anse (Pointe noire)";"MP1 PN-Petite Anse (Pointe noire)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MP2";"PN-Baille Argent (Pointe noire)";"MP2 PN-Baille Argent (Pointe noire)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MP3";"PN-Anse Marigo";"MP3 PN-Anse Marigo";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MP4";"PN-Pointe noire (Bourg)";"MP4 PN-Pointe noire (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MP5";"PN-Anse Guyonneau";"MP5 PN-Anse Guyonneau";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MP6";"PN-Plage caraïbe";"MP6 PN-Plage caraïbe";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"MPL";"Ploumanac'h (Perros-Guirec)";"MPL Ploumanac'h (Perros-Guirec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"MPV";"Port St Ange";"MPV Port St Ange";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"MRN";"Marin";"MRN Marin";;;;;;"53 Finisterre Vigo";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"MRS";"Muros";"MRS Muros";;;;;;"53 Finisterre Vigo";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"MRU";"Sainte Marie";"MRU Sainte Marie";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"MSL";"Maassluis";"MSL Maassluis";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"MSR";"Misurata";"MSR Misurata";;;;;;"94 Mer Ionienne";;"37 Méditerranée";"LBY Libye"
+6;"Port";"MST";"Etang de Thau, Balaruc";"MST Etang de Thau, Balaruc";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"MTK";"Moutriku";"MTK Moutriku";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"MTL";"Port de Bormes les Mimosas, La Favière";"MTL Port de Bormes les Mimosas, La Favière";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"MVG";"Mevagissey harbor";"MVG Mevagissey harbor";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"NAC";"Taussat (Lanton)";"NAC Taussat (Lanton)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"NAJ";"Tizzano";"NAJ Tizzano";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NBI";"Santa Severa";"NBI Santa Severa";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NBR";"Le Conquet";"NBR Le Conquet";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"NBX";"Le Pain de Sucre (Bayon-sur-Gironde)";"NBX Le Pain de Sucre (Bayon-sur-Gironde)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"NCC";"Le Pouldu (Clohars-Carnoët)";"NCC Le Pouldu (Clohars-Carnoët)";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"NCH";"Gouville-sur-Mer";"NCH Gouville-sur-Mer";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"NCN";"Grandcamp (Grandcamp-Maisy)";"NCN Grandcamp (Grandcamp-Maisy)";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"NES";"South Ness";"NES South Ness";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"NF1";"TR-Galion (Quartier Bac)";"NF1 TR-Galion (Quartier Bac)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF2";"TR-Anse Dijon";"NF2 TR-Anse Dijon";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF3";"TR-Anse Belune";"NF3 TR-Anse Belune";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF4";"TR-Spoutourne";"NF4 TR-Spoutourne";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF5";"TR-Tartane";"NF5 TR-Tartane";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF6";"TR-Ecole maritime (Autre Bord)";"NF6 TR-Ecole maritime (Autre Bord)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF7";"TR-Les Raisiniers";"NF7 TR-Les Raisiniers";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF8";"TR-Petit Brésil";"NF8 TR-Petit Brésil";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NF9";"TR-La Crique";"NF9 TR-La Crique";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NFA";"TR-Anse Cosmy";"NFA TR-Anse Cosmy";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NFB";"TR-Anse Belgrade";"NFB TR-Anse Belgrade";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NLN";"Newlyn";"NLN Newlyn";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"NLR";"Port neuf (Rochefort)";"NLR Port neuf (Rochefort)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"NMA";"Calanque de Port-Miou";"NMA Calanque de Port-Miou";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NMN";"Port-Maubert (Saint-Fort-sur-Gironde)";"NMN Port-Maubert (Saint-Fort-sur-Gironde)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"NMT";"Etang de Berre, La Mède";"NMT Etang de Berre, La Mède";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NNI";"Juan les Pins";"NNI Juan les Pins";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NP1";"BO-Anse Colas Mahault";"NP1 BO-Anse Colas Mahault";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP2";"BO-Malendure";"NP2 BO-Malendure";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP3";"BO-Anse à Galets";"NP3 BO-Anse à Galets";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP4";"BO-Pigeon section la lise";"NP4 BO-Pigeon section la lise";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP5";"BO-Pigeon section fromager";"NP5 BO-Pigeon section fromager";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP6";"BO-Pigeon section coton";"NP6 BO-Pigeon section coton";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP7";"BO-Anse à sable";"NP7 BO-Anse à sable";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP8";"BO-Bouillante stat therm-Anse Marsolle";"NP8 BO-Bouillante stat therm-Anse Marsolle";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NP9";"BO-Anse de Bouillante";"NP9 BO-Anse de Bouillante";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPA";"BO-Pointe de l'Ermitage";"NPA BO-Pointe de l'Ermitage";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPB";"BO-Anse à Cardonnet";"NPB BO-Anse à Cardonnet";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPC";"BO-Anse à Thomas";"NPC BO-Anse à Thomas";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPD";"BO-Anse du Dépôt";"NPD BO-Anse du Dépôt";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPE";"BO-Grande anse Duche";"NPE BO-Grande anse Duche";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPF";"BO-Trois Tortues";"NPF BO-Trois Tortues";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPG";"BO-Anse à la Barque (Bouillante)";"NPG BO-Anse à la Barque (Bouillante)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"NPL";"Ile-Grande (Pleumeur-Bodou)";"NPL Ile-Grande (Pleumeur-Bodou)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"NPT";"Nieuwpoort";"NPT Nieuwpoort";;;;;;"62 Sandettie";;"27C Mer du Nord";"BEL Belgique"
+6;"Port";"NPV";"Grau de Leucate";"NPV Grau de Leucate";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NQY";"Newquay";"NQY Newquay";;;;;;"103 Nord Bishop Trévose";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"NRU";"Saint Denis";"NRU Saint Denis";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"NSD";"North sunderland";"NSD North sunderland";;;;;;"101 Farn deeps";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"NST";"Etang d'Ingril, Les Aresquiers";"NST Etang d'Ingril, Les Aresquiers";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NTL";"Ste Maxime";"NTL Ste Maxime";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"NWH";"Newhaven";"NWH Newhaven";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"NYN";"Nynashamn";"NYN Nynashamn";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"SWE Suède"
+6;"Port";"OAC";"Cassy (Lanton)";"OAC Cassy (Lanton)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"OAJ";"Figari (port de Pianottoli-Caldarello)";"OAJ Figari (port de Pianottoli-Caldarello)";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"OBI";"Barcaggio";"OBI Barcaggio";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"OBN";"Oban";"OBN Oban";;;;;;"105 Nord Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"OBR";"Lauberlac'h (Le Conquet)";"OBR Lauberlac'h (Le Conquet)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"OBX";"Saint-André-de-Cubzac";"OBX Saint-André-de-Cubzac";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"OCH";"Blainville-sur-Mer";"OCH Blainville-sur-Mer";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"OCN";"Isigny (Isigny-sur-Mer)";"OCN Isigny (Isigny-sur-Mer)";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"OF1";"SM-Luciole";"OF1 SM-Luciole";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OF2";"SM-Derrière Morne";"OF2 SM-Derrière Morne";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OF3";"SM-Anse Dufour";"OF3 SM-Anse Dufour";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OF4";"SM-Sainte Marie (Bourg)";"OF4 SM-Sainte Marie (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OLR";"Rochefort";"OLR Rochefort";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"OMN";"Vitrezay (Saint-Bonnet-sur-Gironde)";"OMN Vitrezay (Saint-Bonnet-sur-Gironde)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"OMT";"Port de Ponteau";"OMT Port de Ponteau";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"OND";"Ondarroa";"OND Ondarroa";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"OP1";"VH-Anse à la Barque";"OP1 VH-Anse à la Barque";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OP2";"VH-Marigot";"OP2 VH-Marigot";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OP3";"VH-Vieux Habitants (Bourg)";"OP3 VH-Vieux Habitants (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OP4";"VH-Anse du val de l'orge";"OP4 VH-Anse du val de l'orge";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"OPL";"Trébeurden";"OPL Trébeurden";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"OPV";"Etang de Salse-Leucate, Port-Fitou";"OPV Etang de Salse-Leucate, Port-Fitou";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ORK";"Cork";"ORK Cork";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"OST";"Carnon-Plage";"OST Carnon-Plage";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"OTE";"Oostende";"OTE Oostende";;;;;;"62 Sandettie";;"27C Mer du Nord";"BEL Belgique"
+6;"Port";"OTL";"St Aygulf";"OTL St Aygulf";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"PAC";"Lanton";"PAC Lanton";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"PAJ";"La Tonnara";"PAJ La Tonnara";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"PAS";"Pasajes";"PAS Pasajes";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"PBI";"Tolare";"PBI Tolare";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"PBR";"Le Tinduff (Plougastel-Daoulas)";"PBR Le Tinduff (Plougastel-Daoulas)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"PBX";"Soussans";"PBX Soussans";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"PCH";"Agon-Coutainville";"PCH Agon-Coutainville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"PCN";"Villerville";"PCN Villerville";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"PDS";"Padstow";"PDS Padstow";;;;;;"103 Nord Bishop Trévose";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"PEN";"Penzance";"PEN Penzance";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"PF1";"MG-Le Marigot";"PF1 MG-Le Marigot";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"PHD";"Peterhead";"PHD Peterhead";;;;;;"102 Firth of Forth";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"PHU";"Phuket";"PHU Phuket";;;;;;"68 Asie";;"57 Océan indien est";"THA Thaïlande"
+6;"Port";"PIH";"Portishead";"PIH Portishead";;;;;;"103 Nord Bishop Trévose";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"PLD";"Portland harbor";"PLD Portland harbor";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"PLN";"Port Ellen";"PLN Port Ellen";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"PLR";"Tonnay-Charente";"PLR Tonnay-Charente";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"PLU";"Port-Louis (île Maurice)";"PLU Port-Louis (île Maurice)";;;;;;"67 Est Afrique";;"51 Océan indien ouest";"MUS Maurice"
+6;"Port";"PMH";"Plymouth";"PMH Plymouth";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"PMN";"Les Monards (Barzan)";"PMN Les Monards (Barzan)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"PMT";"Anse des laurons";"PMT Anse des laurons";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"PNI";"Port de Crouton";"PNI Port de Crouton";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"POO";"Poole harbor";"POO Poole harbor";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"PP1";"BA-La Madeleine";"PP1 BA-La Madeleine";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"PP2";"BA-Baillif Quai (Bourg)";"PP2 BA-Baillif Quai (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"PP3";"BA-Tour du père Labat";"PP3 BA-Tour du père Labat";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"PPL";"Beg Hent (Lannion)";"PPL Beg Hent (Lannion)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"PPV";"Les Cabanes de Fleury";"PPV Les Cabanes de Fleury";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"PST";"Sète-Mole et canaux";"PST Sète-Mole et canaux";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"PTE";"Porthleven";"PTE Porthleven";;;;;;"64 Sud Bishop";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"PTH";"Portsmouth";"PTH Portsmouth";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"PTL";"Fréjus";"PTL Fréjus";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"PTM";"Tanger Med";"PTM Tanger Med";;;;;;;;;"MAR Maroc"
+6;"Port";"PTR";"Portrush";"PTR Portrush";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"QAC";"Audenge";"QAC Audenge";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"QAJ";"Sant'Amanza";"QAJ Sant'Amanza";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"QBI";"Giottani";"QBI Giottani";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"QBR";"Rostiviec (Loperhet)";"QBR Rostiviec (Loperhet)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"QBX";"Macau";"QBX Macau";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"QCH";"Regnéville-sur-Mer";"QCH Regnéville-sur-Mer";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"QCN";"Bernières-sur-Mer";"QCN Bernières-sur-Mer";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"QF1";"BP-Basse Pointe";"QF1 BP-Basse Pointe";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"QMN";"Brouage (Hiers-Brouage)";"QMN Brouage (Hiers-Brouage)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"QMT";"Carro";"QMT Carro";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"QMX";"Morlaix";"QMX Morlaix";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"QNI";"Port de Salis";"QNI Port de Salis";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"QP1";"BT-Rivière des pères";"QP1 BT-Rivière des pères";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"QP2";"BT-Basse terre (quai saintois)";"QP2 BT-Basse terre (quai saintois)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"QPL";"Le Yaudet (Lannion)";"QPL Le Yaudet (Lannion)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"QPV";"Etang de Bages-Sigean, Bages";"QPV Etang de Bages-Sigean, Bages";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"QST";"Etang de Thau, Pte Courte, Barrou, Zup";"QST Etang de Thau, Pte Courte, Barrou, Zup";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"QTL";"St Cyr sur mer, la Madrague";"QTL St Cyr sur mer, la Madrague";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"RAC";"Le Teich";"RAC Le Teich";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"RAT";"Rathmullan";"RAT Rathmullan";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"RBI";"Algajola (port de San Damiano)";"RBI Algajola (port de San Damiano)";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"RBR";"Pors Beach (Logonna-Daoulas)";"RBR Pors Beach (Logonna-Daoulas)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"RBS";"Ribadesella";"RBS Ribadesella";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"RBX";"Talais";"RBX Talais";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"RCH";"Bricqueville-sur-Mer";"RCH Bricqueville-sur-Mer";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"REI";"Reine";"REI Reine";;;;;;;;;"NOR Norvège"
+6;"Port";"REK";"Rekefjord";"REK Rekefjord";;;;;;;;;"NOR Norvège"
+6;"Port";"RF1";"GR-Grand rivière";"RF1 GR-Grand rivière";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"RIB";"Ribadeo";"RIB Ribadeo";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"RIE";"Rye";"RIE Rye";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"RIV";"Riveira (Santa Uxía de Ribeira)";"RIV Riveira (Santa Uxía de Ribeira)";;;;;;"53 Finisterre Vigo";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"RMA";"Port de Frioul (Ile de)";"RMA Port de Frioul (Ile de)";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"RMG";"Ramsgate";"RMG Ramsgate";;;;;;"62 Sandettie";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"RMN";"Le Douhet (Saint-Denis-d'Oléron)";"RMN Le Douhet (Saint-Denis-d'Oléron)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"RMT";"Lavéra";"RMT Lavéra";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"RNI";"Port Vauban";"RNI Port Vauban";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ROS";"Rosaveel";"ROS Rosaveel";;;;;;"61 Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"ROT";"Rota";"ROT Rota";;;;;;;;;"ESP Espagne"
+6;"Port";"RP1";"GY-Face IRPM";"RP1 GY-Face IRPM";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"RP2";"GY-Marina de Rivière Sens";"RP2 GY-Marina de Rivière Sens";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"RPL";"Locquémeau (Trédrez-Locquémeau)";"RPL Locquémeau (Trédrez-Locquémeau)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"RPV";"Etang de Salse-Leucate,Salse - la Rouquette";"RPV Etang de Salse-Leucate,Salse - la Rouquette";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"RSA";"Rosas";"RSA Rosas";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"RSS";"Rosslare";"RSS Rosslare";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"RST";"La Grande Motte";"RST La Grande Motte";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"RTL";"Port de la Coudoulière";"RTL Port de la Coudoulière";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"RTM";"Rotterdam";"RTM Rotterdam";;;;;;;;;"NLD Pays-Bas"
+6;"Port";"RVK";"Risaviki";"RVK Risaviki";;;;;;;;;"NOR Norvège"
+6;"Port";"SAC";"La Hume (Gujan-Mestras)";"SAC La Hume (Gujan-Mestras)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"SAN";"Santona";"SAN Santona";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"SBI";"Sant'Ambroggio";"SBI Sant'Ambroggio";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"SBJ";"Esbjerg";"SBJ Esbjerg";;;;;;"75 Sud Jutland";;"27C Mer du Nord";"DNK Danemark"
+6;"Port";"SBR";"Moulin Mer (Logonna-Daoulas)";"SBR Moulin Mer (Logonna-Daoulas)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"SBX";"Saint-Estèphe";"SBX Saint-Estèphe";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"SCA";"Scarborough";"SCA Scarborough";;;;;;"101 Farn deeps";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"SCB";"Salcombe";"SCB Salcombe";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"SCD";"Schiedam";"SCD Schiedam";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"SCH";"Donville-les-Bains";"SCH Donville-les-Bains";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"SCI";"San ciprian";"SCI San ciprian";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"SCR";"Scrabster";"SCR Scrabster";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"SCT";"Santa Cruz de Tenerife";"SCT Santa Cruz de Tenerife";;;;;;"52 Canaries";;"34 Atlantique centre-est";"ESP Espagne"
+6;"Port";"SF1";"PR-Anse Céron";"SF1 PR-Anse Céron";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SF2";"PR-Anse Belleville";"SF2 PR-Anse Belleville";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SF3";"PR-Les Abymes";"SF3 PR-Les Abymes";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SF4";"PR-Bourg du Prêcheur";"SF4 PR-Bourg du Prêcheur";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SF5";"PR-Pointe Lamare";"SF5 PR-Pointe Lamare";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SF6";"PR-Cimetière";"SF6 PR-Cimetière";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SF7";"PR-Charmeuse";"SF7 PR-Charmeuse";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SFG";"Sant Feliu de Guixols";"SFG Sant Feliu de Guixols";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"SHI";"Shields (north and south)";"SHI Shields (north and south)";;;;;;"101 Farn deeps";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"SHN";"Scheveningen";"SHN Scheveningen";;;;;;"51 Brown Bank";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"SHO";"Shoreham-by-Sea";"SHO Shoreham-by-Sea";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"SHS";"Sheerness";"SHS Sheerness";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"SIE";"Sines";"SIE Sines";;;;;;;;;"PRT Portugal"
+6;"Port";"SJL";"Strangford";"SJL Strangford";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"SKG";"Skagen";"SKG Skagen";;;;;;"73 Skagerrak et Cattégat";;"27C Mer du Nord";"DNK Danemark"
+6;"Port";"SKL";"Skull";"SKL Skull";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"SKU";"Skudeneshavn";"SKU Skudeneshavn";;;;;;;;;"NOR Norvège"
+6;"Port";"SMA";"Pointe Rouge";"SMA Pointe Rouge";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"SMN";"L'Eguille";"SMN L'Eguille";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"SNI";"La Galère";"SNI La Galère";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"SNS";"Stromness";"SNS Stromness";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"SNT";"Santander";"SNT Santander";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"SOU";"Southampton";"SOU Southampton";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"SP1";"VF-Pointe Mazarin";"SP1 VF-Pointe Mazarin";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SP2";"VF-Anse Dupuy";"SP2 VF-Anse Dupuy";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SP3";"VF-Vieux fort";"SP3 VF-Vieux fort";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SP4";"VF-Pointe à Launay";"SP4 VF-Pointe à Launay";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"SPL";"Buguélès (Penvénan)";"SPL Buguélès (Penvénan)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"SPO";"Santa Pola";"SPO Santa Pola";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"SPT";"St Peter port";"SPT St Peter port";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"SRV";"Sorvagur";"SRV Sorvagur";;;;;;"95 Nord Féroé";;"27B Atlantique nord-est";"FRO Iles Féroé"
+6;"Port";"SSS";"Sharpness";"SSS Sharpness";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"SST";"Etang de Pérols, Port de Carême";"SST Etang de Pérols, Port de Carême";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"STA";"St Aubinr";"STA St Aubinr";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"STH";"St Helier";"STH St Helier";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"STI";"St Ives";"STI St Ives";;;;;;"103 Nord Bishop Trévose";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"STL";"St Mandrier sur mer";"STL St Mandrier sur mer";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"STM";"Stellendam";"STM Stellendam";;;;;;"51 Brown Bank";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"STS";"St Sampson";"STS St Sampson";;;;;;"72 Manche ouest";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"STW";"Stornoway";"STW Stornoway";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"SUL";"Sullom voe";"SUL Sullom voe";;;;;;"104 Bressay";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"SWY";"Scalloway";"SWY Scalloway";;;;;;"104 Bressay";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"TAB";"Tarbert (Royaume-Uni)";"TAB Tarbert (Royaume-Uni)";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"TAC";"La Passerelle (Gujan-Mestras)";"TAC La Passerelle (Gujan-Mestras)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"TAR";"Tarbert (Irlande)";"TAR Tarbert (Irlande)";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"TBI";"Galéria";"TBI Galéria";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"TBR";"Kérascouët (Hôpital-Camfrout)";"TBR Kérascouët (Hôpital-Camfrout)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"TBX";"Saint-Christoly-Médoc";"TBX Saint-Christoly-Médoc";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"TCH";"Chausey (Granville)";"TCH Chausey (Granville)";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"TF1";"SP-Sainte Philomène";"TF1 SP-Sainte Philomène";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"TF2";"SP-Fond Corre";"TF2 SP-Fond Corre";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"TF3";"SP-La Galère";"TF3 SP-La Galère";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"TF4";"SP-Bourg de Saint Pierre";"TF4 SP-Bourg de Saint Pierre";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"THM";"Thema";"THM Thema";;;;;;"66 Ouest Afrique";;"34 Atlantique centre-est";"GHA Ghana"
+6;"Port";"THO";"Thorshavn";"THO Thorshavn";;;;;;"95 Nord Féroé";;"27B Atlantique nord-est";"FRO Iles Féroé"
+6;"Port";"THY";"Thyboron";"THY Thyboron";;;;;;"55 Jutland";;"27C Mer du Nord";"DNK Danemark"
+6;"Port";"TJA";"Tjotta";"TJA Tjotta";;;;;;;;;"NOR Norvège"
+6;"Port";"TMA";"Calanque de Callelongue";"TMA Calanque de Callelongue";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"TMN";"Chaillevette";"TMN Chaillevette";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"TNI";"Baulieu";"TNI Baulieu";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"TNM";"Teignmouth";"TNM Teignmouth";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"TNZ";"Terneuzen";"TNZ Terneuzen";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"TOB";"Tobermory";"TOB Tobermory";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"TOR";"Torrevieja";"TOR Torrevieja";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"TP1";"TR-Plage de la grande anse";"TP1 TR-Plage de la grande anse";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"TP2";"TR-Bord de mer (Trois Rivières)";"TP2 TR-Bord de mer (Trois Rivières)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"TPL";"Landrellec (Pleumeur-Bodou)";"TPL Landrellec (Pleumeur-Bodou)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"TRF";"Tarifa";"TRF Tarifa";;;;;;;;;"ESP Espagne"
+6;"Port";"TRN";"Troon";"TRN Troon";;;;;;"58 Nord Irlande";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"TST";"Etang de Mauguio, Cabanes de Lunel";"TST Etang de Mauguio, Cabanes de Lunel";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"TTL";"Port St Louis du Mourillon";"TTL Port St Louis du Mourillon";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"TUB";"Tuborg havn";"TUB Tuborg havn";;;;;;"73 Skagerrak et Cattégat";;"27C Mer du Nord";"DNK Danemark"
+6;"Port";"TVO";"Tvoroyri";"TVO Tvoroyri";;;;;;"96 Sud Féroé";;"27B Atlantique nord-est";"FRO Iles Féroé"
+6;"Port";"UAC";"Larros (Gujan-Mestras)";"UAC Larros (Gujan-Mestras)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"UBI";"Bravone";"UBI Bravone";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"UBR";"Landévennec";"UBR Landévennec";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"UBX";"Meyran";"UBX Meyran";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"UCH";"Granville";"UCH Granville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"UF1";"CB-Carbet Sud";"UF1 CB-Carbet Sud";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UF2";"CB-Carbet Nord";"UF2 CB-Carbet Nord";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"ULP";"Ullapool";"ULP Ullapool";;;;;;"60 Ouest Hébrides";;"27B Atlantique nord-est";"GBR Royaume-Uni"
+6;"Port";"UMN";"Soubise";"UMN Soubise";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"UNI";"St Jean Cap Ferrat";"UNI St Jean Cap Ferrat";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"UP1";"CB-Anse salé";"UP1 CB-Anse salé";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UP2";"CB-Anse du Bananier";"UP2 CB-Anse du Bananier";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UP3";"CB-Anse Saint Sauveur";"UP3 CB-Anse Saint Sauveur";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UP4";"CB-Capesterre Belle Eau (Bourg)";"UP4 CB-Capesterre Belle Eau (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UP5";"CB-Plage de roseau";"UP5 CB-Plage de roseau";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UP6";"CB-Sainte Marie";"UP6 CB-Sainte Marie";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UP7";"CB-Four à chaux";"UP7 CB-Four à chaux";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"UPL";"Pors-Gelin";"UPL Pors-Gelin";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"USK";"Ustka";"USK Ustka";;;;;;"99 Mer Baltique";;"27C Mer du Nord";"POL Pologne"
+6;"Port";"VAC";"Le Canal (Gujan-Mestras)";"VAC Le Canal (Gujan-Mestras)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"VAL";"Valentia";"VAL Valentia";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"VBI";"Meria";"VBI Meria";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"VBR";"Le Frêt (Crozon)";"VBR Le Frêt (Crozon)";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"VBX";"Libourne";"VBX Libourne";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"VCH";"Avranches";"VCH Avranches";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"VDC";"Viana do Castelo";"VDC Viana do Castelo";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"PRT Portugal"
+6;"Port";"VF1";"BF-Fond Capot";"VF1 BF-Fond Capot";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"VF2";"BF-Bourg de Bellefontaine";"VF2 BF-Bourg de Bellefontaine";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"VF3";"BF-Fond Boucher";"VF3 BF-Fond Boucher";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"VIC";"Victoria (Seychelles)";"VIC Victoria (Seychelles)";;;;;;"67 Est Afrique";;"51 Océan indien ouest";"SYC Seychelles"
+6;"Port";"VIG";"Vigo";"VIG Vigo";;;;;;"53 Finisterre Vigo";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"VIL";"Vilagarcia (de arousa)";"VIL Vilagarcia (de arousa)";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"VLC";"Valencia";"VLC Valencia";;;;;;"91 Baléares";;"37 Méditerranée";"ESP Espagne"
+6;"Port";"VMN";"Saint-Nazaire-sur-Charente (Charron)";"VMN Saint-Nazaire-sur-Charente (Charron)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"VNI";"Villefranche, Port de la Darse";"VNI Villefranche, Port de la Darse";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"VP1";"GV-Sainte claire";"VP1 GV-Sainte claire";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"VP2";"GV-Goyave (Bourg)";"VP2 GV-Goyave (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"VP3";"GV-Sarcelle";"VP3 GV-Sarcelle";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"VPL";"Plougrescant, Pors-Hir";"VPL Plougrescant, Pors-Hir";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"VRE";"Vila Real de Santo Antonio";"VRE Vila Real de Santo Antonio";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"PRT Portugal"
+6;"Port";"VSN";"Vlissingen";"VSN Vlissingen";;;;;;"62 Sandettie";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"VTL";"Port des Oursinières";"VTL Port des Oursinières";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"VTY";"Ventry";"VTY Ventry";;;;;;"65 Sud-Ouest Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"VVR";"Vivero";"VVR Vivero";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"WAC";"Arcachon HC (ens. de communes)";"WAC Arcachon HC (ens. de communes)";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WAT";"Waterford";"WAT Waterford";;;;;;"71 Sud Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"WBA";"Bayonne HC (ens. de communes)";"WBA Bayonne HC (ens. de communes)";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WBX";"Estuaire de la Gironde (ens. de communes)";"WBX Estuaire de la Gironde (ens. de communes)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WES";"Westport";"WES Westport";;;;;;;;;"IRL Irlande"
+6;"Port";"WF1";"CP-Bourg de Case Pilote";"WF1 CP-Bourg de Case Pilote";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"WF2";"CP-Fond Bourlet";"WF2 CP-Fond Bourlet";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"WHL";"Whitehall Village, Stronsay";"WHL Whitehall Village, Stronsay";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"WIC";"Wicklow";"WIC Wicklow";;;;;;"56 Mer d'Irlande";;"27B Atlantique nord-est";"IRL Irlande"
+6;"Port";"WIK";"Wick";"WIK Wick";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"WKO";"Warkworth";"WKO Warkworth";;;;;;;;;"GBR Royaume-Uni"
+6;"Port";"WLR";"La Rochelle HC (ens. de communes)";"WLR La Rochelle HC (ens. de communes)";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WLS";"Les Sables-d'Olonne HC (ens. de communes)";"WLS Les Sables-d'Olonne HC (ens. de communes)";"LS Les Sables-d'Olonne";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WLW";"Woolwich";"WLW Woolwich";;;;;;"62 Sandettie";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"WMN";"Marennes HC (ens. de communes)";"WMN Marennes HC (ens. de communes)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WNA";"Estuaire de la Loire (ens. de communes)";"WNA Estuaire de la Loire (ens. de communes)";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WNO";"Noirmoutier HC (ens. de communes)";"WNO Noirmoutier HC (ens. de communes)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"WP1";"PB-Petit bourg - la Vinaigrerie";"WP1 PB-Petit bourg - la Vinaigrerie";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"WRY";"Pierowall";"WRY Pierowall";;;;;;"54 Firth of Moray";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"WTB";"Whitby";"WTB Whitby";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"GBR Royaume-Uni"
+6;"Port";"WTW";"Wallsend";"WTW Wallsend";;;;;;"101 Farn deeps";;"27C Mer du Nord";"GBR Royaume-Uni"
+6;"Port";"XAC";"Arcachon";"XAC Arcachon";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XAD";"Audierne";"XAD Audierne";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XAJ";"Ajaccio (Tino Rossi)";"XAJ Ajaccio (Tino Rossi)";"AJ Ajaccio";"2A Corse-du-Sud";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XAY";"Auray";"XAY Auray";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XBA";"Bayonne";"XBA Bayonne";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XBI";"Bastia";"XBI Bastia";"BI Bastia";"2B Haute-Corse";"CO Corse";"CO Corse";"94 Corse";"93 Corse-Sardaigne";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XBL";"Boulogne-sur-Mer";"XBL Boulogne-sur-Mer";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XBR";"Brest";"XBR Brest";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XBX";"Bordeaux";"XBX Bordeaux";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XCC";"Concarneau";"XCC Concarneau";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XCH";"Cherbourg";"XCH Cherbourg";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XCN";"Caen";"XCN Caen";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XCY";"Cayenne";"XCY Cayenne";"CY Cayenne";"973 Guyane";"GY Guyane";"GY Guyane";"03 Guyane";"09 Guyane";"02 DOM";"41 Atlantique sud-ouest";"FRA France"
+6;"Port";"XDI";"Dzaoudzi";"XDI Dzaoudzi";"DI Dzaoudzi";;"MY Mayotte";"MY Mayotte";;"13 Mayotte";;"51 Océan indien ouest";"MYT Mayotte"
+6;"Port";"XDK";"Dunkerque";"XDK Dunkerque";"DK Dunkerque";"59 Nord";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XDP";"Dieppe";"XDP Dieppe";"DP Dieppe";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XDZ";"Douarnenez";"XDZ Douarnenez";"DZ Douarnenez";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XF1";"SH-Fond Bernier";"XF1 SH-Fond Bernier";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XF2";"SH-Fond Lahaye";"XF2 SH-Fond Lahaye";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XF3";"SH-Anse Madame";"XF3 SH-Anse Madame";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XF4";"SH-Schoelcher (Bourg)";"XF4 SH-Schoelcher (Bourg)";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XF5";"SH-Anse Gouraud";"XF5 SH-Anse Gouraud";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XFC";"Fécamp";"XFC Fécamp";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XFF";"Fort-de-France";"XFF Fort-de-France";"FF Fort-de-France";"972 Martinique";"MA Martinique";"MA Martinique";"02 Martinique";"08 Martinique";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XFK";"Port-aux-Francais";"XFK Port-aux-Francais";"FK Port-aux-Français";;;;;"15 TAAF";;"58 Antarctique";"ATF TAAF (Terres australes françaises)"
+6;"Port";"XGV";"Guilvinec";"XGV Guilvinec";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XLH";"Le Havre";"XLH Le Havre";"LH Le Havre";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XLO";"Lorient";"XLO Lorient";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XLR";"La Rochelle";"XLR La Rochelle";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XLS";"Les Sables-d'Olonne";"XLS Les Sables-d'Olonne";"LS Les Sables-d'Olonne";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XMA";"Marseille";"XMA Marseille";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XMN";"Marennes";"XMN Marennes";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XMT";"Martigues";"XMT Martigues";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XMU";"Mata-Utu";"XMU Mata-Utu";"MU Mata-Utu";;;;;"12 Polynésie française";;"71 Pacifique centre-ouest";"PYF Polynésie française"
+6;"Port";"XMX";"Morlaix";"XMX Morlaix";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XNA";"Nantes";"XNA Nantes";"NA Nantes";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XNC";"Nouméa";"XNC Nouméa";"NC Nouméa";;"NC Nouvelle Calédonie";"NC Nouvelle Calédonie";;"14 Nouvelle-Calédonie";;"71 Pacifique centre-ouest";"NCL Nouvelle-Calédonie"
+6;"Port";"XNI";"Nice";"XNI Nice";"NI Nice";"06 Alpes-Maritimes";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XNO";"Noirmoutier-en-l'Île";"XNO Noirmoutier-en-l'Île";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XON";"Moroni";"XON Moroni";"ON Moroni";;;;;"13 Mayotte";;"51 Océan indien ouest";"MYT Mayotte"
+6;"Port";"XP1";"TH-Terre de Haut (Bourg)";"XP1 TH-Terre de Haut (Bourg)";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XP2";"TH-Petite anse";"XP2 TH-Petite anse";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XP3";"TH-Anse Fond cure";"XP3 TH-Anse Fond cure";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XP4";"TH-Anse Morel";"XP4 TH-Anse Morel";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XP5";"TH-Plage de Marigot";"XP5 TH-Plage de Marigot";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XP6";"TH-Anse Mire";"XP6 TH-Anse Mire";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XPL";"Paimpol";"XPL Paimpol";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XPP";"Pointe-à-Pitre";"XPP Pointe-à-Pitre";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"XPV";"Port-Vendres";"XPV Port-Vendres";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XPY";"Papeete";"XPY Papeete";"PY Papeete";;"TA Tahiti";"TA Tahiti";;"12 Polynésie française";;"71 Pacifique centre-ouest";"PYF Polynésie française"
+6;"Port";"XRO";"Rouen";"XRO Rouen";"RO Rouen";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XRU";"Le Port";"XRU Le Port";"RU Saint-Denis de la Réunion";"974 La Réunion";"RU Réunion";"RU Réunion";"04 Réunion";"10 Réunion";"02 DOM";"51 Océan indien ouest";"FRA France"
+6;"Port";"XSB";"Saint-Brieuc";"XSB Saint-Brieuc";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XSM";"Saint-Malo";"XSM Saint-Malo";"SM Saint-Malo";"35 Ille-et-Vilaine";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"XSN";"Saint-Nazaire";"XSN Saint-Nazaire";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XSP";"Saint-Pierre";"XSP Saint-Pierre";"SP Saint-Pierre-et-Miquelon";;"SP Saint-Pierre";"SP Saint-Pierre et Miquelon";;"11 Saint-Pierre-et-Miquelon";;"21 Atlantique nord-ouest";"SPM Saint-Pierre-et-Miquelon"
+6;"Port";"XST";"Sète, tous les ports";"XST Sète, tous les ports";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XTL";"Toulon";"XTL Toulon";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"XVA";"Vannes";"XVA Vannes";"VA Vannes";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"XXX";"Indéterminé";"XXX Indéterminé";;;;;;"16 Mer du Nord - Manche - Atlantique";;"27 Mer du Nord - Manche - Atlantique";"FRA France"
+6;"Port";"XYE";"Yeu port Joinville (L'Ile-d'Yeu)";"XYE Yeu port Joinville (L'Ile-d'Yeu)";"YE L'Ile-d'Yeu";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"YBX";"Gironde (ensemble des ports)";"YBX Gironde (ensemble des ports)";"BX Bordeaux";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"YMO";"Yarmouth harbor";"YMO Yarmouth harbor";;;;;;"70 Manche est";;"27A Manche";"GBR Royaume-Uni"
+6;"Port";"YNC";"Nouméa (ensemble des ports)";"YNC Nouméa (ensemble des ports)";;;;;;"14 Nouvelle-Calédonie";;"71 Pacifique centre-ouest";"FRA France"
+6;"Port";"YP1";"TB-Grande Anse";"YP1 TB-Grande Anse";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"YP2";"TB-Anse a dos";"YP2 TB-Anse a dos";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"YP3";"TB-Petite anse";"YP3 TB-Petite anse";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"YP4";"TB-Grande baie";"YP4 TB-Grande baie";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"YP5";"TB-Anse des Muriers";"YP5 TB-Anse des Muriers";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"YSN";"Saint-Nazaire (ensemble des ports)";"YSN Saint-Nazaire (ensemble des ports)";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+6;"Port";"YTL";"Toulon (ensemble des ports)";"YTL Toulon (ensemble des ports)";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+6;"Port";"ZAA";"Zaandam";"ZAA Zaandam";;;;;;"51 Brown Bank";;"27C Mer du Nord";"NLD Pays-Bas"
+6;"Port";"ZBG";"Zeebrugge";"ZBG Zeebrugge";;;;;;"62 Sandettie";;"27C Mer du Nord";"BEL Belgique"
+6;"Port";"ZCH";"Utah Beach";"ZCH Utah Beach";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+6;"Port";"ZMY";"Zumaia";"ZMY Zumaia";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+6;"Port";"ZP1";"GB-Folle Anse";"ZP1 GB-Folle Anse";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"ZP2";"GB-Grand bourg de Marie Galante";"ZP2 GB-Grand bourg de Marie Galante";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"ZP3";"GB-Plage de Murat";"ZP3 GB-Plage de Murat";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"ZP4";"GB-Les Basses";"ZP4 GB-Les Basses";"PP Pointe-à-Pitre";"971 Guadeloupe";"GA Guadeloupe";"GA Guadeloupe";"01 Guadeloupe";"07 Guadeloupe";"02 DOM";"31 Atlantique centre-ouest";"FRA France"
+6;"Port";"ZTL";"Giens, la Madrague";"ZTL Giens, la Madrague";"TL Toulon";"83 Var";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"AAY";"Quiberon";"AAY Quiberon";"AY Auray";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"ACN";"Honfleur";"ACN Honfleur";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"ADK";"Grand-Fort-Philippe";"ADK Grand-Fort-Philippe";"DK Dunkerque";"59 Nord";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"AGV";"Saint-Guénolé (Penmarch)";"AGV Saint-Guénolé (Penmarch)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"ALS";"Saint-Gilles-Croix-de-Vie";"ALS Saint-Gilles-Croix-de-Vie";"LS Les Sables-d'Olonne";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"BDZ";"Camaret";"BDZ Camaret (Camaret-sur-Mer)";"DZ Douarnenez";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"BGV";"Lesconil (Plobannalec)";"BGV Lesconil (Plobannalec)";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"BJR";"Bajares";"BJR Bajares";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"BSM";"Cancale";"BSM Cancale";"SM Saint-Malo";"35 Ille-et-Vilaine";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"BSN";"La Turballe";"BSN La Turballe";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"BUR";"Burela";"BUR Burela";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"CAN";"Iles Canaries";"CAN Iles Canaries";;;;;;"52 Canaries";;"34 Atlantique centre-est";"ESP Espagne"
+7;"Criée";"CAO";"Carino";"CAO Carino-Pedra";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"CBA";"Saint-Jean-de-Luz";"CBA Saint-Jean-de-Luz, Ciboure";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"CBL";"Etaples";"CBL Etaples";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"CED";"Cedeira";"CED Cedeira";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"CGV";"Loctudy";"CGV Loctudy";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"CLI";"Celeiro";"CLI Celeiro";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"CMT";"Port-de-Bouc";"CMT Port-de-Bouc, Anse Aubran";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"COR";"La Corogne";"COR La Corogne";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"CSN";"Le Croisic";"CSN Le Croisic";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"CST";"Agde";"CST Cap d'Agde";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"DBA";"Hendaye";"DBA Hendaye";"BA Bayonne";"40 Landes";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"DNO";"L'Herbaudière (Noirmoutier-en-l'Île)";"DNO L'Herbaudière (Noirmoutier-en-l'Île)";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"EMN";"Royan";"EMN Royan";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"EPL";"Loguivy de la mer (Ploubazlanec)";"EPL Loguivy de la mer (Ploubazlanec)";"PL Paimpol";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"ESB";"Erquy";"ESB Erquy";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"GMX";"Roscoff";"GMX Roscoff";"MX Morlaix";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"GPV";"Port-la-Nouvelle";"GPV Port-la-Nouvelle";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"GST";"Le-Grau-du-Roi";"GST Le-Grau-du-Roi";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"HSB";"Saint-Quay-Portrieux";"HSB Saint-Quay-Portrieux";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"KMN";"La Cotinière (Saint-Pierre-d'Oléron)";"KMN La Cotinière (Saint-Pierre d'Oléron)";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"LCN";"Port-en-Bessin (Port-en-Bessin-Huppain)";"LCN Port-en-Bessin (Port-en-Bessin-Huppain)";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"MTK";"Moutriku";"MTK Moutriku";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"NCN";"Grandcamp (Grandcamp-Maisy)";"NCN Grandcamp (Grandcamp-Maisy)";"CN Caen";"14 Calvados";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"OND";"Ondarroa";"OND Ondarroa";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"PAS";"Pasajes";"PAS Pasajes";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"SAN";"Santona";"SAN Santona";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"SNT";"Santander";"SNT Santander";;;;;;"57 Nord Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"UCH";"Granville";"UCH Granville";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"VIG";"Vigo";"VIG Vigo";;;;;;"53 Finisterre Vigo";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"VVR";"Vivero";"VVR Vivero";;;;;;"59 Nord-ouest Espagne";;"27B Atlantique nord-est";"ESP Espagne"
+7;"Criée";"XAC";"Arcachon";"XAC Arcachon";"AC Arcachon";"33 Gironde";"AQ Aquitaine";"AQ Aquitaine";"72 Aquitaine";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XAD";"Audierne";"XAD Audierne";"AD Audierne";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XBL";"Boulogne-sur-Mer";"XBL Boulogne-sur-Mer";"BL Boulogne-sur-Mer";"62 Pas-de-Calais";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XBR";"Brest";"XBR Brest";"BR Brest";"29 Finistère";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XCC";"Concarneau";"XCC Concarneau";"CC Concarneau";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XCH";"Cherbourg";"XCH Cherbourg";"CH Cherbourg";"50 Manche";"BN Basse Normandie";"BN Basse Normandie";"25 Basse-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XDK";"Dunkerque";"XDK Dunkerque";"DK Dunkerque";"59 Nord";"NP Nord Pas de Calais";"NP Nord Pas de Calais";"31 Nord - Pas-de-Calais";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XDP";"Dieppe";"XDP Dieppe";"DP Dieppe";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XDZ";"Douarnenez";"XDZ Douarnenez";"DZ Douarnenez";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XFC";"Fécamp";"XFC Fécamp";"FC Fécamp";"76 Seine-Maritime";"HN Haute Normandie";"HN Haute Normandie";"23 Haute-Normandie";"01 Nord / Normandie";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XGV";"Guilvinec";"XGV Guilvinec";"GV Guilvinec";"29 Finistère";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XLO";"Lorient";"XLO Lorient";"LO Lorient";"56 Morbihan";"SB Sud Bretagne";"BR Bretagne";"53 Bretagne";"03 Bretagne sud";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XLR";"La Rochelle";"XLR La Rochelle";"LR La Rochelle";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XLS";"Les Sables-d'Olonne";"XLS Les Sables-d'Olonne";"LS Les Sables-d'Olonne";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XMA";"Marseille";"XMA Marseille";"MA Marseille";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"XMN";"Marennes";"XMN Marennes";"MN Marennes";"17 Charente-Maritime";"PC Poitou - Charentes";"PC Poitou - Charentes";"54 Poitou - Charentes";"05 Sud-Ouest";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XNO";"Noirmoutier-en-l'Île";"XNO Noirmoutier-en-l'Île";"NO Noirmoutier";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XPV";"Port-Vendres";"XPV Port-Vendres";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"XSB";"Saint-Brieuc";"XSB Saint-Brieuc";"SB Saint-Brieuc";"22 Côtes-d'Armor";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XSM";"Saint-Malo";"XSM Saint-Malo";"SM Saint-Malo";"35 Ille-et-Vilaine";"NB Nord Bretagne";"BR Bretagne";"53 Bretagne";"02 Bretagne nord";"01 France métropolitaine";"27A Manche";"FRA France"
+7;"Criée";"XSN";"Saint-Nazaire";"XSN Saint-Nazaire";"SN Saint-Nazaire";"44 Loire-Atlantique";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"XST";"Sète";"XST Sète, tous les ports";"ST Sète";"34 Hérault";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"XYE";"Yeu port Joinville (L'Ile-d'Yeu)";"XYE Yeu port Joinville (L'Ile-d'Yeu)";"YE L'Ile-d'Yeu";"85 Vendée";"PL Pays de la Loire";"PL Pays de la Loire";"52 Pays de la Loire";"04 Pays de la Loire";"01 France métropolitaine";"27B Atlantique nord-est";"FRA France"
+7;"Criée";"YMT";"OP Copemart";"XMT Martigues";"MT Martigues";"13 Bouches-du-Rhône";"PA Provence-Alpes-Côte d'Azur";"PA Provence-Alpes-Côte d'Azur";"93 Provence - Alpes - Côte d'Azur";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
+7;"Criée";"YPV";"OP Proquaport";"XPV Port-Vendres";"PV Port-Vendres";"66 Pyrénées-Orientales";"LR Languedoc-Roussillon";"LR Languedoc-Roussillon";"91 Languedoc - Roussillon";"92 Sud-est France";"01 France métropolitaine";"37 Méditerranée";"FRA France"
Added: trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/ImportTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/ImportTest.java (rev 0)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/ImportTest.java 2011-01-18 15:34:17 UTC (rev 923)
@@ -0,0 +1,49 @@
+package fr.ifremer.wao.io.csv2;
+
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import org.apache.commons.io.IOUtils;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.topia.persistence.EntityVisitor;
+import org.nuiton.topia.persistence.TopiaEntity;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+public class ImportTest {
+
+ @Test
+ public void testStartImport() throws Exception {
+ String csv =
+ "TLIEU_COD;TLIEU_LIB;LIEU_COD;LIEU_LIB;Port;Quartier maritime;Département INSEE;Sous-région IFREMER;Région Ifremer;Région INSEE;Façade maritime;Type de Région;Littoral FAO;PAYS\n" +
+ "7;Criée;AAY;Quiberon;AAY Quiberon;AY Auray;56 Morbihan;SB Sud Bretagne;BR Bretagne;53 Bretagne;03 Bretagne sud;01 France métropolitaine;27B Atlantique nord-est;FRA France\n" +
+ "6;Port;1AC;La Barbotière (Gujan-Mestras);1AC La Barbotière (Gujan-Mestras);AC Arcachon;33 Gironde;AQ Aquitaine;AQ Aquitaine;72 Aquitaine;05 Sud-Ouest;01 France métropolitaine;27B Atlantique nord-est;FRA France\n" +
+ "6;Port;ZTL;Giens, la Madrague;ZTL Giens, la Madrague;TL Toulon;83 Var;PA Provence-Alpes-Côte d'Azur;PA Provence-Alpes-Côte d'Azur;93 Provence - Alpes - Côte d'Azur;92 Sud-est France;01 France métropolitaine;37 Méditerranée;FRA France\n" +
+ "6;Port;XPY;Papeete;XPY Papeete;PY Papeete;;TA Tahiti;TA Tahiti;;12 Polynésie française;;71 Pacifique centre-ouest;PYF Polynésie française\n" +
+ "6;Port;TJA;Tjotta;TJA Tjotta;;;;;;;;;NOR Norvège\n";
+
+ ImportModel<TerrestrialLocation> model = new TerrestrialLocationImportModel();
+
+
+ List<TerrestrialLocation> locations = new ArrayList<TerrestrialLocation>();
+ List<String> locationsCodes = new ArrayList<String>();
+
+ Import<TerrestrialLocation> terrestrialLocationImport =
+ new Import<TerrestrialLocation>(model, IOUtils.toInputStream(csv));
+
+ Iterator<TerrestrialLocation> it = terrestrialLocationImport.startImport();
+
+ while (it.hasNext()) {
+ TerrestrialLocation location = it.next();
+ locations.add(location);
+ locationsCodes.add(location.getCode());
+ }
+
+ Assert.assertEquals(5, locations.size());
+ Assert.assertTrue(locationsCodes.contains("1AC"));
+ Assert.assertTrue(locationsCodes.contains("XPY"));
+ Assert.assertTrue(locationsCodes.contains("TJA"));
+ }
+}
1
0
[Suiviobsmer-commits] r922 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-business/src/main/xmi wao-business/src/test/java/fr/ifremer/wao/entity wao-business/src/test/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/i18n wao-ui/src/main/webapp
by bleny@users.labs.libre-entreprise.org 18 Jan '11
by bleny@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: bleny
Date: 2011-01-18 15:21:27 +0000 (Tue, 18 Jan 2011)
New Revision: 922
Log:
add terrestrial location import ; add locations in sampleRows and contacts
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
trunk/wao-ui/src/main/webapp/ContactForm.tml
trunk/wao-ui/src/main/webapp/SampleRowForm.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -734,9 +734,9 @@
"coastFAOCode CHARACTER VARYING(255)," +
"coastFAOName CHARACTER VARYING(255))");
- queries.add("ALTER TABLE SampleRow ADD terrestrialLocation CHARACTER VARYING(255) NOT NULL;");
+ queries.add("ALTER TABLE SampleRow ADD terrestrialLocation CHARACTER VARYING(255);");
queries.add("ALTER TABLE SampleRow ADD CONSTRAINT TerrestrialLocation_fkey FOREIGN KEY (terrestrialLocation) REFERENCES TerrestrialLocation(topiaId);");
- queries.add("ALTER TABLE Contact ADD terrestrialLocation CHARACTER VARYING(255) NOT NULL;");
+ queries.add("ALTER TABLE Contact ADD terrestrialLocation CHARACTER VARYING(255);");
queries.add("ALTER TABLE Contact ADD CONSTRAINT TerrestrialLocation_fkey FOREIGN KEY (terrestrialLocation) REFERENCES TerrestrialLocation(topiaId);");
}
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -124,4 +124,10 @@
public void setSamplingStrategy(SamplingStrategy samplingStrategy) {
setSamplingStrategyOrdinal(samplingStrategy.ordinal());
}
+
+ @Override
+ public void setSampleRow(SampleRow sampleRow) {
+ super.setSampleRow(sampleRow);
+ setObsProgram(sampleRow.getObsProgram());
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -138,6 +138,13 @@
contact.sizeSecondaryObservers();
contact.getSampleRow().sizeSampleMonth();
contact.getBoat().getName();
+
+ if (contact.getObsProgram() == ObsProgram.OBSVENTE) {
+ // load
+ contact.getSampleRow().getTerrestrialLocation();
+ contact.getTerrestrialLocation();
+ }
+
return contact;
}
@@ -202,8 +209,10 @@
}
@Override
- public Contact executeGetNewContact(ObsProgram obsProgram, WaoUser user, SampleRow row, Boat boat) throws WaoBusinessException {
+ public Contact executeGetNewContact(WaoUser user, SampleRow row, Boat boat) throws WaoBusinessException {
+ ObsProgram obsProgram = row.getObsProgram();
+
if (obsProgram.equals(ObsProgram.OBSMER)) {
if (boat == null) {
throw new NullPointerException("boat can not be null for program " + obsProgram);
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -31,6 +31,7 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.WaoQueryBuilder;
import fr.ifremer.wao.WaoQueryHelper;
+import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.SamplingFilter;
import fr.ifremer.wao.entity.FishingGearDCF;
import fr.ifremer.wao.entity.FishingGearDCFDAO;
@@ -48,7 +49,6 @@
import fr.ifremer.wao.io.csv2.Import;
import fr.ifremer.wao.io.csv2.ImportModel;
import fr.ifremer.wao.io.csv2.TerrestrialLocationImportModel;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
@@ -58,13 +58,13 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
/**
* ServiceReferentialImpl
@@ -297,12 +297,14 @@
TerrestrialLocation location = dao.findByDistrictCode(districtCode);
TerrestrialLocation district = new TerrestrialLocationImpl();
- Binder locationBinder = BinderFactory.newBinder(TerrestrialLocation.class);
+ Binder<TerrestrialLocation, TerrestrialLocation> locationBinder =
+ BinderFactory.newBinder(TerrestrialLocation.class);
locationBinder.copyExcluding(location, district, TerrestrialLocation.PROPERTY_NAME,
TerrestrialLocation.PROPERTY_CODE, TerrestrialLocation.PROPERTY_PORT_CODE,
TerrestrialLocation.PROPERTY_PORT_NAME, TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL,
TerrestrialLocation.TOPIA_ID, TerrestrialLocation.TOPIA_CREATE_DATE,
TerrestrialLocation.TOPIA_VERSION);
+ district.setLocationType(null);
dao.create(district);
}
@@ -321,4 +323,30 @@
}
}
+
+ @Override
+ protected List<TerrestrialLocation> executeGetAllTerrestrialDistricts(TopiaContext transaction, SamplingFilter filter) throws Exception {
+ TerrestrialLocationDAO dao = WaoDAOHelper.getTerrestrialLocationDAO(transaction);
+ List<TerrestrialLocation> result = dao.findAllByLocationTypeOrdinal(null);
+ return result;
+ }
+
+ @Override
+ protected List<TerrestrialLocation> executeGetAllTerrestrialLocations(TopiaContext transaction,
+ ContactFilter filter, String districtCode) throws Exception {
+ TerrestrialLocationDAO dao = WaoDAOHelper.getTerrestrialLocationDAO(transaction);
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put(TerrestrialLocation.PROPERTY_DISTRICT_CODE, districtCode);
+ List<TerrestrialLocation> result = dao.findAllByProperties(properties);
+
+ TerrestrialLocation removeDistrict = null;
+ for (TerrestrialLocation locationResult : result) {
+ if (locationResult.getLocationType() == null) {
+ removeDistrict = locationResult;
+ }
+ }
+ result.remove(removeDistrict);
+
+ return result;
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -552,6 +552,11 @@
result.sizeSampleMonth();
result.sizeElligibleBoat();
+ if (result.getObsProgram() == ObsProgram.OBSVENTE) {
+ // load specific field
+ result.getTerrestrialLocation();
+ }
+
return result;
}
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-01-18 15:21:27 UTC (rev 922)
@@ -136,6 +136,8 @@
wao.error.serviceNews.getNewNews=
wao.error.serviceNews.getNews=
wao.error.serviceNews.saveNews=
+wao.error.serviceReferential.getAllTerrestrialDistricts=
+wao.error.serviceReferential.getAllTerrestrialLocations=
wao.error.serviceReferential.getCodesDCF5Contains=
wao.error.serviceReferential.getFacades=
wao.error.serviceReferential.getFishingZones=
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-01-18 15:21:27 UTC (rev 922)
@@ -156,6 +156,8 @@
wao.error.serviceNews.getNewNews=
wao.error.serviceNews.getNews=Impossible de r\u00E9cup\u00E9rer l'ensemble des news
wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
+wao.error.serviceReferential.getAllTerrestrialDistricts=
+wao.error.serviceReferential.getAllTerrestrialLocations=
wao.error.serviceReferential.getCodesDCF5Contains=
wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades
wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\u00EAche
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -132,7 +132,7 @@
serviceSampling.createUpdateSampleRow(row, boats, new SampleRowLogImpl());
ServiceContact serviceContact = manager.getServiceContact();
- Contact contact1 = serviceContact.getNewContact(ObsProgram.OBSMER, user, row, boat);
+ Contact contact1 = serviceContact.getNewContact(user, row, boat);
contact1.setContactState(ContactState.CONTACT_START);
serviceContact.saveContact(contact1, false);
@@ -232,7 +232,7 @@
ServiceContact serviceContact = manager.getServiceContact();
// First contact : OK
- Contact contact1 = serviceContact.getNewContact(ObsProgram.OBSMER, user, row, boat);
+ Contact contact1 = serviceContact.getNewContact(user, row, boat);
contact1.setContactState(ContactState.BOARDING_DONE);
Date begin = DateUtil.createDate(3, 5, 2010);
contact1.setObservationBeginDate(begin);
@@ -245,7 +245,7 @@
int result = boat.getNbBoarding(fromDate);
Assert.assertEquals(1, result);
- Contact contact2 = serviceContact.getNewContact(ObsProgram.OBSMER, user, row, boat);
+ Contact contact2 = serviceContact.getNewContact(user, row, boat);
// Second contact with ValidationProgram = FALSE
contact2.setContactState(ContactState.BOARDING_DONE);
begin = DateUtil.createDate(3, 8, 2010);
@@ -257,7 +257,7 @@
result = boat.getNbBoarding(fromDate);
Assert.assertEquals(1, result);
- Contact contact3 = serviceContact.getNewContact(ObsProgram.OBSMER, user, row, boat);
+ Contact contact3 = serviceContact.getNewContact(user, row, boat);
// Third contact with tideBeginDate < fromDate
contact3.setContactState(ContactState.BOARDING_DONE);
begin = DateUtil.createDate(3, 3, 2010);
@@ -268,7 +268,7 @@
result = boat.getNbBoarding(fromDate);
Assert.assertEquals(1, result);
- Contact contact4 = serviceContact.getNewContact(ObsProgram.OBSMER, user2, row2, boat);
+ Contact contact4 = serviceContact.getNewContact(user2, row2, boat);
// Fourth contact : OK with an other company
contact4.setContactState(ContactState.BOARDING_DONE);
begin = DateUtil.createDate(3, 5, 2010);
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -297,7 +297,7 @@
transaction.closeContext();
ServiceContact serviceContact = manager.getServiceContact();
- Contact contact1 = serviceContact.getNewContact(ObsProgram.OBSMER, user, row, boat);
+ Contact contact1 = serviceContact.getNewContact(user, row, boat);
contact1.setContactState(ContactState.CONTACT_START);
serviceContact.saveContact(contact1, false);
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -32,6 +32,7 @@
import fr.ifremer.wao.bean.SamplingStrategy;
import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.entity.BoatDAO;
+import fr.ifremer.wao.entity.BoatImpl;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.CompanyDAO;
import fr.ifremer.wao.entity.Contact;
@@ -175,7 +176,7 @@
if (needBoat) {
BoatDAO boatDAO = WaoDAOHelper.getBoatDAO(transaction);
- boat = boatDAO.create(Boat.PROPERTY_IMMATRICULATION, 175846);
+ boat = boatDAO.create(Boat.PROPERTY_IMMATRICULATION, 175846, Boat.PROPERTY_ACTIVE, true);
when(contact.getBoat()).thenReturn(boat);
}
@@ -675,8 +676,15 @@
/** PREPARE DATA **/
prepareData(true, true);
+// TopiaContext transaction = manager.getContext().beginTransaction();
+// ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
+// List<Contact> allContact = dao.findAll();
+// for (Contact contact : allContact) {
+// dao.delete(contact);
+// }
+
// Don't use a mock in this case
- Contact newContact = service.getNewContact(ObsProgram.OBSVENTE, observer, sampleRow, boat);
+ Contact newContact = service.getNewContact(observer, sampleRow, boat);
newContact.setTopiaCreateDate(DateUtil.createDate(2, 3, 2010));
/** EXEC METHOD **/
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -851,10 +851,7 @@
// Get boat from list
boat = getBoats().get(boatImmatriculation);
//contacts.createNewContact(boat, sampleRow);
- Contact newContact = serviceContact.getNewContact(user.getProfile().getObsProgram(),
- user.getUser(),
- sampleRow,
- boat);
+ Contact newContact = serviceContact.getNewContact(user.getUser(), sampleRow, boat);
contacts.setContactSelectedId(newContact.getTopiaId());
return contacts;
}
@@ -863,10 +860,7 @@
// Get sampleRow from elligibleBoat list
ElligibleBoat elligible = getCompanyBoatInfos().getElligibleBoat(sampleRowCode);
sampleRow = elligible.getSampleRow();
- Contact newContact = serviceContact.getNewContact(user.getProfile().getObsProgram(),
- user.getUser(),
- sampleRow,
- getBoatSelected());
+ Contact newContact = serviceContact.getNewContact(user.getUser(), sampleRow, getBoatSelected());
// contacts.createNewContact(getBoatSelected(), sampleRow);
contacts.setContactSelectedId(newContact.getTopiaId());
return contacts;
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -3,15 +3,19 @@
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.ContactFilterImpl;
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.DataReliability;
import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.SamplingFilterImpl;
import fr.ifremer.wao.bean.UserRole;
import fr.ifremer.wao.bean.ValidationResult;
import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.TerrestrialLocation;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.service.ServiceContact;
+import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceUser;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.data.GenericSelectModel;
@@ -21,7 +25,9 @@
import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.Block;
import org.apache.tapestry5.EventContext;
+import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.RenderSupport;
+import org.apache.tapestry5.SelectModel;
import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.Environmental;
import org.apache.tapestry5.annotations.Import;
@@ -32,6 +38,8 @@
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.corelib.components.Zone;
+import org.apache.tapestry5.internal.OptionModelImpl;
+import org.apache.tapestry5.internal.SelectModelImpl;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.services.PropertyAccess;
@@ -44,7 +52,9 @@
import java.util.Date;
import java.util.List;
+import static org.nuiton.i18n.I18n.n_;
+
/**
* In this page, user will be able to edit a contact. Fields depends on right
* level and validations.
@@ -160,6 +170,9 @@
contact = serviceContact.getContact(contactId);
mainObserverId = contact.getMainObserver().getTopiaId();
+ if (contact.getTerrestrialLocation() != null) {
+ terrestrialLocationId = contact.getTerrestrialLocation().getTopiaId();
+ }
if (oldContact == contact) {
throw new IllegalStateException("il faut deux instances différentes");
}
@@ -290,7 +303,25 @@
return connectedUser.getProfile().getObsProgram() == ObsProgram.OBSVENTE;
}
+ @Inject
+ private ServiceReferential serviceReferential;
+ private GenericSelectModel<TerrestrialLocation> terrestrialLocationSelectModel;
+
+ @Property
+ private String terrestrialLocationId;
+
+ public GenericSelectModel<TerrestrialLocation> getTerrestrialLocationSelectModel() {
+ if (terrestrialLocationSelectModel == null) {
+ List<TerrestrialLocation> locations =
+ serviceReferential.getAllTerrestrialLocations(new ContactFilterImpl(),
+ contact.getSampleRow().getTerrestrialLocation().getDistrictCode());
+ terrestrialLocationSelectModel = new GenericSelectModel<TerrestrialLocation>(locations, TerrestrialLocation.class,
+ TerrestrialLocation.PROPERTY_NAME, TerrestrialLocation.TOPIA_ID, propertyAccess);
+ }
+ return terrestrialLocationSelectModel;
+ }
+
/************************ ADMIN FIELDS ************************************/
@@ -323,147 +354,6 @@
saveContact = true;
}
-// @Log
-// void onValidateFormFromContactForm() {
-//
-// contactForm.clearErrors();
-//
-// if ( ! saveContact) {
-// return;
-// }
-//
-// if (mainObserverId != null) {
-// WaoUser mainObserver = getObserverSelectModel().findObject(mainObserverId);
-// contact.setMainObserver(mainObserver);
-// if (logger.isDebugEnabled()) {
-// logger.debug("main observer is " + mainObserver);
-// }
-// }
-//
-// contact.setSecondaryObservers(getSecondaryObservers());
-//
-// if (contact.getMainObserver() == null) {
-// contactForm.recordError("Il faut au moins un observateur référant");
-// }
-//
-// if (contact.getSecondaryObservers().contains(contact.getMainObserver())) {
-// contactForm.recordError("L'utilisateur référant ne doit pas se trouver aussi parmi les observateurs secondaires");
-// }
-//
-// // Validation for saving contact depends on contactState (only edition
-// // form)
-// ContactState contactState = contact.getContactState();
-// if (logger.isDebugEnabled()) {
-// logger.debug("For state : " + contactState);
-// }
-//
-// Date begin = contact.getObservationBeginDate();
-// Date end = contact.getObservationEndDate();
-// Date input = contact.getDataInputDate();
-// SampleRow row = contact.getSampleRow();
-//
-// if (logger.isDebugEnabled()) {
-// logger.debug(String.format("begin = %s, end = %s, input = %s", begin, end, input));
-// }
-//
-// if (begin != null && !row.isValid(begin)) {
-// contactForm.recordError(
-// "La date de début de la marée doit correspondre à un " +
-// "mois valide (non vide) de la ligne " + row.getCode());
-// }
-//
-// if (begin != null && end != null && end.before(begin)) {
-// contactForm.recordError("La date de fin de la marée" +
-// " ne peut pas être antérieure à celle de début");
-// }
-//
-// Date current = manager.getCurrentDate();
-//
-// if (end != null && end.after(current)) {
-// contactForm.recordError("La date de fin de la marée" +
-// " ne peut pas être postérieure à la date du jour");
-// }
-//
-// if (end != null && input != null && end.after(input)) {
-// contactForm.recordError("La date de saisie des" +
-// " données ne peut pas être antérieure à la date de" +
-// " fin de la marée");
-// }
-//
-// if (input != null && input.after(current)) {
-// contactForm.recordError("La date de saisie des" +
-// " données ne peut pas être postérieure à la date" +
-// " du jour");
-// }
-//
-// // Non abouti, Refus ou Refus Définitif
-// if (contactState.isUnfinishedState()) {
-// String newComment = contact.getComment();
-//
-// boolean commentDefined = StringUtils.isNotEmpty(newComment);
-// boolean commentChanged = commentDefined &&
-// !newComment.equals(oldContact.getComment());
-//
-// // Ano #2540 : NPE on oldState, extract boolean for
-// // previous unfinishedState case
-// boolean previousUnfinishedState = commentDefined &&
-// oldContact.getContactState() != null && oldContact.getContactState().isUnfinishedState();
-//
-// // Ano #2440 : no restriction if previous state is unfinished
-// if (previousUnfinishedState || commentChanged) {
-//
-// // RAZ des champs
-// contact.setObservationBeginDate(null);
-// contact.setObservationEndDate(null);
-// contact.setNbObservants(0);
-// contact.setMammalsCapture(false);
-// contact.setMammalsObservation(false);
-// contact.setDataInputDate(null);
-//
-// } else {
-// contactForm.recordError("Vous devez ajouter" +
-// " un commentaire pour l'état" +
-// " '" + contactState.libelle() + "'");
-// }
-// // Embarquement Réalisé
-// } else if (contactState.equals(ContactState.BOARDING_DONE)) {
-//
-// if (begin == null) {
-// contactForm.recordError("La date de début de" +
-// " marée est obligatoire pour l'état" +
-// " '" + contactState.libelle() + "'");
-// }
-// if (end == null) {
-// contactForm.recordError("La date de fin de" +
-// " marée est obligatoire pour l'état" +
-// " '" + contactState.libelle() + "'");
-// }
-// if (contact.getNbObservants() == 0) {
-// contactForm.recordError("Il ne peut y" +
-// " avoir aucun observateur pour l'état" +
-// " '" + contactState.libelle() + "'");
-// }
-//
-// if (logger.isDebugEnabled()) {
-// logger.debug("ValidationProgram = " + contact.isValidationProgram());
-// }
-//
-// if (BooleanUtils.isTrue(contact.isValidationProgram())) {
-//
-// // it's an admin validation, data-reliability field must be filled
-// if (logger.isDebugEnabled()) {
-// logger.debug("field data reliability is " +
-// contact.getDataReliability());
-// }
-//
-// if (contact.getDataReliability() == null ||
-// contact.getDataReliability() == DataReliability.UNKNOWN) {
-// contactForm.recordError("Il faut préciser la qualité des données avant de valider");
-// }
-// }
-// }
-// }
-
@Log
void onValidateFormFromContactForm() {
contactForm.clearErrors();
@@ -473,12 +363,17 @@
contact.setMainObserver(mainObserver);
}
contact.setSecondaryObservers(getSecondaryObservers());
+ if (terrestrialLocationId != null) {
+ TerrestrialLocation terrestrialLocation = getTerrestrialLocationSelectModel().findObject(terrestrialLocationId);
+ contact.setTerrestrialLocation(terrestrialLocation);
+ }
ValidationResult validationResult = serviceContact.validateContact(contact);
if ( ! validationResult.isSuccess()) {
contactForm.recordError(validationResult.getMessage());
}
}
+
@Log
Object onFailureFromContactForm() {
// refresh zone to show errors
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-01-18 15:21:27 UTC (rev 922)
@@ -43,6 +43,7 @@
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.SampleRowLog;
import fr.ifremer.wao.entity.TargetSpeciesDCF;
+import fr.ifremer.wao.entity.TerrestrialLocation;
import fr.ifremer.wao.service.ServiceBoat;
import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceSampling;
@@ -66,11 +67,14 @@
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.Form;
+import org.apache.tapestry5.internal.OptionGroupModelImpl;
import org.apache.tapestry5.internal.OptionModelImpl;
import org.apache.tapestry5.internal.SelectModelImpl;
+import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.apache.tapestry5.services.BeanModelSource;
+import org.chenillekit.tapestry.core.internal.GenericSelectionModel;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.util.PeriodDates;
import org.nuiton.util.StringUtil;
@@ -84,6 +88,8 @@
import java.util.LinkedList;
import java.util.List;
+import static org.nuiton.i18n.I18n.n_;
+
/**
* SampleRowForm
*
@@ -110,6 +116,9 @@
@Inject
private ServiceBoat serviceBoat;
+ @Inject
+ private Messages messages;
+
@SessionState
@Property
private ConnectedUser user;
@@ -164,8 +173,16 @@
}
immatriculations = getSampleRow().getMainElligibleBoatsAsString();
+
+ if (getSampleRow().getTerrestrialLocation() != null) {
+ terrestrialLocationId = getSampleRow().getTerrestrialLocation().getTopiaId();
+ }
}
+ public boolean showObsVente() {
+ return user.getProfile().getObsProgram() == ObsProgram.OBSVENTE;
+ }
+
/*************************** PROFESSION ***********************************/
/** Select model which contains all professions **/
@@ -328,6 +345,22 @@
edited = true;
}
+ /*************************** TERRESTRIAL LOCATION *************************/
+
+ private GenericSelectModel<TerrestrialLocation> terrestrialLocationSelectModel;
+
+ @Property
+ private String terrestrialLocationId;
+
+ public GenericSelectModel<TerrestrialLocation> getTerrestrialLocationSelectModel() {
+ if (terrestrialLocationSelectModel == null) {
+ List<TerrestrialLocation> locations = serviceReferential.getAllTerrestrialDistricts(new SamplingFilterImpl());
+ terrestrialLocationSelectModel = new GenericSelectModel<TerrestrialLocation>(locations, TerrestrialLocation.class,
+ TerrestrialLocation.PROPERTY_DISTRICT_NAME, TerrestrialLocation.TOPIA_ID, propertyAccess);
+ }
+ return terrestrialLocationSelectModel;
+ }
+
/*************************** PROGRAM & MONTHS *****************************/
@Inject
@@ -596,6 +629,12 @@
@Log
void onValidateFormFromSampleRowForm() throws WaoException {
sampleRowForm.clearErrors();
+
+ if (StringUtils.isNotEmpty(terrestrialLocationId)) {
+ getSampleRow().setTerrestrialLocation(
+ getTerrestrialLocationSelectModel().findObject(terrestrialLocationId));
+ }
+
try {
// Only for save or periodChanged (refreshMonth)
if (!cancel && !edited) {
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-18 15:21:27 UTC (rev 922)
@@ -78,9 +78,10 @@
wao.ui.field.Contact.mainObserver=Main observer
wao.ui.field.Contact.mammalsCapture=Accidental capture
wao.ui.field.Contact.mammalsObservation=Exceptional observation
-wao.ui.field.Contact.nbObservants=Observants number
+wao.ui.field.Contact.nbObservants=Observers number
wao.ui.field.Contact.samplingStrategy=Sampling strategy followed
wao.ui.field.Contact.secondaryObservers=Observers
+wao.ui.field.Contact.terrestrialLocation=Place
wao.ui.field.Contact.validationCompany=Company validation
wao.ui.field.Contact.validationProgram=Program validation
wao.ui.field.FishingZone.facadeName=Facade
@@ -92,6 +93,7 @@
wao.ui.field.SampleRow.professionCode=Profession code
wao.ui.field.SampleRow.programName=Program
wao.ui.field.SampleRow.samplingStrategy=Sampling strategy
+wao.ui.field.SampleRow.terrestrialLocation=Maritime district
wao.ui.field.User.firstName=Fisrt name
wao.ui.field.User.lastName=Last name
wao.ui.field.User.login=Login
@@ -175,6 +177,8 @@
wao.ui.misc.observer=Observer
wao.ui.misc.observers=Observers
wao.ui.misc.onDate=on
+wao.ui.misc.or=or
+wao.ui.misc.other=Other
wao.ui.misc.refused=Refused
wao.ui.misc.since=since
wao.ui.misc.total=Total
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-01-18 15:21:27 UTC (rev 922)
@@ -81,6 +81,7 @@
wao.ui.field.Contact.nbObservants=Nombre d'observateurs
wao.ui.field.Contact.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage suivie
wao.ui.field.Contact.secondaryObservers=Observateurs
+wao.ui.field.Contact.terrestrialLocation=Lieu
wao.ui.field.Contact.validationCompany=Validation soci\u00E9t\u00E9
wao.ui.field.Contact.validationProgram=Validation programme
wao.ui.field.FishingZone.facadeName=Fa\u00E7ade
@@ -92,6 +93,7 @@
wao.ui.field.SampleRow.professionCode=Code m\u00E9tier
wao.ui.field.SampleRow.programName=Programme
wao.ui.field.SampleRow.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage
+wao.ui.field.SampleRow.terrestrialLocation=Quartier maritime
wao.ui.field.User.firstName=Pr\u00E9nom
wao.ui.field.User.lastName=Nom
wao.ui.field.User.login=Identifiant
@@ -175,6 +177,8 @@
wao.ui.misc.observer=Observateur
wao.ui.misc.observers=Observateurs
wao.ui.misc.onDate=le
+wao.ui.misc.or=ou
+wao.ui.misc.other=Autre
wao.ui.misc.refused=R\u00E9fus\u00E9
wao.ui.misc.since=depuis le
wao.ui.misc.total=Total
Modified: trunk/wao-ui/src/main/webapp/ContactForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-01-18 15:21:27 UTC (rev 922)
@@ -140,6 +140,10 @@
</div>
<t:if test="showObsVente()">
<div>
+ <label for="terrestrialLocation">${message:wao.ui.field.SampleRow.terrestrialLocation}</label>
+ ${contact.terrestrialLocation.name} (${getLabelForEnum(contact.terrestrialLocation.locationType)})
+ </div>
+ <div>
<label>${message:wao.ui.field.Contact.samplingStrategy}</label>
${contact.samplingStrategy}
</div>
@@ -211,6 +215,16 @@
</div>
<t:if test="showObsVente()">
<div>
+ <label for="terrestrialLocation">
+ ${message:wao.ui.field.Contact.terrestrialLocation}
+ </label>
+ <input t:id="terrestrialLocation"
+ t:type="select"
+ t:model="terrestrialLocationSelectModel"
+ t:value="terrestrialLocationId"
+ t:validate="required" />
+ </div>
+ <div>
<label for="actualSamplingStrategy">${message:wao.ui.field.Contact.samplingStrategy}</label>
<input t:type="select" t:id="actualSamplingStrategy" t:value="contact.samplingStrategy" t:validate="required" />
</div>
Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-01-17 13:13:47 UTC (rev 921)
+++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-01-18 15:21:27 UTC (rev 922)
@@ -78,6 +78,10 @@
${fishingZone.code}
</li>
</ul>
+ <p>
+ <label for="terrestrialLocation">${message:wao.ui.field.SampleRow.terrestrialLocation}</label>
+ ${sampleRow.terrestrialLocation}
+ </p>
<p:else>
<!-- EDITION -->
<div class="select">
@@ -96,6 +100,18 @@
${fishingZone.code}
</div>
</div>
+ <t:if t:test="showObsVente()">
+ <div class="select">
+ <label for="terrestrialLocation">
+ ${message:wao.ui.field.SampleRow.terrestrialLocation} :
+ </label>
+ <input t:id="terrestrialLocation"
+ t:type="select"
+ t:model="terrestrialLocationSelectModel"
+ t:value="terrestrialLocationId"
+ t:validate="required" />
+ </div>
+ </t:if>
</p:else>
</t:if>
<div class="t-beaneditor-row">
@@ -116,11 +132,11 @@
<p:else>
<!-- EDITION PROGRAM -->
<div class="select">
- <t:label t:for="program"/>* :
+ <t:label t:for="program" />* :
<input t:type="select" t:id="program" t:model="programSelectModel" value="programId" />
<!--<input t:type="submit" class="ico search" t:id="searchProgram" value="Search"
title="Afficher les détails du programme"/>-->
- ou <input t:type="textfield" t:id="programName" value="programName" />
+ ${message:wao.ui.misc.or} <input t:type="textfield" t:id="programName" value="programName" />
</div>
</p:else>
</t:if>
1
0
[Suiviobsmer-commits] r921 - in trunk/wao-business/src/main: java/fr/ifremer/wao java/fr/ifremer/wao/service resources/i18n xmi
by bleny@users.labs.libre-entreprise.org 17 Jan '11
by bleny@users.labs.libre-entreprise.org 17 Jan '11
17 Jan '11
Author: bleny
Date: 2011-01-17 13:13:47 +0000 (Mon, 17 Jan 2011)
New Revision: 921
Log:
add terrestrial locations import
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-business/src/main/xmi/wao.zargo
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-01-14 15:46:02 UTC (rev 920)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-01-17 13:13:47 UTC (rev 921)
@@ -26,6 +26,7 @@
import fr.ifremer.wao.entity.ActivityCalendar;
import fr.ifremer.wao.io.csv.ImportHelper;
+import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceUser;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang.StringUtils;
@@ -51,6 +52,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.Locale;
@@ -250,7 +252,10 @@
serviceUser.createDefaultAdmin();
// import all DCF codes
- getServiceFactory().getServiceReferential().importDCFcodes();
+ ServiceReferential serviceReferential = getServiceFactory().getServiceReferential();
+ serviceReferential.importDCFcodes();
+ InputStream terrestrialLocationsCsv = getClass().getResourceAsStream("/terrestrialLocations.csv");
+ serviceReferential.importTerrestrialLocations(terrestrialLocationsCsv);
if (log.isInfoEnabled()) {
log.info("wao is started !");
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-01-14 15:46:02 UTC (rev 920)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-01-17 13:13:47 UTC (rev 921)
@@ -40,18 +40,30 @@
import fr.ifremer.wao.entity.ProfessionDAO;
import fr.ifremer.wao.entity.TargetSpeciesDCF;
import fr.ifremer.wao.entity.TargetSpeciesDCFDAO;
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import fr.ifremer.wao.entity.TerrestrialLocationDAO;
+import fr.ifremer.wao.entity.TerrestrialLocationImpl;
import fr.ifremer.wao.io.csv.ImportHelper;
import fr.ifremer.wao.io.csv.WaoCsvHeader.FISHING_ZONE;
+import fr.ifremer.wao.io.csv2.Import;
+import fr.ifremer.wao.io.csv2.ImportModel;
+import fr.ifremer.wao.io.csv2.TerrestrialLocationImportModel;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
+import org.nuiton.util.beans.Binder;
+import org.nuiton.util.beans.BinderFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Iterator;
import java.util.List;
/**
@@ -247,4 +259,66 @@
}
}
+ /**
+ *
+ * @param input a CVS file with terrestrial locations
+ */
+ @Override
+ protected void executeImportTerrestrialLocations(TopiaContext transaction, InputStream input) throws Exception {
+
+ TerrestrialLocationDAO dao = WaoDAOHelper.getTerrestrialLocationDAO(transaction);
+
+ int count = dao.count();
+
+ if (count == 0) {
+
+ ImportModel<TerrestrialLocation> model = new TerrestrialLocationImportModel();
+ Import<TerrestrialLocation> terrestrialLocationImport = new Import<TerrestrialLocation>(model, input);
+
+ Iterator<TerrestrialLocation> locationIterator = terrestrialLocationImport.startImport();
+ while (locationIterator.hasNext()) {
+ TerrestrialLocation location = locationIterator.next();
+ dao.create(location);
+ }
+
+ if (log.isInfoEnabled()) {
+ count = dao.count();
+ log.info(count + " terrestrial locations imported");
+ }
+
+ // add districts
+ WaoQueryHelper.TerrestrialLocationProperty terrestrialLocationProperty =
+ WaoQueryHelper.newTerrestrialLocationProperty();
+ TopiaQuery query = dao.createQuery(terrestrialLocationProperty.$alias());
+ query.addDistinct()
+ .setSelect(terrestrialLocationProperty.districtCode());
+ List<String> districtCodes = transaction.findByQuery(query);
+ for (String districtCode : districtCodes) {
+ TerrestrialLocation location = dao.findByDistrictCode(districtCode);
+ TerrestrialLocation district = new TerrestrialLocationImpl();
+
+ Binder locationBinder = BinderFactory.newBinder(TerrestrialLocation.class);
+ locationBinder.copyExcluding(location, district, TerrestrialLocation.PROPERTY_NAME,
+ TerrestrialLocation.PROPERTY_CODE, TerrestrialLocation.PROPERTY_PORT_CODE,
+ TerrestrialLocation.PROPERTY_PORT_NAME, TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL,
+ TerrestrialLocation.TOPIA_ID, TerrestrialLocation.TOPIA_CREATE_DATE,
+ TerrestrialLocation.TOPIA_VERSION);
+
+ dao.create(district);
+ }
+
+ if (log.isInfoEnabled()) {
+ count = dao.count() - count;
+ log.info(count + " terrestrial district imported");
+ }
+
+ transaction.commitTransaction();
+
+ } else {
+ if (log.isInfoEnabled()) {
+ log.info("database already contains " + count + " terrestrial locations, not importing");
+ }
+ }
+
+ }
}
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-01-14 15:46:02 UTC (rev 920)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-01-17 13:13:47 UTC (rev 921)
@@ -1,4 +1,6 @@
DataReliability.RELIABLE=
+LocationType.AUCTION=
+LocationType.PORT=
SynthesisId.GRAPH_BOARDING=
SynthesisId.GRAPH_SAMPLING=
SynthesisId.IND_ALLEGRO_REACTIVITY=
@@ -141,6 +143,7 @@
wao.error.serviceReferential.getSectors=
wao.error.serviceReferential.importDCFcodes=
wao.error.serviceReferential.importFishingZoneCsv=
+wao.error.serviceReferential.importTerrestrialLocations=
wao.error.serviceSampling.createSampleRowLog=
wao.error.serviceSampling.createUpdateSampleRow=
wao.error.serviceSampling.deleteSampleRow=
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-01-14 15:46:02 UTC (rev 920)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-01-17 13:13:47 UTC (rev 921)
@@ -9,6 +9,8 @@
DataReliability.NOT_RELIABLE=Non exploitable
DataReliability.RELIABLE=Exploitable
DataReliability.UNKNOWN=Inconnue
+LocationType.AUCTION=
+LocationType.PORT=
SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Toutes esp\u00E8ces commerciales
SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2
SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1
@@ -161,6 +163,7 @@
wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00EAche
wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00E9er le r\u00E9f\u00E9rentiel des codes DCF
wao.error.serviceReferential.importFishingZoneCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00E9tails.
+wao.error.serviceReferential.importTerrestrialLocations=
wao.error.serviceSampling.createSampleRowLog=
wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00E9chantillon
wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00E9chantillon \: %1$s
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r920 - in trunk/wao-business/src/main: java/fr/ifremer/wao java/fr/ifremer/wao/bean java/fr/ifremer/wao/entity xmi
by bleny@users.labs.libre-entreprise.org 14 Jan '11
by bleny@users.labs.libre-entreprise.org 14 Jan '11
14 Jan '11
Author: bleny
Date: 2011-01-14 15:46:02 +0000 (Fri, 14 Jan 2011)
New Revision: 920
Log:
start adding TerrestrialLocation reference
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
trunk/wao-business/src/main/xmi/wao.zargo
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-01-14 08:45:45 UTC (rev 919)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-01-14 15:46:02 UTC (rev 920)
@@ -703,4 +703,40 @@
queries.add("ALTER TABLE Contact ADD completeSampling BOOLEAN;");
}
+
+ @Override
+ protected void addTerrestrialLocationOnSampleRowAndContact_2_0(List<String> queries) {
+ queries.add("CREATE TABLE TerrestrialLocation (" +
+ "topiaId CHARACTER VARYING(255) PRIMARY KEY," +
+ "topiaVersion BIGINT NOT NULL," +
+ "topiaCreateDate TIMESTAMP WITHOUT TIME ZONE NOT NULL," +
+ "locationTypeOrdinal SMALLINT," +
+ "code CHARACTER VARYING(255)," +
+ "name CHARACTER VARYING(255)," +
+ "portCode CHARACTER VARYING(255)," +
+ "portName CHARACTER VARYING(255)," +
+ "districtCode CHARACTER VARYING(255)," +
+ "districtName CHARACTER VARYING(255)," +
+ "departmentCode CHARACTER VARYING(255)," +
+ "departmentName CHARACTER VARYING(255)," +
+ "subRegionIfremerCode CHARACTER VARYING(255)," +
+ "subRegionIfremerName CHARACTER VARYING(255)," +
+ "regionIfremerCode CHARACTER VARYING(255)," +
+ "regionIfremerName CHARACTER VARYING(255)," +
+ "regionCode CHARACTER VARYING(255)," +
+ "regionName CHARACTER VARYING(255)," +
+ "regionTypeCode CHARACTER VARYING(255)," +
+ "regionTypeName CHARACTER VARYING(255)," +
+ "countryCode CHARACTER VARYING(255)," +
+ "countryName CHARACTER VARYING(255)," +
+ "seaboardCode CHARACTER VARYING(255)," +
+ "seaboardName CHARACTER VARYING(255)," +
+ "coastFAOCode CHARACTER VARYING(255)," +
+ "coastFAOName CHARACTER VARYING(255))");
+
+ queries.add("ALTER TABLE SampleRow ADD terrestrialLocation CHARACTER VARYING(255) NOT NULL;");
+ queries.add("ALTER TABLE SampleRow ADD CONSTRAINT TerrestrialLocation_fkey FOREIGN KEY (terrestrialLocation) REFERENCES TerrestrialLocation(topiaId);");
+ queries.add("ALTER TABLE Contact ADD terrestrialLocation CHARACTER VARYING(255) NOT NULL;");
+ queries.add("ALTER TABLE Contact ADD CONSTRAINT TerrestrialLocation_fkey FOREIGN KEY (terrestrialLocation) REFERENCES TerrestrialLocation(topiaId);");
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-01-14 08:45:45 UTC (rev 919)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-01-14 15:46:02 UTC (rev 920)
@@ -121,6 +121,8 @@
protected abstract void addSampleRowAndContactsObsVenteColumns_2_0(List<String> queries);
+ protected abstract void addTerrestrialLocationOnSampleRowAndContact_2_0(List<String> queries);
+
protected static final Version[] VERSIONS = new Version[] {
VersionUtil.valueOf("1.0"),
VersionUtil.valueOf("1.1"),
@@ -427,6 +429,8 @@
addSampleRowAndContactsObsVenteColumns_2_0(queries);
+ addTerrestrialLocationOnSampleRowAndContact_2_0(queries);
+
String[] strings = queries.toArray(new String[queries.size()]);
executeSQL(tx, true, true, strings);
}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java 2011-01-14 15:46:02 UTC (rev 920)
@@ -0,0 +1,26 @@
+package fr.ifremer.wao.bean;
+
+import static org.nuiton.i18n.I18n.n_;
+
+public enum LocationType {
+
+ PORT(n_("LocationType.PORT")),
+ AUCTION(n_("LocationType.AUCTION"));
+
+ protected String i18nKey;
+
+ LocationType(String i18nKey) {
+ this.i18nKey = i18nKey;
+ }
+
+ public static LocationType valueOf(Integer locationTypeOrdinal) {
+ if (locationTypeOrdinal != null) {
+ for (LocationType locationType : LocationType.values()) {
+ if (locationType.ordinal() == locationTypeOrdinal) {
+ return locationType;
+ }
+ }
+ }
+ return null;
+ }
+}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java 2011-01-14 15:46:02 UTC (rev 920)
@@ -0,0 +1,20 @@
+package fr.ifremer.wao.entity;
+
+import fr.ifremer.wao.bean.LocationType;
+
+public class TerrestrialLocationImpl extends TerrestrialLocationAbstract {
+
+ @Override
+ public LocationType getLocationType() {
+ return LocationType.valueOf(getLocationTypeOrdinal());
+ }
+
+ @Override
+ public void setLocationType(LocationType locationType) {
+ if (locationType == null) {
+ setLocationTypeOrdinal(null);
+ } else {
+ setLocationTypeOrdinal(locationType.ordinal());
+ }
+ }
+}
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r919 - trunk/wao-business/src/main/xmi
by bleny@users.labs.libre-entreprise.org 14 Jan '11
by bleny@users.labs.libre-entreprise.org 14 Jan '11
14 Jan '11
Author: bleny
Date: 2011-01-14 08:45:45 +0000 (Fri, 14 Jan 2011)
New Revision: 919
Log:
diagram layout
Modified:
trunk/wao-business/src/main/xmi/wao.zargo
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r918 - trunk/wao-ui/src/main/resources/i18n
by bleny@users.labs.libre-entreprise.org 13 Jan '11
by bleny@users.labs.libre-entreprise.org 13 Jan '11
13 Jan '11
Author: bleny
Date: 2011-01-13 10:48:13 +0000 (Thu, 13 Jan 2011)
New Revision: 918
Log:
fix a translation
Modified:
trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-13 08:55:58 UTC (rev 917)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-13 10:48:13 UTC (rev 918)
@@ -209,7 +209,7 @@
wao.ui.synthesis.boarding.description=In these results, only sample rows with average tide time below 48 hours are considered.
wao.ui.synthesis.boarding.mostUsedBoat=Most used boat with %s boardings \: %s (%s)
wao.ui.synthesis.boarding.title=Boatssolicitations
-wao.ui.synthesis.complianceBoarding.description=Respect of the defined number of observants pour each tides.
+wao.ui.synthesis.complianceBoarding.description=Respect of the defined number of observants for each tides.
wao.ui.synthesis.complianceBoarding.title=Respect of the number of observers
wao.ui.synthesis.contactsStates.description=Theses results consider all contacts states except those that are refused by the program.
wao.ui.synthesis.contactsStates.title=Contact states
1
0
[Suiviobsmer-commits] r917 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/components java/fr/ifremer/wao/ui/services resources/fr/ifremer/wao/ui/components resources/i18n webapp/img webapp/img/source
by bleny@users.labs.libre-entreprise.org 13 Jan '11
by bleny@users.labs.libre-entreprise.org 13 Jan '11
13 Jan '11
Author: bleny
Date: 2011-01-13 08:55:58 +0000 (Thu, 13 Jan 2011)
New Revision: 917
Log:
add a button to change language in top menu
Added:
trunk/wao-ui/src/main/webapp/img/Flag_fr_gb.png
trunk/wao-ui/src/main/webapp/img/source/Flag_fr_gb.svg
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2011-01-12 11:25:28 UTC (rev 916)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2011-01-13 08:55:58 UTC (rev 917)
@@ -41,10 +41,12 @@
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
+import org.apache.tapestry5.services.PersistentLocale;
import org.apache.tapestry5.services.Request;
import org.slf4j.Logger;
import java.util.LinkedHashMap;
+import java.util.Locale;
import java.util.Map;
import static org.nuiton.i18n.I18n._;
@@ -203,11 +205,27 @@
}
+ /********************************* ACTIONS *******************************/
+
@Log
Object onActionFromExit() {
serviceAuthentication.setConnectedUser(null);
request.getSession(false).invalidate();
return Index.class;
}
+
+ @Inject
+ private PersistentLocale localeService;
+
+ @Log
+ Object onActionFromChangeLocale() {
+ Locale currentLocale = localeService.get();
+ if (Locale.FRENCH.equals(currentLocale)) {
+ localeService.set(Locale.ENGLISH);
+ } else {
+ localeService.set(Locale.FRENCH);
+ }
+ return this;
+ }
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java 2011-01-12 11:25:28 UTC (rev 916)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java 2011-01-13 08:55:58 UTC (rev 917)
@@ -194,7 +194,7 @@
// you can extend this list of locales (it's a comma separated series of locale names;
// the first locale name is the default when there's no reasonable match).
- configuration.add(SymbolConstants.SUPPORTED_LOCALES, "fr");
+ configuration.add(SymbolConstants.SUPPORTED_LOCALES, "fr,en");
// The factory default is true but during the early stages of an application
// overriding to false is a good idea. In addition, this is often overridden
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2011-01-12 11:25:28 UTC (rev 916)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2011-01-13 08:55:58 UTC (rev 917)
@@ -66,19 +66,22 @@
${format:wao.ui.layout.userDescription=currentUser.fullName,currentUser.company.name,currentUser.profile.description}
</div>
<div id="user-actions" class="fright">
+ <a t:type="actionlink" t:id="changeLocale" title="${message:wao.ui.action.changeLocale}">
+ <img src="${asset:context:img/Flag_fr_gb.png}" alt="${message:wao.ui.action.changeLocale}" />
+ </a>
<a t:type="pagelink" t:page="index" title="${message:wao.ui.page.Index.title}">
- <img src="${asset:context:img/home.png}" alt="${message:wao.ui.page.Index.title}" title="${message:wao.ui.page.Index.title}" />
+ <img src="${asset:context:img/home.png}" alt="${message:wao.ui.page.Index.title}" />
</a>
<t:unless t:test="currentUser.guest">
<a t:type="pagelink" t:page="cartography" title="${message:wao.ui.page.Cartography.title}" target="_blank">
- <img src="${asset:context:img/cartography.png}" alt="${message:wao.ui.page.Cartography.title}" title="${message:wao.ui.page.Cartography.title}"/>
+ <img src="${asset:context:img/cartography.png}" alt="${message:wao.ui.page.Cartography.title}" />
</a>
</t:unless>
<a t:type="pagelink" t:page="userProfileForm" title="${message:wao.ui.page.UserProfileForm.title}">
- <img src="${asset:context:img/user.png}" alt="${message:wao.ui.page.UserProfileForm.title}" title="${message:wao.ui.page.UserProfileForm.title}"/>
+ <img src="${asset:context:img/user.png}" alt="${message:wao.ui.page.UserProfileForm.title}" />
</a>
<a t:type="actionlink" t:id="exit" title="${message:wao.ui.action.logout}">
- <img src="${asset:context:img/exit.png}" alt="${message:wao.ui.action.logout}" title="${message:wao.ui.action.logout}"/>
+ <img src="${asset:context:img/exit.png}" alt="${message:wao.ui.action.logout}" />
</a>
</div>
</div>
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-12 11:25:28 UTC (rev 916)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-13 08:55:58 UTC (rev 917)
@@ -3,22 +3,23 @@
wao.ui.action.addNewContactFromBoat=Create a new contact for this boat and the selected sample row (in filters)
wao.ui.action.back=Back to previous screen
wao.ui.action.cancel=Cancel
+wao.ui.action.changeLocale=Change language
wao.ui.action.contactAdmin=Contact an admin
wao.ui.action.create=Create
wao.ui.action.createCompany=Create a company
wao.ui.action.createUser=Create a user
wao.ui.action.delete=Delete
wao.ui.action.deleteCompany=Delete company
-wao.ui.action.deleteCompany.confirm=Are you sure you want to delete\\ this company ?
+wao.ui.action.deleteCompany.confirm=Are you sure you want to delete this company ?
wao.ui.action.deleteContact=Delete contact
wao.ui.action.deleteContact.confirm=Are you sure you want to delete this contact ?
wao.ui.action.deleteNews=Delete this news
wao.ui.action.deleteNews.confirm=Are you sure you want to delete this news ?
wao.ui.action.deleteUser=Delete this user
-wao.ui.action.deleteUser.confirm=Are your sure you want to delete this\\ user ?
+wao.ui.action.deleteUser.confirm=Are your sure you want to delete this user ?
wao.ui.action.edit=Edit
wao.ui.action.enlargeView=Enlarge view
-wao.ui.action.exportBoats=Export boats with\\ private infos
+wao.ui.action.exportBoats=Export boats with private infos
wao.ui.action.filter=Filter
wao.ui.action.hideFilters=Hide filters
wao.ui.action.login=Connection
@@ -37,26 +38,26 @@
wao.ui.action.showFilters=Show filters
wao.ui.action.unvalidateContact=Unvalidate contact
wao.ui.action.viewIndicatorsHistory=View indicators historic
-wao.ui.boatList=List of\\ %s\\ boats
+wao.ui.boatList=List of %s boats
wao.ui.boatinfo.title=Infos about %s
wao.ui.boats.associatedLine=Sample row(s) associated with this boat
-wao.ui.boats.nbBoarding=%s boarding(s)\\ with\\ %s\\ with your company
-wao.ui.contact.lastContact=Last contact\\ with\\ this\\ boat for your company
-wao.ui.contacts.createFromBoat=Create a\\ new contact\\ for this\\ boat\\ and this sample\\ row
-wao.ui.contacts.createFromBoat.fail=Contact\\ creation failed
-wao.ui.contacts.createFromBoat.warn=Warning \:\\this sample-row is out of date, are your sure you want\\ to\\ create a new contact ?
+wao.ui.boats.nbBoarding=%s boarding(s) with %s with your company
+wao.ui.contact.lastContact=Last contact with this boat for your company
+wao.ui.contacts.createFromBoat=Create a new contact for this boat and this sample row
+wao.ui.contacts.createFromBoat.fail=Contact creation failed
+wao.ui.contacts.createFromBoat.warn=Warning \:this sample-row is out of date, are your sure you want to create a new contact ?
wao.ui.disclaimer=The website "SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER" is declared to the CNIL with the number \: 1414476
-wao.ui.disclaimer.boats=Data\\ your provide remains property of your\\ company.\\Outside your\\ company,\\ only an administrator may access\\ to your data for maintenance purpose. The administrator is\\ someone from\\ Ifremer.
+wao.ui.disclaimer.boats=Data your provide remains property of your company.Outside your company, only an administrator may access to your data for maintenance purpose. The administrator is someone from Ifremer.
wao.ui.email=e-mail address
wao.ui.entity.Boat=Boat
wao.ui.entity.Company=Company
wao.ui.entity.Contact=Contact
wao.ui.entity.SampleRow=Sample row
wao.ui.entity.fishingGearDCF=Gear DCF code
-wao.ui.entity.targetSpeciesDCF=Target species\\ DCF code
+wao.ui.entity.targetSpeciesDCF=Target species DCF code
wao.ui.field.Boat.boatLength=Length
wao.ui.field.Boat.buildYear=Build year
-wao.ui.field.Boat.capacity=Capacity of the ship in\\ specialized staff
+wao.ui.field.Boat.capacity=Capacity of the ship in specialized staff
wao.ui.field.Boat.districtCode=District
wao.ui.field.Boat.immatriculation=Registration number
wao.ui.field.Boat.name=Name
@@ -75,8 +76,8 @@
wao.ui.field.Contact.dataReliability=Data reliability
wao.ui.field.Contact.endDate=Observation end
wao.ui.field.Contact.mainObserver=Main observer
-wao.ui.field.Contact.mammalsCapture=Accidental\\ capture
-wao.ui.field.Contact.mammalsObservation=Exceptional\\ observation
+wao.ui.field.Contact.mammalsCapture=Accidental capture
+wao.ui.field.Contact.mammalsObservation=Exceptional observation
wao.ui.field.Contact.nbObservants=Observants number
wao.ui.field.Contact.samplingStrategy=Sampling strategy followed
wao.ui.field.Contact.secondaryObservers=Observers
@@ -85,8 +86,8 @@
wao.ui.field.FishingZone.facadeName=Facade
wao.ui.field.FishingZone.sectorName=Sector
wao.ui.field.SampleRow.code=Line code
-wao.ui.field.SampleRow.dcf5Code=DCF5\\ code
-wao.ui.field.SampleRow.fishingZones=Fishing\\ zone(s)
+wao.ui.field.SampleRow.dcf5Code=DCF5 code
+wao.ui.field.SampleRow.fishingZones=Fishing zone(s)
wao.ui.field.SampleRow.profession=Profession
wao.ui.field.SampleRow.professionCode=Profession code
wao.ui.field.SampleRow.programName=Program
@@ -95,26 +96,26 @@
wao.ui.field.User.lastName=Last name
wao.ui.field.User.login=Login
wao.ui.field.UserProfile.userRole=Role
-wao.ui.field.WaoUser.login=identifier
+wao.ui.field.WaoUser.login=Identifier
wao.ui.field.WaoUser.password=Password
wao.ui.filters.filters=Search filters
wao.ui.filters.refresh=Refresh filters
wao.ui.forgotPassword=Forgot password ?
-wao.ui.form.SampleRow.boatsDescription=This field\\ contains\\ registration numbers of\\ the ships\\ that are\\eligible for this ligne. You can\\ use any separator\\ to separate\\ numbers (space, dot, line-return, comma)
-wao.ui.form.SampleRow.missingBeginDate=Begin date\\ missing to generate\\ line code
-wao.ui.form.SampleRow.others=Others data of the\\ sample row
+wao.ui.form.SampleRow.boatsDescription=This field contains registration numbers of the ships that areeligible for this ligne. You can use any separator to separate numbers (space, dot, line-return, comma)
+wao.ui.form.SampleRow.missingBeginDate=Begin date missing to generate line code
+wao.ui.form.SampleRow.others=Others data of the sample row
wao.ui.form.SampleRow.program=Associated program and observation effort by months
wao.ui.form.addComment=Add a comment
-wao.ui.form.addRole=Add this r\u00F4le
-wao.ui.form.boardingFrom=Boardings since\\
+wao.ui.form.addRole=Add this ru00F4le
+wao.ui.form.boardingFrom=Boardings since
wao.ui.form.contactsFile=Contacts file
wao.ui.form.definePasswordManually=Define password manually
wao.ui.form.editComment=Edit comment
-wao.ui.form.editionAuthor=Modification's author\\
+wao.ui.form.editionAuthor=Modification's author
wao.ui.form.estimatedTides=View estimated effort
-wao.ui.form.estimatedTides.description=The estimated\\ observation effort\\ is\\ the number of contact that are\\ validated\\\\ by the company or not.\\ Contacts refused by program are ignored.
+wao.ui.form.estimatedTides.description=The estimated observation effort is the number of contact that are validated by the company or not. Contacts refused by program are ignored.
wao.ui.form.generatePassword=Generate password
-wao.ui.form.otherBoatInfos=Other\\ boat\\ infos
+wao.ui.form.otherBoatInfos=Other boat infos
wao.ui.form.period=Period
wao.ui.form.period.from=from
wao.ui.form.period.to=to
@@ -126,16 +127,16 @@
wao.ui.form.removeRole=remove this role
wao.ui.form.repeatPassword=Repeat password
wao.ui.form.roles=Roles
-wao.ui.form.sortByTideBegin=Sort by observation\\ begin date
-wao.ui.import.activityCalendarImportLabel=of the activity\\ calendar
-wao.ui.import.activityCalendarImportRunning=Activity calendar import is running. You can keep browsing\\ while waiting\\ for\\ the upload end
-wao.ui.import.activityCalendarLabel=of the activity\\ calendars
-wao.ui.import.activityCalendarUserAccessesLabel=of user accesses\\ to\\ the activity calendars
+wao.ui.form.sortByTideBegin=Sort by observation begin date
+wao.ui.import.activityCalendarImportLabel=of the activity calendar
+wao.ui.import.activityCalendarImportRunning=Activity calendar import is running. You can keep browsing while waiting for the upload end
+wao.ui.import.activityCalendarLabel=of the activity calendars
+wao.ui.import.activityCalendarUserAccessesLabel=of user accesses to the activity calendars
wao.ui.import.boatDistrictLabel=of the coordinates of boat districts
wao.ui.import.boatsLabel=of boats
wao.ui.import.description=File %s %s \:
wao.ui.import.fishingZoneLabel=of fishing zones
-wao.ui.import.fullDescription=Import %s\\ (%s format with UTF-8 characters set)
+wao.ui.import.fullDescription=Import %s (%s format with UTF-8 characters set)
wao.ui.import.longTitle=CSV Import/Export (UTF-8)
wao.ui.import.samplingPlanLabel=of the sampling plan
wao.ui.import.title=%s import
@@ -144,13 +145,13 @@
wao.ui.indicator.coefficient=Coefficient
wao.ui.indicator.editions=Editions
wao.ui.indicator.indicator=Indicator
-wao.ui.indicator.legend=In yellow, the\\ current\\ position\\ of the company on this indicator
+wao.ui.indicator.legend=In yellow, the current position of the company on this indicator
wao.ui.indicator.levels=Levels
-wao.ui.indicator.useRightDecimalSymbol=User '.' to for non-round values\\
+wao.ui.indicator.useRightDecimalSymbol=User '.' to for non-round values
wao.ui.indicators.coefficientsSum=Coefficients sum
-wao.ui.indicators.title=Providers quality\\ indicators
-wao.ui.invalidLogin=Invalid\\ identifier
-wao.ui.layout.userDescription=You are %s\\ of company\\ %s (%s)
+wao.ui.indicators.title=Providers quality indicators
+wao.ui.invalidLogin=Invalid identifier
+wao.ui.layout.userDescription=You are %s of company %s (%s)
wao.ui.message.chooseProfile=Choose your profile \:
wao.ui.misc.N/A=non available
wao.ui.misc.accepted=Accepted
@@ -165,7 +166,7 @@
wao.ui.misc.creating=Creating...
wao.ui.misc.import-export=Import/export
wao.ui.misc.information=Information
-wao.ui.misc.logFile.description=Show log\\ file for\\ %s
+wao.ui.misc.logFile.description=Show log file for %s
wao.ui.misc.no=no
wao.ui.misc.noComment=no comment
wao.ui.misc.notValidated=Not validated
@@ -194,37 +195,37 @@
wao.ui.page.UserProfileForm.title=Profile management
wao.ui.publishedByProgram=Pusblished by program
wao.ui.publishedByYourCompany=Published by company
-wao.ui.sampleRow.creation=Creation of\\ a sample row
+wao.ui.sampleRow.creation=Creation of a sample row
wao.ui.sampleRow.edition=Edtion of line %s
-wao.ui.sampleRowLog.title=%s\\ line historic
-wao.ui.samplingPlan.addSampleRow=Add a line in\\ the sampling plan
-wao.ui.samplingPlan.export=Export\\\\ the sampling\\ plan from %s to %s
-wao.ui.samplingPlan.showActual=Show realisez observations\\ effor\\\\for validated contacts only\\
-wao.ui.samplingPlan.showExpected=Show estimated observations effort for\\ contacts validated by company or not
+wao.ui.sampleRowLog.title=%s line historic
+wao.ui.samplingPlan.addSampleRow=Add a line in the sampling plan
+wao.ui.samplingPlan.export=Export the sampling plan from %s to %s
+wao.ui.samplingPlan.showActual=Show realisez observations efforfor validated contacts only
+wao.ui.samplingPlan.showExpected=Show estimated observations effort for contacts validated by company or not
wao.ui.samplingPlan.title=Sampling plan
-wao.ui.synthesis.allegroReactivity.description=This result is an average\\ of the\\ number of days between the Allegro input date and\\ the\\ date of the observation end.
-wao.ui.synthesis.allegroReactivity.title=Allegro\\ input reactivity in relation to\\ tide end date
-wao.ui.synthesis.boarding.boardingCount=Total \: %s\\ invalid\\ boardings on %s boardings.
-wao.ui.synthesis.boarding.description=In these results, only\\ sample rows\\ with average tide time below 48 hours are considered.\\
-wao.ui.synthesis.boarding.mostUsedBoat=Most used\\ boat with\\ %s boardings \:\\ %s (%s)
-wao.ui.synthesis.boarding.title=Boats\\solicitations
-wao.ui.synthesis.complianceBoarding.description=Respect of the\\ defined\\ number of observants pour each\\ tides.
-wao.ui.synthesis.complianceBoarding.title=Respect of the number of\\ observers
-wao.ui.synthesis.contactsStates.description=Theses results consider\\ all\\ contacts states except\\ those\\ that are\\ refused by\\ the program.
+wao.ui.synthesis.allegroReactivity.description=This result is an average of the number of days between the Allegro input date and the date of the observation end.
+wao.ui.synthesis.allegroReactivity.title=Allegro input reactivity in relation to tide end date
+wao.ui.synthesis.boarding.boardingCount=Total \: %s invalid boardings on %s boardings.
+wao.ui.synthesis.boarding.description=In these results, only sample rows with average tide time below 48 hours are considered.
+wao.ui.synthesis.boarding.mostUsedBoat=Most used boat with %s boardings \: %s (%s)
+wao.ui.synthesis.boarding.title=Boatssolicitations
+wao.ui.synthesis.complianceBoarding.description=Respect of the defined number of observants pour each tides.
+wao.ui.synthesis.complianceBoarding.title=Respect of the number of observers
+wao.ui.synthesis.contactsStates.description=Theses results consider all contacts states except those that are refused by the program.
wao.ui.synthesis.contactsStates.title=Contact states
-wao.ui.synthesis.dataReliability.description=Percentage of the number of tides\\ providing\\ reliable data\\ in relation to\\ the\\ total number of realized tides.
+wao.ui.synthesis.dataReliability.description=Percentage of the number of tides providing reliable data in relation to the total number of realized tides.
wao.ui.synthesis.dataReliability.title=Data reliability
-wao.ui.synthesis.dataSampling.title=Tides\\ data (realized / expected)
-wao.ui.synthesis.globalSynthesis.globalResult=Result\\of the\\ global synthesis
+wao.ui.synthesis.dataSampling.title=Tides data (realized / expected)
+wao.ui.synthesis.globalSynthesis.globalResult=Resultof the global synthesis
wao.ui.synthesis.globalSynthesis.title=Global synthesis
wao.ui.synthesis.globalSynthesis.title.estimated=Global synthesis (according to estimations)
-wao.ui.synthesis.log.description=This page show every modifications done\\ since the\\ beginning\\ of the bounds of each levels and the coefficients\\ of each indicators.
+wao.ui.synthesis.log.description=This page show every modifications done since the beginning of the bounds of each levels and the coefficients of each indicators.
wao.ui.synthesis.log.empty=No modification until now
wao.ui.synthesis.log.entry.author=Modification's author
wao.ui.synthesis.log.entry.comment=Associated comment
wao.ui.synthesis.log.entry.date=Modification date
wao.ui.synthesis.log.entry.summary=Modifications done
-wao.ui.synthesis.log.title=Global synthesis parameters\\ historic
+wao.ui.synthesis.log.title=Global synthesis parameters historic
wao.ui.unavailableOperation=Unavailable operation
wao.ui.userList=Users list
wao.ui.validLogin=Valid identifier
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-01-12 11:25:28 UTC (rev 916)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-01-13 08:55:58 UTC (rev 917)
@@ -3,6 +3,7 @@
wao.ui.action.addNewContactFromBoat=Cr\u00E9er un nouveau contact pour ce navire et la ligne s\u00E9lectionn\u00E9e dans les filtres
wao.ui.action.back=Revenier \u00E0 l'\u00E9cran pr\u00E9c\u00E9dent
wao.ui.action.cancel=Annuler
+wao.ui.action.changeLocale=Changer de langue
wao.ui.action.contactAdmin=Contacter un responsable ObsMer
wao.ui.action.create=Cr\u00E9er
wao.ui.action.createCompany=Cr\u00E9er une soci\u00E9t\u00E9
Added: trunk/wao-ui/src/main/webapp/img/Flag_fr_gb.png
===================================================================
(Binary files differ)
Property changes on: trunk/wao-ui/src/main/webapp/img/Flag_fr_gb.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/wao-ui/src/main/webapp/img/source/Flag_fr_gb.svg
===================================================================
--- trunk/wao-ui/src/main/webapp/img/source/Flag_fr_gb.svg (rev 0)
+++ trunk/wao-ui/src/main/webapp/img/source/Flag_fr_gb.svg 2011-01-13 08:55:58 UTC (rev 917)
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ width="47.999996"
+ height="31.999998"
+ id="svg2"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="Flag_fr_gb.svg"
+ inkscape:export-filename="/home/bleny/projets/wao/wao-ui/src/main/webapp/img/Flag_fr_gb.png"
+ inkscape:export-xdpi="78.750008"
+ inkscape:export-ydpi="78.750008">
+ <metadata
+ id="metadata14">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs12">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 300 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="900 : 300 : 1"
+ inkscape:persp3d-origin="450 : 200 : 1"
+ id="perspective16" />
+ <inkscape:perspective
+ id="perspective2924"
+ inkscape:persp3d-origin="600 : 200 : 1"
+ inkscape:vp_z="1200 : 300 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 300 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1280"
+ inkscape:window-height="729"
+ id="namedview10"
+ showgrid="false"
+ inkscape:zoom="4.6494017"
+ inkscape:cx="-18.276407"
+ inkscape:cy="6.3559302"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <g
+ id="g2927"
+ transform="matrix(0.83072596,0,0,1.0826785,-0.92177949,-0.2401779)">
+ <path
+ id="path2908"
+ d="M 0,0 V 30 H 60 V 0 z"
+ style="fill:#00247d" />
+ <path
+ id="path2910"
+ d="M 0,0 60,30 M 60,0 0,30"
+ style="stroke:#ffffff;stroke-width:6" />
+ <path
+ id="path2912"
+ clip-path="url(#t)"
+ d="M 0,0 60,30 M 60,0 0,30"
+ style="stroke:#cf142b;stroke-width:4" />
+ <path
+ id="path2914"
+ d="M 30,0 V 30 M 0,15 h 60"
+ style="stroke:#ffffff;stroke-width:10" />
+ <path
+ id="path2916"
+ d="M 30,0 V 30 M 0,15 h 60"
+ style="stroke:#cf142b;stroke-width:6" />
+ </g>
+ <path
+ style="fill:#ed2939"
+ d="M 48 0.09375 L 0 32 L 48 32 L 48 0.09375 z "
+ id="rect4" />
+ <path
+ style="fill:#ffffff"
+ d="M 32 10.71875 L 0 32 L 32 32 L 32 10.71875 z "
+ id="rect6" />
+ <path
+ style="fill:#002395"
+ d="M 16 21.375 L 0 32 L 16 32 L 16 21.375 z "
+ id="rect8" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 0,32 48.131108,0"
+ id="path2934"
+ sodipodi:nodetypes="cc" />
+</svg>
1
0