diff --git a/exercices/2018/jessiane-leal/.gitignore b/exercices/2018/jessiane-leal/.gitignore
new file mode 100644
index 0000000..d18f225
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.gitignore
@@ -0,0 +1,12 @@
+/target
+/classes
+/checkouts
+profiles.clj
+pom.xml
+pom.xml.asc
+*.jar
+*.class
+/.lein-*
+/.nrepl-port
+.hgignore
+.hg/
diff --git a/exercices/2018/jessiane-leal/.idea/ClojureProjectResolveSettings.xml b/exercices/2018/jessiane-leal/.idea/ClojureProjectResolveSettings.xml
new file mode 100644
index 0000000..df470b1
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/ClojureProjectResolveSettings.xml
@@ -0,0 +1,6 @@
+
+
+
+ IDE
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/compiler.xml b/exercices/2018/jessiane-leal/.idea/compiler.xml
new file mode 100644
index 0000000..9deeaef
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/compiler.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/encodings.xml b/exercices/2018/jessiane-leal/.idea/encodings.xml
new file mode 100644
index 0000000..15a15b2
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clj_time_0_14_4.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clj_time_0_14_4.xml
new file mode 100644
index 0000000..5d0983e
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clj_time_0_14_4.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clj_tuple_0_2_2.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clj_tuple_0_2_2.xml
new file mode 100644
index 0000000..732be9a
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clj_tuple_0_2_2.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clojure_complete_0_2_4.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clojure_complete_0_2_4.xml
new file mode 100644
index 0000000..5c3a95e
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__clojure_complete_0_2_4.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__colorize_0_1_1.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__colorize_0_1_1.xml
new file mode 100644
index 0000000..1782d37
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__colorize_0_1_1.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__com_rpl_specter_1_0_5.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__com_rpl_specter_1_0_5.xml
new file mode 100644
index 0000000..8830fc2
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__com_rpl_specter_1_0_5.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__commons_codec_1_11.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__commons_codec_1_11.xml
new file mode 100644
index 0000000..105e153
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__commons_codec_1_11.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__environ_1_1_0.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__environ_1_1_0.xml
new file mode 100644
index 0000000..dc72902
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__environ_1_1_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__fipp_0_6_13.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__fipp_0_6_13.xml
new file mode 100644
index 0000000..edcb282
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__fipp_0_6_13.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__flare_0_2_9.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__flare_0_2_9.xml
new file mode 100644
index 0000000..c29d7a0
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__flare_0_2_9.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__io_aviso_pretty_0_1_35.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__io_aviso_pretty_0_1_35.xml
new file mode 100644
index 0000000..019ce0a
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__io_aviso_pretty_0_1_35.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__joda_time_2_9_9.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__joda_time_2_9_9.xml
new file mode 100644
index 0000000..a306b48
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__joda_time_2_9_9.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__marick_suchwow_6_0_2.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__marick_suchwow_6_0_2.xml
new file mode 100644
index 0000000..333faee
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__marick_suchwow_6_0_2.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__midje_1_9_3.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__midje_1_9_3.xml
new file mode 100644
index 0000000..7fefbf5
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__midje_1_9_3.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__mvxcvi_arrangement_1_1_1.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__mvxcvi_arrangement_1_1_1.xml
new file mode 100644
index 0000000..c429726
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__mvxcvi_arrangement_1_1_1.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__mvxcvi_puget_1_0_2.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__mvxcvi_puget_1_0_2.xml
new file mode 100644
index 0000000..e7ffcb5
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__mvxcvi_puget_1_0_2.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojars_brenton_google_diff_match_patch_0_1.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojars_brenton_google_diff_match_patch_0_1.xml
new file mode 100644
index 0000000..d8b8a9b
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojars_brenton_google_diff_match_patch_0_1.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_clojure_1_8_0.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_clojure_1_8_0.xml
new file mode 100644
index 0000000..28a655e
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_clojure_1_8_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_core_rrb_vector_0_0_12.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_core_rrb_vector_0_0_12.xml
new file mode 100644
index 0000000..6e53d75
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_core_rrb_vector_0_0_12.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_core_unify_0_5_7.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_core_unify_0_5_7.xml
new file mode 100644
index 0000000..0291596
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_core_unify_0_5_7.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_java_classpath_0_2_3.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_java_classpath_0_2_3.xml
new file mode 100644
index 0000000..4c19a9d
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_java_classpath_0_2_3.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_math_combinatorics_0_1_4.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_math_combinatorics_0_1_4.xml
new file mode 100644
index 0000000..3dc1868
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_math_combinatorics_0_1_4.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_test_check_0_10_0_alpha3.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_test_check_0_10_0_alpha3.xml
new file mode 100644
index 0000000..a022d30
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_test_check_0_10_0_alpha3.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_macro_0_1_5.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_macro_0_1_5.xml
new file mode 100644
index 0000000..b5c4fb8
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_macro_0_1_5.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_namespace_0_3_0_alpha4.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_namespace_0_3_0_alpha4.xml
new file mode 100644
index 0000000..f1d019b
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_namespace_0_3_0_alpha4.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_nrepl_0_2_12.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_nrepl_0_2_12.xml
new file mode 100644
index 0000000..9e0ab2d
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_nrepl_0_2_12.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_reader_0_10_0.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_reader_0_10_0.xml
new file mode 100644
index 0000000..f0ea6f8
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_clojure_tools_reader_0_10_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_tcrawley_dynapath_1_0_0.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_tcrawley_dynapath_1_0_0.xml
new file mode 100644
index 0000000..58bf9ab
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__org_tcrawley_dynapath_1_0_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__potemkin_0_4_4.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__potemkin_0_4_4.xml
new file mode 100644
index 0000000..483055a
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__potemkin_0_4_4.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__riddley_0_1_12.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__riddley_0_1_12.xml
new file mode 100644
index 0000000..8b05b3f
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__riddley_0_1_12.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__slingshot_0_12_2.xml b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__slingshot_0_12_2.xml
new file mode 100644
index 0000000..9453b47
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/libraries/Leiningen__slingshot_0_12_2.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/misc.xml b/exercices/2018/jessiane-leal/.idea/misc.xml
new file mode 100644
index 0000000..5b039a5
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/misc.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/modules.xml b/exercices/2018/jessiane-leal/.idea/modules.xml
new file mode 100644
index 0000000..014974e
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/.idea/workspace.xml b/exercices/2018/jessiane-leal/.idea/workspace.xml
new file mode 100644
index 0000000..0a55c57
--- /dev/null
+++ b/exercices/2018/jessiane-leal/.idea/workspace.xml
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1544895557059
+
+
+ 1544895557059
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/CHANGELOG.md b/exercices/2018/jessiane-leal/CHANGELOG.md
new file mode 100644
index 0000000..dd880ef
--- /dev/null
+++ b/exercices/2018/jessiane-leal/CHANGELOG.md
@@ -0,0 +1,24 @@
+# Change Log
+All notable changes to this project will be documented in this file. This change log follows the conventions of [keepachangelog.com](http://keepachangelog.com/).
+
+## [Unreleased]
+### Changed
+- Add a new arity to `make-widget-async` to provide a different widget shape.
+
+## [0.1.1] - 2018-12-15
+### Changed
+- Documentation on how to make the widgets.
+
+### Removed
+- `make-widget-sync` - we're all async, all the time.
+
+### Fixed
+- Fixed widget maker to keep working when daylight savings switches over.
+
+## 0.1.0 - 2018-12-15
+### Added
+- Files from the new template.
+- Widget maker public API - `make-widget-sync`.
+
+[Unreleased]: https://github.com/your-name/cipher/compare/0.1.1...HEAD
+[0.1.1]: https://github.com/your-name/cipher/compare/0.1.0...0.1.1
diff --git a/exercices/2018/jessiane-leal/LICENSE b/exercices/2018/jessiane-leal/LICENSE
new file mode 100644
index 0000000..d3087e4
--- /dev/null
+++ b/exercices/2018/jessiane-leal/LICENSE
@@ -0,0 +1,277 @@
+Eclipse Public License - v 2.0
+
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
+
+ b) in the case of each subsequent Contributor:
+ i) changes to the Program, and
+ ii) additions to the Program;
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ "originates" from a Contributor if it was added to the Program by
+ such Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if, at
+ the time the Contribution is added by the Contributor, such addition
+ of the Contribution causes such combination to be covered by the
+ Licensed Patents. The patent license shall not apply to any other
+ combinations which include the Contribution. No hardware per se is
+ licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the
+ rights and licenses granted hereunder, each Recipient hereby
+ assumes sole responsibility to secure any other intellectual
+ property rights needed, if any. For example, if a third party
+ patent license is required to allow Recipient to Distribute the
+ Program, it is Recipient's responsibility to acquire that license
+ before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has
+ sufficient copyright rights in its Contribution, if any, to grant
+ the copyright license set forth in this Agreement.
+
+ e) Notwithstanding the terms of any Secondary License, no
+ Contributor makes additional grants to any Recipient (other than
+ those set forth in this Agreement) as a result of such Recipient's
+ receipt of the Program under the terms of a Secondary License
+ (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+ a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including
+ warranties or conditions of title and non-infringement, and
+ implied warranties or conditions of merchantability and fitness
+ for a particular purpose;
+
+ ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special,
+ incidental and consequential damages, such as lost profits;
+
+ iii) does not attempt to limit or alter the recipients' rights
+ in the Source Code under section 3.2; and
+
+ iv) requires any subsequent distribution of the Program by any
+ party to be under a license that satisfies the requirements
+ of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+ a) it must be made available under this Agreement, or if the
+ Program (i) is combined with other material in a separate file or
+ files made available under a Secondary License, and (ii) the initial
+ Contributor attached to the Source Code the notice described in
+ Exhibit A of this Agreement, then the Program may be made available
+ under the terms of such Secondary Licenses, and
+
+ b) a copy of this Agreement must be included with each copy of
+ the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+ Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+
+ If it is not possible or desirable to put the notice in a particular
+ file, then You may include the notice in a location (such as a LICENSE
+ file in a relevant directory) where a recipient would be likely to
+ look for such a notice.
+
+ You may add additional accurate notices of copyright ownership.
diff --git a/exercices/2018/jessiane-leal/README.md b/exercices/2018/jessiane-leal/README.md
new file mode 100644
index 0000000..89da11d
--- /dev/null
+++ b/exercices/2018/jessiane-leal/README.md
@@ -0,0 +1,22 @@
+# cipher
+
+A Clojure library designed to ... well, that part is up to you.
+
+## Usage
+
+FIXME
+
+## License
+
+Copyright © 2018 FIXME
+
+This program and the accompanying materials are made available under the
+terms of the Eclipse Public License 2.0 which is available at
+http://www.eclipse.org/legal/epl-2.0.
+
+This Source Code may also be made available under the following Secondary
+Licenses when the conditions for such availability set forth in the Eclipse
+Public License, v. 2.0 are satisfied: GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or (at your
+option) any later version, with the GNU Classpath Exception which is available
+at https://www.gnu.org/software/classpath/license.html.
diff --git a/exercices/2018/jessiane-leal/cipher.iml b/exercices/2018/jessiane-leal/cipher.iml
new file mode 100644
index 0000000..79ff0c4
--- /dev/null
+++ b/exercices/2018/jessiane-leal/cipher.iml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exercices/2018/jessiane-leal/doc/intro.md b/exercices/2018/jessiane-leal/doc/intro.md
new file mode 100644
index 0000000..58ea947
--- /dev/null
+++ b/exercices/2018/jessiane-leal/doc/intro.md
@@ -0,0 +1,3 @@
+# Introduction to cipher
+
+TODO: write [great documentation](http://jacobian.org/writing/what-to-write/)
diff --git a/exercices/2018/jessiane-leal/project.clj b/exercices/2018/jessiane-leal/project.clj
new file mode 100644
index 0000000..55c2c33
--- /dev/null
+++ b/exercices/2018/jessiane-leal/project.clj
@@ -0,0 +1,9 @@
+(defproject cipher "0.1.0-SNAPSHOT"
+ :description "FIXME: write description"
+ :url "http://example.com/FIXME"
+ :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
+ :url "https://www.eclipse.org/legal/epl-2.0/"}
+ :plugins [[lein-midje "3.2.1"]]
+ :dependencies [[org.clojure/clojure "1.8.0"]
+ [midje "1.9.3"]]
+ :repl-options {:init-ns cipher.core})
diff --git a/exercices/2018/jessiane-leal/src/cipher/core.clj b/exercices/2018/jessiane-leal/src/cipher/core.clj
new file mode 100644
index 0000000..abe07a9
--- /dev/null
+++ b/exercices/2018/jessiane-leal/src/cipher/core.clj
@@ -0,0 +1,46 @@
+(ns cipher.core)
+
+;(defn to-int
+; "Converte uma letra em número"
+; [letra]
+; 0)
+
+;(defn to-int
+; "recebe uma letra minúscola e retorna sua posição no alfabeto: a = 0, b = 1, etc."
+; [letter-char]
+; (let [ascii-a (int \a)]
+; (- (int letter-char) ascii-a)))
+
+(defn to-int
+ "recebe uma letra minúscola e retorna sua posição no alfabeto: a = 0, b = 1, etc."
+ [letter-char]
+ (- (int letter-char) (int \a)))
+
+(defn to-char
+ "recebe um número de posiçao no alfabeto e retorna uma letra minúscola"
+ [n]
+ (char (+ n (int \a))))
+
+
+
+(defn shift
+ "recebe uma letra que vai ser movida de acordo com o n escolhido: a 3 = d"
+ [letter-char n]
+ (to-char (+ (to-int letter-char) (mod n 26))))
+
+(defn shift-correct
+ "recebe uma letra que vai ser movida de acordo com o n escolhido: a 3 = d"
+ [letter-char n]
+ (to-char (mod(-(to-int letter-char) n) 26)))
+
+(defn shift-cipher
+ "recebe uma palavra e retorna a palabvra convertida"
+ [word-cipher n]
+ (let [char-lower (filterv #(Character/isLetter %) (clojure.string/lower-case word-cipher))]
+ (apply str (mapv #(shift % n) char-lower))))
+
+(defn descodific
+ "recebe uma palavra e descodifica"
+ [word-cipher n]
+ (let [char-lower (filterv #(Character/isLetter % ) (clojure.string/lower-case word-cipher))]
+ (apply str (mapv #(shift-correct % n) char-lower))))
diff --git a/exercices/2018/jessiane-leal/test/cipher/core_test.clj b/exercices/2018/jessiane-leal/test/cipher/core_test.clj
new file mode 100644
index 0000000..58d3daa
--- /dev/null
+++ b/exercices/2018/jessiane-leal/test/cipher/core_test.clj
@@ -0,0 +1,39 @@
+(ns cipher.core-test
+ (:require [cipher.core :as core]
+ [midje.sweet :refer :all]))
+
+(facts "recebe um caractere e retorna a posicao no alfabeto"
+
+ (fact "o caractere a é a primeira letra, na posição 0"
+ (core/to-int \a) => 0)
+
+ (fact "o caractere b é a segunda letra, na posição 1"
+ (core/to-int \b) => 1)
+
+ (fact "o caractere j é a décima letra, na posiçao 9"
+ (core/to-int \j) => 9))
+
+(facts "recebe um numero de posicao no alfabeto e retorna a letra referente"
+
+ (fact "o caractere a é a primeira letra, na posição 0"
+ (core/to-char 0) => \a)
+
+ (fact "o caractere b é a segunda letra, na posição 1"
+ (core/to-char 1 ) => \b)
+
+ (fact "o caractere j é a décima letra, na posiçao 9"
+ (core/to-char 9) => \j))
+
+
+
+(fact "pula letra a n vezes"
+ (core/shift \a 26) => \a)
+
+(fact "volta letra n vezes"
+ (core/shift-correct \e 4) => \a)
+
+(fact "Recebe palavra e converte de acordo com a chave passada"
+ (core/shift-cipher "a" 42) => "q")
+
+(fact "Recebe uma palavra convertida e retorna a palavra real"
+ (core/descodific "bcd" 3) => "yza")