diff --git a/.classpath b/.classpath
index 77b1e2a..b4802ff 100644
--- a/.classpath
+++ b/.classpath
@@ -5,18 +5,28 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/log4j-1.2.17-source.zip b/lib/Logs/log4j-1.2.17-source.zip
similarity index 100%
rename from lib/log4j-1.2.17-source.zip
rename to lib/Logs/log4j-1.2.17-source.zip
diff --git a/lib/log4j-1.2.17.jar b/lib/Logs/log4j-1.2.17.jar
similarity index 100%
rename from lib/log4j-1.2.17.jar
rename to lib/Logs/log4j-1.2.17.jar
diff --git a/lib/slf4j-api-1.7.5-sources.jar b/lib/Logs/slf4j-api-1.7.5-sources.jar
similarity index 100%
rename from lib/slf4j-api-1.7.5-sources.jar
rename to lib/Logs/slf4j-api-1.7.5-sources.jar
diff --git a/lib/slf4j-api-1.7.5.jar b/lib/Logs/slf4j-api-1.7.5.jar
similarity index 100%
rename from lib/slf4j-api-1.7.5.jar
rename to lib/Logs/slf4j-api-1.7.5.jar
diff --git a/lib/slf4j-log4j12-1.7.5-sources.jar b/lib/Logs/slf4j-log4j12-1.7.5-sources.jar
similarity index 100%
rename from lib/slf4j-log4j12-1.7.5-sources.jar
rename to lib/Logs/slf4j-log4j12-1.7.5-sources.jar
diff --git a/lib/slf4j-log4j12-1.7.5.jar b/lib/Logs/slf4j-log4j12-1.7.5.jar
similarity index 100%
rename from lib/slf4j-log4j12-1.7.5.jar
rename to lib/Logs/slf4j-log4j12-1.7.5.jar
diff --git a/lib/README b/lib/README
index 479e0b5..8d7a83c 100644
--- a/lib/README
+++ b/lib/README
@@ -1,9 +1,17 @@
-Description of used libraries:
-- activation: STU
-- devinsy-utils : useful tools (StringList...)
-- hamcrest-core: required by junit
-- junit: unit tests API
-- log4j: log API
-- servlet-api: servlet API
-- slf4j-api: facade log API
-- slf4j-log4j12: adaptation layer between slf4j and log4j
\ No newline at end of file
+This project is using the following libraries:
+
+# Main requirements:
+devinsy-utils GNU LGPL useful tools (StringList…)
+commons-lang3 Apache 2
+
+# Unit testing requirements:
+UnitTesting/fest-assert Apache 2 required by JUnit
+UnitTesting/fest-util Apache 2 required by JUnit
+UnitTesting/hamcrest-core BSD 3-Clause required by JUnit
+UnitTesting/junit EPL 1.0
+
+
+# Log requirements:
+Logs/slf4j-api MIT facade log API
+Logs/slf4j-log4j MIT adaptation layer between slf4j and log4j
+Logs/log4j Apache 2 log API
diff --git a/lib/fest-assert-1.4-sources.jar b/lib/UnitTesting/fest-assert-1.4-sources.jar
similarity index 100%
rename from lib/fest-assert-1.4-sources.jar
rename to lib/UnitTesting/fest-assert-1.4-sources.jar
diff --git a/lib/fest-assert-1.4.jar b/lib/UnitTesting/fest-assert-1.4.jar
similarity index 100%
rename from lib/fest-assert-1.4.jar
rename to lib/UnitTesting/fest-assert-1.4.jar
diff --git a/lib/fest-util-1.1.6-sources.jar b/lib/UnitTesting/fest-util-1.1.6-sources.jar
similarity index 100%
rename from lib/fest-util-1.1.6-sources.jar
rename to lib/UnitTesting/fest-util-1.1.6-sources.jar
diff --git a/lib/fest-util-1.1.6.jar b/lib/UnitTesting/fest-util-1.1.6.jar
similarity index 100%
rename from lib/fest-util-1.1.6.jar
rename to lib/UnitTesting/fest-util-1.1.6.jar
diff --git a/lib/hamcrest-core-1.3-sources.jar b/lib/UnitTesting/hamcrest-core-1.3-sources.jar
similarity index 100%
rename from lib/hamcrest-core-1.3-sources.jar
rename to lib/UnitTesting/hamcrest-core-1.3-sources.jar
diff --git a/lib/hamcrest-core-1.3.jar b/lib/UnitTesting/hamcrest-core-1.3.jar
similarity index 100%
rename from lib/hamcrest-core-1.3.jar
rename to lib/UnitTesting/hamcrest-core-1.3.jar
diff --git a/lib/junit-4.11-sources.jar b/lib/UnitTesting/junit-4.11-sources.jar
similarity index 100%
rename from lib/junit-4.11-sources.jar
rename to lib/UnitTesting/junit-4.11-sources.jar
diff --git a/lib/junit-4.11.jar b/lib/UnitTesting/junit-4.11.jar
similarity index 100%
rename from lib/junit-4.11.jar
rename to lib/UnitTesting/junit-4.11.jar
diff --git a/lib/activation.jar b/lib/activation.jar
deleted file mode 100644
index db4b1fb..0000000
Binary files a/lib/activation.jar and /dev/null differ
diff --git a/lib/commons-lang3-3.1-sources.jar b/lib/commons-lang3-3.1-sources.jar
new file mode 100644
index 0000000..02cd2f2
Binary files /dev/null and b/lib/commons-lang3-3.1-sources.jar differ
diff --git a/lib/commons-lang3-3.1.jar b/lib/commons-lang3-3.1.jar
new file mode 100644
index 0000000..a85e539
Binary files /dev/null and b/lib/commons-lang3-3.1.jar differ
diff --git a/webapp-examples/META-INF/MANIFEST.MF b/webapp-examples/META-INF/MANIFEST.MF
deleted file mode 100644
index 5e94951..0000000
--- a/webapp-examples/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Class-Path:
-
diff --git a/webapp-examples/WEB-INF/lib/activation.jar b/webapp-examples/WEB-INF/lib/activation.jar
deleted file mode 100644
index db4b1fb..0000000
Binary files a/webapp-examples/WEB-INF/lib/activation.jar and /dev/null differ
diff --git a/webapp-examples/WEB-INF/lib/log4j-1.2.14.jar b/webapp-examples/WEB-INF/lib/log4j-1.2.14.jar
deleted file mode 100644
index 6251307..0000000
Binary files a/webapp-examples/WEB-INF/lib/log4j-1.2.14.jar and /dev/null differ
diff --git a/webapp-examples/WEB-INF/lib/mail.jar b/webapp-examples/WEB-INF/lib/mail.jar
deleted file mode 100644
index eb2269d..0000000
Binary files a/webapp-examples/WEB-INF/lib/mail.jar and /dev/null differ
diff --git a/webapp-examples/WEB-INF/lib/servlet-api.jar b/webapp-examples/WEB-INF/lib/servlet-api.jar
deleted file mode 100644
index dd326d3..0000000
Binary files a/webapp-examples/WEB-INF/lib/servlet-api.jar and /dev/null differ
diff --git a/webapp-examples/WEB-INF/web.xml b/webapp-examples/WEB-INF/web.xml
deleted file mode 100644
index 2dff563..0000000
--- a/webapp-examples/WEB-INF/web.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
- XID TESTS
-
- Some tests on XID.
-
-
-
-
- XidTest
- xid.Test
-
-
- XidTest
- /test.xhtml
-
-
-
-
- index.jsp
- index.html
- index.htm
-
-
-
diff --git a/webapp-examples/WEB-INF/web.xml.ori b/webapp-examples/WEB-INF/web.xml.ori
deleted file mode 100644
index 4760079..0000000
--- a/webapp-examples/WEB-INF/web.xml.ori
+++ /dev/null
@@ -1,249 +0,0 @@
-
-
-
-
-
-
-
- Servlet 2.4 Examples
-
- Servlet 2.4 Examples.
-
-
-
-
- Servlet Mapped Filter
- filters.ExampleFilter
-
- attribute
- filters.ExampleFilter.SERVLET_MAPPED
-
-
-
- Path Mapped Filter
- filters.ExampleFilter
-
- attribute
- filters.ExampleFilter.PATH_MAPPED
-
-
-
- Request Dumper Filter
- filters.RequestDumperFilter
-
-
-
-
- Set Character Encoding
- filters.SetCharacterEncodingFilter
-
- encoding
- EUC_JP
-
-
-
-
- Compression Filter
- compressionFilters.CompressionFilter
-
-
- compressionThreshold
- 10
-
-
- debug
- 0
-
-
-
-
-
- Servlet Mapped Filter
- invoker
-
-
- Path Mapped Filter
- /ledb-admin/*
-
-
-
-
-
-
-
-
-
-
-
-
- listeners.ContextListener
-
-
- listeners.SessionListener
-
-
-
-
-
- CompressionFilterTestServlet
- compressionFilters.CompressionFilterTestServlet
-
-
- HelloWorldExample
- HelloWorldExample
-
-
- RequestInfoExample
- RequestInfoExample
-
-
- RequestHeaderExample
- RequestHeaderExample
-
-
- RequestParamExample
- RequestParamExample
-
-
- CookieExample
- CookieExample
-
-
- SessionExample
- SessionExample
-
-
-
- CompressionFilterTestServlet
- /CompressionTest
-
-
- HelloWorldExample
- /servlet/HelloWorldExample
-
-
- RequestInfoExample
- /servlet/RequestInfoExample/*
-
-
- RequestHeaderExample
- /servlet/RequestHeaderExample
-
-
- RequestParamExample
- /servlet/RequestParamExample
-
-
- CookieExample
- /servlet/CookieExample
-
-
- SessionExample
- /servlet/SessionExample
-
-
-
- Example Security Constraint
-
- Protected Area
-
- /jsp/security/protected/*
-
- DELETE
- GET
- POST
- PUT
-
-
-
- tomcat
- role1
-
-
-
-
-
- FORM
- Example Form-Based Authentication Area
-
- /jsp/security/protected/login.jsp
- /jsp/security/protected/error.jsp
-
-
-
-
-
- role1
-
-
- tomcat
-
-
-
-
-
- minExemptions
- 1
- java.lang.Integer
-
-
- foo/name1
- value1
- java.lang.String
-
-
- foo/bar/name2
- true
- java.lang.Boolean
-
-
- name3
- 1
- java.lang.Integer
-
-
- foo/name4
- 10
- java.lang.Integer
-
-
-
diff --git a/webapp-examples/aco.testXid.html b/webapp-examples/aco.testXid.html
deleted file mode 100644
index 78a308e..0000000
--- a/webapp-examples/aco.testXid.html
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
- test
-
-
- Test 01: No id attribute
- XHTML: Hello world.
- no Java code
- Result: Hello world.
-
- Test 02: id attribute with empty model
- XHTML: Hello world.
- no Java code
- Result: Hello world.
-
-
- Test 03: model changing the text
- XHTML: Hello world.
- // Populate attributes of Test 03.
- text = new TextModel ();
- text.getAttributes ().appendAttribute ("style", "background: blue;");
- text.getAttributes ().appendAttribute ("style", "foreground: red;");
- text.getAttributes ().setAttribute ("class", "totoClass");
- text.setText ("mummy");
- datas.put ("test03", text);
- Result: Hello world.
-
-
- Test 04: model changing title
- XHTML: Hello world.
- // Populate attributes of Test 04.
- text = new TextModel ();
- text.getAttributes ().setAttribute ("title", "another title");
- datas.put ("test04", text);
- Result: Hello world.
-
-
- Test 05: model adding style attributes
- XHTML: Hello world.
- // Populate attributes of Test 05.
- text = new TextModel ();
- text.getAttributes ().appendAttribute ("style", "background: blue;");
- text.getAttributes ().appendAttribute ("style", "foreground: red;");
- text.getAttributes ().setAttribute ("class", "aClass");
- datas.put ("test05", text);
- Result: Hello world.
-
-
- Test 06: model appending style attributes
- XHTML: Hello world.
- // Populate attributes of Test 06.
- text = new TextModel ();
- text.getAttributes ().appendAttribute ("style", "foreground: red;");
- text.getAttributes ().setAttribute ("class", "aClass");
- datas.put ("test06", text);
- Result: Hello world.
-
-
- Test 07: image
- XHTML: A picture .
- // Populate attributes of Test 07.
- text = new TextModel ();
- text.getAttributes ().setAttribute ("width", "50%");
- datas.put ("test07", text);
- Result: A picture .
-
-
- Test 08: xhtml source contains no display order in a tag.
- XHTML: Hello you there.
- Result: Hello you there.
-
-
- Test 09: dynamic addition of the nodisplay order.
- XHTML: Hello you there.
- Result: Hello you there.
-
-
-
\ No newline at end of file
diff --git a/webapp-examples/index.html b/webapp-examples/index.html
deleted file mode 100644
index 4cf657d..0000000
--- a/webapp-examples/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- XID Examples
-
-
-XID tests and examples.
-
-
diff --git a/webapp-examples/index.xhtml b/webapp-examples/index.xhtml
deleted file mode 100644
index 4cf657d..0000000
--- a/webapp-examples/index.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- XID Examples
-
-
-XID tests and examples.
-
-
diff --git a/webapp-examples/test.html b/webapp-examples/test.html
deleted file mode 100644
index 56f40ec..0000000
--- a/webapp-examples/test.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- test XID
-
-
- Test 01: Hello world.
- Test 02: Hello world.
- Test 03: Hello world.
- Test 04: Hello world.
- Test 05: Hello world.
- Test 06: Hello world.
- Test 07: .
- Test 08: Result: Hello you there.
- Test 09: Result: Hello you there.
-
-
\ No newline at end of file
diff --git a/webapp-examples/testXid.html b/webapp-examples/testXid.html
deleted file mode 100644
index 84d6c5e..0000000
--- a/webapp-examples/testXid.html
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
- test
-
-
- Test 01: No id attribute
- XHTML: Hello world.
- no Java code
- Result: Hello world.
-
- Test 02: id attribute with empty model
- XHTML: Hello world.
- no Java code
- Result: Hello world.
-
-
- Test 03: model changing the text
- XHTML: Hello world.
- // Populate attributes of Test 03.
- text = new TextModel ();
- text.getAttributes ().appendAttribute ("style", "background: blue;");
- text.getAttributes ().appendAttribute ("style", "foreground: red;");
- text.getAttributes ().setAttribute ("class", "totoClass");
- text.setText ("mummy");
- datas.put ("test03", text);
- Result: Hello world.
-
-
- Test 04: model changing title
- XHTML: Hello world.
- // Populate attributes of Test 04.
- text = new TextModel ();
- text.getAttributes ().setAttribute ("title", "another title");
- datas.put ("test04", text);
- Result: Hello world.
-
-
- Test 05: model adding style attributes
- XHTML: Hello world.
- // Populate attributes of Test 05.
- text = new TextModel ();
- text.getAttributes ().appendAttribute ("style", "background: blue;");
- text.getAttributes ().appendAttribute ("style", "foreground: red;");
- text.getAttributes ().setAttribute ("class", "aClass");
- datas.put ("test05", text);
- Result: Hello world.
-
-
- Test 06: model appending style attributes
- XHTML: Hello world.
- // Populate attributes of Test 06.
- text = new TextModel ();
- text.getAttributes ().appendAttribute ("style", "foreground: red;");
- text.getAttributes ().setAttribute ("class", "aClass");
- datas.put ("test06", text);
- Result: Hello world.
-
-
- Test 07: image
- XHTML: A picture .
- // Populate attributes of Test 07.
- text = new TextModel ();
- text.getAttributes ().setAttribute ("width", "50%");
- datas.put ("test07", text);
- Result: A picture .
-
-
- Test 08: xhtml source contains no display order in a tag.
- XHTML: Hello you there.
- Result: Hello you there.
-
-
- Test 09: dynamic addition of the nodisplay order.
- XHTML: Hello you there.
- Result: Hello you there.
-
-
\ No newline at end of file
diff --git a/webapp-examples/xhtml-lat1.ent b/webapp-examples/xhtml-lat1.ent
deleted file mode 100644
index ffee223..0000000
--- a/webapp-examples/xhtml-lat1.ent
+++ /dev/null
@@ -1,196 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp-examples/xhtml-special.ent b/webapp-examples/xhtml-special.ent
deleted file mode 100644
index cead4e8..0000000
--- a/webapp-examples/xhtml-special.ent
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp-examples/xhtml-symbol.ent b/webapp-examples/xhtml-symbol.ent
deleted file mode 100644
index 63c2abf..0000000
--- a/webapp-examples/xhtml-symbol.ent
+++ /dev/null
@@ -1,237 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp-examples/xhtml1-frameset.dtd b/webapp-examples/xhtml1-frameset.dtd
deleted file mode 100644
index 1a00936..0000000
--- a/webapp-examples/xhtml1-frameset.dtd
+++ /dev/null
@@ -1,1235 +0,0 @@
-
-
-
-
-
-%HTMLlat1;
-
-
-%HTMLsymbol;
-
-
-%HTMLspecial;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp-examples/xhtml1-transitional.dtd b/webapp-examples/xhtml1-transitional.dtd
deleted file mode 100644
index e22581b..0000000
--- a/webapp-examples/xhtml1-transitional.dtd
+++ /dev/null
@@ -1,1210 +0,0 @@
-
-
-
-
-
-%HTMLlat1;
-
-
-%HTMLsymbol;
-
-
-%HTMLspecial;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-